• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
帅哥2255
IF YOU WANT SOMETHING THEN CHASE
博客园    首页    新随笔    联系   管理    订阅  订阅

java 使用 集合 制作学生管理系统

 

 

 

以上是文件组织结构

 

下面是个.java的具体代码:

 1 package com.collection.students.pojo;
 2 
 3 public class Student {
 4     private String sno;
 5     private String gender;
 6     private String name;
 7     private String clas;
 8     
 9     public Student() {
10 
11     }
12     public Student(String sno, String name, String gender, String clas) {
13         super();
14         this.sno = sno;
15         this.gender = gender;
16         this.name = name;
17         this.clas = clas;
18     }
19     
20     public String getSno() {
21         return sno;
22     }
23     public void setSno(String sno) {
24         this.sno = sno;
25     }
26     public String getGender() {
27         return gender;
28     }
29     public void setGender(String gender) {
30         this.gender = gender;
31     }
32     public String getName() {
33         return name;
34     }
35     public void setName(String name) {
36         this.name = name;
37     }
38     public String getClas() {
39         return clas;
40     }
41     public void setClas(String clas) {
42         this.clas = clas;
43     }
44     @Override
45     public String toString() {
46         return  sno + "\t" + name + "\t" + gender
47                 + "\t" + clas;
48     }
49     
50     
51     
52 }
package com.collection.students.data;

import java.util.HashSet;

import com.collection.students.pojo.Student;


public class StuDatas {
    private HashSet<Student> set;
    
    public StuDatas() {
        this.set = new HashSet<Student>();
    }

    public HashSet<Student> getSet() {
        return set;
    }

    public void setSet(HashSet<Student> set) {
        this.set = set;
    }
    
}

 

package com.collection.students.service;

import java.util.Iterator;

import com.collection.students.data.StuDatas;
import com.collection.students.pojo.Student;

public class StuSer {

    private Student tempStu;
    private StuDatas datas;
    private Iterator<Student> iterator;
    private boolean judge;

    public StuSer() {
        this.datas = new StuDatas();
        judge = false;
        tempStu = null;
    }

    public void addStu(Student student) {
        iterator = datas.getSet().iterator();
        System.out.println("添加前学生人数:"+datas.getSet().size());
        datas.getSet().add(student);
        System.out.println("添加成功");
        System.out.println("添加后学生人数:"+datas.getSet().size());
        System.out.println(iterator.hasNext());
    }

    public void delStu(Student student) {
        iterator = datas.getSet().iterator();
        datas.getSet().remove(student);
        System.out.println("删除成功");
    }

    public void editStu(Student student) {
        iterator = datas.getSet().iterator();
        while (iterator.hasNext()) {
            tempStu = iterator.next();
            if (tempStu.getSno().equals(student.getSno())) {
                tempStu.setGender(student.getGender());
                tempStu.setClas(student.getClas());
                tempStu.setName(student.getName());
                judge = true;
                break;
            }
        }
        if (judge) {
            System.out.println("修改成功");
            judge = false;// 恢复原值
        } else {
            System.out.println("修改失败,未找到这样学号的学生");
        }
    }

    public Student searchStuBySno(String str) {
        iterator = datas.getSet().iterator();
        while (iterator.hasNext()) {
            tempStu = iterator.next();
            if (tempStu.getSno().equals(str)) {
                System.out.println("查到该学号的同学");
                System.out.println("该学生的信息如下:");
                showStu(tempStu);
                judge = true;
                break;
            }
        }
        if (judge) {
            judge = false;// 恢复原值
            return tempStu;
        } else {
            System.out.println("未找到这样学号的学生");
            return null;
        }
    }

    public Student searchStuByName(String str) {
        iterator = datas.getSet().iterator();
        while (iterator.hasNext()) {
            tempStu = iterator.next();
            if (isNameAlike(tempStu.getName(), str)) {
                showStu(tempStu);
                judge = true;
                break;
            }
        }
        if (judge) {
            judge = false;// 恢复原值
            return tempStu;
        } else {
            System.out.println("未找到姓名与输入文字相似的学生");
            return null;
        }
    }

    public void showStu(Student student) {
        System.out.println(student.toString());
    }

