1、 JavaJava 程序设计程序设计课程期末作业课程期末作业 题 目 学生成绩管理系统 学 院 信息科学与工程学院 专 业 计算机科学与技术 班 别 学 号 姓 名 2011 年 12 月 17 日 目录目录 一、课程题目: . 3 二、软件的功能描述 3 三、系统的 UML 类图 4 (一)用况图 4 (二)类之间的图. 4 (三)数据流程图. 6 四、功能调试. 6 五、具体代码. 15 一、课程一、课程题目:题目: 设计一个学生 Java 成绩管理系统(可以不使用界面;如果使用,则界面使用 AWT 或 SWING) ,要求: a) 增添、删除、修改学生基本信息(基本信息包含学生的学号、姓
2、名、专业分数等信 息) ; b) 计算每门课的平均成绩; c) 统计优秀、良好、中等、及格、不及格的人数百分比,并以柱状图、饼图呈现【说 明:可以使用 SWING、AWT 自己绘制;也可以使用开源类库,如 JFreeChar】 d) 按学号查询学生及成绩; e) 按照成绩分数排序 二、二、软件的功能描述软件的功能描述 1, 能够实现学生信息的增删改查四项基本的操作。此程序允许出现重名的现象出现,另外 在删除的时候提供了删除所有重名同学的信息和删除指定学号的学生的两种方法,更加 贴近现实。 2, 能够将程序中的数据存储到 data.txt 文件中,另外能在程序中通过 Swing 中的 table
3、 组件 将文件中的内容进行打印出来。可以直观的看到文件内部的结果。 3, 此程序给出了“按照学号排序” “按照平均成绩排序” “按照英语成绩排序” “按照数学 成绩排序” “按照专业成绩排序”等五个排序方法。 4, 此程序在查询的同时又能同时显示出三科成绩的饼图分布,饼图上标出了四个成绩段的 人数和百分比。更加方便直观的体现出了单科的成绩分布。 5, 程序有一个增加的功能。能够将所有同学的信息用三维柱状图的形式全部呈现出来,能 够进行纵向、横向两种比较方式。方便人性化的进行成绩的比较。 三、三、系统的系统的 UML 类图类图 (一)用况图(一)用况图 (二)类之间的图(二)类之间的图 stud
4、ent 类类 sort 类类 (三)数据流程图(三)数据流程图 四、四、功能调试功能调试 1,主界面 2,新建学生信息 3,查询成绩页面 4,修改成绩 5,删除成绩 第二种方法 6, 打印文件内容 7,三科的排序 8, 平均成绩排序: 9,三科的饼图分布 10,所有同学的成绩三维柱状图分析 五、具体代码五、具体代码 1,主界面代码(Grade.java) public class Grade / 定义主框架 private JFrame frame = new JFrame(“学生成绩管理系统“); / 定义菜单栏 private JMenuBar Bar = new JMenuBar();
5、/ 定义菜单 private JMenu JMedit = new JMenu(“编辑“); private JMenu JMcount = new JMenu(“统计“); private JMenu JMhelp = new JMenu(“数据“); / 定义菜单项 private JMenuItem JMIcreate = new JMenuItem(“新建“); private JMenuItem JMImodify = new JMenuItem(“修改“); private JMenuItem JMIsearch = new JMenuItem(“寻找“); private JMe
6、nuItem JMIdelete = new JMenuItem(“删除“); private JMenuItem JMIall = new JMenuItem(“成绩排序“); private JMenuItem JMIgraphics = new JMenuItem(“图形统计“); private JMenuItem JMIhelp = new JMenuItem(“文件信息“);/ 定义文本标签 private JLabel text = new JLabel(); private JLabel text1 = new JLabel(); private JLabel text2 = new JLabel(); private JLabel text3 = new JLabel(); private JLabel text4 = new JLabel(); / 定义面板 private Container con = frame.getContentPane(); / 定