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. [LeetCode每日一题]153.寻找旋转排序数组中的最小值

    [LeetCode每日一题]153.寻找旋转排序数组中的最小值 问题 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组 nums = [0,1, ...

  2. selenium之利用cookie绕过验证登录

    方法一 第一步 2.第二步 方法二.重点:1.打开验证码页(登录页面):2.首次登录等待三十秒手工输入账密:3.保存cookie至excel后利用cookie脚本登录 1.导入第三方模块xlwt 2. ...

  3. 一、HttpRunner学习汇总

    HttpRunner是一款面向Http和HTTPS协议的通用测试框架,只需编写维护一份YAML/JSON脚本即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求,是基于关键字驱动的框架,基于 ...

  4. LINQ之方法语法

    上节讲到使用linq的查询关键字进行查询,这节讲一下linq查询的另一种方式--linq方法. 使用linq方法语法,必须要会用lambda表达式,配合lambda表达式才能体会到linq的优雅便捷. ...

  5. Redis数据持久化—RDB持久化与AOF持久化

    目录 Redis数据持久化-RDB持久化与AOF持久化 RDB持久化 RDB文件的创建 RDB文件的载入 自动间隔性保存 检查保存条件是否满足 AOF持久化 AOF持久化的实现 AOF文件的载入与数据 ...

  6. 风变编程(Python自学笔记)第10关-工作量计算器

    1.%f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数. 2.向上取整:ceil() 使用ceil()方法时需要导入math模块,例如 1 >>> ...

  7. 21.File和IO流

    IO就可以对文件进行读写 File表示要读写的文件在哪,也可以对文件进行创建,删除等操作 小结: IO流是什么? 1.可以将数据从本地文件中读取出来 2.可以将数据从内存保存到本地文件 File类时什 ...

  8. VS·调试过程中某个操作导致调试突然退出之解决方案

    阅文时长 | 0.11分钟 字数统计 | 232字符 主要内容 | 1.引言&背景 2.声明与参考资料 『VS·调试过程中某个操作导致调试突然退出之解决方案』 编写人 | SCscHero 编 ...

  9. pytorch实现LeNet5分类CIFAR10

    关于LeNet-5 LeNet5的Pytorch实现在网络上已经有很多了,这里记录一下自己的实现方法. LeNet-5出自于Gradient-Based Learning Applied to Doc ...

  10. [java] Maven安装本地jar包

    命令 mvn install:install-file -Dfile="E:\software\Apache\repository\org\apache\flink\flink-connec ...