学生成绩管理系统(JAVA课程设计).doc

上传人:scccc 文档编号:13838212 上传时间:2022-01-24 格式:DOC 页数:20 大小:567.50KB
返回 下载 相关 举报
学生成绩管理系统(JAVA课程设计).doc_第1页
第1页 / 共20页
学生成绩管理系统(JAVA课程设计).doc_第2页
第2页 / 共20页
学生成绩管理系统(JAVA课程设计).doc_第3页
第3页 / 共20页
学生成绩管理系统(JAVA课程设计).doc_第4页
第4页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学生成绩管理系统(JAVA课程设计).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统(JAVA课程设计).doc(20页珍藏版)》请在三一文库上搜索。

1、Java 课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询。4、 计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、 学号、姓名 排序 列出学生信息 。6、能统计学生成绩分数段的分布( 60 以下、 6070、7080、8090、90100)情况,并输出。7、用文件保存数据,以便反复使用。二、 概要设计(一)算法的流程图录入学生成列出绩学信息生成绩信息显示学生信息按成按学绩排号排序列序列出学出学生信生信息息开始编译运行字节码文件开始计显算示学最按 姓生高

2、平成名 排均绩序 列成学出 学绩生生 信息查修学学找改生生学学信成生生息绩信信库分息息扩数容段信的退出三、详细设计学生成绩管理系统代码设计:classMytestpublic static void main(String args)throws IOExceptionint select;select = 1;Student stu= new Student10;StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System.out.println();System.out.println(-);Syste

3、m.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.println(3.计算学生平均成绩; );System.out.println(4.显示最高成绩学生信息; );System.ou

4、t.println(5.查找学生信息; );System.out.println(6.修改学生信息; );System.out.println(7.按成绩排序学生信息; );System.out.println(8.学生信息库扩容; );9.学生成绩分段输出; );0.退出; );请输入数字选项 (0-9):);select =sc.nextInt();/判断输入, 0 退出if(select=0 & select=9)switch(select)case 1:mis.Inputstu(stu);break;case 2:所有学生成绩信息如下:);mis.print(stu);您选择了显示所有

5、学生成绩信息。);break;case 3:学生平均成绩信息如下:);平均成绩 :=+mis.Pingfen(stu);一共有学生人数为: +Student.sumstu);break;case 4:最高成绩学生信息如下:);mis.Topchengji(stu).print();break;case 5:输入需要查找的学生姓名:);mis.search(stu);break;case 6:输入需要修改的学生姓名:);String tmp = sc.next();mis.change(tmp,stu);break;case 7:排序后学生信息如下: );Student sort1=mis.so

6、rt(stu);/mis.print(sort1);break;case 8:学生信息扩容进行中 .);stu = mis.kourong(stu);学生信息扩容完成 .);break;case 9:mis.test(stu);break;case 0:System.exit(0);else输入错误,请重新输入!);continue;class StudentMis public StudentMis() public void Inputstu(Student a)/增加学生对象 ,通过键盘接受相关资料throws IOExceptionString tmp ;boolean flat= f

7、alse;Scanner sc = new Scanner(System.in);int num= Student.sumstu;请输入学生的学号 :);tmp = sc.next();do/ 检查学号的唯一性for (int i=0;iStudent.sumstu;i+)if (tmp.equals(ai.id) 该学号已存在! );请输入学生的学号 :);tmp = sc.next();flat = true;else flat=false;/学号不重复while (flat);if(numa.length)/判断是否要扩容anum =new Student(tmp);/ 可以增加学生对象

8、 ,调用带参数的,实际增加anum.id= tmp;请输入学生姓名 :);anum.name= sc.next();请输入学生成绩 :);anum.chengji =sc.nextInt();学生数组已满,要扩容!);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 searc

9、hid = -1;Scanner sc = new Scanner(System.in);tmpname = sc.next();/ 按输入的姓名去查找for (int i=0;iStudent.sumstu;i+)if (tmpname.equals(ai.name) ai.print();searchid =i;if (searchid = -1)没有符合条件的学生 );return null;else return asearchid;public Student search (String name,Student a) /按姓名去查找学生int searchid = -1;for

