java SE 简单的学生信息管理系统
程序员文章站
2022-05-06 18:20:51
...
问题描述
完成一个学生管理程序,使用学号作为键添加5个学生对象,其中使用Map集合,进行简单的查找,删除,增加操作。
学生的属性:
学号,姓名,性别,年龄,数学成绩,java成绩。简单的使用了面向对象
首先有一个Student类
package com.stu.test1;
/**
* 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部的信息保存在文件中 可以实现对学生信息的学号查找,输出全部学生信息。
*
* @author Feng 2018年1月27日下午2:06:23
*/
public class Student {
private String studentID;// 学生学号
private String name;// 学生姓名
private String sex;// 学生性别
private int age;// 学生年龄
private double mathScore;// 数学成绩
private double javaScore;// java 成绩
public Student(String studentID, String name, String sex, int age, double mathScore, double javaScore) {
super();
this.studentID = studentID;
this.name = name;
this.sex = sex;
this.age = age;
this.mathScore = mathScore;
this.javaScore = javaScore;
}
public Student(String xueHao) {
// TODO Auto-generated constructor stub
this.studentID = xueHao;
}
public String getStudentID() {
return studentID;
}
public void setStudentID(String studentID) {
this.studentID = studentID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getMathScore() {
return mathScore;
}
public void setMathScore(double mathScore) {
this.mathScore = mathScore;
}
public double getJavaScore() {
return javaScore;
}
public void setJavaScore(double javaScore) {
this.javaScore = javaScore;
}
@Override
public String toString() {
return studentID + "\t" + name + "\t" + sex + "\t" + age + "\t" + mathScore + "\t" + javaScore;
}
}
toString 方法的简单重写
然后是业务类,这里用了一个Manager类。其中有初始化数据的构造方法,删除方法remove(String xueHao)(),查看所有信息的seeAll(),使用键来查看一个学生的信息的seeByNum(String studentID)(),还有添加一个学生信息的addStu(String xueHao, Student student)(),等方法。
Manager类
package com.stu.test1;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Manager {
Map<String, Student> map = new HashMap<String, Student>();
Scanner input = new Scanner(System.in);
boolean isGo = true;
// 接收输入的变量
String keyNum = null;
String xueHao = null;
String xingMing = null;
String xingBie = null;
int nianLing = 0;
double math = 0;
double java = 0;
/**
* 构造方法来初始化数据
*/
public Manager() {
Student lulu = new Student("15060205124", "璐璐", "女", 22, 87.5, 91);
Student feng = new Student("15060205102", "松松", "男", 22, 77.8, 65.3);
Student peng = new Student("15060205007", "骁骁", "男", 22, 57.5, 71);
Student yue = new Student("15060205004", "越越", "男", 19, 65.1, 76);
Student lele = new Student("15060205003", "乐乐", "男", 22, 69.1, 70);
map.put("15060205124", lulu);
map.put("15060205102", feng);
map.put("15060205007", peng);
map.put("15060205004", yue);
map.put("15060205003", lele);
}
/**
* 删除方法,传入参数之后,可以删除就返回true
*
* @param xueHao
* @param student
* @return
*/
public boolean remove(String xueHao) {
Collection<Student> values = map.values();
for (Student stu : values) {
if (stu.getStudentID().equals(xueHao)) {// 已经找到该学号,可以删除。
map.remove(xueHao);
return true;
}
}
return false;
}
/**
* 查看所有学生信息,遍历
*/
public void seeAll() {
Collection<Student> values = map.values();
System.out.println("\t学号\t姓名\t性别\t年龄\t数学\tjava");
for (Student student : values) {
System.out.println(student.getStudentID() + " \t" + student.getName() + "\t" + student.getSex() + "\t"
+ student.getAge() + "\t" + student.getMathScore() + "\t" + student.getJavaScore());
}
}
/**
* 判断是否有该学生学号,若有就返回true 通过键值查看某一个学生
*
* @param studentID
* @return
*/
public boolean seeByNum(String studentID) {
for (String key : map.keySet()) {
if (key.equals(studentID)) {
return true;
}
}
return false;
}
/**
* 添加一个学生信息,当输入所有属性之后,会判断是否有这个学生。
*
* @param xueHao
* @param student
* @return 可以添加时会返回以个true
*/
public boolean addStu(String xueHao, Student student) {
Collection<Student> values = map.values();
for (Student stu : values) {
if (stu.getStudentID().equals(xueHao)) {
System.out.println("已存在此学号");
return false;
}
}
map.put(xueHao, student);
return true;
}
/**
* 添加一个学生时的输入
*/
public void addPrint() {
System.out.println("请输入需要添加的学生学号:");
xueHao = input.nextLine();
System.out.println("请输入需要添加的学生姓名:");
xingMing = input.nextLine();
System.out.println("请输入需要添加的学生性别:");
xingBie = input.nextLine();
System.out.println("请输入需要添加的学生年龄:");
nianLing = input.nextInt();
System.out.println("请输入需要添加的学生数学成绩:");
math = input.nextDouble();
System.out.println("请输入需要添加的学生java成绩:");
java = input.nextDouble();
}
/**
* 选择1,2,3,4,5,6执行不同的功能。
*/
public void show() {
int choose = 0;
while (isGo) {
do {
System.out.println("\tmap to\t学生管理系统");
System.out.println("===================================");
System.out.println("1.\t查看所有学生信息-----------");
System.out.println("2.\t搜索一个学生信息-----------");
System.out.println("3.\t增加一个学生信息-----------");
System.out.println("4.\t删除一个学生信息-----------");
System.out.println("5.\t清空所有学生信息-----------");
System.out.println("6.\t退出----------------------");
System.out.println("===================================");
System.out.println();
System.out.println("请输入你的选择:");
if (input.hasNext()) {
choose = input.nextInt();
}
input.nextLine();
} while (choose < 1 || choose > 6);
/**
* switch 来选择。
*/
switch (choose) {
case 1:
seeAll();
break;
case 2:
System.out.println("请输入要查找的学生ID:");
keyNum = input.nextLine();
if (seeByNum(keyNum)) {
System.out.println("已经找到要查询的信息如下:");
System.out.println("\t学号\t姓名\t性别\t年龄\t数学\tjava");
System.out.println(map.get(keyNum));
} else {
System.out.println("查询失败,请确认你输入的信息无误~");
}
break;
case 3:
addPrint();
// 传参数,学号,姓名,性别,年龄,数学成绩,java成绩
Student student = new Student(xueHao, xingMing, xingBie, nianLing, math, java);
if (addStu(xueHao, student)) {
System.out.println("添加成功");
} else {
System.out.println("可能是学号重复导致添加失败!");
}
break;
case 4:
System.out.println("请输入你想要删除的学生学号:");
xueHao = input.nextLine();
@SuppressWarnings("unused")
Student stu = new Student(xueHao);
if (remove(xueHao)) {
System.out.println("已经删除该学生信息!");
} else {
System.out.println("删除失败,可能是找不到该学生信息。");
}
break;
case 5:
System.out.println("确定要清空所有学生信息吗?");
System.out.println("1.\t是的,我要清空所有信息!" + "\n" + "2.\t不要啦,我点错了,快退回去。");
System.out.println("请输入你的选择:\t1或2");
int choice = 0;
choice = input.nextInt();
if (1 == choice) {
map.clear();// 调用清空方法。
System.out.println("所有学生信息都已经清空了~");
break;
} else if (2 == choice) {
System.out.println("已经返回到上一步,亲~");
break;
}
break;
case 6:
isGo = false;
break;
}
}
}
}
ManagerTest类
package com.stu.test1;
public class ManagerTest {
public static void main(String[] args) {
Manager ma = new Manager();
ma.show();
}
}
部分结果截图
其余的就不演示了,哈哈。
上一篇: 菜单管理实现