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. HellowWorld详解

    1.随便新建一个文件夹,存放代码 2.在文件夹中新建一个Java文件 新建一个.txt文本文档-->将扩展名.txt修改为.java 注:如果创建的文本文档没有显示扩展名,则有如下方法: 方法一 ...

  2. IDEA 导入Springboot 项目:

    更多精彩关注公众号: IDEA 导入Springboot 项目: 1. 菜单->File->New->Project From Existing Sources 2. 选中项目中的p ...

  3. JS求一个字符串在另一个字符串中出现的次数

    参数说明: subString子字符串 originString母字符串 isIgnoreCap是否忽略大小写,默认忽略 function stringFre(subString, originStr ...

  4. Java解析xml文件遇到特殊符号&会出现异常的解决方案

    文/朱季谦 在一次Java解析xml文件的开发过程中,使用SAX解析时,出现了这样一个异常信息: Error on line 60 of document : 对实体 "xxx" ...

  5. Python中的pip安装与使用

    配置python的环境变量 我们在我的电脑右击->属性->高级系统设置看到环境变量 然后我们点击环境变量,找到系统变量中的Path变量然后双击他新建一项,值为我们安装的python的pyt ...

  6. Windows进程间通讯(IPC)----内存映射文件

    内存映射文件原理 内存映射文件是通过在虚拟地址空间中预留一块区域,然后通过从磁盘中已存在的文件为其调度物理存储器,访问此虚拟内存空间就相当于访问此磁盘文件了. 内存映射文件实现过程 HANDLE hF ...

  7. BUAA软件工程热身作业

    写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 热身作业(阅读) 课程目标 培养软件开发能力 本作业对实现目标的具体作用 深入认识自己,总结过往并展望 ...

  8. mitmproxy 获取请求响应数据

    比较好的一个介绍是:https://blog.wolfogre.com/posts/usage-of-mitmproxy/ mitproxy 获取请求响应数据的代码如下: # -*- coding: ...

  9. [刷题] 200 Number of Islands

    要求 给定一个二维数组,只有0和1两个字符,1代表陆地,0代表水域,纵向和横向的陆地连接成岛屿,被水域隔开,求出地图中有多少岛屿 思路 对要查找的区域进行双重循环遍历,寻找陆地 从陆地初始点开始进行深 ...

  10. xsos:一个在Linux上阅读SOSReport的工具

    xsos:一个在Linux上阅读SOSReport的工具 时间 2019-05-23 14:36:29  51CTO 原文  http://os.51cto.com/art/201905/596889 ...