一、题目要求
需要实现对应的操作
二、思路
(1)先设计一个主菜单界面,用户可以选择对应的功能;
(2)每个板块对应一个方法,实现具体的操作;
(3)最后在main函数中使用switch方法根据用户的选择对应不同的结果;
三、代码
1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 public class StudentTest { 5 public static void main(String[] args) { 6 ArrayList<Student> list=new ArrayList<>(); 7 loop:while (true) { 8 //1.添加菜单界面 9 System.out.println("---------欢迎来到黑马学生系统---------"); 10 System.out.println("1.添加学生"); 11 System.out.println("2.删除学生"); 12 System.out.println("3.修改学生"); 13 System.out.println("4.查询学生"); 14 System.out.println("5.退出"); 15 System.out.println("请输入你要实现的功能"); 16 //从键盘接收用户传入的数据作为功能的选择 17 Scanner sc=new Scanner(System.in); 18 String choose=sc.next(); 19 //写出不同选项对应执行的方法(利用switch来进行) 20 switch (choose){ 21 case "1"-> add(list); 22 case "2"-> delete(list); 23 case "3"->change(list); 24 case "4"-> see(list); 25 case "5"-> { 26 System.out.println("程序已退出"); 27 break loop; 28 } 29 default-> System.out.println("输入选项不存在,请重新输入"); 30 } 31 } 32 } 33 //1.添加学生 34 public static void add(ArrayList<Student> list){ 35 Scanner sc=new Scanner(System.in); 36 System.out.println("请输入需要添加学生的id"); 37 String sid=sc.next(); 38 if(contains(list,sid)>=0){ 39 System.out.println("该学生已存在"); 40 return; 41 } 42 System.out.println("请输入需要添加学生的姓名"); 43 String sname=sc.next(); 44 System.out.println("请输入需要添加学生的年龄"); 45 int sage=sc.nextInt(); 46 System.out.println("请输入需要添加学生的地址"); 47 String saddress=sc.next(); 48 Student stu=new Student(sid,sname,saddress,sage); 49 list.add(stu); 50 System.out.println("学生添加成功"); 51 } 52 //2.删除学生 53 public static void delete(ArrayList<Student> list){ 54 System.out.println("请输入需要删除学生的id"); 55 Scanner sc=new Scanner(System.in); 56 loop:while (true) { 57 String sid=sc.next(); 58 for (int i = 0; i < list.size(); i++) { 59 Student temp=list.get(i); 60 if(sid.equals(temp.getId())){ 61 list.remove(i); 62 System.out.println("删除成功"); 63 break loop; 64 } 65 } 66 System.out.println("该学生不存在,请重新输入"); 67 } 68 } 69 //3.修改学生 70 public static void change(ArrayList<Student> list){ 71 System.out.println("请输入你要修改的学生id"); 72 Scanner sc=new Scanner(System.in); 73 String sid=sc.next(); 74 if(contains(list,sid)>=0){ 75 Student stu=new Student(); 76 stu.setId(sid); 77 int index=contains(list,sid); 78 System.out.println("请输入id为"+sid+"的新姓名"); 79 String newname=sc.next(); 80 stu.setName(newname); 81 System.out.println("请输入id为"+sid+"的新年龄"); 82 int newage=sc.nextInt(); 83 stu.setAge(newage); 84 System.out.println("请输入id为"+sid+"的新地址"); 85 String newaddress=sc.next(); 86 stu.setAddress(newaddress); 87 list.set(index,stu); 88 System.out.println("修改完成"); 89 } 90 else{ 91 System.out.println("该学生不存在"); 92 return; 93 } 94 } 95 //4.查询学生 96 public static void see(ArrayList<Student> list) { 97 if(list.size()==0){ 98 System.out.println("当前无学生信息"); 99 } 100 else { 101 System.out.println("id\t姓名\t年龄\t地址\t"); 102 for (int i = 0; i < list.size(); i++) { 103 Student stu = list.get(i); 104 System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress()); 105 } 106 } 107 108 } 109 public static int contains(ArrayList<Student> list,String id){ 110 for (int i = 0; i < list.size(); i++) { 111 Student stu=list.get(i); 112 if(stu.getId().equals(id)){ 113 return i; 114 } 115 } 116 return -1; 117 } 118 }
四、总结
(1)对于需要复用的代码,最好单独书写为一个方法,方便以后的调用,同时能提高代码的复用性和效率;
(2)需要ArrayList对应的几种基本方法
例:
需要其他的方法时可以查API文档;
(3)return的作用:
①结束一个方法
②作为返回值
标签:Java,sc,list,System,信息管理,stu,println,学生,out From: https://www.cnblogs.com/lian369/p/17596939.html