目录
一、题目要求
1.1添加学生信息
通过键盘输入添加学生信息(id,姓名,年龄,家庭住址),要求id唯一 如果id存在给出提示。
//添加学生 键盘录入每一个学生信息 id唯一
public static void addStudent(ArrayList<Student> list) {
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的id");
String id = sc.next();
if (contains(list, id)) {//id已经存在
System.out.println("id已经存在,请重新录入");
} else {
System.out.println("请输入学生的姓名");
String name = sc.next();
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
System.out.println("请输入学生的家庭住址");
String address = sc.next();
//创建学生对象
Student s = new Student(id, name, age, address);
//把学生对象放入集合中
list.add(s);
System.out.println("学生信息添加成功");
break;
}
}
}
1.2删除学生信息
根据学生id删除学生信息,id不存在给出提示
//删除学生 id不存在提示不存在 并回到初始菜单 存在就按id删除
public static void deleteStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生id");
String id = sc.next();
//查询id在集合的索引
int index = getIndex(list, id);
//
if (index >= 0) {//id在集合中存在
list.remove(index);
System.out.println("id为" + id + "的学生删除成功");
} else if (index == -1) {//结束方法 回到主菜单
System.out.println("id不存在删除失败");
}
}
1.3 修改学生信息
根据学生id修改学生信息,id不存在给出提示
public static void updateStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生id");
String id = sc.next();
String id1 = null;
if (contains(list, id)) {//表示id存在
System.out.println("请输入修改后的id");
id1 = sc.next();
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(id1, name, age, address);//将修改后的信息添加到集合中
list.add(stu);
} else {
System.out.println("您输入的id不存在 修改失败 请重新输入");
}
int suoyin = getIndex(list, id);
if (suoyin >= 0) {//说明id在集合中存在
list.remove(suoyin);//如果集合中的id和输入的id一样 就返回集合索引
}
}
1.4 修改学生信息
输入学生id对所有学生信息进行查询 要求制表符格式
//查询学生 id唯一
public static void queryStudent(ArrayList<Student> list) {
//没有学生信息 提示当前无学生信息 请稍后查询
if (list.size() == 0) {
System.out.println("当前无学生信息,请添加后再查询");
return;//结束方法
} else {
System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getId() + "\t\t" + stu.getName() + "\t\t" + stu.getAge() + "\t\t" + stu.getAdress());
}
}
}
1.5 判断id在集合中是否存在
public static boolean contains(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(id)) {
return true;//id重复
}
}
return false;//id不重复
}
1.6 通过id获取索引的方法
//通过id获取索引的方法
public static int getIndex(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(id)) {//如过id一样 返回集合索引
return i;
}
}
return -1;
}
二、完整代码
2.1 Student类
/*
* Copyright (c) 2020, 2023, webrx.cn All rights reserved.
*
*/
package com.guanlixitong;
/**
* <p>Project: jse2303 - Student</p>
* <p>Powered by webrx On 2023-07-21 19:54:08</p>
* <p>描述:<p>
*
* @author 简单遗忘 [814736551@qq.com]
* @version 1.0
* @since 17
*/
public class Student {
// id name age adress
private String id;
private String name;
private int age;
private String adress;
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 getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
public Student(String id, String name, int age, String adress) {
this.id = id;
this.name = name;
this.age = age;
this.adress = adress;
}
public Student() {
}
}
2.2 StudentSystem类
package com.guanlixitong;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
//将学生信息存到集合里
ArrayList<Student> list = new ArrayList<>();
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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1" -> addStudent(list);
case "2" -> deleteStudent(list);
case "3" -> updateStudent(list);
case "4" -> queryStudent(list);
case "5" -> {
System.out.println("退出");
break loop;//根据标识符跳出循环
// System.exit(0);//停止虚拟机运行
}
default -> System.out.println("没有这个选项");
}
}
}
//添加学生 键盘录入每一个学生信息 id唯一
public static void addStudent(ArrayList<Student> list) {
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的id");
String id = sc.next();
if (contains(list, id)) {//id已经存在
System.out.println("id已经存在,请重新录入");
} else {
System.out.println("请输入学生的姓名");
String name = sc.next();
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
System.out.println("请输入学生的家庭住址");
String address = sc.next();
//创建学生对象
Student s = new Student(id, name, age, address);
//把学生对象放入集合中
list.add(s);
System.out.println("学生信息添加成功");
break;
}
}
}
//删除学生 id不存在提示不存在 并回到初始菜单 存在就按id删除
public static void deleteStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生id");
String id = sc.next();
//查询id在集合的索引
int index = getIndex(list, id);
//
if (index >= 0) {//id在集合中存在
list.remove(index);
System.out.println("id为" + id + "的学生删除成功");
} else if (index == -1) {//结束方法 回到主菜单
System.out.println("id不存在删除失败");
}
}
//修改学生
public static void updateStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生id");
String id = sc.next();
String id1 = null;
if (contains(list, id)) {//表示id存在
System.out.println("请输入修改后的id");
id1 = sc.next();
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(id1, name, age, address);//将修改后的信息添加到集合中
list.add(stu);
} else {
System.out.println("您输入的id不存在 修改失败 请重新输入");
}
int suoyin = getIndex(list, id);
if (suoyin >= 0) {//说明id在集合中存在
list.remove(suoyin);//如果集合中的id和输入的id一样 就返回集合索引
}
}
//查询学生 id唯一
public static void queryStudent(ArrayList<Student> list) {
//没有学生信息 提示当前无学生信息 请稍后查询
if (list.size() == 0) {
System.out.println("当前无学生信息,请添加后再查询");
return;//结束方法
} else {
System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getId() + "\t\t" + stu.getName() + "\t\t" + stu.getAge() + "\t\t" + stu.getAdress());
}
}
}
//退出
public static void outStudent(ArrayList<Student> list) {
System.out.println("退出");
}
//判断id在集合中是否存在
public static boolean contains(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(id)) {
return true;//id重复
}
}
return false;//id不重复
}
//通过id获取索引的方法
public static int getIndex(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(id)) {//如过id一样 返回集合索引
return i;
}
}
return -1;
}
}