学生管理系统
按照要求定义学生类
属性:id,姓名,年龄,家庭住址
public class student {
private String id;
private String name;
private int age;
private String address;
//以下内容在IDEA中可以使用快捷键ALT+INSEAT
public student() {
}
public student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
学生类定义完成后这个文档就是已经做完了,下面开始做学生管理系统
学生管理系统
代码如下,具体问题可以在评论区讨论一下
public static void main(String[] args) {
ArrayList<student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
loop: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("请输入您的选择");
//主页面显示完成后,用a来接受从键盘中输入的数字
String a = sc.next();
switch (a){
case "1"-> getStudents(list);
case "2"-> delStudents(list);
case "3"-> changeStudents(list);
case "4"-> fondStudents(list);
case "5"-> {
System.out.println("退出");
break loop; //1oop是将循环while的名字定义为loop,然后break loop就是退出loop循环系统就会结束
}
default -> System.out.println("你所输入的内容有误,请重新输入");
}
}
}
//添加学生
public static void getStudents(ArrayList<student> list){
//键盘接受数据
Scanner sc = new Scanner(System.in);
//循环内id定义在外,方便最后赋值
String id = null;
while (true) {
System.out.println("请输入学生id");
id = sc.next();
//查看学生id是否重复
boolean flag = contains(list,id);
if(flag){
//表示id存在,重复执行
System.out.println("您所输入的id重复,请在检查后重新输入");
}else {
//表示id不存在可以继续使用
break;
}
}
System.out.println("请输入学生的姓名");
String name = sc.next();
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
System.out.println("请输入学生的家庭地址");
String address = sc.next();
//定一个学生来接收输入的数据
student stu = new student(id,name,age,address);
//将这个学生添加到list这个集合中
list.add(stu);
System.out.println("学生信息添加成功");
}
//删除学生信息
public static void delStudents(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
String id = "";
while (true) {
System.out.println("请输入你要删除的id");
id = sc.next();
//用id1接受返回值,大于0表示存在相同id,小于0表示不存在
int id1 = nnt(list,id);
if(id1 != -1){
list.remove(id1);
break;
}else {
System.out.println("您所输入的id不存在,请检查后重新输入");
}
}
System.out.println("学生信息删除成功");
}
//修改学生信息
public static void changeStudents(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
String id = "";
int index = 0;
while (true) {
System.out.println("请输入你要更换内容的学生id");
id = sc.next();
index = nnt(list,id);
if(index != -1){
break;
}else{
System.out.println("您所输入的id不存在,请检查后重新输入");
return;
}
}
//新建一个学生类,将相对应的学生元素赋给新的学生类
student stu = list.get(index);
System.out.println("请输入你要更改后的学生姓名");
String name = sc.next();
//修改姓名
stu.setName(name);
System.out.println("请输入你要更改后的学生年龄");
int age = sc.nextInt();
//修改年龄
stu.setAge(age);
System.out.println("请输入你要更改后的学生家庭住址");
String address = sc.next();
//修改地址
stu.setAddress(address);
//提示修改成功
System.out.println("学生信息添加成功");
}
//查找学生
public static void fondStudents(ArrayList<student> list){
if(list.size() == 0){
System.out.println("当前学生系统中没有学生信息,请添加后再进行查询");
//结束方法
return;
}
//打印表头
System.out.println("id\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge()+"\t"+list.get(i).getAddress());
}
}
//判断地址值是否重复,重复返回true不重复返回false
public static boolean contains(ArrayList<student> list, String id){
for(int i = 0; i<list.size(); i++){
String id1 = list.get(i).getId();
if(id.equals(id1)){
return true;
}
}
return false;
}
//判断是否重复是返回索引值,没有重复返回-1
public static int nnt(ArrayList<student> list, String id){
for(int i = 0; i<list.size(); i++){
String id1 = list.get(i).getId();
if (id1.equals(id)){
return i;
}
}
return -1;
}
以上就是一个完整的学生管理系统,里面的内容可以有些优化,像倒数第二个布尔类型的判断可以调用最后一个方法,但是我没有去更改,还有就是一定要先在里面添加数据后才能查找,直接替换会报错,因为集合之中没有内容,没办法直接用for循环查找就会报错.
标签:界面,String,管理系统,list,System,println,java,id,out From: https://blog.csdn.net/qq_62151839/article/details/140076323