1.需求
添加学生:通过键盘录入学生信息,添加到集合中删除学生:通过键盘录入需要删除学生的学号,将该学生对象从集合中删除修改学生:通过键盘录入需要修改学的学号,将该学生对象的其他信息进行修改查看学生:将集合中的学生对象信息进行展示退出系统:结束程序
2.代码实现
Student类 代码如下:
package StudentManger;/*学生信息:姓名,地址 */public class Student { String name; String address; int ChineseGrade; int MathGrade; int EnglishGrade; int sum; double averGrade; public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getChineseGrade() { return ChineseGrade; } public void setChineseGrade(int chineseGrade) { ChineseGrade = chineseGrade; } public int getMathGrade() { return MathGrade; } public void setMathGrade(int mathGrade) { MathGrade = mathGrade; } public int getEnglishGrade() { return EnglishGrade; } public void setEnglishGrade(int englishGrade) { EnglishGrade = englishGrade; } public double getAverGrade() { return averGrade; } public void setAverGrade(double averGrade) { this.averGrade = averGrade; }}
主类中的代码如下:
package StudentManger;import java.util.HashMap;import java.util.Scanner;import java.util.Set;public class Demo { public static void main(String[] args) { //创建hashmap集合 HashMap<Integer,Student> hashMap = new HashMap<>(); Scanner sc = new Scanner(System.in); //创建开始页面 while (true) { printview(); System.out.println("请输入您要实现的的功能:"); int data = sc.nextInt(); switch (data) { case 1 : setStudent(hashMap);break; case 2 : delete(hashMap);break; case 3 : Change(hashMap);break; case 4 :print01(hashMap);break; case 5 :print02(hashMap);break; case 6 : System.out.println("欢迎下次使用!");System.exit(1); } } } public static void printview() { System.out.println("----欢迎来到学生管理系统!-----"); System.out.println("----请选择以下对应的功能-------"); System.out.println("-------1.添加学生信息---------"); System.out.println("-------2.删除学生信息---------"); System.out.println("-------3.修改学生信息---------"); System.out.println("-------4.通过学号查看单个学生信息(通过key显示)---------"); System.out.println("-------5.查看所有学生信息------"); System.out.println("-------6.退出管理系统---------"); } //添加学生信息 public static void setStudent(HashMap<Integer,Student> hs) { Scanner sc = new Scanner(System.in); Student s = new Student(); System.out.println("请输入学生的地址:"); String address =sc.nextLine(); s.setAddress(address); System.out.println("请输入学生的姓名:"); String name = sc.nextLine(); s.setName(name); System.out.println("请输入学生的学号:"); Integer number = sc.nextInt(); System.out.println("请输入学生的语文成绩:"); Integer yuwen = sc.nextInt(); s.setChineseGrade(yuwen); System.out.println("请输入学生的数学成绩:"); Integer shuxue = sc.nextInt(); s.setMathGrade(shuxue); System.out.println("请输入学生的英语成绩:"); Integer yingyu = sc.nextInt(); s.setEnglishGrade(yingyu); //计算平均成绩和总体成绩 int sum = shuxue + yuwen+yingyu; double aver = sum/3; s.setSum(sum); s.setAverGrade(aver); //将学生信息存储到hashmap中 hs.put(number,s); System.out.println("添加成功!"); } //删除学生信息 public static void delete(HashMap<Integer,Student> hs) { Scanner sc = new Scanner(System.in); System.out.println("请输入您要删除学生的学号:"); Integer number = sc.nextInt(); if(hs.get(number)!=null) { hs.remove(number); System.out.println("删除成功!"); } else { System.out.println("此学生不存在!"); } } //显示单个学生信息 public static void print01(HashMap<Integer,Student> hs) { Scanner sc = new Scanner(System.in); System.out.println("请输入您要查询的学生的学号:"); Integer number = sc.nextInt(); if (hs.get(number)!=null) { Student s = hs.get(number); System.out.println("查询成功!"); System.out.println("学号:"+number+" 姓名:"+s.getName()+" 地址:"+s.getAddress()+" 语文成绩:"+s.getChineseGrade()+" 数学成绩:"+s.getMathGrade()+" 英语成绩:"+s.getEnglishGrade()+s.getAddress()+" 成绩总和:"+s.getSum()+" 平均成绩:"+s.getAverGrade()); } else { System.out.println("该学生不存在!"); } } //显示所有学生信息 public static void print02(HashMap<Integer,Student> hs) { System.out.println("所有学生信息如下:"); Set<Integer> set = hs.keySet(); for (Integer i :set) { Student s = hs.get(i); System.out.println("学号:"+i+" 姓名:"+s.getName()+" 地址:"+s.getAddress()+" 语文成绩:"+s.getChineseGrade()+" 数学成绩:"+s.getMathGrade()+" 英语成绩:"+s.getEnglishGrade()+" 成绩总和:"+s.getSum()+" 平均成绩:"+s.getAverGrade()); } } //修改学生信息 public static void Change(HashMap<Integer,Student> hs) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生学号:"); int number = sc.nextInt(); if (hs.get(number)!=null) { Scanner sc1 = new Scanner(System.in); Student s = hs.get(number); System.out.println("请输入您要修改的学生的具体信息:(姓名,地址,语文成绩,数学成绩。英语成绩)"); String data = sc1.nextLine(); if (data.equals("姓名")) { System.out.println("请输入您要修改的姓名:"); String name = sc1.nextLine(); s.setName(name); System.out.println("修改完成!"); } else if (data.equals("地址")) { System.out.println("请输入您要修改的地址:"); String address = sc1.nextLine(); s.setAddress(address); System.out.println("修改完成!"); } else if (data.equals("语文成绩")) { System.out.println("请输入您要修改的语文成绩:"); int ytuwen = sc1.nextInt(); s.setChineseGrade(ytuwen); System.out.println("修改完成!"); } else if (data.equals("数学成绩")) { System.out.println("请输入您要修改的数学成绩:"); int shuXue = sc1.nextInt(); s.setChineseGrade(shuXue); System.out.println("修改完成!"); } else if (data.equals("英语成绩")) { System.out.println("请输入您要修改的英语成绩:"); int yingyu = sc1.nextInt(); s.setChineseGrade(yingyu); System.out.println("修改完成!"); } } else { System.out.println("该学生不存在!"); } }}
部分测试如下:
----欢迎来到学生管理系统!-----
----请选择以下对应的功能-------
-------1.添加学生信息---------
-------2.删除学生信息---------
-------3.修改学生信息---------
-------4.通过学号查看单个学生信息(通过key显示)---------
-------5.查看所有学生信息------
-------6.退出管理系统---------
请输入您要实现的的功能:
1
请输入学生的地址:
桂林电子科技大学
请输入学生的姓名:
Ken
请输入学生的学号:
01
请输入学生的语文成绩:
130
请输入学生的数学成绩:
150
请输入学生的英语成绩:
140
添加成功!
----欢迎来到学生管理系统!-----
----请选择以下对应的功能-------
-------1.添加学生信息---------
-------2.删除学生信息---------
-------3.修改学生信息---------
-------4.通过学号查看单个学生信息(通过key显示)---------
-------5.查看所有学生信息------
-------6.退出管理系统---------
请输入您要实现的的功能:
5
所有学生信息如下:
学号:1 姓名:Ken 地址:桂林电子科技大学 语文成绩:130 数学成绩:150 英语成绩:140 成绩总和:420 平均成绩:140.0
----欢迎来到学生管理系统!-----
----请选择以下对应的功能-------
-------1.添加学生信息---------
-------2.删除学生信息---------
-------3.修改学生信息---------
-------4.通过学号查看单个学生信息(通过key显示)---------
-------5.查看所有学生信息------
-------6.退出管理系统---------
请输入您要实现的的功能:
4
请输入您要查询的学生的学号:
01
查询成功!
学号:1 姓名:Ken 地址:桂林电子科技大学 语文成绩:130 数学成绩:150 英语成绩:140桂林电子科技大学 成绩总和:420 平均成绩:140.0
----欢迎来到学生管理系统!-----
----请选择以下对应的功能-------
-------1.添加学生信息---------
-------2.删除学生信息---------
-------3.修改学生信息---------
-------4.通过学号查看单个学生信息(通过key显示)---------
-------5.查看所有学生信息------
-------6.退出管理系统---------
请输入您要实现的的功能:
6
欢迎下次使用!