这是自己初步写的java代码
说实话比较基础简单,做的也比较随便
一:设计题目
学生成绩管理系统
二:设计目的
巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力。
三:设计分析
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;
}
五:具体功能实现
- 数据存储
本系统的存储主要是通过学生类的数组进行存储
- 本系统一共有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):");
- 新增学生
先对学生进行初始化,然后输入学生的姓名,专业,学号,第一门课程,第一门课程的成绩,第二门课程,第二门课程的成绩,第三门课程,第三门课程对应的成绩,每次输入都以回车结束。全部输入完成及成功录入信息。
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 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 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();
}
}
- 公示班级信息
对所有学生的专业进行遍历,找到所有不同的专业,存储在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;
}
- 展示全部学生信息
遍历所有学生信息,进行输出。
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;
}
}