一、题目要求

实验类型:综合性

实验目的:综合运用Java语言和面向对象技术开发一个小型软件系统

实验内容:

已经提供的数据:

<1> 班级学生名单:学生的学号和姓名已经分别存储在以学生所在班级命名的文本文件中,每行存储一个学生的学号和姓名,中间用一个空格分隔。例如:2010级网络工程1班.txt文件中存放该班学生名单。内容为:

201030720102 陈纯
201030720103 陈娟娟
201030720104 陈伟健
201030720105 陈伊纯
……

<2> 开设课程保存在名为:course.txt的文本文件中,每行存放一门课程的名称,如:

面向对象程序设计
操作系统
数据库系统

实现以下功能,所有功能以图形用户界面完成。

<1> 新建课程考试成绩单,功能描述如下:

n  程序界面显示已经开设的课程(从course.txt中读取),用户选择本次输入的课程。
n  程序界面通过文件对话框要求用户选择为哪个班输入成绩(即选择相应班的名单文件)。
n  如果该班的成绩已经输入(已经存在对应成绩单文件),则提示无需输入。
n  程序提供界面为该班的每个学生输入考试成绩。
n  输入的成绩单以对象文件格式存储到文件中(不能是文本文件),文件命名为:班级-课程名.dat。
例如:2010级网络工程1班-面向对象程序设计.dat。

<2> 打开课程考试成绩单,功能描述如下:

n  程序通过文件对话框要求用户选择打开的成绩单文件。
n  程序打开并读取成绩单文件内容,并显示在界面中。

<3> 修改课程考试成绩单,功能描述如下:

n  完成第<2>功能后,即打开某班某课程的成绩单后。
n  可以选择修改其中某个或某几个考试成绩,并保存。

<4> 课程考试成绩分析,功能描述如下:

n  完成第<2>功能后,即打开某班某课程的成绩单后。
n  点击成绩分析按钮或菜单,显示如下分析内容:
u  最高分:XX分,最低分:XX分,平均分:XX分
u  不及格(分数<60):XX人,占XX.XX%
u  及格(60<=分数<70):XX人,占XX.XX%
u  中等(70<=分数<80):XX人,占XX.XX%
u  良好(80<=分数<90):XX人,占XX.XX%
u  优秀(90<=分数<100):XX人,占XX.XX%

<5> 成绩图形分析,功能描述:显示考试成绩分布的饼图和柱形图。


二、源码中类和函数的含义

类的含义:

GradesAnalyse.java 提供程序入门,创建相关界面及其事件

User.java 实现对象的序列化,用于读取,写入,修改 .dat 对象文件

SampleAnalyse.java 显示对象的简单分析,对应要求<4>

PieChart.java 实现饼图

BarChart.java 实现柱状图

函数的含义:

init( ) 置于构造函数中,在创建GradesAnalyse类的对象的时候进行初始化

createPanel( ) —— 创建主界面
createPanel_course( ) —— 创建课程选择界面
createPanel_class ( ) —— 创建班级选择界面
createPanel_save( ) —— 创建保存界面
createPanel_modify( ) —— 创建修改界面

Panel_event( ) —— 主界面事件
Panel_course_event( ) —— 课程选择界面的事件
Panel_class_event( ) —— 班级选择界面的事件
Panel_save_event( ) —— 保存界面的事件
Panel_modify_event( ) —— 修改界面的事件

getDirectoryFile(String path) —— 获取目录中文件的文件名

createStudentList( ) —— 根据班级学生名单 ( .txt ) 创建学生列表

createFile() —— 创建 .dat 文件
writeFile(File file) —— 写入 .dat 文件
readFile(File file) —— 读取 .dat 文件
modifyFile(File file) —— 修改 .dat 文件

readObject(File file) —— 读取序列化对象
writeObject(File file, LinkedList msg) —— 写入序列化对象

analyse( ) —— 实现对象的简单分析

clean() —— 分析结束后对变量进行清零,防止重复计数。


三、源码地址

https://github.com/Zheng-Wenkai/Java_GrandesAnalyse

这是一个简易的学生成绩分析程序,如有错漏,感谢指正。

