首先创建一个学生类
package sudentguanli;
public class Student {
private String name;//姓名
private String age;//年龄
private String sid;//学号
private String address;//地址
public Student() {} //无参构造
public Student(String name,String age,String sid,String address) { //带参构造
this.name=name;
this.age=age;
this.sid=sid;
this.address=address;
}
//各变量的get/set方法
public void setname(String name) {
this.name=name;
}
public void setage(String age) {
this.age=age;
}
public String getage() {
return age;
}
public String getname() {
return name;
}
public void setaddress(String address) {
this.address=address;
}
public void setsid(String sid) {
this.sid=sid;
}
public String getsid() {
return sid;
}
public String getaddress() {
return address;
}
}
代码实现的整体情况:
以下是具体的代码:
package sudentguanli;
import java.util.ArrayList; //ArrayList集合的包
import java.util.Scanner; //Scanner的包
public class Zhujiemian {
//主界面的编写
public static void main(String[] args) {
//创建集合对象,用于储存学生数据
ArrayList<Student> arr=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实现输入
Scanner sc=new Scanner(System.in);
int x =sc.nextInt();
//用switch完成选择
switch(x) {
case 1:
//System.out.println("添加学生");
addStudent(arr);
break;
case 2:
//System.out.println("删除学生");
deleteStudent(arr);
break;
case 3:
//System.out.println("修改学生");
updateStudent(arr);
break;
case 4:
//System.out.println("查看所有学生");
lookStudent(arr);
break;
case 5:
System.out.println("谢谢你的使用");
//break; 此处不可以使用break,使用break则又重新回到程序开头,而此处是需要结束程序
System.exit(0); //java虚拟机退出
//return;
}
}
}
//添加学生的方法
public static void addStudent(ArrayList<Student> arr) {
//键盘录入学生对象所需要的数据,用输出来提示需要输入哪些信息
String sid;
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("请输入学号");
sid=sc.nextLine();
boolean flag=usename(arr,sid);
if(flag)
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.setname(name);
s.setage(age);
s.setsid(sid);
s.setaddress(address);
//将学生对象添加到集合中
arr.add(s);
//添加成功的提示
System.out.println("添加学生成功");
}
//查看学生的方法
public static void lookStudent(ArrayList<Student> arr) {
if(arr.size()==0) {
System.out.println("暂无信息,请添加后再查询");
return;//为了让程序不再向下执行
}
System.out.println("学号\t姓名\t年龄\t居住地"); //\t与tab键一个效果
for(int i=0;i<arr.size();i++) {
Student s =arr.get(i);
System.out.println(s.getsid()+"\t"+s.getname()+"\t"+s.getage()+"\t"+s.getaddress());
}
}
//删除学生对象的方法
public static void deleteStudent(ArrayList<Student> arr) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除学生的学号");
String xh=sc.nextLine();
int index=-1;
for(int i=0;i<arr.size();i++) {
Student s=arr.get(i);
if(s.getsid().equals(xh))
index=i;
break;
}
if(index==-1)
System.out.println("该学生对象不存在,请重新输入!");
else {
arr.remove(index);
System.out.println("删除学生成功!");
}
}
//修改学生对象的方法
public static void updateStudent(ArrayList<Student> arr) {
//键盘录入要修改的学生信息
String xh;
Scanner sc=new Scanner(System.in);
while(true){ //用于判断要修改的学生对象是否存在
System.out.println("请输入要修改的学生的学号");
xh=sc.nextLine();
int index = -1;
for(int i=0;i<arr.size();i++) {
Student ss=arr.get(i);
if(ss.getsid().equals(xh)) {
index=i;
}
break;
}
if(index==-1)
System.out.println("该学生对象不存在,请重新输入!");
else
break;
}
System.out.println("请输入新姓名");
String name=sc.nextLine();
System.out.println("请输入新年龄");
String age=sc.nextLine();
System.out.println("请输入新学号");
String sid=sc.nextLine();
System.out.println("请输入新地址");
String address=sc.nextLine();
//创建学生对象
Student s=new Student();
s.setaddress(address);
s.setage(age);
s.setsid(sid);
s.setname(name);
//遍历集合修改对应的学生信息
for(int i=0;i<arr.size();i++) {
Student sss=arr.get(i);
if(sss.getsid().equals(xh)) {
arr.set(i, s);
System.out.println("修改学生信息成功!");
}
}
}
//判断输入的学号是否被占用
public static boolean usename(ArrayList<Student> arr,String sid) {
//返回false没有被占用,返回true被占用
boolean flag = false;
for(int i=0;i<arr.size();i++) {
Student s=arr.get(i);
if(s.getsid().equals(sid)) {
flag=true;
break;
}
}
return flag;
}
}
第一次写如有错误,请指正。
如有问题可私信,感谢观看。