1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 一个简易的学生成绩管理系统

一个简易的学生成绩管理系统

时间:2021-01-09 11:12:31

相关推荐

一个简易的学生成绩管理系统

简易成绩管理系统:

分2大块功能

1、实现一个菜单包括

A注册 注册一个管理员账户

B登录 通过注册的账户登录系统

C退出 退出整个程序

2、实现一个菜单

A新增学生分数信息 循环新增学生的姓名与分数信息

B修改学生分数信息 通过学生的姓名修改一个学生的分数

C删除学生分数信息 通过学生的姓名删除一个学生的姓名与分数

D查询学生信息 查询功能看第3小点

E返回上级菜单

3、查询学生信息中实现一个小菜单

A查询学生分数 通过一个学生姓名查询一个学生分数

B查询所有学生分数 查询所有学生的分数

package com.lovo.classes1122;import java.util.Scanner;public class gradeManager {static String [] usr = new String [3]; //定义全局变量static int [] pwd = new int [3];static String [] name = new String [5];static int [] grade = new int [5];public static void main(String[] args) {userMenu();//调用初始菜单}public static void userMenu(){ //初始用户菜单while(true){System.out.print("A.注册 ");System.out.print("B.登陆 ");System.out.println("C.退出 ");Scanner input=new Scanner(System.in);//输入操作编号System.out.println("请输入操作:");String operate =input.nextLine();switch (operate) { //判断操作case "A":case "a":register();break;case "B":case "b":signIn();break;case "C":case "c":System.out.println("系统已退出,欢迎使用!!!");System.exit(-1);break;default:System.out.println("操作错误,请重新输入指令");break;}}}public static void register(){//注册boolean flag1 = false;for (int i = 0; i < usr.length; i++) {if (usr[i]==null) { //非null才赋值Scanner input = new Scanner(System.in);System.out.println("请输入需注册的账号");usr[i] = input.nextLine();System.out.println("请输入需注册的密码");pwd[i] = input.nextInt();flag1=true;break; //赋值一次才退出循环 }}if(flag1==false){System.out.println("用户已满,无法进行输入!!!");}}public static void signIn() {//登陆 Scanner input = new Scanner(System.in);System.out.println("请输入您的的账号");String user = input.nextLine();System.out.println("请输入您的的密码");int password = input.nextInt();for (int i = 0; i < usr.length; i++) {if (user.equals(usr[i]) && pwd[i]==password) { //账号密码一致才调用studentMenu()studentMenu();return;//studentMenu()返回之后,再返回到上一级菜单 }}System.out.println("账号密码错误!!!");}public static void studentMenu() {// 学生信息菜单while (true) {System.out.print("A.新增学生信息 ");System.out.print("B.修改学生信息 ");System.out.print("C.删除学生信息 ");System.out.print("D.查询学生信息 ");System.out.println("E.退出 ");Scanner input=new Scanner(System.in);System.out.println("请输入操作:");String operate =input.nextLine();switch (operate) { //判断操作case "A":case "a":addGrade();break;case "B":case "b":fixGrade();break;case "C":case "c":deleteGrade();break;case "D":case "d":scanGrade();break;case "E":case "e":return;default:System.out.println("操作错误,请重新输入指令!!!");break;}}}public static void addGrade() {// 新增学生分数信息 String flag = null;boolean flag1 = false;for (int i = 0; i < name.length; i++) {if (name[i]==null) { //非null才赋值Scanner input = new Scanner(System.in);System.out.println("请输入学生姓名");name[i] = input.nextLine();System.out.println("请输入学生成绩");grade[i] = input.nextInt();flag1=true;Scanner input1 = new Scanner(System.in); //每循环一次询问是否继续或中断System.out.println("中断新增请输 1 ,否则输入其他数");flag = input1.nextLine();if (flag.equals("1")) {break;}}}if(flag1==false){//提示是否能够继续输入System.out.println("用户已满,无法进行输入!!!");}}public static void fixGrade() {// 修改学生分数信息 String flag = null;while (true) {boolean flag1 = false;Scanner input = new Scanner(System.in);System.out.println("请输入需修改的学生姓名");String name1 = input.nextLine();System.out.println("请输入学生成绩修改为多少");int grade1 = input.nextInt();for (int i = 0; i < name.length; i++) { //修改对应名字的对应的成绩if(name1.equals(name[i])){grade[i]=grade1;flag1=true;}}if(flag1==false){System.out.println("无法查找到此名字!!!");}Scanner input1 = new Scanner(System.in);//每循环一次询问是否继续或中断System.out.println("中断修改请输 1 ,否则输入其他数");flag = input1.nextLine();if (flag.equals("1")) {break;}}}public static void deleteGrade() {// 删除学生分数信息 String flag = null;String [] nameTemp= new String [name.length];int [] gradeTemp= new int [grade.length];int index=0;while (true) {boolean flag1=false;Scanner input = new Scanner(System.in);System.out.println("请输入需删除的学生姓名");String name1 = input.nextLine();for (int i = 0; i < name.length; i++) {//将对应的名字和成绩置空if(name1.equals(name[i])){name[i]=null;grade[i]=0;flag1=true;}}if(flag1==false){ //提示输入姓名是否错误System.out.println("无法查找到此名字!!!");}Scanner input1 = new Scanner(System.in); //每循环一次询问是否继续或中断System.out.println("中断修改请输 1 ,否则输入其他数");flag = input1.nextLine();if (flag.equals("1")) {break;}}for (int i = 0; i < name.length; i++) { //将数组name和grade非空元素赋给Tempif (name[i]!=null) {nameTemp[index]=name[i];gradeTemp[index]=grade[i];index++;}}for (int i = 0; i < name.length; i++) { //将Temp全部元素赋给数组name和gradename[i]=nameTemp[i];grade[i]=gradeTemp[i];}}public static void scanGrade() {// 查询学生信息while (true) {System.out.print("A.查询学生分数 ");System.out.print("B.查询所有学生分数 ");System.out.println("C.返回上一级 ");Scanner input=new Scanner(System.in);System.out.println("请输入操作:");String operate =input.nextLine();switch (operate) { //判断操作case "A":case "a":scanOne();break;case "B":case "b":scanAll();break;case "C":case "c":return;default:System.out.println("操作错误,系统返回上级菜单!!!");break;}}}public static void scanOne() {// 查询学生分数boolean flag1 =false;Scanner input=new Scanner(System.in);System.out.println("请输入要查询的姓名");String name1 =input.nextLine();for (int i = 0; i < name.length; i++) { //打印对应名字对应的分数if (name1.equals(name[i]) ) {System.out.print("姓名:"+name[i]+" ");System.out.println("成绩:"+grade[i]);flag1=true;}}if(flag1==false){ //提示输入姓名是否错误System.out.println("无法查找到此名字!!!");}}public static void scanAll() {// 查询所有学生分数for (int i = 0; i < grade.length; i++) { //遍历System.out.print("姓名:"+name[i]+" ");System.out.println("成绩:"+grade[i]);}}}

由于现阶段还没接触到 javaoo 及 数据库 等,手中能使用的东西很少,只能用已学到的基础语法及函数来完成这个题目,所以还有很多可以改进和完善的地方。

这次编写过程中,遇到了一些小难点,首先是 用户名、密码、学生姓名、学生成绩 这4个数组 的声明位置和参数传递的问题。如果 声明位置不恰当 或 参数传输有误,在学生信息菜单返回上级菜单之后,再进入到学生信息菜单时,会出现学生信息被初始化的问题。这里,我们可以将这四个数组都声明在main函数中,但全程很多地方需要同时传入和返回四个数组,略显麻烦。所以,我们也可以将他们声明为全局变量,即在class中声明,与各函数同级,这样就可以省去不少函数参数传递的过程。

当然在以后接触了数据库之后,会简单许多。

最后是显示 “无法查找到此名字!!!” 和 “用户已满,无法进行输入!!!” 的问题,这里需要使用到我在之前博客中提到的“开关”思想,即本程序中flag、flag1的使用。在以后的编程之路上,“开关”思想是必不可少的,望同为java学习者的各位务必掌握。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。