简单学生管理系统

这是自己初步写的java代码

说实话比较基础简单,做的也比较随便

一:设计题目

学生成绩管理系统

二:设计目的

巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力。

三:设计分析

1.问题描述

此项目是学生成绩管理系统,对学生的信息进行录入,并且对学生成绩进行管理和分析。

本系统的主要用户就是老师,成员是学生,老师可以把学生信息录入电脑,可进行增添改查学生的信息、课程和成绩。更可以按照班级公布学生信息。

  1. 功能需求

基本信息的管理模块:在系统中实现对学生信息的增添改查等操作,可以查看基本信息和成绩信息。

四:概念结构设计

此项目主要有两个主体,分别是学生和课程。学生有四个属性,分别是姓名,学号,专业和课程及对应的成绩。

设有两个类,一个类是学生,另一个类是课程,课程中有String型的学科名称和int型的成绩。而学生里有String型的名字、学号和专业,还有课程类的数组,用来存放3个课程和课程对应的成绩。

public class Student {

public String number;

public String name;

public String major;  //利用专业代指班级

public  Kecheng[] kecheng;

}

public class Kecheng {

public String xueke;

public int chengji;

}

五:具体功能实现

  1. 数据存储

本系统的存储主要是通过学生类的数组进行存储

  1. 本系统一共有7个功能。

 System.out.println("=======欢迎进入学生信息管理系统=======");

            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("8.退出该系统");

        System.out.println("请选择(1-8):");

  1. 新增学生

先对学生进行初始化,然后输入学生的姓名,专业,学号,第一门课程,第一门课程的成绩,第二门课程,第二门课程的成绩,第三门课程,第三门课程对应的成绩,每次输入都以回车结束。全部输入完成及成功录入信息。

public static void Addstu() { //添加学生

ID++;

stu[ID] = new Student("Jack","软工","202101","数学",100,"英语",80,"语文",90);//先进行初始化

System.out.println(stu[ID].kecheng[0].xueke);

System.out.println("请输入第"+(ID+1)+"个学生的姓名,专业,学号,课程(一个学科加一门成绩,共3学科)");

Scanner scanner=new Scanner(System.in);

//try {

//局部变量的初始化

String nu1 = "";

String na1 = "";

String ma1 = "";

String mu1 = "";

String mu2 = "";

String mu3 = "";

int achievement1 =0;

int achievement2 =0;

int achievement3 =0;

na1 = scanner.nextLine();//姓名

ma1 = scanner.nextLine();//专业

nu1 = String.valueOf(scanner.nextLine());//学号

mu1 = scanner.nextLine();//学科1

achievement1 =Integer.parseInt(scanner.nextLine());//学科1成绩

mu2 = scanner.nextLine();//学科2

achievement2 =Integer.parseInt(scanner.nextLine());//学科2成绩

mu3 = scanner.nextLine();//学科3

achievement3 =Integer.parseInt(scanner.nextLine());//学科3成绩

stu[ID].name=na1;

stu[ID].major=ma1;

stu[ID].number=nu1;

stu[ID].kecheng[0].xueke=mu1;

stu[ID].kecheng[0].chengji =achievement1;

stu[ID].kecheng[1].xueke =mu2;

stu[ID].kecheng[1].chengji =achievement2;

stu[ID].kecheng[2].xueke =mu3;

stu[ID].kecheng[2].chengji =achievement3;

}

  1. 修改学生信息

先选择要修改学生的哪一项信息,然后输入学生的学号,再输入要改成什么的,一定要输入正确的学号,不然就修改不了。

修改成绩的时候,要先输入学生的学号,再输入需要更改的课程名称,最后输入此课程成绩的最终成绩。

