《Java课程设计--奖学金评定.docx》由会员分享,可在线阅读,更多相关《Java课程设计--奖学金评定.docx(18页珍藏版)》请在优知文库上搜索。
1、第1章课题概述1Ll课题的目的11.2课题的要求11. 2.1系统的性能需求1L2.2系统的功能需求1第2章概要设计21 .1整个程序的模块结构及流程22 .2各个功能模块的描述22. 2.1编辑信息22. 4.2查询信息23. 4.3统计信息22. 4.4获奖信息3第3章程序功能的实现43. 1主要功能模块的实现43. 1.1编辑信息的实现43. 1.2查询信息的实现44. 1.3统计信息的实现73.1.4获奖信息的实现8第4章调试及发现问题的解决H第5章程序测试及分析12第6章总结16参考文献17第1章课题概述本次java课程设计的题目是以本校学生手册中奖学金的评定办法为背景,设计的一个学
2、生奖学金评定系统。Ll课题的目的奖学金管理工作是高校学生管理工作的重要组成部分。高校为鼓励学生在校期间刻苦学习,设立了多种奖学金,同时为了做好奖学金的评审与管理工作,投入了大量的人力、物力和财力。奖学金管理工作特别是评审工作具有涉及面广、工作量大、发生时间相对集中的特点。高校的奖学金评定工作每学年都要开展,传统的评审工作主要是以手工方式进行的,存在着效率地下、容易出错等弊端。因此,实现奖学金评定管理的信息化是十分必要的。1.2课题的要求1.2.1 系统的性能需求由于对系统中学生的基本信息,学习成绩等,不允许随意增加、修改和删除,因此在系统设计中主要是保证系统的可行性,并在保证可行性的前提下满足
3、数据录入的准确性和高效性。1、准确性:为确保数据录入的准确性,系统提出了采取双工录入比较法和多次校对来确保录入数据正确性的策略。2、高效性:系统设计要能高效的完成对学生基本信息和学科成绩进行录入。3、可行性:对学生成绩的录入与管理系统要能够及时对重要的数据进行备份,当数据遭到灾难性的毁坏后能及时重建和恢复。对学生成绩和信息的录入与管理系统是通过信息的正确录入,在系统内进行分析处理输出新的信息并利用反馈信息对相关事物进行有效控制的具有一定特殊功能的人机交互系统。1.2. 2系统的功能需求设计一个奖学金评定系统,该系统要能够进行信息和成绩的录入、修改、删除、查询。具体功能需求如下:1、由于大多数系
4、统操作人员的都是非计算机专业,要求系统要有良好的人机界面;2、能对学生成绩进行准确、高效的录入、校对和分析,并支持多条件查询与修改;3、能够及时地对重要数据进行备份和恢复,方便的导出数据文件;4、数据操作方便简单,稳定性好,数据计算及成绩分析要能够自动完成。第2章概要设计1. 1整个程序的模块结构及流程根据课题要求,奖学金评定系统由编辑信息、查询信息、统计信息、获奖信息四大模块组成。程序各功能模块的划分,及主要流程如图2-1所示。图2-1整个程序各功能模块间的流程2. 2各个功能模块的描述3. 2.1编辑信息输入学生信息并以文件SCOre.dat保存,具有输入新增学生基本信息,学生学科成绩,以
5、及成绩的添加、删除和修改的功能。4. 4.2查询信息可以按学号或姓名查询某学生的所有成绩,以及按学号或姓名修改指定学生的相关成绩。5. 4.3统计信息(1)具有能够读取Score.dat文件并显示所有学生的所有成绩的功能;(2)具有显示输出60分以下、6079、8089、90分以上各分数段的学生信息的功能。2.4.4获奖信息(1)具有按各门课程的学分和分数计算所有同学的绩点,并根据绩点排名得出各等级奖学金的名单的功能;(2)具有将各等级奖学金获得者的名单写入文件Bonus.dat的功能。第3章程序功能的实现3.1 主要功能模块的实现3.1.1 编辑信息的实现此模块具有三个功能,能够新增学生信息
6、,删除学生信息,修改学生信息、,新增学生,通过自己的输入,把相关的数据写入指定的文件中,需要用到对流的操作,在写入文件前,需要先保存到自己定义的集合里,再把集合的数据全部写入文件进行保存,修改信息,删除信息也是如此。新增学生信息的代码实现如下:publicvoidactionPerformed(ActionEvente)if(e.getSource()=confirm)Stringclassno=Classnotf.getTet();Stringstuid=Stuidtf.getText();Stringname=nametf.getText();Stringclan=cIantf.getTe
7、xt();Stringmath=mathtf.getText();StringEnglish=Englishtf.getTet();Stringphysics=physicstf.getTet();Stringmaphil=maphiltf.getText();s=newStUdent(CIaSSno,stuid,name,clanjmath,Englishjphysicsjmaphil);Classnotf.setTet();StuidtfsetText();nametf.setTet();clantf.setTet();mathtf.setTet();Englishtf.setTet();
8、physicstf.setTet();maxphiltf.setTet();List.add(s);sve();elseif(e.getSource()=save)this.dispose();)3.1.2 查询信息的实现查询信息中有两大功能,一个是根据指定的学号和姓名,查询其相关的各项成绩以及及其绩点。这是自己输入的学号和姓名,与集合中的对应的数据进行对比,当发现一致时,就输出其成绩与绩点。另一个是根据自己输入的学号姓名,对其相关的成绩进行修改,如果一项成绩需要修改,就在集合中修改指定的数据,其他不改变,结束后,在把集合中的数据全部写入到文件中。查询成绩与绩点的代码实现如下:publicvo
9、idactionPerformed(ActionEvente)ArrayListlist=InternalFrame.list;Strings=null;Stringclangrade=null;Stringmathgrade=null;StringEnglishgrade=null;Stringphysicsgrade=null;Stringmaphilgrade=null;if(e.getSource()=confirm)for(inti=0;ilist.size();i+)if(jtf2.getTet().equals(list.get(i).stuid)IIjtf3.getText()
10、.equals(list.get(i).name)s=C语言:+list.get(i).clan+“t高数:”+list.get(i).math+“t大英:“+list.get(i).English+”t大物+list.get(i).physics+,t马哲:“+list.get(i).maphil;list.get(i).calgrade();Doubleclanl=Double.valuef(list.get(i).clangrade);Doublemathl=Double.valuef(list.get(i).mathgrade);DoubleEnglishl=Double.valuef
11、(list.get(i).Englishgrade);Doublephysicsl=Double.valuef(list.get(i).physicsgrade);Doublemaphill=Double.valuef(list.get(i).maphilgrade);clangrade=clanl.toString();mathgrade=mathl.toString();Englishgrade=Englishl.toString();physicsgrade=physicsl.toString();maphilgrade=maphill.toString();jtf4.setText(,
12、ci三W:+clangrade+mathgrade+”t大英:+Englishgrade+,t大物:”+physicsgrade+t马哲:+maxphilgrade);jtf4.setEditable(false);jtf4.setEditable(false);jtfl.setEditable(false);jtfl.setText(s);jtfl.setEditable(false);)修改个人成绩的代码实现如下:publicvoidactionPerformed(ActionEvente)ArrayListlist=InternalFrame.list;Stringm=确定要修改该学生成
13、绩吗?”;if(e.getSource()=confirm)intok=JOptionPane.ShowConfirmDialog(this,m,确认”,JOptionPane.YES_NO_OPTIONJJOptionPane.QUESTION_MESSAGE);if(ok=JOptionPane.YES_OPTION)Stringclan=clantf.getText();Stringmath=mathtf.getText();StringEnglish=Englishtf.getTet();Stringphysics=physicstf.getText();Stringmaphil=ma
14、xphiltf.getTet();for(inti=0;ilist.size();i+)if(nametf.getText().equals(list.get(i).classno)IIstuidtf.getText().equals(list.get(i).stuid)if(!clan.trim().equals()list.get(i).clan=clan;)if(!math.trim().equals()list.get(i).math=math;)if(!English,trim().equals(,)list.get(i).English=English;)if(!physics.t
15、rim().equals()list.get(i).physics=physics;)if(!maphil.trim().equals()list.get(i).maphil=maphil;)list.get(i).calgrade();InternalFrame.save();)try(setClosed(true);catch(PropertyVetoExceptionel)el.printStackTrace();)elseclantf.setText();mathtf.setText(,);Englishtf.setText();Physicstf.setText();maxphiltf.setText(