成员管理系统(JAVA语言)

成员管理系统


前言

大一上根据学校安排,做了一个JAVA语言的实验室管理系统,分享到优快云上面,记录一下我的学习生活。


提示:以下是本篇文章正文内容,下面案例可供参考

一、实验室成员管理系统?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.管理者类以及操作

代码如下(示例):

package LaboratoryManager;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.util.Comparator;
import static kotlin.reflect.jvm.internal.impl.builtins.StandardNames.FqNames.list;

public class LaboratoryManager {
    public static void main(String[] args) throws IOException {
        List<Members> array = new ArrayList<Members>();
        while (true) {
            System.out.println("-------欢迎来到实验室成员管理系统-------");
            System.out.println("1 添加成员信息");
            System.out.println("2 删除成员信息");
            System.out.println("3 修改成员信息");
            System.out.println("4 查看所有成员信息");
            System.out.println("5 退出");
            System.out.println("6 根据成员的历次考核的平均成绩进行排序,并展示全体成员信息");
            System.out.println("7 使用txt存储");
            System.out.println("8 使用txt读取");
            System.out.println("9 打开txt文档");
            System.out.println("请输入数字以使用系统:");
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch (line) {
                case ("1"):{
                    //System.out.println("添加成员信息");
                    addLaboratoryMembers(array);
                    break;
                }
                case ("2"):{
                    //System.out.println("删除成员信息");
                    deleteLaboratoryMembers(array);
                    break;
                }
                case ("3"):{
                    //System.out.println("修改成员信息");
                    upDateLaboratoryMembers(array);
                    break;
                }
                case("4"):{
                    //System.out.println("查看所有成员信息");
                    lookAllLaboratoryMembers(array);
                    break;
                }
                case ("5"):{
                    System.out.println("退出成功");
                    System.exit(0);
                }
                case ("6"):{
                    // System.out.println("根据成员的历次考核的平均成绩进行排序,并展示全体成员信息");
//                  Collections.sort(array);
//                    System.out.println("排序后");
//                    for(Members m : array){
//                        System.out.println(m.getSid()+" "+m.getSex()+" "+m.getName()+" "+m.getCollege()+" "+m.getMajor()+" "+m.getScore());
//                    }

                    sortLaboratoryMembers(array);
                    break;
                }
                case ("7"):{
                    txt(array);
                    break;
                }
                case("8"):{
                    // System.out.println(readFileContent("实验室成员管理系统.txt"));
                    // readFileContent("实验室成员管理系统.txt");
                    //System.out.println(readTxtFile("实验室成员管理系统.txt"));
                    readTxt("实验室成员管理系统.txt",array);
                    break;
                }
                case ("9"):{
                    openTxt();
                    break;
                }
            }
        }
    }
    public static void addLaboratoryMembers(List<Members>arr){

        Scanner sc = new Scanner(System.in);
        Members m = new Members();
        String sid;
        while (true){
            System.out.println("请输入成员学号");
            sid = sc.nextLine();
            boolean flag = isUsed(arr,sid);
            if (flag == false){
                System.out.println("该学号已经存在!");
            }
            else {
                break;
            }
        }
        System.out.println("请输入成员姓名");
        String name = sc.nextLine();
        System.out.println("请输入成员性别");
        String sex = sc.nextLine();
        System.out.println("请输入成员年龄");
        String age = sc.nextLine();
        //System.out.println("请输入学生学号");
        //String sid = sc.nextLine();
        System.out.println("请输入成员学院");
        String college = sc.nextLine();
        System.out.println("请输入成员专业");
        String major = sc.nextLine();
        List<Integer>array = new ArrayList<>();
//        System.out.println("请输入分数:");
//        String score1 = sc.nextLine();
        System.out.println("您想输入___次考核成绩?");
        int n = sc.nextInt();
        for (int i=0;i<n;i++){
            System.out.println("请输入第"+(i+1)+"次考核成绩");
            int score = sc.nextInt();
            array.add(score);
        }
        m.setAverage(Members.average(array));
        m.setName(name);
        m.setSex(sex);
        m.setAge(age);
        m.setSid(sid);
        m.setCollege(college);
        m.setMajor(major);
        m.setScore(array);
//        m.setScore1(score1);
        m.setScore(array);
        arr.add(m);
    }
    public static void deleteLaboratoryMembers(List<Members>arr){
        System.out.println("请输入你想删除的成员的学号:");
        Scanner sc = new Scanner(System.in);
        String sid = sc.nextLine();
        int index = -1;
        for(int i=0;i<arr.size();i++) {
            Members m = arr.get(i);
            if (sid.equals(m.getSid())) {
                arr.remove(m);
                System.out.println("删除成功!");
                index = 1;
                break;
            }
        }
        if(index == -1) {
            System.out.println("该成员信息不存在,删除失败");
        }
    }
    public static void lookAllLaboratoryMembers(List<Members>arr){
        for(int i=0;i<arr.size();i++){
            Members m = new Members();
            m = arr.get(i);
            System.out.println(m.getSid()+" "+m.getName()+" "+m.getSex()+" "+m.getAge()+m.getCollege()+" "+m.getMajor()+" "+m.getScore()+" ");
        }
        if(arr.size()==0){
            System.out.println("无学生信息,请添加学生信息!");
        }
    }
    public static void upDateLaboratoryMembers(List<Members>arr) {
        Scanner sc = new Scanner(System.in);
        String sid;
        while (true) {
            System.out.println("请输入你想修改信息的成员的学号");
            sid = sc.nextLine();
            boolean flag = isUsed(arr, sid);
            if (flag == false) {
                System.out.println("成员信息存在,请继续操作");
                break;
            } else {
                System.out.println("该成员信息不存在! ");
            }
        }
        System.out.println("sid 修改学生的学号");
        System.out.println("name 修改学生姓名");
        System.out.println("sex 修改学生性别");
        System.out.println("age 修改学生年龄");
        System.out.println("college 修改学生学院");
        System.out.println("major 修改学生专业");
        System.out.println("score 修改学生分数");
        System.out.println("exit 退出修改");
        String index = sc.nextLine();
        switch(index) {
            case ("sid"): {
                System.out.println("请输入新的学号");
                String newSid = sc.nextLine();
                int temp = 1;
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(newSid)) {
                        System.out.println("该学号已经存在,请重新输入!");
                        temp = 0;
                        break;
                    } else {
                        temp = 1;
                    }
                }
                if (temp == 1) {
                    for (int i = 0; i < arr.size(); i++) {
                        Members m = arr.get(i);
                        if (m.getSid().equals(sid)) {
                            m.setSid(newSid);
                        }
                    }
                }
                break;
            }
            case ("name"): {
                System.out.println("请输入新的姓名");
                String newName = sc.nextLine();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        m.setName(newName);
                    }
                }
                break;
            }
            case ("sex"): {
                System.out.println("请输入新的性别");
                String newSex = sc.nextLine();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        m.setSex(newSex);
                    }
                }
                break;
            }
            case ("age"): {
                System.out.println("请输入新的年龄");
                String newAge = sc.nextLine();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        m.setAge(newAge);
                    }
                }
                break;
            }
            case ("college"): {
                System.out.println("请输入新的学院");
                String newCollege = sc.nextLine();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        m.setCollege(newCollege);
                    }
                }
                break;
            }
            case ("major"): {
                System.out.println("请输入新的专业");
                String newMajor = sc.nextLine();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        m.setCollege(newMajor);
                    }
                }
                break;
            }
            case ("score"): {
                System.out.println("请输入修改后的成员历次考核成绩");
                List<Integer> newScore = new ArrayList<>();
                for (int i = 0; i < arr.size(); i++) {
                    Members m = arr.get(i);
                    if (m.getSid().equals(sid)) {
                        for (int j = 0; j < m.getScore().size(); j++) {
                            int newScores = sc.nextInt();
                            newScore.add(newScores);
                        }
                    }
                }
//                System.out.println("请输入新成绩:");
//                String newScore1 = new String();
//                for (int i = 0; i < arr.size(); i++) {
//                    Members m = arr.get(i);
//                    if (m.getSid().equals(sid)) {
//                        m.setSex(newScore1);
//                    }
//                }
                break;
            }
        }
    }
    public static void sortLaboratoryMembers(List<Members>arr){

//        for(int i=0;i<arr.size();i++) {
//            Members m = new Members();
//            m.setAverage(Members.average(m.getScore()));
//        }
        Collections.sort(arr);
        System.out.println("排序后");
        System.out.println(arr.toString());
        if(arr.size()==0){
            System.out.println("暂无成员信息!");
        }
    }
    public static void openTxt(){
        Process p = null;//Process代表一个进程对象
        try {
            p = Runtime.getRuntime().exec("notepad.exe 实验室成员管理系统.txt");
            //参数为操作系统的一个进程的命令,而不是传一个文件
            //启动记事本程序打开java文件
            Thread.sleep(5000);//眠5秒后销毁该进程。
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            p.destroy();//销毁该进程
        }
    }
    public static void txt(List<Members>arr){
        try {
            FileWriter writer = new FileWriter("实验室成员管理系统.txt",true);
            FileReader reader = new FileReader("实验室成员管理系统.txt");
            BufferedWriter bw = new BufferedWriter(writer);
            BufferedReader br = new BufferedReader(reader);
            // bw.write("学号 姓名 性别 年龄 学院 专业    考核成绩   平均成绩\n\n");
            for(int i=0;i<arr.size();i++){
                String s =arr.get(i).toString();
                /*if(s==br.readLine()){
                    continue;
                }*/
                bw.write(s);
                // bw.newLine();  //换行
                //   bw.flush();    //缓冲
            }
            System.out.println("储存成功" );
            bw.close();
        }catch(Exception e){
            System.err.format("IOException: %s%n",e);
        }
        //openTxt();
    }
    private static boolean isUsed(List<Members> arr, String sid) {
        boolean flag = true;
        for(int i=0;i<arr.size();i++){
            Members m = arr.get(i);
            if(sid.equals(m.getSid())){
                flag = false;
            }
        }
        return flag;
    }
    public static void readTxt(String fileName,List<Members>arr) throws IOException {
        /*
        //创建字符缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader(fileName));
        //创建ArrayList集合对象
        ArrayList<String> array = new ArrayList<String>();
        String line;
        while((line = br.readLine()) != null){
            //把读取到的字符串存储到集合中
            array.add(line);
        }
        br.close();
        for(String s : array){
            System.out.println(s);
        }

         */

        BufferedReader br = new BufferedReader(new FileReader(fileName));
        String line = null;
        try {
            while ((line = br.readLine()) != null ) {
                if(line.equals((""))){
                    continue;
                }
                //分割字符串
                String[] strArray = line.split("\\s");
                Members m = new Members();
                m.setSid(strArray[0]);
                m.setName(strArray[1]);
                m.setSex(strArray[2]);
                m.setAge(strArray[3]);
                m.setCollege(strArray[4]);
                m.setMajor(strArray[5]);
                String s = new String();
                List<Integer>array = new ArrayList<>();
                for(int j=0;j<strArray[6].length();j++){
                    if(strArray[6].charAt(j)!='[' && strArray[6].charAt(j)!=']'){
                        s += strArray[6].charAt(j);
                    }
                    if(strArray[6].charAt(j)==']'){
                        break;
                    }
                }
                String[] fg = s.split(",") ;
                for(int k=0;k<fg.length;k++){
                    array.add(Integer.parseInt(fg[k]));
                }
                m.setScore(array);
//                m.setScore1(strArray[6]);
//                int i = Integer.parseInt(strArray[7]);
//                m.setAverage(i);
                arr.add(m);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        br.close();

    }
}

2.学生类

代码如下(示例):

package LaboratoryManager;

import java.util.List;

public class Members implements Comparable<Members> {
    private String name;
    private String sex;
    private String age;
    private String sid;
    private String college;
    private String major;
    private List<Integer> score;
    private String score1;
    private int average ;
    public Members() {
    }

    public Members(String name, String sex, String age, String sid, String college, String major, List<Integer> score) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.sid = sid;
        this.college = college;
        this.major = major;
        this.score = score;
    }

    public String getScore1() {
        return score1;
    }

    public void setScore1(String score1) {
        this.score1 = score1;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public List<Integer> getScore() {
        return score;
    }

    public void setScore(List<Integer> score) {
        this.score = score;
    }

    public int getAverage() {
        return average;
    }

    public void setAverage(int average) {
        this.average = average;
    }


//    public static String information(){};

    public static int average(List<Integer>score){
        int num=0;
        for(int i=0;i<score.size();i++){
            num += score.get(i);
        }
        int average = num/score.size();
        return average;
    }
    public static int average(String score1){
        return  Integer.parseInt(score1);
    }
    @Override
    public int compareTo(Members m){
        if( m.average - this.average!=0){
            return m.average - this.average;
        }
        else return 1;
//        return 0; //元素重复不添加
//        return 1;  //升序存储
//        return -1;  //降序存储

    }
    @Override
    public String toString(){
        /*return '\n'+sid+" "+name+" "+sex+" "+age+" "+college+" "+major+" "+
                score
                +'\n';*/
        String s1='\n'+sid+" "+name+" "+sex+" "+age+" "+college+" "+major+" ";
        String s2="[";
        for(int s:score){
            s2+=s+",";
        }
        s2+="]"+'\n';
        String ss = new String();
        for(int i=0;i<s2.length();i++){
            if(i==s2.length()-3){
                continue;
            }
            ss+=s2.charAt(i);
        }
        return s1+ss;
    }
    /*public int compare(Members m1,Members m2){
        int i= m1.getAverage()-m2.getAverage();
        if(i==0){
            return 1;
        }
        return i;
    }

     */
   /* public void getAverage(){
        this.average = average;
    }

    */
}

代码实现总体不难,但是在IO流方面的细节上需要多多注意。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值