10、(int i=0;iStudent.sumstu;i+)if (name.equals(ai.name) ai.print();searchid =i;if (searchid = -1)没有符合条件的学生 );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

11、.chengji = 90 & ai.chengji = 100)f+;成绩在 90-100 的学生 );ai.print();成绩在 60 的学生总数为 t+b);成绩在 60-70 的学生总数为 t+c);成绩在 70-80 的学生总数为 t+d);成绩在 80-90 的学生总数为 t+e);成绩在 90-100 的学生总数为 t+f);public Student change(String name,Student a) /修改给定名字的学生成绩Student tmp = search (name,a);if (tmp=null) 没有符合条件的学生 );return null;els

12、e 请输入修改成绩 :);Scanner sc = new Scanner(System.in);tmp.chengji =sc.nextInt();return tmp;double Pingfen(Student a)/求所有学生的成绩平均分double sum=0;for (int i=0;iStudent.sumstu;i+)sum = sum+ai.chengji;return sum/Student.sumstu;public Studentsort(Student stu1)/按成绩排序, 放到新的数组中Student sortstu =new StudentStudent.su

13、mstu;/声明新数组int i,j,k;Student temp =new Student();for (i = 0;i Student.sumstu; i+)/ 将要排序的数组拷贝到新数组,创建对象时调用不带参数的构造函数,学生人数不增加sortstui= new Student();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

14、;sortstui = sortstuk;sortstuk = temp;for ( i = 0;i Student.sumstu; i+)sortstui.print();/输出打印return sortstu;public Studentkourong(Student stu1)/扩容,增加 20人Student newstu =new Studentstu1.length+20;/声明新数组int i,j,k;Student temp =new Student();for (i = 0;i stu1.length; i+)/将原数组拷贝到新数组,创建对象时调用不带参数的构造函数,学生人数

15、不增加newstui= new Student();newstui=stu1i;stu1=newstu;return stu1;void print(Student a ) /输出学生数组中每个学生的信息for (int i=0;iStudent.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=ma

16、n;age=18;chengji=0;/每创建一个对象时 ,学生数量加 1;public Student(String tmp)id=tmp;name=aa;sex=man;age=18;chengji=0;sumstu+;/每创建一个对象时 ,学生数量加 1;void SetChengji(int n )chengji=n;String Getname()/获取学生姓名return name;int Getchengji()/获取学生成绩return chengji;void print( )/ 输出一个学生的信息的方法.姓名 :+name+成绩 :+chengji);四、调试分析1. 源代

17、码编写完成并编译成功。2. 程序开始界面。3. 录入学生信息。4. 显示学生成绩信息。5. 计算学生平均成绩。6. 显示最高成绩学生信息 .7.查找学生信息。8.修改学生信息。9.按成绩排序学生信息。10.学生信息库扩容。11.学生成绩分段输出。12.程序结束。课程设计总结学习 JAVA以来,感觉它从来就不是一门容易的课, 书本有太多太多的知识需要我们去学习,去掌握。书本的内容不能说很难,但的确很琐碎,需要我们花更多的时间去理解,可惜的是,愿意花时间在这上面的人太少了,我也自认在Java 上并没有花太多的时间去研究。对于这次的课程设计,老师给的时间很充裕,但还是有很多同学敷衍了事,我们知道这的

18、确是我们的错,我们并没有认真的对待这次的作业。在完成这次作业之前,我把课本的知识有认真的看过一遍,感觉只有系统地理解之前的知识,才能把这次的作业做得更好。这次的作业,花了我很长的时间去准备,不过我觉得很值得。在编写源代码的时候,难免遇到了许许多多的问题和错误,是我不得不去从书本中寻找答案或向其他人请教, 这让我收获颇丰。 这次的作业,考的不仅仅是测试我们对书本知识的掌握情况,更是考我们在处理问题时的态度。一次又一次的错误并不能阻挡我们寻求正确的心,一次又一次的尝试更体现我们的决心。从中,我明白了当我们处理事情时,要有耐心和细心,当然也要有丰富的知识做基础,我们唯有不断学习,才能更好地充实自己,使自己更加进步。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1