Java综合实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计综合性实验
题目学生考试成绩分析程序
实验时间指导老师
专业年级
姓名学号
内容要求:
1.基本数据:
(1)班级:程序能处理若干班级,每个班级包括的属性有:年级、专业、班和
若干学生。
(2)学生:每个班级包含多名学生,学生属性有:学号和姓名。
(3)课程:程序能处理多门课程,每个课程属性:课程编号、名称、学分、学时。
2.数据存储:基本数据能搞保存在文件中。
3.功能要求:
(1)基本数据输入:程序提供界面(推荐实现GUI)能够建立并输入班级、学生和课程的信息。
(2)考试成绩输入:程序提供界面(推荐实现GUI),指定班级、课程后,输入该班所有学生的该门课程的考试成绩。
(3)成绩查询:输入学号和课程后,能够显示该学生的考试成绩。
(4)成绩分析:指定班级和课程后,对该班的该课程进行以下3个方面的分析:·分数分析:最高分、最低分、平均分。
·分数段分析:分别统计0-59、60-69、70-79、80-89、90-100的学生人数
和所占的百分比。
·图形分析:生成考试成级的统计图(柱状图和圆饼图)。
评语及成绩:
项目/分数 A B C D E 比重%
内容完成情况√□□□□25%
系统分析设计√□□□□30%
程序设计水平√□□□□20%
实验报告撰写√□□□□10%
实验总结√□□□□5%
其他(功能)√□□□□10%
总评成绩
(一)系统分析:
本系统为学生考试成绩分析系统,系统要求可以让用户输入若干学生的基本信息、课程信息,还有对应的课程成绩。而主要功能则是可以实现按条件进行相应学生的成绩查询和按条件进行成绩的分析,并且能够通过绘制柱状图与圆饼图来显示相应结果。
因此,我设计了3个保存数据的类,分别是年级班级类、学生类以及课程类,其中学生类继承了课程类,而年级班级类则继承学生类。每当新建一条信息(一个学生的信息),则新建一个年级班级类,在内部会自动新建一个学生类以及课程类,用于记录一个学生的信息。
本系统采用了窗口GUI来实现,因此大量采用了按钮、文本框、单选按钮、滚动窗口等等,所以必不可少的当然是不少的监听器与对应的实现方法。
(二)系统设计:
1.基本数据:
Class
—Grade : String
—major : String
—classname : String
—Student : Student
+getGrade() : String
+getStudent() : Student
+getClassname() : String
+getMajor() : String
+setGrade(Grade : String) : void
+setClassname(classname : String) : void +setMajor(major : String) : void
Student
—StudentID : String
—StudentName : String
—Course : Course
—couseMark : double
+getCourse() : Course
+getCouseMark () : double
+getStudentID () : String
+getStudentName () : String
+setCouseMark (couseMark : double) : void
+setStudentID (StudentID : String) : void
+setStudentName (StudentName : String) : void
Course
—coureNumber : String
—courseName : String
—coureScore : double
—courseHour : double
+getCoureNumber () : String
+getCoureScore () : double
+getCourseHour () : double
+getCourseName () : String
+setCoureNumber (coureNumber : String) : void +setCoureScore (coureScore: double) : void
+setCourseHour (courseHour: double) : void
+setCourseName(courseName : String) : void
java.io.Serializable
2.主要方法实现及其他类(总共有20个,简单罗列5个):
AnalysisExamination +readFile() : void
AnalysisGUI2
—jbtStatistical : JButton —jbtMarkStep : JButton —jbtDrawPicture : JButton
DeleteGUI
—DeleteGUI : JFrame —jrbStudentID : JRadioButton —jrbStudentName : JRadioButton —jrbClassName : JRadioButton —jtfText : JTextField —LbForShowMessage : JLabel —LB0 : JLabel
—LB00 : JLabel (static) —jbtConfirm : JButton —jbtDelete : JButton —jchkBold : JCheckBox —jchkItalic : JCheckBox —jrbRed : JRadioButton —jrbBlue : JRadioButton —jrbBlack : JRadioButton —ClassForSelect : Class[] (static) —countForSelect : int (static)
DeleteGUI2
—DeleteGUI2 : JFrame
—jtfSetNumber : JTextField
—jlbSetNumber : JLabel
—jlbSetNumber2 : JLabel
—jbtConfirm : JButton
—GetNumber : int
DrawHistogramGUI
—useForDrawing : JFrame
—Mark : int[]
—Grade : String
—Major : String
—ClassName : String
—count : int
JFrame