一个终端的学生管理系统,终端界面。根据大一实训要求写的,界面可能会有一点点难看,可供参考
package test;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
import java.util.function.Predicate;
/*
* 实现学生成绩管理系统功能
*/
public class BookManager {
static class Student {
private String stuNo;//学号
private String names;//姓名
private double java;//java成绩数组
private double html;//html成绩数组
private double computer;//计算机成绩数组
private double average;//平均分
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public double getJava() {
return java;
}
public void setJava(double java) {
this.java = java;
}
public double getHtml() {
return html;
}
public void setHtml(double html) {
this.html = html;
}
public double getComputer() {
return computer;
}
public void setComputer(double computer) {
this.computer = computer;
}
public double getAverage() {
return average;
}
public void setAverage(double average) {
this.average = average;
}
}
//定义数组存储学生信息
public static ArrayList<Student> students = new ArrayList<>();
public static int stuNum; //用来记录数组中实际学生个数
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
loginAdmin();
}
//进入系统登录验证界面自定义方法
public static void loginAdmin() {
Scanner sc = new Scanner(System.in);
System.out.println("用户名:");
String name = sc.next();
System.out.println("密码:");
String pwd = sc.next();
if (validLogin(name, pwd)) {
// System.out.println("用户名、密码正确,进入管理员主菜单");
mainMenu();
} else {
System.out.println("用户名、密码错误!"); //提示错误之后使用循环保证可以重新输入3次用户名、密码,超过3次就不再允许输入
}
}
//系统管理员登录验证自定义方法
public static boolean validLogin(String userName, String usePwd) {
String name = "root";//可以更具自己需求更改账号密码
String pwd = "123456";
if (userName.equals(name) && usePwd.equals(pwd)) {
return true;
} else {
return false;
}
}
//系统主菜单界面自定义方法
public static void mainMenu() {
System.out.println("*************************************");
System.out.println("*\t\t\t学生成绩管理系统\t\t\t*");
System.out.println("*\t\t\t1:录入学生信息\t\t\t*");
System.out.println("*\t\t\t2:添加学生信息\t\t\t*");
System.out.println("*\t\t\t3:查找学生信息\t\t\t*");
System.out.println("*\t\t\t4:删除学生信息\t\t\t*");
System.out.println("*\t\t\t5:学生成绩排序\t\t\t*");
System.out.println("*\t\t\t6:插入学生信息\t\t\t*");
System.out.println("*\t\t\t7:查看所有信息\t\t\t*");
System.out.println("*\t\t\t0:退出系统\t\t\t\t*");
System.out.println("*************************************");
System.out.println("请输入你的选择(0---7):");
int choose = sc.nextInt();
switch (choose) {
case 1:
//1、录入学生信息
inputStuInfo();
mainMenu();
break;
case 2:
//2、添加学生信息
inputStuInfo();
mainMenu();
break;
case 3:
//3、查找学生信息
lookupinformation();
mainMenu();
break;
case 4:
//4、删除学生信息
removeinformation();
mainMenu();
break;
case 5:
//5、学生成绩排序
sortinformation();
mainMenu();
break;
case 6:
//6、插入学生信息
inputStuInfo();
mainMenu();
break;
case 7:
//7、查看所有学生信息
allinformation();
mainMenu();
break;
default:
System.out.println("选择有误!");
break;
}
}
//查看所有学生信息
private static void allinformation() {
if (students.size()==0){
System.out.println("没有学生数据");
return;
}
for (Student student : students) {
System.out.println("*************************************");
System.out.printf("*\t\t\t学生学号:%s \t\t\t\t*\n", student.getStuNo());
System.out.printf("*\t\t\t学生姓名:%s \t\t\t\t*\n", student.getNames());
System.out.printf("*\t\t\tjava成绩:%.2f\t\t\t*\n", student.getJava());
System.out.printf("*\t\t\thtml成绩:%.2f\t\t\t*\n", student.getHtml());
System.out.printf("*\t\t\t计算机成绩:%.2f\t\t\t*\n", student.getComputer());
System.out.printf("*\t\t\t平均成绩:%.2f\t\t\t*\n", student.getAverage());
System.out.println("*************************************");
}
}
//学生信息排序
private static void sortinformation() {
students.sort(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return (int)(o2.getAverage()-o1.getAverage());
}
});
allinformation();
}
//删除学生信息
private static void removeinformation() {
allinformation();
System.out.print("请输入你要删除信息的学号:");
String stuNo = sc.next();
//删除学生信息
students.removeIf(new Predicate<Student>() {
@Override
public boolean test(Student student) {
if (student.getStuNo().equals(stuNo)){
return true;
}
return false;
}
});
}
//查找学生信息
private static void lookupinformation() {
System.out.println("*************************************");
System.out.println("*\t\t\t学生成绩管理系统\t\t\t*");
System.out.println("*\t\t\t1:按学生学号查找\t\t\t*");
System.out.println("*\t\t\t2:按学生姓名查找\t\t\t*");
System.out.println("*\t\t\t3:退出\t\t\t*");
System.out.println("*************************************");
System.out.print("请输入序号(1-3):");
int choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("请输入学生学号");
String stuNo = sc.next();
for (Student student : students) {
if (student.getStuNo().equals(stuNo)) {
System.out.println("*************************************");
System.out.printf("*\t\t\t学生学号:%s\t\t\t*", student.getStuNo());
System.out.printf("*\t\t\t学生姓名:%s\t\t\t*", student.getNames());
System.out.printf("*\t\t\tjava成绩:%f\t\t\t*", student.getJava());
System.out.printf("*\t\t\thtml成绩:%f\t\t\t*", student.getHtml());
System.out.printf("*\t\t\t计算机成绩:%f\t\t\t*", student.getComputer());
System.out.printf("*\t\t\t平均成绩:%f\t\t\t*", student.getAverage());
System.out.println("*************************************");
}
}
break;
case 2:
System.out.println("请输入学生姓名:");
String stuName = sc.next();
for (Student student : students) {
if (student.getNames().equals(stuName)) {
System.out.println("*************************************");
System.out.printf("*\t\t\t学生学号:%s\t\t\t*", student.getStuNo());
System.out.printf("*\t\t\t学生姓名:%s\t\t\t*", student.getNames());
System.out.printf("*\t\t\tjava成绩:%f\t\t\t*", student.getJava());
System.out.printf("*\t\t\thtml成绩:%f\t\t\t*", student.getHtml());
System.out.printf("*\t\t\t计算机成绩:%f\t\t\t*", student.getComputer());
System.out.printf("*\t\t\t平均成绩:%f\t\t\t*", student.getAverage());
System.out.println("*************************************");
}
}
break;
case 3:
break;
default:
System.out.println("输入信息错误请重新输入");
lookupinformation();
break;
}
}
//1、录入学生信息自定义方法
public static void inputStuInfo() {
//姓名、学号、3门课成绩、平均分
Scanner sc = new Scanner(System.in);
System.out.print("输入您要录入学生的个数:");
stuNum = sc.nextInt();
for (int i = 0; i < stuNum; i++) {
Student stu = new Student();
System.out.print("学号(0-99):");
stu.setStuNo(sc.next());
System.out.print("姓名:");
stu.setNames(sc.next());
System.out.println("请输入三门课的成绩:");
System.out.print("java成绩:");
stu.setJava(sc.nextDouble());
System.out.print("html成绩:");
stu.setHtml(sc.nextDouble());
System.out.print("计算机成绩:");
stu.setComputer(sc.nextDouble());
stu.setAverage((stu.getHtml() + stu.getJava() + stu.getComputer()) / 3.0);
students.add(stu);
System.out.println("以存在" + students.size() + "个学生");
System.out.println("**************************************");
}
}
}