java控制台实现学生信息管理系统(集合版)
作者:没事多喝水w 时间:2023-11-11 14:16:52
使用java语言用集合存储数据实现学生信息管理系统,在控制台上编译执行
可以实现基本的学生信息增加、删除、修改、查询功能
IO版可以参考我的另外一篇博文。
运行界面如下
欢迎界面
添加学生信息
删除学生信息
修改学生信息
查询学生信息
退出系统
系统模块结构图
系统业务流程图
代码如下
Student类
public class Student {
private String stuNo;
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String stuNo, String name, int age) {
super();
this.stuNo = stuNo;
this.name = name;
this.age = age;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
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;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((stuNo == null) ? 0 : stuNo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (stuNo == null) {
if (other.stuNo != null)
return false;
} else if (!stuNo.equals(other.stuNo))
return false;
return true;
}
@Override
public String toString() {
return "学生:学号 " + stuNo + ", 姓名 " + name + ", 年龄 " + age ;
}
}
StudentDao类
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class StudentDAO {
static List<Student> list = new ArrayList<>();
static String ig = "1000";
Scanner sc = new Scanner(System.in);
// 增加学生信息
public void add(List<Student> list) {
int ig = Integer.parseInt(this.ig);
while (true) {
System.out.println(ig);
System.out.println("请输入你要添加的学号为" + ig + "的学生的姓名");
String name = sc.next();
while (true) {
System.out.println("请输入你要添加的学号为" + ig + "的学生的年龄");
Scanner sc1 = new Scanner(System.in);
if (sc1.hasNextInt()) {
int age = sc1.nextInt();
list.add(new Student(String.valueOf(ig), name, age));
break;
} else {
System.out.println("请正确输入");
continue;
}
}
System.out.println("学号为" + ig + "的学生信息添加成功");
ig++;
this.ig = String.valueOf(ig);
System.out.println("添加信息后,学生的信息为:");
query(list);
System.out.println("是否继续执行添加操作(y/n)");
String result = sc.next();
if (result.equalsIgnoreCase("n") || result.equalsIgnoreCase("y")) {
if (result.equalsIgnoreCase("n")) {
break;
}
}
}
}
// 删除学生信息
public void del(List<Student> list) {
if (list.size() != 0) {
a: while (true) {
query(list);
System.out.println("请输出你要删除的学生的学号");
String str = sc.next();
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student stu = it.next();
if (stu.getStuNo().equals(str)) {
it.remove();
System.out.println("删除成功!");
System.out.println("删除操作后,学生的信息为:");
query(list);
break a;// 跳出到指定循环外
}
}
System.out.println("查无此人……请查证后重新输入");
}
} else {
System.out.println("还没有添加学生信息,快去添加学生信息吧");
}
}
// 修改学生信息
public void update(List<Student> list) {
if (list.size() != 0) {
a: while (true) {
query(list);
System.out.println("请输入要修改学生的学号:");
String stuNo = sc.next();
ListIterator<Student> lit = list.listIterator();
while (lit.hasNext()) {
Student stu = lit.next();
if (stu.getStuNo().equals(stuNo)) {
System.out.println("请输入您要修改的学生的姓名");
String name = sc.next();
System.out.println("请输入您要修改的学生的年龄");
if (sc.hasNextInt()) {
int age = sc.nextInt();
stu.setName(name);
stu.setAge(age);
System.out.println("修改操作后,学生的信息为:");
query(list);
break a;
} else {
System.out.println("请正确输入年龄");
}
}
}
System.out.println("查无此人……请查证后重新输入");
}
} else {
System.out.println("还没有添加学生信息,快去添加学生信息吧");
}
}
// 查询学生信息
public void query(List<Student> list) {
if (list.size() != 0) {
System.out.println("=============学生信息==============");
for (Student stu : list) {
System.out.println(stu);
}
System.out.println("=================================");
} else {
System.out.println("还没有添加学生信息,快去添加学生信息吧");
}
}
}
StudentManager类
import java.util.Scanner;
/**
*
* 创建时间:2019年12月6日 上午11:40:57
*
*
*/
public class StudentManager {
public static void main(String[] args) {
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println();
System.out.println();
System.out.println("=================================");
System.out.println("=========欢迎使用学生管理系统 =========");
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("==================================");
System.out.println("请输入您的选择");
int choose;
if (sc.hasNextInt()) {
choose = sc.nextInt();
if (choose > 0 && choose < 6) {
Student st = new Student();
StudentDAO std = new StudentDAO();
switch (choose) {
case 1:
std.add(std.list);
break;
case 2:
std.del(std.list);
break;
case 3:
std.update(std.list);
break;
case 4:
std.query(std.list);
break;
case 5:
System.out.println("成功退出……");
System.out.println("欢迎下次使用");
System.exit(0);
break;
}
} else {
System.out.println("请正确输入");
}
} else {
System.out.println("请您输入正确的选项");
}
}
}
}
本系统中查询功能不是很完善,可以实现功能使用查询功能时可以选择查询全部、按学号查询、按姓名分类等不同的查询方法。
来源:https://blog.csdn.net/w_sl_code/article/details/103433965
标签:java,学生,管理系统
0
投稿
猜你喜欢
JAVA注解代码详解一篇就够了
2022-12-27 14:45:26
Android使用SQLite数据库的简单实例
2022-03-04 13:52:50
maven下载jar包改用阿里云maven库的方法
2023-02-13 07:41:58
Android自定义Seekbar滑动条 Pop提示跟随滑动按钮滑动
2021-11-02 20:32:06
C#利用子线程刷新主线程分享教程
2023-05-16 13:25:46
退出Android程序时清除所有activity的实现方法
2021-10-09 23:49:30
java开发分布式服务框架Dubbo暴露服务过程详解
2021-07-19 17:59:50
Java动态代理四种实现方式详解
2022-03-12 02:16:38
c#实现winform屏幕截图并保存的示例
2022-08-09 09:06:33
Android列表控件Spinner简单用法示例
2023-03-06 07:36:22
利用Lambda表达式创建新线程案例
2023-08-26 23:16:00
Java8新特性Stream流实例详解
2023-05-04 12:55:05
Java日常练习题,每天进步一点点(63)
2021-10-22 12:35:44
浅谈JVM垃圾回收有哪些常用算法
2022-02-28 16:51:56
Java中的匿名对象定义与用法实例分析
2023-04-11 20:03:05
Java程序中实现调用Python脚本的方法详解
2021-07-08 22:00:08
C++联合体union用法实例详解
2023-12-01 16:34:00
使用IDEA搭建ssm框架的详细图文教程
2021-12-04 10:37:20
Android开发之自定义加载动画详解
2023-07-27 01:41:05
springboot使用自定义注解实现aop切面日志
2023-11-11 09:14:48