这是一个学生管理系统
分析步骤:
1.定义一个学生类
- 2.学生管理系统主界面的编写
- 3.学生管理系统的查看所有学生的信息
- 4.学生管理系统的添加学生信息
- 5.学生管理系统的删除学生信息
- 6.学生管理系统的修改学生信息
新建一个学生实体类
package Test10_Demo.StudentManager06;/*
@create 2020--11--26--9:31
*/
/**
* 学生的实体类
*/
public class Student {
//属性
private String id;
private String name;
private String age;
private String address;
public Student(){
}
public Student(String id,String name ,String 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 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;
}
}
实现学生管理系统:
package Test10_Demo.StudentManager06;/*
@create 2020--11--26--9:28
*/
import java.util.ArrayList;
import java.util.Scanner;
/**
* 这是一个学生管理系统
*
* 分析步骤:
* 1.定义一个学生类
* 2.学生管理系统主界面的编写
* 3.学生管理系统的查看所有学生的信息
* 4.学生管理系统的添加学生信息
* 5.学生管理系统的删除学生信息
* 6.学生管理系统的修改学生信息
*/
public class StudentManagerTest {
public static void main(String[] args) {
//定义一个学生类型的集合
ArrayList<Student> array = new ArrayList<>();
//为了用户体验度,设计一个界面
//利用循环的方法可以重复的展示界面,直到推出程序就结束循环
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.退出学生管理系统");
//键盘录入获取
Scanner sc = new Scanner(System.in);
String choiceString = sc.nextLine();
//用开关键 - swtich...case
switch (choiceString) {
case "1":
//查看所有学生
findAllStudent(array);
break;
case "2":
//添加学生信息
addStudent(array);
break;
case "3":
deleteStudent(array);
//删除学生信息
break;
case "4":
updateStudent(array);
//修改学生信息
break;
default:
System.out.println("谢谢你的使用");
System.exit(0); //jvm中提供的退出程序
break;
}
}
}
//封装一个方法用于查询学生的所有细腻
public static void findAllStudent(ArrayList<Student> array){
//首先判断集合中有没有数据,如果是空的,那就要给出提示,并且该方法就不需要执行了 - 非空判断
if (array.size() == 0) {
System.out.println("抱歉!目前没有任何的学生信息可以查询,请回去重新选择!");
return; //将当前的方法直接结束
}
//有学生的情况下 - 遍历查询
//\t 表示一个Tab键 - 制表符
//\s 表示一个space键 - 空格
System.out.println("学号\t姓名\t年龄\t居住地");
for (int i = 0; i <array.size() ; i++) {
Student s = array.get(i);
//输出属性
System.out.println(s.getId()+"\t " +
s.getName() + "\t " +
s.getAge() + "\t " +
s.getAddress());
}
}
public static void addStudent(ArrayList<Student> array) {
//键盘对象
Scanner sc = new Scanner(System.in);
//所有的对学生的操作都是基于id,所以我们把id属性放到循环的外面
String id;
//能够实现重复添加学生的信息,所以使用循环
while (true) {
//判断一下这个学号是不是已经存在了
System.out.println("请输入学号");
id = sc.nextLine();
boolean flag = false;
//遍历学号 - 就是遍历数组
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
//获取学号
if (s.getId().equals(id)) {
flag = true;//学号存在
break;
}
}
//这个时候flag就是true
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.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//把学生保存到集合中
array.add(s);
//给出一个提示
System.out.println("添加学生成功!");
}
//封装以个方法用于删除学生
public static void deleteStudent(ArrayList<Student> array){
//思路:键盘录入一个id(唯一),到集合中查找,看看是否有学生,如果有,则删除
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
String id = sc.nextLine();
//遍历集合看看这个id所对应的学生是不是存在 - 设置一个索引
int index = -1;
for (int i = 0; i < array.size(); i++) {
//获取每一个学生
Student s = array.get(i);
//判断这个学生的学号喝键盘录入的id进行比较
if (s.getId().equals(id)) { //要删除的对象存在
index = i;
break;
}
}
//判断
if (index == -1) {
System.out.println("抱歉!您要删除的学生不存在!请重新输入");
} else {
array.remove(index);
System.out.println("删除成功!");
}
}
//封装一个方法用于修改学生
public static void updateStudent(ArrayList<Student> array){
//思路:键盘录入一个id(唯一),到集合中查找,看看是否有学生,如果有,则删除
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
String id = sc.nextLine();
//遍历集合看看这个id所对应的学生是不是存在 - 设置一个索引
int index = -1;
for (int i = 0; i < array.size(); i++) {
//获取每一个学生
Student s = array.get(i);
//判断这个学生的学号喝键盘录入的id进行比较
if (s.getId().equals(id)) { //要删除的对象存在
index = i;
break;
}
}
//判断
if (index == -1) {
System.out.println("抱歉!您要修改的学生不存在!请重新输入");
} else {
//修改的逻辑
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.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//修改集合中的学生对象 -- 实际上就是把原来的元素替换
array.set(index, s);//index表示集合中元素的下表 s表示替换进去的对象
//给出一个提示
System.out.println("修改学生成功!");
}
}
}