A: 创建一个接口StudentManager
B:创建一个实现类:StudentManagerImpl{
成员变量:List<Map> students;
public boolean addstudents(){
创建一个Map ;scanner录入:学生姓名 学生学号 学生性别 学生年龄
遍历students判断这个学生学号是否已经添加过,如果已经添加过返回false
否则:封装Map放入students列表中
}
Public index search(String 学生学号){
根据学号查找学生信息
}
根据学号找到学生并修改该学生成绩
根据学号找到学生并删除该学生信息
}
C:书写一个main方法进行测试
接口:
1 package test01; 2 3 public interface StudentManager { 4 public boolean addstudents(); 5 public int search(int sid); 6 public void change(); 7 public void delete(); 8 }
实现类:
1 package test01; 2 3 import java.util.*; 4 5 public class StudentManagerImpl implements StudentManager { 6 List<Map> students=new ArrayList<>(); 7 Scanner scanner=new Scanner(System.in); 8 //添加学生 9 @Override 10 public boolean addstudents() { 11 System.out.println("请录入学生学号"); 12 int sid=scanner.nextInt(); 13 int seachSid=search(sid); 14 if (seachSid==-1){ 15 System.out.println("请录入学生姓名"); 16 String stuname=scanner.next(); 17 System.out.println("请录入学生性别"); 18 String stusex=scanner.next(); 19 System.out.println("请录入学生成绩"); 20 int score=scanner.nextInt(); 21 Map map=new HashMap(); 22 map.put("学号",sid); 23 map.put("姓名",stuname); 24 map.put("性别",stusex); 25 map.put("成绩",score); 26 students.add(map); 27 }else { 28 System.out.println("该学号学生信息:"+students.get(seachSid)+"已存在请重新录入"); 29 } 30 return false; 31 } 32 //查找学号下标 33 @Override 34 public int search(int sid) { 35 int index=-1; 36 for (int i = 0; i < students.size(); i++) { 37 if (students.get(i).get("学号").equals(sid)){ 38 index=i; 39 } 40 } 41 return index; 42 } 43 //根据学号查询到学生信息并修改该生的成绩 44 @Override 45 public void change(){ 46 System.out.println("请录入要修改成绩的学生学号"); 47 int sid=scanner.nextInt(); 48 int index=search(sid); 49 if (index==-1){ 50 System.out.println("查无此人"); 51 }else { 52 System.out.println("要修改成绩的学生为:"+students.get(index)); 53 System.out.println("请录入新的成绩"); 54 int newscore=scanner.nextInt(); 55 int old= (int) students.get(index).get("成绩"); 56 students.get(index).put("成绩",newscore); 57 System.out.println("修改成功!修改结果为:"+students.get(index)); 58 System.out.println(students); 59 } 60 } 61 //根据学号删除学生信息 62 @Override 63 public void delete(){ 64 while (true){ 65 System.out.println("请输入要删除的学生学号"); 66 int destu=scanner.nextInt(); 67 int index=search(destu); 68 if (index==-1){ 69 if (destu==0)break; 70 System.out.println("删除失败!该生不存在,请重新录入或输入0退出删除操作"); 71 }else { 72 students.remove(index); 73 System.out.println("删除成功!"); 74 System.out.println(students); 75 break; 76 } 77 } 78 } 79 80 public static void main(String[] args) { 81 StudentManagerImpl studentManager=new StudentManagerImpl(); 82 Scanner scanner=new Scanner(System.in); 83 while (true){ 84 System.out.println("录入指令进行操作:1、添加学生 2、查找学生 3、修改学生成绩 4、删除学生信息 5、退出"); 85 int choose=scanner.nextInt(); 86 if (choose==1){ 87 studentManager.addstudents(); 88 System.out.println(studentManager.students); 89 }else if (choose==2){ 90 while (true){ 91 System.out.println("请录入学号查找学生"); 92 int idFindStu=scanner.nextInt(); 93 int index=studentManager.search(idFindStu); 94 if (index==-1){ 95 if (idFindStu==0)break; 96 System.out.println("查找失败,请重新录入或输入0退出查找"); 97 }else { 98 System.out.println("查找成功:"+studentManager.students.get(index)); 99 break; 100 } 101 } 102 }else if (choose==3){ 103 studentManager.change(); 104 }else if (choose==4){ 105 studentManager.delete(); 106 } 107 else if (choose==5){ 108 System.out.println("已退出操作"); 109 break; 110 } 111 } 112 } 113 }