public static void myUpdate(Student [] stu){ //修改学生信息

int choose=0;

    do {

        System.out.println("******************************");

        System.out.println("=======欢迎进入学生信息修改系统=======");

        System.out.println("1.修改学生姓名");

        System.out.println("2.修改学生专业");

        System.out.println("3.修改学生课程");

        System.out.println("4.修改学生课程成绩");

        System.out.println("5.退出该系统");

        System.out.println("请选择(1-5):");

        

        Scanner scanner=new Scanner(System.in);

        choose=scanner.nextInt();

        String xuehao="";

        int temp=0;

        System.out.println("******************************");

        switch (choose) {

        case 1: //修改学生姓名

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生姓名");

            String xingming=scanner.next();

            stu[temp].name=xingming;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 2: //修改学生专业(班级)

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生专业");

            String major=scanner.next();

            stu[temp].major=major;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 3: //修改学生课程

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生课程");

            String school=scanner.next();

            System.out.println("请输入要更改后的学生新课程");

            String nschool=scanner.next();

            for(int i=0;i<3;i++)

            {

             if(school.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].xueke=nschool;

             System.out.println("修改成功");

}

            }

            break;

         }

            else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 4: //修改学生课程成绩

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         System.out.println("请输入要更改的学生课程");

            String schoolchengji=scanner.next();

            System.out.println("请输入要更改后的学生课程成绩");

            int nschoolchengji=scanner.nextInt();

            for(int i=0;i<3;i++)

            {

             if(schoolchengji.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].chengji=nschoolchengji;

             System.out.println("修改成功");

}

            }

            break;

        case 5:

          System.out.println("您已成功退出查询系统,欢迎您再次使用!");

             break;

        default:

            break;

        }

    } while (choose!=5);

}

  1. 删除学生信息

本系统使用的学生类的数组来存储信息,所以删除学生信息,则是让此学生的后面的学生覆盖,以达成删除学生信息的功能。

