文章目录
一、程序功能
功能概述
- 利用Java完成一个学生信息程序的简单改动。
- 添加学生信息
- 修改学生信息
- 查询学生信息
- 删除学生信息
二、程序包括的学生信息
1.学号
2.姓名
3.班级
4.专业
5.电话号码
- 当然,这只是简单的包括几个信息,其他的信息,如果也想要可以自己加入
三、编程实现
1.建立学生实体类
- 在test包里建立student(学生实体类)
2.学生实体类代码编写
(1)无参构造方法
(2)有参构造方法
- 我采用的是有参构造方法
(3)完整的代码
/**
* 功能:学生实体类
* 作者:孤梦
* 日期:2022年05月26日
*/publicclassStudent{privateString id;privateString name;privateString classes;privateString major;privateString telephone;/**
* 无参构造方法
*/publicStudent(){}/**
* 有参构造方法
* @param id
* @param name
* @param classes
* @param major
* @param telephone
*/publicStudent(String id,String name,String classes,String major,String telephone){this.id = id;this.name = name;this.classes = classes;this.major = major;this.telephone = telephone;}publicStringgetId(){return id;}publicvoidsetId(String id){this.id = id;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicStringgetClasses(){return classes;}publicvoidsetClasses(String classes){this.classes = classes;}publicStringgetMajor(){return major;}publicvoidsetMajor(String major){this.major = major;}publicStringgetTelephone(){return telephone;}publicvoidsetTelephone(String telephone){this.telephone = telephone;}@OverridepublicStringtoString(){return"Card{"+"id='"+ id +'\''+", name='"+ name +'\''+", classes='"+ classes +'\''+", major='"+ major +'\''+", telephone='"+ telephone +'\''+'}';}}
2.建立学生信息管理
- 继续在test包里创建----StudentManagement(学生信息管理)
3.建立学生数组列表对象
privatestaticArrayList<Student> students =newArrayList<>();publicstaticvoidmain(String[] args){// 声明部分int mc1;Scanner sc =newScanner(System.in);boolean isRunning =true;// 循环控制变量while(isRunning){// 绘制一级菜单System.out.println(" 学生信息管理系统");System.out.println("================");System.out.println(" 1. 登录");System.out.println(" 0. 退出");System.out.println("================");System.out.print("输入菜单编号[1,0]:");
mc1 = sc.nextInt();// 根据用户选择进行相应的操作switch(mc1){case1:// 调用登录方法login();break;case0:System.out.println("谢谢使用~再见~");
isRunning =false;// 结束循环break;default:System.out.println("输入的菜单编号有误!");}}}
-创建好了列表,下面就该解决如何登录了
4.登录方法
/**
* 登录方法
*/privatestaticvoidlogin(){String username, password;Scanner sc =newScanner(System.in);System.out.print("用户名:");
username = sc.next();System.out.print("密 码:");
password = sc.next();if(username.equals("gumeng")&& password.equals("1314520")){System.out.println("登录成功~");// 调用学生信息管理方法studentManagement();}else{System.out.println("用户名或密码有误,登录失败~");}}
- 这里的登录账号是:gumneg ,登录密码是:1314520
- 登录账号和密码随自己的喜好设置
5.学生信息管理方法
(1)一级菜单
- 在上面我们已经建立了一级菜单
(2)二级菜单
- 下面我们绘制二级菜单,二级菜单是我们成功登录进去后的功能面板
- 总共有七个功能面板 1、添加学生信息 2、修改学生信息 3、查询学生信息 4、删除学生信息 5、读取学生信息 6、保存学生信息 7、返回上级菜单
- 分别对每个功能面板进行编写
(3)完整学生管理方法代码
/**
* 学生信息管理方法
*/privatestaticvoidstudentManagement(){int mc2;Scanner sc =newScanner(System.in);boolean isRunning =true;// 循环控制变量while(isRunning){// 绘制二级菜单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(" 6. 保存学生信息");System.out.println(" 7. 返回上级");System.out.println("=======================");System.out.print("输入菜单编号[1,2,3,4,5,6,7]:");
mc2 = sc.nextInt();switch(mc2){case1:System.out.println("执行添学生信息功能~");break;case2:System.out.println("执行修改学生信息功能~");break;case3:System.out.println("执行查询学生信息功能~");break;case4:System.out.println("执行删除学生信息功能~");break;case5:System.out.println("读取学生信息文件到学生数组列表~");break;case6:System.out.println("将学生信息数组列表写入名片文件~");break;case7:
isRunning =false;// 结束二级菜单循环break;default:System.out.println("输入的菜单编号有误!");}}}
6.添加学生信息方法
/**
* 添加学生信息方法
*/privatestaticvoidaddStudent(){// 声明变量String id;String name;String classes;String major;String telephone;Scanner sc =newScanner(System.in);// 输入学生信息System.out.print("学号:");
id = sc.next();System.out.print("姓名:");
name = sc.next();System.out.print("班级:");
classes = sc.next();System.out.print("专业:");
major = sc.next();System.out.print("手机号码:");
telephone = sc.next();// 创建学生对象Student student =newStudent(id, name, classes, major,telephone);// 将学生信息添加到学生数组列表
students.add(student);}
- 将学生添加到学生数组列表
- 添加学生总不能不保存,所以下面我们要将学生信息保存到文件
7.将学生信息保存到文件
(1)文件名
这是学生信息将要保存的文件名,当然文件可以随便自己设置
(2)完整代码
/**
* 保存学生信息到文件
*/privatestaticvoidsaveStudents(){try{// 创建文件字符输出流FileWriter fw =newFileWriter("students.txt");// 创建学生容器字符串缓冲对象StringBuffer cardsBuffer =newStringBuffer();// 用增强for循坏遍历学生数组列表for(Student student : students){// 输出学生对象System.out.println(student);// 创建学生字符串缓冲对象StringBuffer buffer =newStringBuffer();// 添加学生字段信息(空格作为分隔符)
buffer.append(student.getId()+" ");
buffer.append(student.getName()+" ");
buffer.append(student.getClasses()+" ");
buffer.append(student.getMajor()+" ");
buffer.append(student.getTelephone());// 将学生信息写入名片容器字符串缓冲对象
cardsBuffer.append(buffer.toString()+"\n");}// 将学生容器字符串缓冲对象的数据写入文件
fw.write(students.toString());// 关闭文件字符输出流
fw.close();// 提示用户写入成功System.out.println("恭喜,学生信息数据写入文件成功~");}catch(IOException e){
e.printStackTrace();}}
(3)调用学生信息保存方法
- 写好了要在保存学生信息功能面板上调用
8.读取学生信息并保存到学生数组列表
(1)读取源
- 你是从哪个文件读取的学生信息,这里读取名和上面的保存名要一致,不然读取不到学生信息
(2)读取学生信息完整代码
- 在这里还有一个问题,如果文件名没有问题,但是你要读取的学生不存在的话程序要出错,所以我们正在这里要把好关
/**
* 读取学生信息文件,保存到学生数组列表
*/privatestaticvoidreadStudentFile(){// 创建文件字符输入流try{FileReader fr =newFileReader("students.txt");// 创建缓冲字符输入流BufferedReader br =newBufferedReader(fr);// 定义行变量String nextLine =" ";// 通过循坏读取名片文件while((nextLine = br.readLine())!=null){// 拆分行字符串得到字段数值String[] fields = nextLine.split(" ");// 创建学生对象Student student =newStudent();// 用字段数值设置对象属性
student.setId(fields[0]);
student.setName(fields[1]);
student.setClasses(fields[2]);
student.setMajor(fields[3]);
student.setTelephone(fields[4]);// 输出学生对象System.out.println("添加"+ student +"到学生数组列表");// 将学生对象添加到学生数组列表
students.add(student);}// 关闭缓冲字符输入流
br.close();// 关闭文件字符输入流
fr.close();}catch(FileNotFoundException e){System.out.println("温馨提示:学生文件不存在~");}catch(IOException e){
e.printStackTrace();}}
(3)调用读取学生信息方法
9.查询学生信息
(1)判断按哪种查询
- 怎样查询学生信息呢?是按学号查询还是按姓名查询呢?还是一起查询?
// 判断用户按哪种方式查询学生信息if(id.equals("")){if(name.equals("")){// 查询全部学生// 遍历名片数组列表for(Student student : students){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}
(2)按学生姓名查询
System.out.println("~按姓名查询学生信息~");boolean found =false;// 遍历学生数组列表,按姓名来找for(Student student : students){if(student.getName().equals(name)){
found =true;// 找到了break;}}
- 当查询的时候遇到同名情况怎么办,所以我们要解决这个问题
if(found){// 针对可能存在的同名情况for(Student student : students){if(student.getName().equals(name)){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}}}else{System.out.println("温馨提示:查无此人~");}
(3)按学生学号查询
- 按学号查询的话就不存在学号相同的情况了
else{if(name.equals("")){// 按学号查询学生信息System.out.println("~按学号查询学生信息~");boolean found =false;// 遍历学生数组列表,按学号来找for(Student student : students){if(student.getId().equals(id)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}
(4)按学生学号和姓名一起查询
else{// 按学号和姓名查询学生信息System.out.println("~按学号和姓名查询学生学习~");boolean found =false;// 遍历学生数组列表,按学号和姓名来找for(Student student : students){if(student.getId().equals(id)&& student.getName().equals(name)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}}
(5)三种查询情况的完整代码
/**
* 查询学生信息方法
*/privatestaticvoidfindStudent(){String id, name;Scanner sc =newScanner(System.in);System.out.print("学号:");
id = sc.nextLine();// 单行输入,敲回车确认System.out.print("姓名:");
name = sc.nextLine();// 单行输入,敲回车确认// 判断用户按哪种方式查询学生信息if(id.equals("")){if(name.equals("")){// 查询全部学生// 遍历名片数组列表for(Student student : students){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}}else{// 按姓名查询学生信息System.out.println("~按姓名查询学生信息~");boolean found =false;// 遍历学生数组列表,按姓名来找for(Student student : students){if(student.getName().equals(name)){
found =true;// 找到了break;}}// 根据found值提示用户if(found){// 针对可能存在的同名情况for(Student student : students){if(student.getName().equals(name)){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}}}else{System.out.println("温馨提示:查无此人~");}}}else{if(name.equals("")){// 按学号查询学生信息System.out.println("~按学号查询学生信息~");boolean found =false;// 遍历学生数组列表,按学号来找for(Student student : students){if(student.getId().equals(id)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}}else{// 按学号和姓名查询学生信息System.out.println("~按学号和姓名查询学生学习~");boolean found =false;// 遍历学生数组列表,按学号和姓名来找for(Student student : students){if(student.getId().equals(id)&& student.getName().equals(name)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}}}}
(6)调用查询学生信息方法
10.修改学生信息
(1)判断学生是否找到
- 我们要修改学生信息,首先要找到我们要修改的学生在不在这个列表里,在并且找到了我们才能进行修改
// 判断是否找到学生if(found){System.out.println("说明:不输入信息,直接敲回车,表明不修改字段值");System.out.print("姓名:");
name = sc.nextLine();System.out.print("班级:");
classes = sc.nextLine();System.out.print("专业:");
major= sc.nextLine();System.out.print("手机号码:");
telephone = sc.nextLine();// 采用传统for循环遍历学生数组列表for(int i =0; i < students.size(); i++){// 获取名片对象Student student = students.get(i);if(student.getId().equals(id)){// 按编号找到学生// 根据用户输入修改学生对象if(!name.equals("")){
student.setName(name);}if(!classes.equals("")){
student.setClasses(classes);}if(!major.equals("")){
student.setMajor(major);}if(!telephone.equals("")){
student.setTelephone(telephone);}// 用修改后的学生对象去更新学生数组列表对应的元素
students.set(i, student);// 显示修改的数组列表对应元素System.out.println(students.get(i));break;// 跳出循环}}}else{System.out.println("温馨提示:查无此人~");}}
(2)修改学习学习的完整代码
/**
* 修改学生信息方法
*/privatestaticvoidmodifyStudent(){String id, name, classes, major, telephone;Scanner sc =newScanner(System.in);boolean found =false;System.out.print("输入要修改的学生学号:");
id = sc.nextLine();// 遍历学生列表数组for(Student student : students){if(student.getId().equals(id)){
found =true;// 找到了// 输出名片信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 判断是否找到学生if(found){System.out.println("说明:不输入信息,直接敲回车,表明不修改字段值");System.out.print("姓名:");
name = sc.nextLine();System.out.print("班级:");
classes = sc.nextLine();System.out.print("专业:");
major= sc.nextLine();System.out.print("手机号码:");
telephone = sc.nextLine();// 采用传统for循环遍历学生数组列表for(int i =0; i < students.size(); i++){// 获取名片对象Student student = students.get(i);if(student.getId().equals(id)){// 按编号找到学生// 根据用户输入修改学生对象if(!name.equals("")){
student.setName(name);}if(!classes.equals("")){
student.setClasses(classes);}if(!major.equals("")){
student.setMajor(major);}if(!telephone.equals("")){
student.setTelephone(telephone);}// 用修改后的学生对象去更新学生数组列表对应的元素
students.set(i, student);// 显示修改的数组列表对应元素System.out.println(students.get(i));break;// 跳出循环}}}else{System.out.println("温馨提示:查无此人~");}}
(3)调用学生信息修改方法
11.删除学生信息
(1)删除学生信息的完整代码
/**
* 删除学生方法
*/privatestaticvoiddeleteStudent(){// 键盘录入要删除的学生,显示提示信息Scanner sc =newScanner(System.in);System.out.print("请输入你要删除的学生学号:");String id = sc.nextLine();// 在删除学生之前,对学生学号是否存在进行判断int index =-1;for(int i =0;i < students.size();i++){Student student = students.get(i);if(student.getId().equals(id)){
index = i;break;}}// 如果不存在,提示信息if(index ==-1){System.out.print("该学号不存在,请重新输入!");}else{
students.remove(index);// 提示删除成功System.out.print("删除学生成功!");}}
(2)调用删除学生信息方法
四、编程实现完整代码
packagetest;importjava.io.*;importjava.util.ArrayList;importjava.util.Scanner;/**
* 功能:学生信息管理系统
* 作者:孤梦
* 日期:2022年05月26日
*/publicclassStudentManagement{// 创建学生数组列表对象privatestaticArrayList<Student> students =newArrayList<>();publicstaticvoidmain(String[] args){// 声明部分int mc1;Scanner sc =newScanner(System.in);boolean isRunning =true;// 循环控制变量while(isRunning){// 绘制一级菜单System.out.println(" 学生信息管理系统");System.out.println("================");System.out.println(" 1. 登录");System.out.println(" 0. 退出");System.out.println("================");System.out.print("输入菜单编号[1,0]:");
mc1 = sc.nextInt();// 根据用户选择进行相应的操作switch(mc1){case1:// 调用登录方法login();break;case0:System.out.println("谢谢使用~再见~");
isRunning =false;// 结束循环break;default:System.out.println("输入的菜单编号有误!");}}}/**
* 登录方法
*/privatestaticvoidlogin(){String username, password;Scanner sc =newScanner(System.in);System.out.print("用户名:");
username = sc.next();System.out.print("密 码:");
password = sc.next();if(username.equals("gumeng")&& password.equals("1314520")){System.out.println("登录成功~");// 调用学生信息管理方法studentManagement();}else{System.out.println("用户名或密码有误,登录失败~");}}/**
* 学生信息管理方法
*/privatestaticvoidstudentManagement(){int mc2;Scanner sc =newScanner(System.in);boolean isRunning =true;// 循环控制变量while(isRunning){// 绘制二级菜单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(" 6. 保存学生信息");System.out.println(" 7. 返回上级");System.out.println("=======================");System.out.print("输入菜单编号[1,2,3,4,5,6,7]:");
mc2 = sc.nextInt();switch(mc2){case1:System.out.println("执行添学生信息功能~");addStudent();// 调用添加学生信息方法break;case2:System.out.println("执行修改学生信息功能~");modifyStudent();// 调用修改学生信息方法break;case3:System.out.println("执行查询学生信息功能~");findStudent();// 调用查询学生信息方法break;case4:System.out.println("执行删除学生信息功能~");deleteStudent();// 调用删除学生信息方法break;case5:System.out.println("读取学生信息文件到学生数组列表~");readStudentFile();// 调用读取学生信息文件方法break;case6:System.out.println("将学生信息数组列表写入名片文件~");saveStudents();// 调用保存学生信息方法break;case7:
isRunning =false;// 结束二级菜单循环break;default:System.out.println("输入的菜单编号有误!");}}}/**
* 添加学生信息方法
*/privatestaticvoidaddStudent(){// 声明变量String id;String name;String classes;String major;String telephone;Scanner sc =newScanner(System.in);// 输入学生信息System.out.print("学号:");
id = sc.next();System.out.print("姓名:");
name = sc.next();System.out.print("班级:");
classes = sc.next();System.out.print("专业:");
major = sc.next();System.out.print("手机号码:");
telephone = sc.next();// 创建学生对象Student student =newStudent(id, name, classes, major,telephone);// 将学生信息添加到学生数组列表
students.add(student);}/**
* 保存学生信息到文件
*/privatestaticvoidsaveStudents(){try{// 创建文件字符输出流FileWriter fw =newFileWriter("students.txt");// 创建学生容器字符串缓冲对象StringBuffer studentsBuffer =newStringBuffer();// 用增强for循坏遍历学生数组列表for(Student student : students){// 输出学生对象System.out.println(student);// 创建学生字符串缓冲对象StringBuffer buffer =newStringBuffer();// 添加学生字段信息(空格作为分隔符)
buffer.append(student.getId()+" ");
buffer.append(student.getName()+" ");
buffer.append(student.getClasses()+" ");
buffer.append(student.getMajor()+" ");
buffer.append(student.getTelephone());// 将学生信息写入名片容器字符串缓冲对象
studentsBuffer.append(buffer.toString()+"\n");}// 将学生容器字符串缓冲对象的数据写入文件
fw.write(studentsBuffer.toString());// 关闭文件字符输出流
fw.close();// 提示用户写入成功System.out.println("恭喜,学生信息数据写入文件成功~");}catch(IOException e){
e.printStackTrace();}}/**
* 读取学生信息文件,保存到学生数组列表
*/privatestaticvoidreadStudentFile(){// 创建文件字符输入流try{FileReader fr =newFileReader("students.txt");// 创建缓冲字符输入流BufferedReader br =newBufferedReader(fr);// 定义行变量String nextLine =" ";// 通过循坏读取名片文件while((nextLine = br.readLine())!=null){// 拆分行字符串得到字段数值String[] fields = nextLine.split(" ");// 创建学生对象Student student =newStudent();// 用字段数值设置对象属性
student.setId(fields[0]);
student.setName(fields[1]);
student.setClasses(fields[2]);
student.setMajor(fields[3]);
student.setTelephone(fields[4]);// 输出学生对象System.out.println("添加"+ student +"到学生数组列表");// 将学生对象添加到学生数组列表
students.add(student);}// 关闭缓冲字符输入流
br.close();// 关闭文件字符输入流
fr.close();}catch(FileNotFoundException e){System.out.println("温馨提示:学生文件不存在~");}catch(IOException e){
e.printStackTrace();}}/**
* 查询学生信息方法
*/privatestaticvoidfindStudent(){String id, name;Scanner sc =newScanner(System.in);System.out.print("学号:");
id = sc.nextLine();// 单行输入,敲回车确认System.out.print("姓名:");
name = sc.nextLine();// 单行输入,敲回车确认// 判断用户按哪种方式查询学生信息if(id.equals("")){if(name.equals("")){// 查询全部学生// 遍历名片数组列表for(Student student : students){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}}else{// 按姓名查询学生信息System.out.println("~按姓名查询学生信息~");boolean found =false;// 遍历学生数组列表,按姓名来找for(Student student : students){if(student.getName().equals(name)){
found =true;// 找到了break;}}// 根据found值提示用户if(found){// 针对可能存在的同名情况for(Student student : students){if(student.getName().equals(name)){System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());}}}else{System.out.println("温馨提示:查无此人~");}}}else{if(name.equals("")){// 按学号查询学生信息System.out.println("~按学号查询学生信息~");boolean found =false;// 遍历学生数组列表,按学号来找for(Student student : students){if(student.getId().equals(id)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}}else{// 按学号和姓名查询学生信息System.out.println("~按学号和姓名查询学生学习~");boolean found =false;// 遍历学生数组列表,按学号和姓名来找for(Student student : students){if(student.getId().equals(id)&& student.getName().equals(name)){
found =true;// 找到了// 输出学生信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 根据found值提示用户if(!found){System.out.println("温馨提示:查无此人~");}}}}/**
* 修改学生信息方法
*/privatestaticvoidmodifyStudent(){String id, name, classes, major, telephone;Scanner sc =newScanner(System.in);boolean found =false;System.out.print("输入要修改的学生学号:");
id = sc.nextLine();// 遍历学生列表数组for(Student student : students){if(student.getId().equals(id)){
found =true;// 找到了// 输出名片信息System.out.println(student.getId()+" "+ student.getName()+" "+ student.getClasses()+" "+ student.getMajor()+" "+ student.getTelephone());break;// 跳出循环}}// 判断是否找到学生if(found){System.out.println("说明:不输入信息,直接敲回车,表明不修改字段值");System.out.print("姓名:");
name = sc.nextLine();System.out.print("班级:");
classes = sc.nextLine();System.out.print("专业:");
major= sc.nextLine();System.out.print("手机号码:");
telephone = sc.nextLine();// 采用传统for循环遍历学生数组列表for(int i =0; i < students.size(); i++){// 获取名片对象Student student = students.get(i);if(student.getId().equals(id)){// 按编号找到学生// 根据用户输入修改学生对象if(!name.equals("")){
student.setName(name);}if(!classes.equals("")){
student.setClasses(classes);}if(!major.equals("")){
student.setMajor(major);}if(!telephone.equals("")){
student.setTelephone(telephone);}// 用修改后的学生对象去更新学生数组列表对应的元素
students.set(i, student);// 显示修改的数组列表对应元素System.out.println(students.get(i));break;// 跳出循环}}}else{System.out.println("温馨提示:查无此人~");}}/**
* 删除学生方法
*/privatestaticvoiddeleteStudent(){// 键盘录入要删除的学生,显示提示信息Scanner sc =newScanner(System.in);System.out.print("请输入你要删除的学生学号:");String id = sc.nextLine();// 在删除学生之前,对学生学号是否存在进行判断int index =-1;for(int i =0;i < students.size();i++){Student student = students.get(i);if(student.getId().equals(id)){
index = i;break;}}// 如果不存在,提示信息if(index ==-1){System.out.print("该学号不存在,请重新输入!");}else{
students.remove(index);// 提示删除成功System.out.print("删除学生成功!");}}}
五、测试程序
1.运行程序,登录系统
2.添加学生信息
- 将以下五个学生信息添加进去
202201 楚梦瑶 软件1班 软件技术 15981324667
202202 林海 大数据2班 大数据技术与应用 15372783998
202203 王明 人智1班 人工智能 18881588702
202204 顾瑶 计应4班 计算机技术应用 15891457734
202205 杨曦蕊 学前3班 学前教育 13891342266
- 可以根据自己的喜好添加更多或者更少
- 注意:这里每输入一条数据都要保存一次,不然最后才保存的话文件里全是一排
3.保存学生信息到文件
(1)保存学生信息
(2)查看文件
- 运行程序后,会在根目录里自动生成我们命名好的文件
- 点开文件,查看信息
4.查询学生信息
(1)按学生学号查询
(2)按学生姓名查询
(3)同时按学号和姓名查询
- 注意:这里在查询之前都要读取文件,不然查不到
5.修改学生信息
(1)将王明改成张心怡
- 修改完之后要保存,只有保存,文件里的学生信息也才跟着改变
- 再来看看文件里的学生信息
(2)将楚梦瑶的班级改为学前五班
- 查看文件的学生信息
6.删除学生信息(删除学号为202203)
- 查看文件里的学生信息
- 已经被删除了
7.读取学生信息
8.退出程序
六.实训总结
1.实训项目存在不足的地方
项目内容也就是学生的信息有点少,还可以添加学生其他的信息,如性别、年龄、家庭住址、兴趣爱好等。还有就是没有采用数据库。
2.实训项目的有点
内容紧凑,条理清晰,图文并茂,使人一看就明白
3.实训个人感悟
1、 经过一学期的学习和实训,明白自己还有许多不足的地方,很多地方需要改进,很多地方需要向同学学习,相比起上学期这学期的干劲足多了,但是还不够,还需要多多努力,正所谓奋斗是创造幸福的源泉
2、未来这个词听上去就是美好,可是你别忘了呀,每一个我们所期待的美好未来,都必须有一个努力的现在。
版权归原作者 ༺雾༒爱༻ 所有, 如有侵权,请联系我们删除。