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以内加减法算式的方法

https://blog.csdn.net/qq_40605167/article/details/81023799?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162409842316780366542501%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162409842316780366542501&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-1-81023799.pc_search_result_before_js&utm_term=%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97%E6%B5%8B%E8%AF%95java%E5%B1%B1%E4%B8%9C%E7%A7%91%E6%8A%80%E5%A4%A7%E5%AD%A6&spm=1018.2226.3001.4187

注:作标记的为我参考的部分

在此向原作者致谢!

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的更多相关文章

  1. java课程设计——算术运算测试个人博客

    1.团队课程设计链接 团队博客:http://www.cnblogs.com/yytx/p/7064790.html 2.个人负责模块 有关排行榜的界面设计和代码编写 3.自己的代码提交记录截图 4. ...

  2. java课程设计-算术运算测试

    1. 团队名称.团队成员介绍 团队名称:cococo 团队成员 组长:网络1514叶城龙 201521123109 组员:网络1514余腾鑫 201521123108 2. 项目git地址 http: ...

  3. JAVA课程设计-----加减法测试博客

    1.团队成员介绍(一个人做的) 谢季努:网络1513 201521123079 2.项目git地址 3.项目git提交截图 4.项目运行截图 输入答案后点击确认就会出现本次的得分 如果觉得成绩不理想点 ...

  4. 2018.11.25 齐鲁工业大学ACM-ICPC迎新赛正式赛题解

    整理人:周翔 A 约数个数(难) 解法1:苗学林  解法2:刘少瑞   解法3:刘凯  解法4:董海峥 B Alice And Bob(易) 解法1:周翔  解法2:苗学林  解法3:刘少瑞 C 黑白 ...

  5. JAVA课程设计——团队(&个人)博客

    JAVA课程设计--团队(&个人)博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:是独立小分队啦 团队成员介绍:包梦榕 网络1513 201521123068 2. 项目git地址 ...

  6. java课程设计团队博客《基于学院的搜索引擎》

    JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...

  7. Java课程设计(2019版)

    参考资料 Java课程设计参考资料(2018-12-26更新) Java课程设计常见问题(程序部署.数据库.JSP) 项目开发参考-阿里巴巴Java开发手册(正式版) 更多参考资料请查看QQ群文件中的 ...

  8. java(课程设计之记事本界面部分代码公布)

    代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...

  9. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

随机推荐

  1. Redis数据结构—链表与字典

    目录 Redis数据结构-链表与字典 链表 Redis链表节点的结构 Redis链表的表示 Redis链表用在哪 字典 Redis字典结构总览 Redis字典结构分解 哈希算法 解决键冲突 rehas ...

  2. java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

    问题描述 Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 问题原因 因为tomcat在启动过程中jsp和se ...

  3. 【转】python SQLAlchemy

    数据库表是一个二维表,包含多行多列. 把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和name的user ...

  4. opencv——图像遍历以及像素操作

    摘要 我们在图像处理时经常会用到遍历图像像素点的方式,在OpenCV中一般有四种图像遍历的方式,在这里我们通过像素变换的点操作来实现对图像亮度和对比度的调整. 补充: 图像变换可以看成 像素变换--点 ...

  5. CLS的探索:Python如何让日志免费云化

    前言 日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集.日志存储到日志检索,图表分析.监控告警.日志投递等多项服务,协助用户通过日志来解决业务运 ...

  6. .NET平台系列7 .NET Core 体系结构详解

    系列目录     [已更新最新开发文章,点击查看详细]   .NET Core 是基于.NET Framework 为基础,借鉴了其优秀的思想与强大的功能,经过重新设计与构建,实现了.NET Fram ...

  7. 关于__new__和__call__的想法

    __new__和__call__很像,两个都是用来产生对象的 __new__用来产生的对象是'类',class 时触发(不是) __call__用来产生的对象是'对象',这种对象无法继续产生对象,但是 ...

  8. 基于pyqt5和openpyxl和Pyinstaller的青年大学习检查未学习人数的脚本

    前几天接到团支书的一个需求,因为学校给的名单是青年大学习已学习的名单,然而要知道未学习的名单只能从所有团员中再排查一次,过程相当麻烦.团支书跟我抱怨后,刚好我也学过一些操作办公软件的基础.打包pyth ...

  9. [Python] 可变/不可变类型 & 参数传递

    与c/c++不同,Python/Java中的变量都是引用类型,没有值类型 Python赋值语句由三部分构成,例如:   int   a  = 1 类型 标识 值 标识(identity):用于唯一标识 ...

  10. linux系统的负载详解

    系统的平均负载 如何理解平均负载 ​ 单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数. 平均负载多少合理 核心数 平均负载 含义 4 2 有50%的cpu是空闲状态,见 ...