学生成绩管理系统(JAVA课程设计)_第1页
学生成绩管理系统(JAVA课程设计)_第2页
学生成绩管理系统(JAVA课程设计)_第3页
学生成绩管理系统(JAVA课程设计)_第4页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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("-&

3、quot;);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

4、.显示学生成绩信息; ");System.out.println("3.计算学生平均成绩; ");System.out.println("4.显示最高成绩学生信息; ");System.out.println("5.查找学生信息; ");System.out.println("6.修改学生信息; ");System.out.println("7.按成绩排序学生信息; ");System.out.println("8.学生信息库扩容; ");9.学生成绩分段输出; &

5、quot;);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);您选择了显示所有学生成绩信息。");break;case 3:学生平均成绩信息如下:");平均成绩 :="+mis.Pingfen(stu);一共有学生人数为: &qu

6、ot;+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.sort(stu);/mis.print(sort1);break;case 8:学生信息

7、扩容进行中 .");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= false;Scanner sc = new Sca

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

9、象 ,调用带参数的,实际增加anum.id= tmp;请输入学生姓名 :");= sc.next();请输入学生成绩 :");anum.chengji =sc.nextInt();学生数组已满,要扩容!");public Student Topchengji(Student a)/查找成绩最高的学生intmax = a0.chengji;int id=0;for(int i = 1; i < Student.sumstu; i+)if(ai.chengji > max)max = ai.chengji;id=i;return aid;

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

11、c Student search (String name,Student a) /按姓名去查找学生int searchid = -1;for (int i=0;i<Student.sumstu;i+)if (name.equals() 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;i&l

12、t;Student.sumstu;i+)/将成绩分段输出if(ai.chengji < 60)b+;成绩小于 60 的学生 ");ai.print();if(ai.chengji >= 60&& ai.chengji < 70)c+;成绩在 60-70 的学生 ");ai.print();if(ai.chengji >= 70 && ai.chengji <80) d+;成绩在 70-80 的学生 ");ai.print();if(ai.chengji >= 80 && ai.ch

13、engji < 90)e+;成绩在 80-90 的学生 ");ai.print();if(ai.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 c

14、hange(String name,Student a) /修改给定名字的学生成绩Student tmp = search (name,a);if (tmp=null) 没有符合条件的学生 ");return null;else 请输入修改成绩 :");Scanner sc = new Scanner(System.in);tmp.chengji =sc.nextInt();return tmp;double Pingfen(Student a)/求所有学生的成绩平均分double sum=0;for (int i=0;i<Student.sumstu;i+)sum

15、= sum+ai.chengji;return sum/Student.sumstu;public Studentsort(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();sortstui=stu1i;for( i

16、= 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 Studentkourong(Student stu1)/扩容,增加

17、 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;i<Student.sumstu;i+)ai.pri

18、nt();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+;/每创建一个对象时 ,学生数量加 1;void SetChengji(int n )chengji=n;String Getname()/获取学生姓名return name;int Getchengji()/获取学生成绩return chengji;void print( )/ 输出一个学生的信息的方法.姓名 :"+name+"成绩 :"+chen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论