案例需求:
针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
添加学生:通过键盘录入学生信息,添加到集合中。
删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。
修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。
查看学生:将集合中的学生对象信息进行展示。
退出系统:结束程序。
系统主页面:
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
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);
int num1 = sc.nextInt();
switch (num1){
case 1:
addto(array);//添加学生信息
break;
case 2:
delete(array);//删除学生信息
break;
case 3:
modify(array);//修改学生信息
break;
case 4:
query(array);//查看学生信息
break;
case 5:
System.out.println("欢迎使用");
System.exit(0); // JVM退出
}
}
}
添加学生信息方法:
public static void addto(ArrayList<Student> array ){//添加学生信息方法
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要添加学生的学号:");
String id;
while (true){
id = sc.nextLine();
boolean b =repeat(array,id);
if(b){
System.out.println("您输入的学号已存在,请重新输入");
}else {
break;
}
}
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(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功");
}
删除学生信息方法:
public static void delete(ArrayList<Student> array){//删除信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要删除学生信息的学号:");
int num = -1;
while (true){
String line = sc.nextLine();
for (int i =0 ; i< array.size(); i++){
Student s = array.get(i);
if(s.getSid().equals(line)){
num = i;
break;
}
}
if(num != -1){
array.remove(num);
System.out.println("删除成功");
return;
}else{
System.out.println("您输入的学号不存在,请重新输入");
}
}
}
修改学生信息方法:
public static void modify(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要修改学生信息的学号:");
String id = sc.nextLine();
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(id,name,age,address);
for(int i =0 ; i< array.size(); i++){
Student s1 = array.get(i);
if(s1.getSid().equals(id)){
array.set(i,s);
}
}
System.out.println("修改成功");
}
查询学生信息方法:
public static void query(ArrayList<Student> array){// 查询信息方法
if(array.size() ==0){
System.out.println("暂无信息,请先添加信息");
return;
}
System.out.println("学号\t姓名\t年龄\t居住地");
for(int i =0 ; i < array.size(); i++){
Student s = array.get(i);
System.out.println(s.getSid()+"\t\t"+s.getName()+"\t\t"+s.getAge()+"岁\t"+s.getAddress());
}
}
判断学生id是否已存在方法:
public static boolean repeat(ArrayList<Student> array,String id){
boolean b = false;
for (int i =0 ; i< array.size(); i++){
Student s = array.get(i);
if(s.getSid().equals(id)){
b = true;
break;
} else {
break;
}
}
return b;
}
学生类:
public class Student {
private String sid;
private String name;
private String age;
private String address;
public Student() {
}
public 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;
}
}
本系统没有使用utility,所以在遇到一些非法字符的时候会报错,所以在使用的时候小大家注意。