public static void myDel(Student [] stu) { //删除学生信息

System.out.println("请你输入需要删除的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.nextLine();

for(int j=0;j<ID;j++) {

if(n.compareTo(stu[j].number)==0)

{

for(int i=j;i<ID;i++)

{

stu[i].name=stu[i+1].name;

stu[i].major=stu[i+1].major;

stu[i].number=stu[i+1].number;

stu[i].kecheng=stu[i+1].kecheng;

}

}

}

 ID--;

}

  1. 查询学生信息

输入要查询的学生学号,若查询成功则会展示此学生的全部信息。

public static void myList(Student [] stu) { //查询学生

System.out.println("请你输入需要查询的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.next();

for(int i=0;i<ID+1;i++)

{

if(n.compareTo(stu[i].number)==0)

{

System.out.println("姓名"+":"+stu[i].name);

System.out.println("专业"+":"+stu[i].major);

System.out.println("学号"+":"+stu[i].number);

System.out.print(stu[i].kecheng[0].xueke);

System.out.println(stu[i].kecheng[0].chengji);

System.out.print(stu[i].kecheng[1].xueke);

System.out.println(stu[i].kecheng[1].chengji);

System.out.print(stu[i].kecheng[2].xueke);

System.out.println(stu[i].kecheng[2].chengji);

}

}

}

  1. 显示学生成绩

public static void PrintChengji(Student [] stu) { ///公示成绩

for(int j=0;j<ID+1;j++) {

System.out.print("姓名"+":"+stu[j].name+" ");

for(int i=0;i<3;i++) {

System.out.print(stu[j].kecheng[i].xueke+':'+stu[j].kecheng[i].chengji+" ");

}

System.out.println();

}

}

  1. 公示班级信息

对所有学生的专业进行遍历,找到所有不同的专业,存储在school数组里,代表不同的班级,用classperson二维数组来存储每个班都有哪些同学。再逐一输出。

public static void PrintClass(Student [] stu) {   //公示班级信息

String school[]=new String[5]; //存放班级

int classperson[][]=new int[5][3]; //哪个班有哪些人

school[0]=stu[0].major; //初始班级

int temp=0; //暂存班级其中一个学生的学号

int classshuliang=0; //班级总共数量

int geshu[]=new int[3]; //对应班级的人数

for(int i=0;i<ID+1;i++) //寻找出全部班级,并且找到每个班级有哪些同学

{

temp=Compare(stu,school,stu[i].major);

if(temp!=100)

{

classperson[temp][geshu[temp]]=i;

geshu[temp]++;

}

else

{

classshuliang++;

school[classshuliang]=stu[i].major;

classperson[classshuliang][geshu[classshuliang]]=i;

geshu[classshuliang]++;

}

}

for(int t=0;t<classshuliang+1;t++) //显示有哪些班级,以及学生和课程

{

System.out.println(school[t]+" ");

for(int h=0;h<geshu[t];h++)

{

System.out.print((h+1)+"."+stu[classperson[t][h]].name+" ");

for(int y=0;y<3;y++)

{

System.out.print(stu[classperson[t][h]].kecheng[y].xueke+" ");

}

System.out.println();

}

System.out.println();

}

}

public static int Compare(Student [] stu,String [] school,String major) { //对比进入的学生的专业,有没有班级

for(int i=0;i<school.length;i++) {

if(major.equals(school[i])) {

return i;

}

}

return 100;

}

  1. 展示全部学生信息

遍历所有学生信息,进行输出。

public static void PrintStudent(Student [] stu) { //展示全部学生信息

for(int i=0;i<ID+1;i++)

{

System.out.print("姓名"+":"+stu[i].name+" ");

System.out.print("专业"+":"+stu[i].major+" ");

System.out.print("学号"+":"+stu[i].number+" ");

System.out.print(stu[i].kecheng[0].xueke);

System.out.print(stu[i].kecheng[0].chengji+" ");

System.out.print(stu[i].kecheng[1].xueke);

System.out.print(stu[i].kecheng[1].chengji+" ");

System.out.print(stu[i].kecheng[2].xueke);

System.out.println(stu[i].kecheng[2].chengji+" ");

}

}

六:总结

经过了一个星期的构架和设计以及代码编辑,基本完成了学生管理系统的设计与实现。在这个系统中,可以实现有计算机代替人工执行一系列诸如对学生基本信息,成绩信息的增添改查等操作,减轻管理人员的工作负担,同时实现管理工作的规范化、效率化、国际化。

在设计过程中,我首先考虑到了学生会有多个不同的课程以及对应的成绩,于是乎写了学生和课程两个类。本来想用单链表来进行存储的,但是由于java基础知识过于浅薄,类的新建与使用花了很多天才完成,于是只能使用数组来进行存储,这是个遗憾。

总之,本次设计是对自己以前所学的知识进行系统的综合实践,让自己收获匪浅,更加深刻的理解了课程知识,深刻的知道学习不光有学,还要实践,代码要多敲才能熟能生巧,才能记忆深刻。在本次系统的完成中,离不开师兄的耐心指导和帮助,基本上完成了这次的初衷。

七:代码总览

package swpu.student;

import java.util.Scanner;

public class Instudent {

public static int ID=-1; //学生总数

public static int max=11; //学生最大个数

static Student stu[]=new Student[max]; //以数组的形式存储学生信息

public static void main(String[] args) { //主函数

//学生成绩初始化

stu[0] = new Student("Jack","软工","1","英语",80,"数学",60,"体育",100);

stu[1] = new Student("Rose","软工","2","英语",80,"数学",60,"体育",100);

stu[2] = new Student("John","物联网工程","3","英语",80,"数学",60,"体育",100);

stu[3] = new Student("Andi","物联网工程","4","英语",80,"数学",60,"体育",100);

stu[4] = new Student("Mike","电工","5","英语",80,"数学",60,"体育",100);

ID=4;

        Scanner scanner=new Scanner(System.in);

        int choose;

        do {

            System.out.println("******************************");

            System.out.println("=======欢迎进入学生信息管理系统=======");

            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("8.退出该系统");

            System.out.println("请选择(1-8):");

            

            choose=Integer.parseInt(scanner.nextLine());

            System.out.println("******************************");

            switch (choose) {

            case 1:

                Addstu(); //菜单选择1,是新增学生

                break;

            case 2:

                myUpdate(stu);   //菜单选择2,是修改学生

                break;

            case 3:

                myDel(stu);   //菜单选择3,是删除学生

                break;

            case 4:

                myList(stu);   //菜单选择4,是查询学生

                break;

            case 5:

             PrintChengji(stu); //菜单选择5,展示学生成绩

             break;

            case 6:

             PrintClass(stu); //菜单选择6,展示班级信息

             break;

            case 7:

             PrintStudent(stu); //菜单选择7,展示全部学生信息

             break;

            case 8:      //菜单选择8,是退出该系统

             System.out.println("您已成功退出系统,欢迎您再次使用!");

                System.exit(-1);

                break;

            default:

                break;

            }

        } while (choose!=8);

    }

public static void Addstu() { //添加学生

ID++;

stu[ID] = new Student("Jack","软工","202101","数学",100,"英语",80,"语文",90);//先进行初始化

System.out.println(stu[ID].kecheng[0].xueke);

System.out.println("请输入第"+(ID+1)+"个学生的姓名,专业,学号,课程(一个学科加一门成绩,共3学科)");

Scanner scanner=new Scanner(System.in);

//try {

//局部变量的初始化

String nu1 = "";

String na1 = "";

String ma1 = "";

String mu1 = "";

String mu2 = "";

String mu3 = "";

int achievement1 =0;

int achievement2 =0;

int achievement3 =0;

na1 = scanner.nextLine();//姓名

ma1 = scanner.nextLine();//专业

nu1 = String.valueOf(scanner.nextLine());//学号

mu1 = scanner.nextLine();//学科1

achievement1 =Integer.parseInt(scanner.nextLine());//学科1成绩

mu2 = scanner.nextLine();//学科2

achievement2 =Integer.parseInt(scanner.nextLine());//学科2成绩

mu3 = scanner.nextLine();//学科3

achievement3 =Integer.parseInt(scanner.nextLine());//学科3成绩

stu[ID].name=na1;

stu[ID].major=ma1;

stu[ID].number=nu1;

stu[ID].kecheng[0].xueke=mu1;

stu[ID].kecheng[0].chengji =achievement1;

stu[ID].kecheng[1].xueke =mu2;

stu[ID].kecheng[1].chengji =achievement2;

stu[ID].kecheng[2].xueke =mu3;

stu[ID].kecheng[2].chengji =achievement3;

}

public static void myUpdate(Student [] stu){ //修改学生信息

int choose=0;

    do {

        System.out.println("******************************");

        System.out.println("=======欢迎进入学生信息修改系统=======");

        System.out.println("1.修改学生姓名");

        System.out.println("2.修改学生专业");

        System.out.println("3.修改学生课程");

        System.out.println("4.修改学生课程成绩");

        System.out.println("5.退出该系统");

        System.out.println("请选择(1-5):");

        

        Scanner scanner=new Scanner(System.in);

        choose=scanner.nextInt();

        String xuehao="";

        int temp=0;

        System.out.println("******************************");

        switch (choose) {

        case 1: //修改学生姓名

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生姓名");

            String xingming=scanner.next();

            stu[temp].name=xingming;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 2: //修改学生专业(班级)

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生专业");

            String major=scanner.next();

            stu[temp].major=major;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 3: //修改学生课程

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生课程");

            String school=scanner.next();

            System.out.println("请输入要更改后的学生新课程");

            String nschool=scanner.next();

            for(int i=0;i<3;i++)

            {

             if(school.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].xueke=nschool;

             System.out.println("修改成功");

}

            }

            break;

         }

            else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 4: //修改学生课程成绩

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         System.out.println("请输入要更改的学生课程");

            String schoolchengji=scanner.next();

            System.out.println("请输入要更改后的学生课程成绩");

            int nschoolchengji=scanner.nextInt();

            for(int i=0;i<3;i++)

            {

             if(schoolchengji.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].chengji=nschoolchengji;

             System.out.println("修改成功");

}

            }

            break;

        case 5:

          System.out.println("您已成功退出查询系统,欢迎您再次使用!");

             break;

        default:

            break;

        }

    } while (choose!=5);

}

