1.首先先写一个Student(学生类),
成员变量
String sid,name,age,address(sid学生学号,name学生姓名,age学生年龄,address学生地址)提示:变量用全部用String字符串来写,会好写一点,全部用private私有化用来修饰
要有无参,有参,get set方法
代码如下:
public class Student { //学号 private String sid; //名字 private String name; //年龄 private String age; //居住地 private String address; public Student(String sid, String name, String age, String address) { this.sid = sid; this.name = name; this.age = age; this.address = address; } public Student() { } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
2.写一个增删改查的实现类
1.用输出语句完成主页面的编写 2.用Scanner实现快捷键录入数据 3.用switch语句完成操作的选择 4.用循环完成再次回到主页面
增删改查界面如下代码:
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
//用输出语句完成主页面的编写
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("-----------欢迎来到学生管理系统-----------");
System.out.println("1.添加学生 2.删除学生 3.修改学生 4.查看所有学生 5.退出");
System.out.println("请输入你的选择:");
String s= sc.next();
switch (s) {
case "1":
addStudent(list);//添加学生方法
break;
case "2":
delete(list);//删除学生方法
break;
case "3":
ChangeSid(list);//更改学生方法
break;
case "4":
finaAddStudent(list);//查看所有学生方法
break;
case "5":
System.out.println("谢谢使用!!!");/退出学生系统
System.exit(0);//这个方法是终止JVM虚拟机
break;
default:
System.out.println("选项出错,请重新选择!!!");
break; //如果输出1~5选项之外,则会重新选择
}
}
}
//添加学生方法:
public static void addStudent(ArrayList<Student> list){ //参数列表使用ArrayList,调用Student对象 Scanner sc=new Scanner(System.in);//调用键盘输出方法 String sid;//定义sid方法 while (true){ System.out.println("请输入学生学号:"); sid=sc.next(); boolean flag = isUser(list, sid); //调用isUser方法 //isUser方法是判断输出的学号是否与之前存储的学号有相同 if(flag){ System.out.println("您输入的学号已添加,请重新输入!!!"); //红色这一块是为了判断输出有没有相同学号,如果有,请重新输入学号!!! }else{ System.out.println("请输入学生姓名:"); String name=sc.next(); System.out.println("请输入学生年龄:"); String age=sc.next(); System.out.println("请输入学生地址:"); String address=sc.next(); //上面的使用键盘输出添加学生姓名,名字这些就不再讲解了哈 Student s=new Student();//调用Student对象 s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); list.add(s); System.out.println("添加学生成功!!!"); break; //把键盘输出的字符串变量赋值给对象s的set方法 } }
//isUser方法如下:
public static boolean isUser(ArrayList<Student> list,String sid){ //定义一个布尔值,为false,先循环,再判断,如果学过集合的同学们应该都看得懂这个循环哈,不懂可以加我qq哈,qq号码在最后一句话里面 boolean flag=false; for (int i = 0; i < list.size(); i++) { Student s = list.get(i); if(s.getSid().equals(sid)){ flag=true; } } return flag; }
接来下:我们写查看所有学生代码,先把简单的给写完先哈。
public static void finaAddStudent(ArrayList<Student> list){ if(list.isEmpty){isEmpty是集合里面的一个方法,判断集合是否为空值,当然,你也把判断条件写为list.size==0,这个判断条件,效果都一样哈 System.out.println("您未录入学生,请先录入学生:"); }else{//遍历集合,输出已录入的学生集合 for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress()); } } }
接下来,我们来写删除代码,代码如下:
public static void delete(ArrayList<Student> list){ if(list.size()==0){//首先哈,这个和上面那个查看所有学生判断是一样的 System.out.println("未录入学生,请先录入学生!!!"); }else{ //显示所有学生信息方便删除 System.out.println("学生信息:"); for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress()); } while (true){ Scanner sc=new Scanner(System.in); System.out.println("请您输入需要删除的学生学号:");给出删除学生提示信息 String sid=sc.next();//输出已有的学生学号进行删除 int index=-1;//这个index变量是为了下面的判断先给赋值等于-1,因为集合下标没有-1, for (int i = 0; i < list.size(); i++) { Student s = list.get(i); if(s.getSid().equals(sid)){ index=i; break; //如果调用对象的学生学号和输出的学生学号相同,则index=i,i=sid学号下标; } } 然后再进行判断: if(index==-1){ System.out.println("没有此学号,请重新选择!!!"); //如果没有输出错误或者没有此学号,就需要重新输入,删除已有学号; }else{下面的这些就是如果输出的学号和之前录入进去的学号相同,就可以修改啦 for (int i = 0; i < list.size(); i++) { Student s = list.get(i); if(s.getSid().equals(sid)){ list.remove(i); System.out.println("删除学生成功!!!"); } } break; } } } }
那我们接下来.,就写最后一个步骤,更改学生也是最难的喔,和删除有几分相似,都是用集合调用方法,比较简单:
public static void ChangeSid(ArrayList<Student> list){ if(list.size()==0){ System.out.println("未录入学号,请先录入学号!!!"); }else{ System.out.println("学生信息:"); for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress()); } //首先我们前面讲过,先判断集合是否为空值,还有显示学号,方便更改学生信息 while (true){ Scanner sc=new Scanner(System.in); System.out.println("请您输入需要更改的学生学号:"); String sid=sc.next(); int index=-1; for (int i = 0; i < list.size(); i++) { Student s = list.get(i); if(s.getSid().equals(sid)){ index=i; break; } } if(index==-1){ System.out.println("没有此学号,请重新选择!!!"); //上面一段循环判断似是和删除是一样的道理,我就不多说了哈 如果没有学号,就重新输入学号进行修改!!! }else{ System.out.println("请输入新学生姓名:"); String name=sc.next(); System.out.println("请输入新学生年龄:"); String age=sc.next(); System.out.println("请输入新学生地址:"); String address=sc.next(); Student s=new Student();//调用学生对象 s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //把修改新的值赋值给set方法 for (int i = 0; i < list.size(); i++) { Student student = list.get(i); if(student.getSid().equals(sid)){ list.set(i,s);//set方法是集合输入集合下标,然后再进行更改 然后输出更改之后的结果: System.out.println("学生更改之后:"); for (int j = 0; j < list.size(); j++) { Student student1 = list.get(j); System.out.println("学号:" + s.getSid() + "\t姓名:" + s.getName() + "\t年龄:" + s.getAge() + "\t地址:" + s.getAddress()); } System.out.println("更改学生成功!!!"); } } break; } } } }
之后就没有之后啦,就大工告成啦,第一次发布文章,没有说的很清楚,但是我的注释,学生一般都看懂,喜欢我的可以帮我顶一下喔,如果有什么不懂的话就随时来找我。
qq:3358726145 24小时在线