java控制台实现学生信息管理系统(集合版)
短信预约 -IT技能 免费直播动态提醒
使用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;
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("请您输入正确的选项");
}
}
}
}
本系统中查询功能不是很完善,可以实现功能使用查询功能时可以选择查询全部、按学号查询、按姓名分类等不同的查询方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341