1、Java课程设计 课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。2、实现同学的学号、性别、成绩等信息的录入、编辑 3、提供对学号或姓名,进行成绩或所有信息的查询。4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息。6、能统计学生成绩分数段的分布(60以下、6070、7080、8090、90100)情况,并输出。7、用文件保存数据,以便反复使用。二、 概要设计 开始(一)算法的流程图编译运行字节码文件 开始显示学生信息证查找学生信息修改学生信息显示最高成绩学生信息录入学生成绩信息计算学生平均成绩学生信息库扩容信息学生成绩分数
2、段的分布情况列出学生成绩信息按成绩排序列出学生信息按学号排序列出学生信息按姓名排序列出学生信息 退出三、详细设计学生成绩管理系统代码设计:import java.util.*;import java.lang.*;import java.io.*;class Mytestpublic static void main(String args) throws IOExceptionint select;select = 1; Student stu= new Student10; StudentMis mis=new StudentMis(); Scanner sc = new Scanner(
3、System.in);System.out.println();System.out.println(-);System.out.println(* *);System.out.println( 欢迎进入学生成绩管理系统 );System.out.println(* *);System.out.println(-);while(true)System.out.println( );System.out.println( 请选择您的操作:);System.out.println( 1.录入学生成绩信息;);System.out.println( 2.显示学生成绩信息;);System.out.p
4、rintln( 3.计算学生平均成绩;);System.out.println( 4.显示最高成绩学生信息;);System.out.println( 5.查找学生信息;);System.out.println( 6.修改学生信息;);System.out.println( 7.按成绩排序学生信息;);System.out.println( 8.学生信息库扩容;);System.out.println( 9.学生成绩分段输出;);System.out.println( 0.退出;);System.out.println( 请输入数字选项(0-9): );select =sc.nextInt()
5、;System.out.println();/判断输入,0退出if(select=0 & select=9)switch(select)case 1: mis.Inputstu(stu); break;case 2:System.out.println( 所有学生成绩信息如下:);mis.print(stu);System.out.println(您选择了显示所有学生成绩信息。);break;case 3:System.out.println( 学生平均成绩信息如下:);System.out.println(平均成绩:=+mis.Pingfen(stu);System.out.println(
6、一共有学生人数为:+Student.sumstu);break;case 4:System.out.println( 最高成绩学生信息如下:);mis.Topchengji(stu).print();break;case 5:System.out.print( 输入需要查找的学生姓名:);mis.search(stu);break;case 6:System.out.print( 输入需要修改的学生姓名:);String tmp = sc.next();mis.change(tmp,stu);break;case 7:System.out.println( 排序后学生信息如下:);Studen
7、t sort1=mis.sort(stu);/mis.print(sort1);break;case 8:System.out.println( 学生信息扩容进行中.);stu = mis.kourong(stu);System.out.println( 学生信息扩容完成.);break; case 9: mis.test(stu); break;case 0:System.exit(0);elseSystem.out.println(输入错误,请重新输入!); continue; class StudentMis public StudentMis() public void Inputst
8、u(Student a) /增加学生对象,通过键盘接受相关资料throws IOException String tmp ; boolean flat= false; Scanner sc = new Scanner(System.in); int num= Student.sumstu; System.out.print( 请输入学生的学号:); tmp = sc.next(); do /检查学号的唯一性 for (int i=0;iStudent.sumstu;i+) if (tmp.equals(ai.id) System.out.println(该学号已存在!); System.out
9、.print( 请输入学生的学号:); tmp = sc.next(); flat = true; else flat=false; /学号不重复 while (flat); if(numa.length)/判断是否要扩容 anum =new Student(tmp); /可以增加学生对象,调用带参数的,实际增加 anum.id= tmp; System.out.print( 请输入学生姓名:);anum.name = sc.next();System.out.print( 请输入学生成绩:);anum.chengji =sc.nextInt();System.out.println(); e
10、lse System.out.println(学生数组已满,要扩容!);public Student Topchengji(Student a) /查找成绩最高的学生 intmax = a0.chengji; int id=0; for(int i = 1; i max) max = ai.chengji; id=i; return aid; public Student search (Student a) /查找学生 String tmpname; int searchid = -1; Scanner sc = new Scanner(System.in); tmpname = sc.ne
11、xt(); /按输入的姓名去查找 for (int i=0;iStudent.sumstu;i+) if (tmpname.equals(ai.name) ai.print(); searchid =i; if (searchid = -1) System.out.println(没有符合条件的学生); return null; else return asearchid; public Student search (String name,Student a) /按姓名去查找学生 int searchid = -1; for (int i=0;iStudent.sumstu;i+) if
12、(name.equals(ai.name) ai.print(); searchid =i; if (searchid = -1) System.out.println(没有符合条件的学生); return null; else return asearchid; public void test(Student a) int b = 0,c = 0,d = 0,e = 0,f = 0; for(int i = 0;iStudent.sumstu;i+) /将成绩分段输出 if(ai.chengji = 60& ai.chengji = 70 & ai.chengji = 80 & ai.ch
13、engji = 90 & ai.chengji = 100) f+; System.out.println(成绩在90-100的学生); ai.print(); System.out.println(成绩在60的学生总数为t+b); System.out.println(成绩在60-70的学生总数为t+c); System.out.println(成绩在70-80的学生总数为t+d); System.out.println(成绩在80-90的学生总数为t+e); System.out.println(成绩在90-100的学生总数为t+f); public Student change(Stri
14、ng name,Student a) /修改给定名字的学生成绩 Student tmp = search (name,a); if (tmp=null) System.out.println(没有符合条件的学生); return null; else System.out.print( 请输入修改成绩:); Scanner sc = new Scanner(System.in);tmp.chengji =sc.nextInt(); return tmp; double Pingfen(Student a) /求所有学生的成绩平均分double sum=0;for (int i=0;iStude
15、nt.sumstu;i+) sum = sum+ai.chengji; return sum/Student.sumstu;public Student sort(Student stu1) /按成绩排序,放到新的数组中 Student sortstu =new StudentStudent.sumstu; /声明新数组 int i,j,k; Student temp =new Student(); for (i = 0;i Student.sumstu; i+) /将要排序的数组拷贝到新数组,创建对象时调用不带参数的构造函数,学生人数不增加 sortstui= new Student();
16、sortstui=stu1i; for ( i = 0;i Student.sumstu-1; i+ ) /排序 k = i; for ( j = i ; j Student.sumstu; j+ ) if ( sortstuj.chengji sortstuk.chengji) k = j; temp = sortstui; sortstui = sortstuk; sortstuk = temp; for ( i = 0;i Student.sumstu; i+) sortstui.print();/输出打印 return sortstu;public Student kourong(St
17、udent stu1) /扩容,增加20人 Student newstu =new Studentstu1.length+20; /声明新数组 int i,j,k; Student temp =new Student(); for (i = 0;i stu1.length; i+) /将原数组拷贝到新数组,创建对象时调用不带参数的构造函数,学生人数不增加 newstui= new Student(); newstui=stu1i; stu1=newstu; return stu1;void print(Student a ) /输出学生数组中每个学生的信息 for (int i=0;iStud
18、ent.sumstu;i+) ai.print(); class Student/创建一个Student类String id;String name;String sex;int age;int chengji; publicstatic int sumstu=0; /类变量,统计学生的数量public Student()id=00;name=aa;sex=man;age=18;chengji=0; /每创建一个对象时,学生数量加1;public Student(String tmp)id=tmp;name=aa;sex=man;age=18;chengji=0;sumstu+; /每创建一个
19、对象时,学生数量加1;void SetChengji(int n )chengji=n; String Getname()/获取学生姓名 return name; int Getchengji()/获取学生成绩 return chengji; void print( ) /输出一个学生的信息的方法. System.out.println(姓名:+name+ 成绩:+chengji); 四、 调试分析1.源代码编写完成并编译成功。2.程序开始界面。3.录入学生信息。4.显示学生成绩信息。5.计算学生平均成绩。6.显示最高成绩学生信息.7.查找学生信息。8.修改学生信息。9.按成绩排序学生信息。1
20、0.学生信息库扩容。11.学生成绩分段输出。12.程序结束。 课程设计总结学习JAVA以来,感觉它从来就不是一门容易的课,书本有太多太多的知识需要我们去学习,去掌握。书本的内容不能说很难,但的确很琐碎,需要我们花更多的时间去理解,可惜的是,愿意花时间在这上面的人太少了,我也自认在 Java上并没有花太多的时间去研究。对于这次的课程设计,老师给的时间很充裕,但还是有很多同学敷衍了事,我们知道这的确是我们的错,我们并没有认真的对待这次的作业。在完成这次作业之前,我把课本的知识有认真的看过一遍,感觉只有系统地理解之前的知识,才能把这次的作业做得更好。这次的作业,花了我很长的时间去准备,不过我觉得很值
21、得。在编写源代码的时候,难免遇到了许许多多的问题和错误,是我不得不去从书本中寻找答案或向其他人请教,这让我收获颇丰。这次的作业,考的不仅仅是测试我们对书本知识的掌握情况,更是考我们在处理问题时的态度。一次又一次的错误并不能阻挡我们寻求正确的心,一次又一次的尝试更体现我们的决心。从中,我明白了当我们处理事情时,要有耐心和细心,当然也要有丰富的知识做基础,我们唯有不断学习,才能更好地充实自己,使自己更加进步。 5771001803090012095 5790368228596330825771001803090012386 5761373997357606965771001803090013594
22、 5780775799025155125771001803090012387 5771649826018180515771001803090012138 5721311921589183265771001803090012359 5790368223610760535771001803090012356 5761352861437917425771001803090012355 57508786970469327917088100343355274 10122994432583337917088100343355275 10186673293883200817088100343356107 1
23、0158115250150052217088100343356108 10100018005987173217088100343354295 10107419414268701717088100343356184 10187866086962880217088100343356185 10177583117408667417088100343356109 10108601437357284617088100343356110 10115220721601491617088100343355237 10102704160570270917088100343355238 10122936486142541417088100343356169 10186220440263571817088100343354928 101760654089788804
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100