要求该管理系统拥有以下功能:添加、删除、修改、查看学生信息以及退出系统。
首先要定义一个学生类:
public class StudentManage2 {
//学号
private String sid;
//姓名
private String name;
//年龄
private String age;
//家庭住址
private String address;
public void StudentManage() {
}
public void Student(String sid,String name,String age,String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
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;
}
}
其中包含学生类的属性有姓名、年龄、学号以及家庭住址。
分别定义四个方法,用于实现功能
public static void addStudent(ArrayList<StudentManage2> array) {
//添加学生
Scanner sc = new Scanner(System.in);
System.out.println("输入学生的学号:");
String sid = sc.nextLine();
System.out.println("输入学生的姓名:");
String name = sc.nextLine();
System.out.println("输入学生的年龄:");
String age = sc.nextLine();
System.out.println("输入学生的住址:");
String address = sc.nextLine();
StudentManage2 s = new StudentManage2();
s.setsid(sid);
s.setage(name);
s.setage(age);
s.setaddress(address);
array.add(s);
System.out.println("添加学生成功");
}
public static void delateStudent(ArrayList<StudentManage2> array) {
int index = -1; //删除学生
System.out.println("请输入你要删除的数据的学号");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();
for(int i=0;i<array.size();i++) {
StudentManage2 s = array.get(i);
if(s.getsid().equals(array.get(i))) {
array.remove(i);
index = i;
}break;
}
if(index == -1) {
System.out.println("未检测到该学号学生信息,请重新输入");
}else {
System.out.println("删除学生成功");
}
}
public static void updateStudent(ArrayList<StudentManage2> array) {
Scanner sc = new Scanner(System.in); //修改学生
System.out.println("请输入你要修改的学生学号:");
String sid = sc.nextLine();
System.out.println("输入新的姓名:");
String name = sc.nextLine();
System.out.println("输入新的年龄:");
String age = sc.nextLine();
System.out.println("输入新的住址:");
String address = sc.nextLine();
StudentManage2 s = new StudentManage2();
//s.setsid(sid);
s.setage(name);//name即为键盘输入的数据 简单格式为s.setname("李某某")
s.setage(age);
s.setaddress(address);
for(int i=0;i<array.size();i++) {
StudentManage2 x= array.get(i);
if(x.getsid().equals(array.get(i))) {
array.set(i,s);
break;
}
}
System.out.println("修改学生成功");
}
public static void findStudent(ArrayList<StudentManage2> array) {
if(array.size()==0) { // 查询学生
System.out.println("无信息,请添加信息后再查询");
return;
}
System.out.println("学号\t姓名\t年龄\t住址\t");
for(int i=0;i<array.size();i++) {
StudentManage2 s = array.get(i);
System.out.println(s.getsid()+"\t"+s.getname()+"\t"+s.getage()+"岁\t"+s.getaddress());
//学生类中的get方法,用于获取被private所封锁的值
}
}
最后设置一个main方法,首先使用输出语句打印出界面,由于实现一个功能后还可能进行其他功能,所以不可结束程序,所以使用一个while循环,并且其后的括号内写入true形成死循环,接下来由于输入数字1-5来实现不同的功能,所以使用分支语句switch,在每一个分支中调用相应功能的方法。在选择退出系统的功能时,使用退出程序代码,结束程序的运行。
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManage {
public static void main(String[] args) {
ArrayList<StudentManage2> array = new ArrayList<>();
//ArrayList<StudentManage2> array = new ArrayList<>();
while(true) {
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"://System.out.println("添加学生信息");
addStudent(array);
break;
case"2"://System.out.println("删除学生信息");
delateStudent(array);
break;
case"3"://System.out.println("修改学生信息");
updateStudent(array);
break;
case"4"://System.out.println("查看学生信息");
findStudent(array);
break;
case"5":System.out.println("退出系统");
System.exit(0);
}
}
}