《Java课程设计--奖学金评定系统.docx》由会员分享,可在线阅读,更多相关《Java课程设计--奖学金评定系统.docx(29页珍藏版)》请在优知文库上搜索。
1、第1章课题概述11.1 课题的目的11.2 课题的要求11.2.1信息输入输出的要求11. 2.2程序实现的功能要求1第2章概要设计32.1程序的界面设计32.2存储学生容器的选择32. 3输入数据合法性的检测及初步处理42. 4各个功能实现的描述42. 4.1添加学生41.1.1 4.2查询学生42.4.3 修改学生信息42.4.4 删除学生52. 4.5显示所有学生成绩单52. 4.6显示各分数段的学生信息52. 4.7输出获得奖学金学生名单并写入文件中5第3章程序功能的实现63. 1主界面的实现63.2各个功能界面的实现73.2.1添加学生界面的实现73.2.2查询学生界面的实现83.2
2、.3修改学生信息界面的实现93.2.4删除学生信息界面的实现103.2.5学生成绩单界面的实现113.2.6各分数段学生信息界面的实现123.2.7奖学金学生名单界面的实现13第4章调试及发现问题的解决16第5章程序测试及分析185.1主界面的测试界面185.2学生信息编辑菜单185.2.1添加学生基本信息185.2.2查询学生基本信息195.2.3修改学生基本信息205.2.4删除学生215.3.学生成绩信息225.3.1学生成绩单225.3.2各分数段学生信息235.4奖学金获得者245.4.1奖学金获得者245.4帮助25第6章总结26参考文献27第1章课题概述本次课程设计的题目是以本校
3、学生手册中奖学金的评定办法为背景,设计一个学生奖学金评定系统。1.1 课题的目的奖学金评定是每个学校每学年都必不可少的教学工作。一般情况下学校学生人数相对较多,这样奖学金评定任务就变得苦难。通过编写奖学金评定系统这一程序,极大化的缩小了学校的教学任务。将每位学生的个人信息一一输入该系统,通过系统中实现的功能计算出获得奖学金的同学。因此,采用己学的JaVa知识,通过编写计算机程序的方式来实现这些功能,无疑具有较大的实际意义。1.2 课题的要求1.2.1 信息输入输出的要求(1)程序运行后应首先输出一个主菜单,并将所有的学生信息编辑、学生成绩单、各分数段学生信息、奖学金学生名单等功能罗列在主菜单上
4、供用户进行选择,以便进行相应的操作。(2)学生信息通过键盘输入到程序中,并且编辑学生信息的各项操作之后可以更新已存入学生数据。(3)用户每次更新输入数据并选择功能菜单后,应能立即输出运算的结果。(4)运行结果的输出应整齐、清晰,以便用户能够验证程序的正确性。(5)将最终要求的学生成绩单和获得奖学金学生信息分别写入到不同的文件中1.2.2 程序实现的功能要求(1)用集合来存储输入到系统的学生信息。一个学号对应一个学生,一次使用集合HashMap来进行存储。(2)学生信息的编辑操作中的学生的添加、修改、删除、查询可直接操作集合进行处理;学生成绩单、各分数段学生信息、获得奖学金学生名单也是操作集合进
5、行输出显示。(3)添加学生时必须输入完整的信息:学号、姓名、班级、五门科目成绩,从而进行下续操作。(4)根据每位学生的成绩根据本校学生手册规定,计算出每位同学成绩绩点,并依据绩点大小对学生进行排序后输出学生成绩单。(5)根据得出的学生成绩单,根据本校的学生手册规定计算出获得奖学金的人数,并输出显示,最后将该名单通过流写入到文件中。第2章概要设计2.1程序的界面设计根据课题要求,整个程序按功能可划分为学生信息编辑、学生成绩单、各分数段学生信息、奖学金同学名单四个主要模块。除上述主要功能模块之外,为更好地提供程序的人机交互能力,程序还应提供退出程序、窗口最大最小化。程序各功能模块的划分及主要结构如
6、图2-1所示。(开始)显示主界面/学生猛息/学藕绩/奖及获相编辑?/信亨?/?yI助添加学生奖学金获得者图2-1这个程序功能流程2.2存储学生容器的选择我们知道在现实学校中,每个同学都具有独一无二的学号与之对应,找到学号便找到相对应的学生,根据这个特点选择集合HashMap来存储输入系统的学生。无论什么时候想要使用学生信息,找到学生的学号便可查找到该学生。为了更加的简化程序和其他功能更简便的拿到学生信息,将学生学号再用集合ArrayList存储,这样在A门ayList拿到学生学号,便可在HaShMaP快速找到对应的学生。每个学生都具有班级、学号、姓名、各科成绩、成绩总绩点等属性,在集合中通过学
7、生总绩点的大小将集合中的元素进行排列,以便输出学生成绩单、奖学金名单。集合HashMap和集合ArrayList存储信息的具体形式如下图所示。学号:151617姓名:张三李四王五马七赵四李东2.3输入数据合法性的检测及初步处理每位同学都具有班级、学号、姓名五门课程的成绩,所以在输入学生信息是必须符合现实实际的情况来填写。班级、学号、姓名的属性为字符串,且长度控制在O12,而每门课的成绩应为double类型的数据,在输入信息室的他们的取值范围为0IO0当输入学生信息后进行动作处理时,当在类的监听机制中发现输入的信息不符合规定的要求,程序会立即跳出提示性窗口,提示用户输入的信息不符合要求,提醒用户
8、重新输入正确规范的信息。2.4各个功能实现的描述2.4.1添加学生点击学生信息编辑菜单选择添加学生,在跳出的添加界面填写想要学生信息,点击“添加”按钮。如果用户所要添加的学生已经存在,此时该程序会跳出提示性窗口提示用户学生已存在,不用再次添加;如果添加的学生不存在,该程序也会跳出提示性窗口,提示用户该学生信息是否添加进程序。2.4.2查询学生点击学生信息编辑菜单选择查询学生信息,用户在跳出的查询界面输入想要查询学生额学号,然后点击按钮“查询”。如果该程序中存在用户所要查询的学生,此时该界面中会将该学号对应的学生信息显示出来;如果不存在该学生,程序会跳出提示性窗口,提示用户所要查询的学生不存在于
9、本程序中。2.4.3修改学生信息点击学生信息编辑菜单选择修改学生信息,再挑出的修改信息界面输入想要修改的学生学号,点击按钮“开始修改”。如果该学号对应学生不存在,程序会跳出提示性窗口提示用户该学生不存在该程序中;如果该学号存在点击按钮后程序会将该学生信息显示在出来,用户将想要修改的信息修改完成之后,点击按钮“录入修改”。该程序会再次跳出提示性窗口,提示用户是否确定修改该学生信息。2.4.4删除学生点击学生信息编辑菜单选择删除学生,用户在跳出的查询界面输入想要删除学生学号,然后点击按钮“删除”。如果该程序中存在用户所要删除的学生,此时该程序会跳出提示性窗口,提示用户是否确定删除该学生;如果不存在
10、该学生,程序也会跳出提示性窗口,提示用户所要查询的学生不存在于本程序中。2.4.5显示所有学生成绩单点击学生成绩信息菜单选择本学期学生成绩单,将会主窗口的面板中以表格的形式显示出添加到程序中的所有学生信息,而且该表格具有垂直下滚动条,不会出现输入该程序中的学生太过,不能完全显示出来2.4.6显示各分数段的学生信息点击学生成绩信息菜单选择本学期学生成绩单,将会主窗口的面板中以表格的形式显示出添加到程序中的所有学生信息,而且该表格具有垂直下滚动条,不会出现输入该程序中的学生太过而不能完全显示出来2.4.7输出获得奖学金学生名单并写入文件中点击学生奖学金获得者菜单后选择奖学金获得的学生,将在主窗口的
11、面板中以表格的形式显示出各等级奖学金学生的信息。规定一等奖学金的比例为5%,二等奖学金的比例为10%,三等奖学金的比例为15%,按比例算出的人数若出现带小数的情况,则按四舍五入处理。通过计算程序中的人数来间接计算奖学金人数,并输出在表格中。第3章程序功能的实现3.1 主界面的实现窗口中央显示“奖学金评定系统”,开门见山直接指出该程序为奖学金评定系统。主界面中的有功能菜单供用户选择,然后根据用户选择的菜单项,调出相应的功能界面,输出该项功能的结果。主界面采用卡片式布局方式,所以各个功能界面的结果都显示主界面中央面板中,想那事如何由用户选择。主界面的布局设计的代码实现如下:informationF
12、orm=newHashMapString,StudentX);建立集合menuBar=newJMenuBarO;add=newJMenUlIem(添加学生基本信息”);modify=newJMenUIlen1(修改学生基本信息”);search=newJMenUItem(查询学生基本信息“);delete=newJMenuIlem(删除学生基本信息”);informationMenu=newJMenu(学生信息编辑”);informationMenu.add(add);informationMenu.add(search);informationMenu.add(modify);informa
13、tionMenu.add(delete);menuBar.add(informationMenu);ScoreMenu=newJMenu(学生成绩信息”);chengjidan=newJMenUlIem(本学期学生成绩单”);fenshuduan=newJYenUIten1(“各分数段学生信息”);ScoreMenu.add(chengjidan);scoreMenu.add(fenshuduan);ScholarMenu=newJMenu(奖学金获得者”);menuBar.add(scoreMenu);jiangxuejin-newJMenuItem(“奖学金获得的学生”);ScholarM
14、enu.add(jiangxuejin);menuBar.add(schoIarMenu);heIpMenu=newJMenU(帮助”);menuBar.add(heIpMenu);SetJMenuBar(menuBar);label=newJLabel(欢迎使用学生奖学金评定系统,JLabel.CENTER);IabeLSetFont(newFont(TimesRoman”,Font.BOLD,34);label.SetForeground(Color.RED);add.addActionListener(this);modify.addActionListener(this);search
15、.addActionListener(this);delete.addActionListener(this);chengjidan.addActionListener(this);fenshuduan.addActionListener(this);jiangxuejin.addActionListener(this);card=newCardLayout();pCenter=newJPanel();pCenter.SetLayout(card);file=newFile(D:Source.dat);informationAdd=newAdd(file);informationModify=newModify(file);informatiOnSearch=newSearch(this,file);InformationDelete=newDelete(file);PCenter.add(欢迎与界面“,label);PCenter.add(添加界面,informa