Java实现:学生管理系统(数组,for循环,方法)

效果图:

功能还是很齐全的,不过截长图很麻烦,建议自己实验;

很适合初学练手敲,毕竟将近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&#
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/66787542 【完整课程列表】 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 01.Java语言概述(共21页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 02.理解结构化程序设计_理解面向对象(共25页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 03.数据类型和运算符(共19页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 04.流程控制和数组(共33页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 05.面向对象(上)(共35页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 06.面向对象(下)(共55页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 07.与运行环境交互(共40页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 08.Java集合(共44页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 09.泛型(共15页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 10.异常处理(共24页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 11.AWT编程(共46页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 12.Swing编程(共45页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 13.JDBC编程(共52页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 14.Annotation(共10页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 15.输入输出(共41页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 16.多线程(共44页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 17.网络编程(共42页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 18.类加载与反射(共25页).ppt

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值