public static void myDel(Student [] stu) { //删除学生信息

System.out.println("请你输入需要删除的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.nextLine();

for(int j=0;j<ID;j++) {

if(n.compareTo(stu[j].number)==0)

{

for(int i=j;i<ID;i++)

{

stu[i].name=stu[i+1].name;

stu[i].major=stu[i+1].major;

stu[i].number=stu[i+1].number;

stu[i].kecheng=stu[i+1].kecheng;

}

}

}

 ID--;

}

public static int Query(Student [] stu,String n) { //查询学生并返回ID

for(int i=0;i<ID+1;i++)

{

if(n.compareTo(stu[i].number)==0)

{

return i;

}

}

return -1;

}

public static void myList(Student [] stu) { //查询学生

System.out.println("请你输入需要查询的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.next();

for(int i=0;i<ID+1;i++)

{

if(n.compareTo(stu[i].number)==0)

{

System.out.println("姓名"+":"+stu[i].name);

System.out.println("专业"+":"+stu[i].major);

System.out.println("学号"+":"+stu[i].number);

System.out.print(stu[i].kecheng[0].xueke);

System.out.println(stu[i].kecheng[0].chengji);

System.out.print(stu[i].kecheng[1].xueke);

System.out.println(stu[i].kecheng[1].chengji);

System.out.print(stu[i].kecheng[2].xueke);

System.out.println(stu[i].kecheng[2].chengji);

}

}

}

public static void PrintStudent(Student [] stu,int num) { //显示学生信息

System.out.println(stu[num].name);

System.out.println(stu[num].major);

System.out.println(stu[num].number);

for(int i=0;i<3;i++) {

System.out.println(stu[num].kecheng[i].xueke+':'+stu[num].kecheng[i].chengji+' ');

}

}

public static void PrintChengji(Student [] stu) { ///公示成绩

for(int j=0;j<ID+1;j++) {

System.out.print("姓名"+":"+stu[j].name+" ");

for(int i=0;i<3;i++) {

System.out.print(stu[j].kecheng[i].xueke+':'+stu[j].kecheng[i].chengji+" ");

}

System.out.println();

}

}

public static void PrintClass(Student [] stu) {   //公示班级信息

String school[]=new String[5]; //存放班级

int classperson[][]=new int[5][3]; //哪个班有哪些人

school[0]=stu[0].major; //初始班级

int temp=0; //暂存班级其中一个学生的学号

int classshuliang=0; //班级总共数量

int geshu[]=new int[3]; //对应班级的人数

for(int i=0;i<ID+1;i++) //寻找出全部班级,并且找到每个班级有哪些同学

{

temp=Compare(stu,school,stu[i].major);

if(temp!=100)

{

classperson[temp][geshu[temp]]=i;

geshu[temp]++;

}

else

{

classshuliang++;

school[classshuliang]=stu[i].major;

classperson[classshuliang][geshu[classshuliang]]=i;

geshu[classshuliang]++;

}

}

for(int t=0;t<classshuliang+1;t++) //显示有哪些班级,以及学生和课程

{

System.out.println(school[t]+" ");

for(int h=0;h<geshu[t];h++)

{

System.out.print((h+1)+"."+stu[classperson[t][h]].name+" ");

for(int y=0;y<3;y++)

{

System.out.print(stu[classperson[t][h]].kecheng[y].xueke+" ");

}

System.out.println();

}

System.out.println();

}

}

public static int Compare(Student [] stu,String [] school,String major) { //对比进入的学生的专业,有没有班级

for(int i=0;i<school.length;i++) {

if(major.equals(school[i])) {

return i;

}

}

return 100;

}

}

package swpu.student;

import java.util.Scanner;

public class Instudent {

public static int ID=-1; //学生总数

public static int max=11; //学生最大个数

static Student stu[]=new Student[max]; //以数组的形式存储学生信息

public static void main(String[] args) { //主函数

//学生成绩初始化

stu[0] = new Student("Jack","软工","1","英语",80,"数学",60,"体育",100);

stu[1] = new Student("Rose","软工","2","英语",80,"数学",60,"体育",100);

stu[2] = new Student("John","物联网工程","3","英语",80,"数学",60,"体育",100);

stu[3] = new Student("Andi","物联网工程","4","英语",80,"数学",60,"体育",100);

stu[4] = new Student("Mike","电工","5","英语",80,"数学",60,"体育",100);

ID=4;

        Scanner scanner=new Scanner(System.in);

        int choose;

        do {

            System.out.println("******************************");

            System.out.println("=======欢迎进入学生信息管理系统=======");

            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("8.退出该系统");

            System.out.println("请选择(1-8):");

            

            choose=Integer.parseInt(scanner.nextLine());

            System.out.println("******************************");

            switch (choose) {

            case 1:

                Addstu(); //菜单选择1,是新增学生

                break;

            case 2:

                myUpdate(stu);   //菜单选择2,是修改学生

                break;

            case 3:

                myDel(stu);   //菜单选择3,是删除学生

                break;

            case 4:

                myList(stu);   //菜单选择4,是查询学生

                break;

            case 5:

             PrintChengji(stu); //菜单选择5,展示学生成绩

             break;

            case 6:

             PrintClass(stu); //菜单选择6,展示班级信息

             break;

            case 7:

             PrintStudent(stu); //菜单选择7,展示全部学生信息

             break;

            case 8:      //菜单选择8,是退出该系统

             System.out.println("您已成功退出系统,欢迎您再次使用!");

                System.exit(-1);

                break;

            default:

                break;

            }

        } while (choose!=8);

    }

public static void Addstu() { //添加学生

ID++;

stu[ID] = new Student("Jack","软工","202101","数学",100,"英语",80,"语文",90);//先进行初始化

System.out.println(stu[ID].kecheng[0].xueke);

System.out.println("请输入第"+(ID+1)+"个学生的姓名,专业,学号,课程(一个学科加一门成绩,共3学科)");

Scanner scanner=new Scanner(System.in);

//try {

//局部变量的初始化

String nu1 = "";

String na1 = "";

String ma1 = "";

String mu1 = "";

String mu2 = "";

String mu3 = "";

int achievement1 =0;

int achievement2 =0;

int achievement3 =0;

na1 = scanner.nextLine();//姓名

ma1 = scanner.nextLine();//专业

nu1 = String.valueOf(scanner.nextLine());//学号

mu1 = scanner.nextLine();//学科1

achievement1 =Integer.parseInt(scanner.nextLine());//学科1成绩

mu2 = scanner.nextLine();//学科2

achievement2 =Integer.parseInt(scanner.nextLine());//学科2成绩

mu3 = scanner.nextLine();//学科3

achievement3 =Integer.parseInt(scanner.nextLine());//学科3成绩

stu[ID].name=na1;

stu[ID].major=ma1;

stu[ID].number=nu1;

stu[ID].kecheng[0].xueke=mu1;

stu[ID].kecheng[0].chengji =achievement1;

stu[ID].kecheng[1].xueke =mu2;

stu[ID].kecheng[1].chengji =achievement2;

stu[ID].kecheng[2].xueke =mu3;

stu[ID].kecheng[2].chengji =achievement3;

}

public static void myUpdate(Student [] stu){ //修改学生信息

int choose=0;

    do {

        System.out.println("******************************");

        System.out.println("=======欢迎进入学生信息修改系统=======");

        System.out.println("1.修改学生姓名");

        System.out.println("2.修改学生专业");

        System.out.println("3.修改学生课程");

        System.out.println("4.修改学生课程成绩");

        System.out.println("5.退出该系统");

        System.out.println("请选择(1-5):");

        

        Scanner scanner=new Scanner(System.in);

        choose=scanner.nextInt();

        String xuehao="";

        int temp=0;

        System.out.println("******************************");

        switch (choose) {

        case 1: //修改学生姓名

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生姓名");

            String xingming=scanner.next();

            stu[temp].name=xingming;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 2: //修改学生专业(班级)

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生专业");

            String major=scanner.next();

            stu[temp].major=major;

            break;

         }

         else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 3: //修改学生课程

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         if(temp!=-1)

         {

         System.out.println("请输入要更改的学生课程");

            String school=scanner.next();

            System.out.println("请输入要更改后的学生新课程");

            String nschool=scanner.next();

            for(int i=0;i<3;i++)

            {

             if(school.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].xueke=nschool;

             System.out.println("修改成功");

}

            }

            break;

         }

            else

         {

         System.out.println("查询不到此学号");

         break;

         }

        case 4: //修改学生课程成绩

         System.out.println("请输入要更改的学生学号");

         xuehao=scanner.next();

         temp=Query(stu,xuehao);

         System.out.println("请输入要更改的学生课程");

            String schoolchengji=scanner.next();

            System.out.println("请输入要更改后的学生课程成绩");

            int nschoolchengji=scanner.nextInt();

            for(int i=0;i<3;i++)

            {

             if(schoolchengji.compareTo(stu[temp].kecheng[i].xueke)==0)

{

             stu[temp].kecheng[i].chengji=nschoolchengji;

             System.out.println("修改成功");

}

            }

            break;

        case 5:

          System.out.println("您已成功退出查询系统,欢迎您再次使用!");

             break;

        default:

            break;

        }

    } while (choose!=5);

}

