Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033

时间:2022-07-25 18:13:31

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)注册相关异常及处理

     用户数目必须是正整数(不是整数和正数各一个异常处理),才能完成注册(如果输入负的小数,优先提示必须是整数)

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

     重新注册后,之前的数据清零

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

    相关代码

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

    (B)“提交”相关异常及处理

     未注册状态下无法提交

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

     未获取题目状态下无法提交

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

     提交答案格式不合理报错

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

     不允许重复提交

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

    相关代码

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

     (C)“下一题”相关异常及处理

      未注册状态下无法获取题目

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

      未提交状态下无法获取下一题

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

      所有用户作答完毕时给出提示

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

      相关代码

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

(2)使用链表存储数据

相关代码截图如下

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

(3)写入文件考虑并列排名的情况

写入效果
Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

写入原理相关代码

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

(5)借鉴在八次实验课中的学到的知识,学以致用

例如链表中的元素所属的People类和之前提到的链表相关代码

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

借鉴了实验八验证性实验2中相关的知识和方法

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

(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

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

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

在此向原作者致谢!

5.项目功能架构图和UML类图

(1)项目功能架构图

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

(2)UML类图

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

6.系统演示操作视频或者主要功能截图

注册

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

答题

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

用户个人评分

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

答题结束

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

排行榜展示

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

7.团队成员负责模块(以表格的形式)

团队成员

学号

任务分配

王瀚垠(组长兼组员)

202003010033

全部模块:布局设计、异常处理、事件处理、算法设计等,即所有类和方法全部由我独立完成。

8.项目git地址

https://gitee.com/wang-hanyin/homework-of-oop-course-design

9.团队成员git提交记录截图

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

10.项目代码静态扫描通过证明

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

Java课程设计-算术运算测试(D级)  齐鲁工业大学 计科20-1 王瀚垠 202003010033

11.项目总结

本次课程设计是在八次实验中用到的知识,尤其是GUI和泛型与集合框架、文件等知识的集大成之作,是我呕心沥血完成的。在设计项目中,挫折接踵而至,尤其是出现需要进行各种异常处理和非异常处理的那一部分,以及将排行榜写入文件的部分,涉及到许多具有挑战性的逻辑问题,但我最终克服了它们。在对自己小小的成就沾沾自喜时,也要意识到,我的设计中存在着待改进的疏漏之处。由于个人知识、技能和时间的限制,用户暂时跳过一道题去做下一题,然后再返回去做上一题的功能没有实现;多个用户在不同的平台上进行同步答题,信息由一个平台汇总的功能没有实现;通过对用户答题时间的记录,对同分数的用户再作排名的功能没有实现;用户自行创建用户名和密码,运用数据库登录账号的功能没有实现;界面设计不够美观等问题亟待改进。总之,经历过本次课程设计的我依然是有所收获,颇有成就感的。