Java实训:学生信息管理系统
Posted ༺雾༒爱༻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实训:学生信息管理系统相关的知识,希望对你有一定的参考价值。
文章目录
- 一、程序功能
- 二、程序包括的学生信息
- 三、编程实现
- 四、编程实现完整代码
- 五、测试程序
- 六.实训总结
一、程序功能
功能概述
- 利用Java完成一个学生信息程序的简单改动。
- 添加学生信息
- 修改学生信息
- 查询学生信息
- 删除学生信息
二、程序包括的学生信息
1.学号
2.姓名
3.班级
4.专业
5.电话号码
- 当然,这只是简单的包括几个信息,其他的信息,如果也想要可以自己加入
三、编程实现
1.建立学生实体类
- 在test包里建立student(学生实体类)
2.学生实体类代码编写
(1)无参构造方法
(2)有参构造方法
- 我采用的是有参构造方法
(3)完整的代码
/**
* 功能:学生实体类
* 作者:孤梦
* 日期:2022年05月26日
*/
public class Student
private String id;
private String name;
private String classes;
private String major;
private String telephone;
/**
* 无参构造方法
*/
public Student()
/**
* 有参构造方法
* @param id
* @param name
* @param classes
* @param major
* @param telephone
*/
public Student(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;
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 getClasses()
return classes;
public void setClasses(String classes)
this.classes = classes;
public String getMajor()
return major;
public void setMajor(String major)
this.major = major;
public String getTelephone()
return telephone;
public void setTelephone(String telephone)
this.telephone = telephone;
@Override
public String toString()
return "Card" +
"id='" + id + '\\'' +
", name='" + name + '\\'' +
", classes='" + classes + '\\'' +
", major='" + major + '\\'' +
", telephone='" + telephone + '\\'' +
'';
2.建立学生信息管理
- 继续在test包里创建----StudentManagement(学生信息管理)
3.建立学生数组列表对象
private static ArrayList<Student> students = new ArrayList<>();
public static void main(String[] args)
// 声明部分
int mc1;
Scanner sc = new Scanner(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)
case 1:
// 调用登录方法
login();
break;
case 0:
System.out.println("谢谢使用~再见~");
isRunning = false; // 结束循环
break;
default:
System.out.println("输入的菜单编号有误!");
-创建好了列表,下面就该解决如何登录了
4.登录方法
/**
* 登录方法
*/
private static void login()
String username, password;
Scanner sc = new Scanner(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)完整学生管理方法代码
/**
* 学生信息管理方法
*/
private static void studentManagement()
int mc2;
Scanner sc = new Scanner(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)
case 1:
System.out.println("执行添学生信息功能~");
break;
case 2:
System.out.println("执行修改学生信息功能~");
break;
case 3:
System.out.println("执行查询学生信息功能~");
break;
case 4:
System.out.println("执行删除学生信息功能~");
break;
case 5:
System.out.println("读取学生信息文件到学生数组列表~");
break;
case 6:
System.out.println("将学生信息数组列表写入名片文件~");
break;
case 7:
isRunning = false; // 结束二级菜单循环
break;
default:
System.out.println("输入的菜单编号有误!");
6.添加学生信息方法
/**
* 添加学生信息方法
*/
private static void addStudent()
// 声明变量
String id;
String name;
String classes;
String major;
String telephone;
Scanner sc = new Scanner(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 = new Student(id, name, classes, major,telephone);
// 将学生信息添加到学生数组列表
students.add(student);
- 将学生添加到学生数组列表
- 添加学生总不能不保存,所以下面我们要将学生信息保存到文件
7.将学生信息保存到文件
(1)文件名
这是学生信息将要保存的文件名,当然文件可以随便自己设置
(2)完整代码
/**
* 保存学生信息到文件
*/
private static void saveStudents()
try
// 创建文件字符输出流
FileWriter fw = new FileWriter("students.txt");
// 创建学生容器字符串缓冲对象
StringBuffer cardsBuffer = new StringBuffer();
// 用增强for循坏遍历学生数组列表
for (Student student : students)
// 输出学生对象
System.out.println(student);
// 创建学生字符串缓冲对象
StringBuffer buffer = new StringBuffer();
// 添加学生字段信息(空格作为分隔符)
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)读取学生信息完整代码
- 在这里还有一个问题,如果文件名没有问题,但是你要读取的学生不存在的话程序要出错,所以我们正在这里要把好关
/**
* 读取学生信息文件,保存到学生数组列表
*/
private static void readStudentFile()
// 创建文件字符输入流
try
FileReader fr = new FileReader("students.txt");
// 创建缓冲字符输入流
BufferedReader br = new BufferedReader(fr);
// 定义行变量
String nextLine = " ";
// 通过循坏读取名片文件
while ((nextLine = br.readLine()) != null)
// 拆分行字符串得到字段数值
String[] fields = nextLine.split(" ");
// 创建学生对象
Student student = new Student();
// 用字段数值设置对象属性
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;
// 遍历学生数组列表,按姓名来找
以上是关于Java实训:学生信息管理系统的主要内容,如果未能解决你的问题,请参考以下文章