    public void showAllStu() {
        iterator = datas.getSet().iterator();
        if (!iterator.hasNext()) {
            System.out.println("暂无学生,你可以选择添加学生");
            return;
        }
        System.out.println("所有学生的信息如下:");
        while (iterator.hasNext()) {
            tempStu = iterator.next();
            showStu(tempStu);
        }
    }

    public Student creatStu(String string) {
        String[] tempString = string.split(",");
        return tempStu = new Student(tempString[0], tempString[1],
                tempString[2], tempString[3]);
    }

    // 按学号判断是否已经存在该学生
    public boolean isStuPresent(Student student) {
        iterator = datas.getSet().iterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals(student)) {
                return true;
            }
        }
        return false;
    }
    public boolean isNameAlike(String s1, String s2) {
        for (int i = 0; i < s1.length(); i++) {
            for (int j = 0; j < s2.length(); j++) {
                if (s1.substring(i, i + 1).equals(s2.subSequence(j, j + 1))) {
                    return true;
                }
            }
        }
        return false;
    }
}
package com.collection.students.view;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

import com.collection.students.data.StuDatas;
import com.collection.students.pojo.Student;
import com.collection.students.service.StuSer;

public class StuMain {
    public static void main(String[] args) {
        StuSer stuSer = new StuSer();
        Scanner scanner = new Scanner(System.in);
        String choice;
        String input;
        Student student = null;

        while (true) {

            printMenu();
            choice = scanner.nextLine();

            if ("1".equals(choice)) {
                System.out.println("请输入学生的姓名,性别,班级(逗号隔开)");
                String temp = "," + scanner.nextLine();
                input = generateSno() + temp;
                if ((student = stuSer.creatStu(input)) != null) {
                    while (stuSer.isStuPresent(student)) {
                        //如果学号存在则重新产生学号
                        input = generateSno() + temp;
                        student = stuSer.creatStu(input);
                    }
                    stuSer.addStu(student);
                    System.out.println("该生的学号为:" + student.getSno());
                } else {
                    System.out.println("输入的信息不合法");
                }
            }
            if ("2".equals(choice)) {
                System.out.println("请输入学生的学号");
                input = scanner.nextLine();
                student = stuSer.searchStuBySno(input);
                if (student==null) {
                    System.out.println("删除失败");
                }else{
                    stuSer.delStu(student);
                }
            }
            if ("3".equals(choice)) {
                stuSer.showAllStu();
            }
            if ("4".equals(choice)) {
                System.out.println("输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)");
                input = scanner.nextLine();
                student = stuSer.creatStu(input);
                if (student != null) {
                    stuSer.editStu(student);
                }else {
                    System.out.println("输入不合法");
                }
            }
            if ("5".equals(choice)) {
                System.out.println("请输入姓名");
                input = scanner.nextLine();
                stuSer.searchStuByName(input);
            }
            if ("6".equals(choice)) {
                System.out.println("已退出系统");
                System.exit(0);
            }
        }
    }

    public static void printMenu() {
        System.out
                .println("请选择操作序号:\n1.添加学生\n2.删除学生\n3.显示所有学生\n4.更改学生信息\n5.姓名模糊查找\n6.退出\n");

    }

    public static String generateSno() {
        Date date = new Date();
        String str;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

        String ran = "" + (int) (Math.random() * 10000);
        StringBuffer sbf = new StringBuffer("");
        for (int i = 0; i < 4 - ran.length(); i++) {
            sbf.append('0');
        }
        str = dateFormat.format(date);
        return str = str + sbf.toString() + ran;
    }
}

执行结果:

 

请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
暂无学生,你可以选择添加学生
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,sdfa,asdf
添加前学生人数:0
添加成功
添加后学生人数:1
false
该生的学号为:201507319147
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
所有学生的信息如下:
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,dfa,dadf
添加前学生人数:1
添加成功
添加后学生人数:2
true
该生的学号为:201507315547
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
所有学生的信息如下:
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

1
请输入学生的姓名,性别,班级(逗号隔开)
kfjdisf,sdf,as
添加前学生人数:2
添加成功
添加后学生人数:3
true
该生的学号为:201507311253
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

4
输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)
201507315547,sfs,男,iii
修改成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sfs 男 iii
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

2
请输入学生的学号
201507315547
查到该学号的同学
该学生的信息如下:
201507315547 sfs 男 iii
删除成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出

6
已退出系统

posted @ 2015-07-31 08:29  野生骆驼  阅读(2132)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3