效果图:
功能还是很齐全的,不过截长图很麻烦,建议自己实验;
很适合初学练手敲,毕竟将近1000行!
package om.cx;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;
/*
* 学生管理系统
* 学生信息:班级姓名数组:String [][]stuNames
* 班级成绩数组:int [][]stuScores;
* 功能如下菜单中有列出
*/
public class StudentManageSys {
static Scanner scanner = new Scanner(System.in);
//支持多个班级,存储学生的相关信息
static int size; // 班级数量
static String []clsRoom; // 班级名称
static String [][]stuNames;//学生姓名
static int [][]javaScores;
static int [][]oracleScores;
static int [][]htmlScores;
public static void main(String[] args) {
//系统初始化
sysInit();
//sysInitOld();
//输出系统菜单
while(true) {
System.out.println("====成信大学生管理系统====");
System.out.println("0.新增班级");
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.println("请选择:");
String choose = scanner.next();
//处理用户选择
switch (choose) {
case "0":
addClassRoom();
break;
case "1"://新增学生
addStudent();
break;
case "2"://修改学生
updateStudent();
break;
case "3"://删除学生
deleteStudent();
break;
case "4"://查询学生
queryStudnet();
break;
case "5"://统计数据
dataTable();
break;
case "6"://保存数据
saveToDisc();
break;
case "7"://退出系统
System.out.println("谢谢使用!");
//退出使用
System.exit(0);
break;
default://输入错误
System.out.println("输入错误!");
break;
}
//输出空行 换行
System.out.println();
}
}
//删除学生
private static void deleteStudent() {
System.out.println("学生管理系统--->删除学生");
System.out.println("请输入需要需要删除学生的班级:");
String clsNum = scanner.next();
System.out.println("请输入需要删除学生的姓名:");
String stuName = scanner.next();
//查找信息
int clsIndex = -1;
int stuNameIndex = -1;
//外层找班级
for(int i = 0; i<clsRoom.length&&stuNames[i]!=null;i++) {
//内层找人
for(int j = 0;j<stuNames[i].length&&stuNames[i][j]!=null;j++) {
if(clsNum.equals(clsRoom[i])&&stuName.equals(stuNames[i][j])) {
//找到人了 班级和名字都对
stuNameIndex=j;
clsIndex=i;
break;
}
}
}
if(clsIndex>=0&&stuNameIndex>=0) {
if(stuNameIndex==stuNames[clsIndex].length-1) {
stuNames[clsIndex][stuNameIndex]=null;
javaScores[clsIndex][stuNameIndex]=0;
oracleScores[clsIndex][stuNameIndex]=0;
htmlScores[clsIndex][stuNameIndex]=0;
}else {
for(int i = stuNameIndex;i<stuNames[clsIndex].length-1;i++) {
stuNames[clsIndex][i]=stuNames[clsIndex][i+1];
javaScores[clsIndex][i]=javaScores[clsIndex][i+1];
oracleScores[clsIndex][i]=oracleScores[clsIndex][i+1];
htmlScores[clsIndex][i]=htmlScores[clsIndex][i+1];
}
stuNames[clsIndex][stuNames[clsIndex].length-1]=null;
javaScores[clsIndex][stuNames[clsIndex].length-1]=0;
oracleScores[clsIndex][stuNames[clsIndex].length-1]=0;
htmlScores[clsIndex][stuNames[clsIndex].length-1]=0;
}
}else {
System.out.println("学生删除失败,你输入的信息有误!");
return;
}
System.out.println("学生删除成功!");
}
//更新学生
private static void updateStudent() {
System.out.println("学生管理系统--->修改学生信息");
System.out.println("请输入需要需要修改学生的班级:");
String clsNum = scanner.next();
System.out.println("请输入需要修改学生的姓名:");
String stuName = scanner.next();
//查找信息
int clsIndex = -1;
int stuNameIndex = -1;
//外层找班级
for(int i = 0; i<clsRoom.length&&clsRoom[i]!=null;i++) {
//内层找人
for(int j = 0;j<stuNames[i].length&&stuNames[i][j]!=null;j++) {
if(clsNum.equals(clsRoom[i])&&stuName.equals(stuNames[i][j])) {
//找到人了 班级和名字都对
stuNameIndex=j;
clsIndex=i;
break;
}
}
}
if(clsIndex>=0&&stuNameIndex>=0) {
System.out.println("请输入新的学生姓名:(输入n不修改)");
String newStuName=scanner.next();
System.out.println("请输入新的Java成绩:(输入n不修改)");
int newJava=scanner.nextInt();
System.out.println("请输入新的Oracle成绩:(输入n不修改)");
int newOracle=scanner.nextInt();
System.out.println("请输入新的Html成绩:(输入n不修改)");
int newHtml=scanner.nextInt();
if (!"n".equals(newStuName)) {
stuNames[clsIndex][stuNameIndex]=newStuName;
}
if (!"n".equals(newJava)) {
javaScores[clsIndex][stuNameIndex]=newJava;
}
if (!"n".equals(newOracle)) {
oracleScores[clsIndex][stuNameIndex]=newOracle;
}
if (!"n".equals(newHtml)) {
htmlScores[clsIndex][stuNameIndex]=newHtml;
}
System.out.println("学生信息修改成功!");
}else{
System.out.println("输入的信息有误!");
return;
}
}
//统计数据
private static void dataTable() {
while(true) {
System.out.println("学生管理系统-->统计数据");
System.out.println("1.班级成绩统计 2.课程成绩统计 3.学生成绩统计 4.返回");
System.out.println("请选择:");
String choose = scanner.next();
switch(choose) {
case "1"://班级成绩统计
classTabe();
break;
case "2"://课程成绩统计
subjectTable();
break;
case "3"://学生成绩统计
studentScoreTable();
break;
case "4"://返回
System.out.println("返回成功!");
return;
default://输入错误
System.out.println("输入错误!");
break;
}
}
}
//课程成绩统计
private static void subjectTable() {
System.out.println("---学生管理系统-->统计数据--->课程成绩统计");
System.out.println("请输入课程名称:(1.java 2.oracle 3.html&#