Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033
Java课程设计-算术运算测试(D级)
齐鲁工业大学 计科20-1 王瀚垠 202003010033
目录
1.项目简介
2.项目采用技术
3.功能需求分析
4.项目亮点
5.项目功能架构图和UML类图
6.系统演示操作视频或者主要功能截图
7.团队成员负责模块(以表格的形式)
8.项目git地址
9.团队成员git提交记录截图
10.项目代码静态扫描通过证明
11.项目总结
正文
1.项目简介
本项目给出一个能够多用户进行100以内加减法运算测试的系统。使用者注册一定数目用户后,由每个用户按号码顺序分别答题,每位用户回答完毕后,其用户序号和分数都会被录入一个链表中。所有用户均完成测试后,链表中元素按照用户分数升序排列,统一倒序写入文本文件namelist.txt中,形成排行榜。
2.项目采用技术
(1)泛型与集合框架——链表
(2)创建并写入文件
(3)GUI(包含三个监视器进行事件处理)
(4)抛出异常和异常处理
3.功能需求分析
(1)注册用户:输入参与用户数,单击“注册”,系统创建对应数目的用户
(2)获取题目/跳至下一题/跳至下一用户:单击“下一题”对应三种情况:
(A)处于预备界面(每个用户在进入第一题之前的界面),单击进入第一题
(B)1-9题提交成功,单击进入下一题
(C)非最后一名用户第10题提交成功,单击进入下一用户预备界面
(3)提交答案和录入信息:用户输入自己的答案,单击“提交”获取评判。每个用户完成最后一题后,单击“提交”查看总分,同时系统将该用户的信息录入至链表。最后一位用户提交最后一题后,系统将链表中元素按照用户分数升序排列,统一倒序写入文本文件namelist.txt中,形成排行榜。
(4)生成题目:单击“下一题”,文本区被清空,生成两个100以内随机数,将两个操作数按照一定次序,与相应字符组合形成算式,显示在文本区中。
(5)评分:提交答案后,系统将用户输入答案与正确答案比对,判断正误。若正确该用户加一分。用户当前得分显示在文本区中。
4.项目亮点
(1)较完善的抛出异常和异常处理
(A)注册相关异常及处理
用户数目必须是正整数(不是整数和正数各一个异常处理),才能完成注册(如果输入负的小数,优先提示必须是整数)
重新注册后,之前的数据清零
相关代码
(B)“提交”相关异常及处理
未注册状态下无法提交
未获取题目状态下无法提交
提交答案格式不合理报错
不允许重复提交
相关代码
(C)“下一题”相关异常及处理
未注册状态下无法获取题目
未提交状态下无法获取下一题
所有用户作答完毕时给出提示
相关代码
(2)使用链表存储数据
相关代码截图如下
(3)写入文件考虑并列排名的情况
写入效果
写入原理相关代码
(5)借鉴在八次实验课中的学到的知识,学以致用
例如链表中的元素所属的People类和之前提到的链表相关代码
借鉴了实验八验证性实验2中相关的知识和方法
(6)参考CSDN上一篇非GUI的课程设计的源码的部分思想,学会了生成100以内加减法算式的方法
注:作标记的为我参考的部分
在此向原作者致谢!
5.项目功能架构图和UML类图
(1)项目功能架构图
(2)UML类图
6.系统演示操作视频或者主要功能截图
注册
答题
用户个人评分
答题结束
排行榜展示
7.团队成员负责模块(以表格的形式)
团队成员 |
学号 |
任务分配 |
王瀚垠(组长兼组员) |
202003010033 |
全部模块:布局设计、异常处理、事件处理、算法设计等,即所有类和方法全部由我独立完成。 |
8.项目git地址
https://gitee.com/wang-hanyin/homework-of-oop-course-design
9.团队成员git提交记录截图
10.项目代码静态扫描通过证明
11.项目总结
本次课程设计是在八次实验中用到的知识,尤其是GUI和泛型与集合框架、文件等知识的集大成之作,是我呕心沥血完成的。在设计项目中,挫折接踵而至,尤其是出现需要进行各种异常处理和非异常处理的那一部分,以及将排行榜写入文件的部分,涉及到许多具有挑战性的逻辑问题,但我最终克服了它们。在对自己小小的成就沾沾自喜时,也要意识到,我的设计中存在着待改进的疏漏之处。由于个人知识、技能和时间的限制,用户暂时跳过一道题去做下一题,然后再返回去做上一题的功能没有实现;多个用户在不同的平台上进行同步答题,信息由一个平台汇总的功能没有实现;通过对用户答题时间的记录,对同分数的用户再作排名的功能没有实现;用户自行创建用户名和密码,运用数据库登录账号的功能没有实现;界面设计不够美观等问题亟待改进。总之,经历过本次课程设计的我依然是有所收获,颇有成就感的。
Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033的更多相关文章
- java课程设计——算术运算测试个人博客
1.团队课程设计链接 团队博客:http://www.cnblogs.com/yytx/p/7064790.html 2.个人负责模块 有关排行榜的界面设计和代码编写 3.自己的代码提交记录截图 4. ...
- java课程设计-算术运算测试
1. 团队名称.团队成员介绍 团队名称:cococo 团队成员 组长:网络1514叶城龙 201521123109 组员:网络1514余腾鑫 201521123108 2. 项目git地址 http: ...
- JAVA课程设计-----加减法测试博客
1.团队成员介绍(一个人做的) 谢季努:网络1513 201521123079 2.项目git地址 3.项目git提交截图 4.项目运行截图 输入答案后点击确认就会出现本次的得分 如果觉得成绩不理想点 ...
- 2018.11.25 齐鲁工业大学ACM-ICPC迎新赛正式赛题解
整理人:周翔 A 约数个数(难) 解法1:苗学林 解法2:刘少瑞 解法3:刘凯 解法4:董海峥 B Alice And Bob(易) 解法1:周翔 解法2:苗学林 解法3:刘少瑞 C 黑白 ...
- JAVA课程设计——团队(&个人)博客
JAVA课程设计--团队(&个人)博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:是独立小分队啦 团队成员介绍:包梦榕 网络1513 201521123068 2. 项目git地址 ...
- java课程设计团队博客《基于学院的搜索引擎》
JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...
- Java课程设计(2019版)
参考资料 Java课程设计参考资料(2018-12-26更新) Java课程设计常见问题(程序部署.数据库.JSP) 项目开发参考-阿里巴巴Java开发手册(正式版) 更多参考资料请查看QQ群文件中的 ...
- java(课程设计之记事本界面部分代码公布)
代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...
- java课程设计(计算器)
JAVA课程 设 计 报 告 1206401-18 瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...
随机推荐
- .NET并发编程-TPL Dataflow并行工作流
本系列学习在.NET中的并发并行编程模式,实战技巧 本小节了解TPL Dataflow并行工作流,在工作中如何利用现成的类库处理数据.旨在通过TDF实现数据流的并行处理. TDF Block 数据流由 ...
- Xshell6连Linux
一.安装 文件 链接: 提取码:8rmr 二.连Linux 名称填自己喜欢的.续之前,我们保持一样的名字.主机填IP,根据之前Linux填的静态IP去连接. 然后双击,连接 我们用最高权限,填root ...
- 全套Project版本安装教程及下载地址
1:Project 2007 安装教程及下载地址 https://mp.weixin.qq.com/s/8iI7x1qjon0yAdo3bStjzw 2:Project 2010 安装教程及下载地址 ...
- ConcurrentHashMap源码解读二
接下来就讲解put里面的三个方法,分别是 1.数组初始化方法initTable() 2.线程协助扩容方法helpTransfer() 3.计数方法addCount() 首先是数组初始化,再将源码之前, ...
- 15 个让新手爱不释手的 Python 高级库
为什么我喜欢 Python ? 对于初学者来说,这是一种简单易学的编程语言:另一个原因:大量开箱即用的第三方库,正是 23 万个由用户提供的软件包使得 Python 真正强大和流行 在本文中,我挑选了 ...
- springboot优雅的异常处理
springboot全局异常处理 @ControllerAdvice 尽管springboot会对一些异常进行处理,不过对于开发者来说,这还不太便于维护,因此我们需要自己来对异常进行统一的捕获与处理. ...
- 异步阻塞,Manager模块,线程
一.异步阻塞 1.并没有按照执行顺序等待结果 2.而是所有的任务都在异步执行着 3.但是我要的结果又不知道谁的结果先来,谁先结束我就先取谁的结果 很明显的异步,大家都相互执行着(异步过程),谁先结束我 ...
- ES6学习-1 啥是ES6啊
我不准备刨根问底,找寻他的十八辈祖先,希望用最简单的方式能够说明白ES6是个啥,come on baby ES6的全称是ECMAScript 6.0,他于2015 年 6 月正式发布,它的目标是使得 ...
- [bug] Junit initializationError
原因 导包错误 解决 先删除 import org.junit.Test; 再导入正确的包 参考 https://blog.csdn.net/javae100/article/details/7978 ...
- centos7 安装Anaconda3及使用
centos7 安装Anaconda3及使用原创wangshu_liang 最后发布于2019-01-31 14:08:23 阅读数 1046 收藏展开最近在服务器上安装了anaconda3,先简单说 ...