package com.ArrayList;
/**
* @program: BasicJavaTest
* @Author: jiahui
* @Description:
* @create: 2021-12-08 16:11
*/
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
}
import StuManagement.domain.student;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @program: BasicJavaTest
* @Author: jiahui
* @Description:
* @create: 2021-12-09 16:12
*/
/*
学号不存在的问题
在删除和修改之前对学号进行判断
思路:定义一个方法,该方法用于从集合中查找学号在集合中索引的位置
*/
/*
解决学生学号重复的问题
*/
public class StudentManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<student> list = new ArrayList<student>();
io:
while (true) {
System.out.println("----欢迎来到学生管理系统----");
System.out.println("请输入您的选择: 1.添加学生 2.删除学生 3.修改学生 4. 查询学生,5.退出");
System.out.println("请输入您的操作:");
String choice = sc.next();
switch (choice) {
case "1":
//System.out.println("1.学生管理");
//开启学生管理
System.out.println("1.添加学生");
AddStu(list);
break;
case "2":
System.out.println("2.删除学生");
DeleteStu(list);
break;
case "3":
System.out.println("3.修改学生");
UpdateStu(list);
break;
case "4":
System.out.println("4查询学生");
FindStu(list);
break;
case "5":
System.out.println("返回上一级");
break io;
default:
System.out.println("输入的操作指令无效!!!");
break;
}
}
}
public static void UpdateStu(ArrayList<student> list) {
System.out.println("请输入您要修改的学生学号");
Scanner sc=new Scanner(System.in);
String s = sc.next();
int index = getIndex(list,s);
if(index==-1){
System.out.println("学号不存在,请重新输入");
}else {
System.out.println("请输入新的学生姓名:");
String s1 = sc.next();
System.out.println("请输入新的学生年龄:");
int s2 = sc.nextInt();
System.out.println("请输入新的学生生日:");
String s3 = sc.next();
student st1=new student(s,s1,s2,s3);
list.add(st1);
System.out.println("修改成功!!!");
}
}
public static void DeleteStu(ArrayList<student> list) {
System.out.println("请输入您要删除的学生学号");
Scanner sc=new Scanner(System.in);
String s = sc.next();
int index = getIndex(list,s);
if(index==-1){
System.out.println("学号不存在,请重新输入");
}else {
list.remove(index);
System.out.println("删除成功!!!");
}
}
public static void FindStu(ArrayList<student> list) {
//1.用键盘录入选择查看信息
//2.定义一个方法,用于查看信息
//2.1判断集合有没有信息 如果没有显示提示信息
//2.2显示表头信息
//2.3将集合中数据取出按照对应格式显示学生信息,年龄补充显示岁
//调用方法
if(list.size()==0){
System.out.println("请先输入数据后在查询");
return;
}
Scanner sc=new Scanner(System.in);
String s = sc.next();
System.out.println("====================学生信息管理系统=====================");
System.out.println("学号\t姓名\t年龄\t生日\t");
for (int i = 0; i < list.size(); i++) {
student student = list.get(i);
System.out.println(student.getId()+"\t\t"+student.getName()+"\t\t"+student.getAge()+"\t\t"+student.getBirthday());
}
}
public static student AddStu(ArrayList<student> list) {
String s;
//1.给出录入的提示信息
//2.将键盘录入的信息封装为学生对象
//3.将封装好的学生对象,添加到集合容器中
//4.给出添加成功的提示信息
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请输入学生id:");
s = sc.next();
int index = getIndex(list, s);
if(index==-1){
break;//学号不存在,可以使用
}
}
System.out.println("请输入学生姓名:");
String s1 = sc.next();
System.out.println("请输入学生年龄:");
int s2 = sc.nextInt();
System.out.println("请输入学生生日:");
String s3 = sc.next();
student st = new student();
st.setId(s);
st.setName(s1);
st.setAge(s2);
st.setBirthday(s3);
list.add(st);
if(list.size()!=0){
System.out.println("Add success!!");
}
return st;
}
public static int getIndex(ArrayList<student> list,String id){//判断输入id是否在集合中
int index=-1;//假设不存在
for (int i = 0; i < list.size(); i++) {
student student = list.get(i);
String id1 = student.getId();
if(id1.equals(id)){
index=i;
}
}
return index;
}
}