用Arraylist完成学生管理系统
要求 1、添加学生 2、删除学生 3、修改学生 4、查看所有学生 5、退出
首先应该写出框架(学生管理系统外部显示)
用 Arraylist接收学生信息
再用键盘录入int信息
用switch判断录入的信息需要进行第几步操作
1、添加学生
创建一个方法定义为addstudent返回值为void因为只是向array传输数据不需要返回
键盘录入学号姓名年龄地址并用s接收
用array.add(s);添加数据,输出添加成功
但是要注意问题如果学号中已经有了原来的学号为了保证学号不重复需要进行判断
创建一个新方法命名为a,作用为判断是否有重复
public stastic boolean a(Arraylist<student>,String sid){...}
返回值为boolean因为需要返回是否有重复
先定义一个boolean a=false;遍历集合并用s.geisid().equals(sid)判断
若有重复a=true并返回a
在addstudent中调用判断方法并且若为true
应输出您输入的学号重复了请重新输入且应该无限循环
在else中用break结束循环
2、删除学生
创建方法接收array数组
键盘输入一个学号
遍历数组for(int i=0;i<array,size();i++){...}
其中用if语句并用equals判断是true还是false
若true用array.remove(i);去删除数据并提示删除成功
改进:
若其中没有该学号应该给出提示
故可以定义一个新的变量int index=-1;(-1的原因是集合中的索引不可能为-1)
遍历数组如果有相同的另index=i;
再用if语句若index==0则输出您输入的学号不存在
else直接array,remove(index);给出提示即可
3、修改学生
同2进行有无数据判断
创建一个新的student类s1
键盘录入学号名字年龄地址用s1.set();保存到s1中
再用array.set(index,s1);并提示修改成功
4、查看所有学生
先进行判断array.size==0 如果是输出请先输入信息再查看
”\t“为一个tab字节
遍历集合
用student类型s去接收数据
并直接输出s.getsid........s.getadress
5、在case5中
直接用System.exit(0)退出Java模拟机
完整如下:
import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Scanner; public class 学生管理系统 { public static void main(String[] args) { ArrayList<student>array=new ArrayList<>(); for(;;){ 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("请输入您的选择"); Scanner sc=new Scanner(System.in); String line=sc.nextLine(); switch (line){ case "1": addstudent(array); break; case"2": deletestudent(array); break; case"3": changestudent(array); break; case"4": lookstudent(array); break; case"5": System.out.println("谢谢使用"); System.exit(0); default: System.out.println("您输入的数字有误请重新输入"); break; } } } public static void addstudent(ArrayList<student>array){ while(true) { Scanner sc=new Scanner(System.in); System.out.println("请输入学号"); String sid=sc.nextLine(); if(a(array,sid)){ System.out.println("您输入的学号重复了请重新输入"); } else{ System.out.println("请输入姓名"); String name=sc.nextLine(); System.out.println("请输入年龄"); String age=sc.nextLine(); System.out.println("请输入地址"); String address=sc.nextLine(); student s=new student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); array.add(s); System.out.println("添加成功"); break; }}} public static void lookstudent(ArrayList<student>array){ if(array.size()==0){ System.out.println("请先输入信息再查看"); return; } System.out.println("学号\t\t\t姓名\t\t年龄\t地址"); for(int i=0;i< array.size();i++){ student s=array.get(i); System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } } public static void deletestudent(ArrayList<student>array){ Scanner sc=new Scanner(System.in); System.out.println("请输入要删除学生的学号"); String sid=sc.nextLine(); int index=-1; for(int i=0;i<array.size();i++){ student s=array.get(i); if(sid.equals(s.getSid())){ index=i; } if(index==-1){ System.out.println("您输入的学号不存在"); }else{ array.remove(index); System.out.println("删除成功"); } } } public static void changestudent(ArrayList<student>array){ Scanner sc=new Scanner(System.in); System.out.println("请输入要修改的学号"); String sid=sc.nextLine(); student s1=new student(); int index=-1; for(int i=0;i<array.size();i++){ student s=array.get(i); if(sid.equals(s.getSid())){ index=i; } } if(index==-1){ System.out.println("您输入的学号不存在"); }else{ System.out.println("请输入新学号"); String newsid=sc.nextLine(); System.out.println("请输入新名字"); String name=sc.nextLine(); System.out.println("请输入新年龄"); String age=sc.nextLine(); System.out.println("请输入新地址"); String dress=sc.nextLine(); s1.setSid(newsid); s1.setName(name); s1.setAge(age); s1.setAddress(dress); array.set(index,s1); System.out.println("修改成功"); } } public static boolean a(ArrayList<student>array,String sid){ boolean a=false; for(int i=0;i< array.size();i++){ student s=array.get(i); if(s.getSid().equals(sid)){ a=true; } } return a; } }