Java —— 学生成绩分析程序Demo(附源代码)相关推荐

  1. java学生成绩分析系统spring源码

    开发工具:idea (eclipse) 环境:jdk1.8  mysql 数据库库连接工具 navcat 学生成绩分析系统 系统主要使用技术 • Struts2--请求响应 • Spring--jav ...

  2. Java综合性实验 - 学生成绩分析程序

    简要的需求分析 已经提供的数据: <1> 班级学生名单:学生的学号和姓名已经分别存储在以学生所在班级命名的文本文件中,每行存储一个学生的学号和姓名,中间用一个空格分隔.例如:2010级网络 ...

  3. JAVA学生成绩分析系统任务书,学籍管理系统任务书

    本项目要求设计"学生学籍管理系统",其使用人群为各学校学籍管理人员,目的是提高学籍管理人员的办公效率和减少差错率."学籍管理"要求实现对学生的入学个人信息注册. ...

  4. 基于java的学生考试成绩分析程序

    一.系统分析 本次试验需要编写一个学生考试成绩分析程序,至少具有这些功能:基本数据输入,能够建立并且输入班级.学生.课程和成绩单的信息,指定特定的班级和课程后,能够输出该班的所有学生的成绩,通过这个方 ...

  5. 基于Java毕业设计成绩分析系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计成绩分析系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计成绩分析系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  6. 查找和排序算法的学生成绩分析实验

    基于查找和排序算法的学生成绩分析实验 一.实验内容 二.实验原理 三.实验代码记录 四.实验结果 一.实验内容 编写程序将自己学号后面的8位同学的学号.姓名以及数学.英语和数据结构的成绩信息保存到学生 ...

  7. 成绩分析系统c语言,学生成绩分析及排名系统C语言程序设计课程设计实习报告...

    学生成绩分析及排名系统C语言程序设计课程设计实习报告 长江大学计算机上机实习报告题目学生成绩分析及排名系统姓名学院__专业班级学号指导教师20120222目录一设计目的1二课程设计摘要2三课程设计的任 ...

  8. 用access做考场桌贴_利用Word、Excel、Access进行考务安排及学生成绩分析的有效途径-教育文档...

    利用 Word . Excel . Access 进行考务安排及学生成绩 分析的有效途径 一 问题的提出 在新课改教学评价过程中,学生考试评价扮演着重要的角 色. 考试安排的科学性和有效性是评价的基础 ...

  9. python数据分析学生成绩查询系统_python数据分析-学生成绩分析

    python数据分析-学生成绩分析 python数据分析-学生成绩分析 目标:分析学生成绩的影响因素 1.导入原始数据,以及需要用到的库 import pandas as pd import nump ...

  10. java学生成绩教务管理系统

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,java学生成绩教务管理系统. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技术和网络技术的发 ...

最新文章

  1. js之浅拷贝和深拷贝
  2. 实现php a标签文件,HTML_如何点击a标签实现弹出input file上传文件对话框,html 复制代码代码如下: SPAN - phpStudy...
  3. spring security 学习二
  4. AVIO内存输入模式
  5. Flink SQL Client注册SCALA UDF完整流程
  6. Scala中=gt;的用法
  7. [C++] - C++11 多线程 - Thread
  8. UI设计素材模板|设计良好的教育网站:3个快捷技巧
  9. QT每日一练day24:绘画事件
  10. 51单片机秒表设计c语言版,51单片机秒表系统的设计
  11. swarm bzz 安装0.5.3,和节点引导
  12. 时空数据生成对抗网络研究综述(下)
  13. table中tr:hover无效 td:hover有效
  14. mysql -b -w_MySQL系列(三)
  15. LTE入门之UE-Category
  16. matlab中 seek,VBA中的seek与matlab中的fseek的说明 | 学步园
  17. gateway配合nacos路由报错:Unable to find instance for XXX
  18. 禅道----产品经理创建项目集和产品线
  19. 奥升德赢得三星SDI锂离子电池添加剂专利案;蜂巢能源完成102.8亿元人民币B轮融资;伊顿、特灵科技、芬美意发布财报 | 能动...
  20. Android 语音遥控器的整体分析-主机端语音解码的添加

热门文章

  1. AutoCAD输出矢量图
  2. 打印机服务器没有响应是怎么回事啊,打印机后台程序没有运行?(打印机后台服务无法启动怎么办?)...
  3. ScreenToClient
  4. 用java语言写出青蛙的身份_第三章 JAVA 语言基础
  5. python模拟登录浏览器_Python爬虫常用之登录(二) 浏览器模拟登录
  6. http://www.boobooke.com/bbs/thread-51022-1-1.html
  7. 凝思6.0.60操作系统编译安装sqliteman(版本1.2.2)
  8. 倾听开源Android的另类声音
  9. 完整版本的 poj 题目分类 转载
  10. 2021中兴捧月杯算法大赛模面大赛总结