public static void myDel(Student [] stu) { //删除学生信息

System.out.println("请你输入需要删除的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.nextLine();

for(int j=0;j<ID;j++) {

if(n.compareTo(stu[j].number)==0)

{

for(int i=j;i<ID;i++)

{

stu[i].name=stu[i+1].name;

stu[i].major=stu[i+1].major;

stu[i].number=stu[i+1].number;

stu[i].kecheng=stu[i+1].kecheng;

}

}

}

 ID--;

}

public static int Query(Student [] stu,String n) { //查询学生并返回ID

for(int i=0;i<ID+1;i++)

{

if(n.compareTo(stu[i].number)==0)

{

return i;

}

}

return -1;

}

public static void myList(Student [] stu) { //查询学生

System.out.println("请你输入需要查询的学生学号");

Scanner scanner=new Scanner(System.in);

String n="";

n=scanner.next();

for(int i=0;i<ID+1;i++)

{

if(n.compareTo(stu[i].number)==0)

{

System.out.println("姓名"+":"+stu[i].name);

System.out.println("专业"+":"+stu[i].major);

System.out.println("学号"+":"+stu[i].number);

System.out.print(stu[i].kecheng[0].xueke);

System.out.println(stu[i].kecheng[0].chengji);

System.out.print(stu[i].kecheng[1].xueke);

System.out.println(stu[i].kecheng[1].chengji);

System.out.print(stu[i].kecheng[2].xueke);

System.out.println(stu[i].kecheng[2].chengji);

}

}

}

public static void PrintStudent(Student [] stu,int num) { //显示学生信息

System.out.println(stu[num].name);

System.out.println(stu[num].major);

System.out.println(stu[num].number);

for(int i=0;i<3;i++) {

System.out.println(stu[num].kecheng[i].xueke+':'+stu[num].kecheng[i].chengji+' ');

}

}

public static void PrintStudent(Student [] stu) { //展示全部学生信息

for(int i=0;i<ID+1;i++)

{

System.out.print("姓名"+":"+stu[i].name+" ");

System.out.print("专业"+":"+stu[i].major+" ");

System.out.print("学号"+":"+stu[i].number+" ");

System.out.print(stu[i].kecheng[0].xueke);

System.out.print(stu[i].kecheng[0].chengji+" ");

System.out.print(stu[i].kecheng[1].xueke);

System.out.print(stu[i].kecheng[1].chengji+" ");

System.out.print(stu[i].kecheng[2].xueke);

System.out.println(stu[i].kecheng[2].chengji+" ");

}

}

public static void PrintChengji(Student [] stu) { ///公示成绩

for(int j=0;j<ID+1;j++) {

System.out.print("姓名"+":"+stu[j].name+" ");

for(int i=0;i<3;i++) {

System.out.print(stu[j].kecheng[i].xueke+':'+stu[j].kecheng[i].chengji+" ");

}

System.out.println();

}

}

public static void PrintClass(Student [] stu) {   //公示班级信息

String school[]=new String[5]; //存放班级

int classperson[][]=new int[5][3]; //哪个班有哪些人

school[0]=stu[0].major; //初始班级

int temp=0; //暂存班级其中一个学生的学号

int classshuliang=0; //班级总共数量

int geshu[]=new int[3]; //对应班级的人数

for(int i=0;i<ID+1;i++) //寻找出全部班级,并且找到每个班级有哪些同学

{

temp=Compare(stu,school,stu[i].major);

if(temp!=100)

{

classperson[temp][geshu[temp]]=i;

geshu[temp]++;

}

else

{

classshuliang++;

school[classshuliang]=stu[i].major;

classperson[classshuliang][geshu[classshuliang]]=i;

geshu[classshuliang]++;

}

}

for(int t=0;t<classshuliang+1;t++) //显示有哪些班级,以及学生和课程

{

System.out.println(school[t]+" ");

for(int h=0;h<geshu[t];h++)

{

System.out.print((h+1)+"."+stu[classperson[t][h]].name+" ");

for(int y=0;y<3;y++)

{

System.out.print(stu[classperson[t][h]].kecheng[y].xueke+" ");

}

System.out.println();

}

System.out.println();

}

}

public static int Compare(Student [] stu,String [] school,String major) { //对比进入的学生的专业,有没有班级

for(int i=0;i<school.length;i++) {

if(major.equals(school[i])) {

return i;

}

}

return 100;

}

}

package swpu.student;

public class Student {

public String number;

public String name;

public String major;  //利用专业代指班级

public  Kecheng[] kecheng;

//对象数组初始化,使用构造方法

public Student(String newname,String nmajor,String newnumber,

String nxueke1,int chengji1,String nxueke2,int chengji2,String nxueke3,int chengji3){

number = newnumber;

major =nmajor;

name = newname;

kecheng=new Kecheng[3];

kecheng[0]=new Kecheng();

kecheng[0].xueke=nxueke1;

kecheng[0].chengji=chengji1;

kecheng[1]=new Kecheng();

kecheng[1].xueke=nxueke2;

kecheng[1].chengji=chengji2;

kecheng[2]=new Kecheng();

kecheng[2].xueke=nxueke3;

kecheng[2].chengji=chengji3;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getNumber() {

return number;

}

public void setNumber(String number) {

this.number = number;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值