开发背景

在2018年底,博主朋友找到博主想让我帮他开发一个软件,因为他要考他所在单位的某项认证考试,看书低效,不如结合使用用软件答题刷题有效果。就此我准备给他开发一个简单的答题系统,他给出如下需求。

  • 有练习模式(自由答题),可以选择各种题型;
  • 有考试模式,随机生成一套试卷答题。

需求分析

我的朋友单位是内网,不能与外网连接,所以不能用B/S模式开发;他不懂数据库,是一个计算机门外汉,所以不能使用数据库。是的!这个简单答题系统简单到如此地步了。我准备使用Java语言来开发,按照我的分析,我的解决方案如下。

  • 使用文件存储题库与软件使用过程中需要用到的标识,使用文件读写实现数据持久;
  • 以桌面应用来开发,说起来就像C/S模式,只是在该系统中,没有那个S(Server)。

我将朋友的需求与我自己的分析整理,得出整个系统的需求如下:

  • 练习模式,自由答题可以随意选择题型。
  • 考试模式,随机生成一套试卷,在答题结束后将错题统计。
  • 错题本,选择考试模式统计的错题文件,可以答题

就此,是这个简单答题系统的所有需求了,下面开始系统的详细设计。

详细设计

在以往设计一个系统都是从数据库开始设计的,由于该系统不用数据库,并且基本没有表关系,所以就不从数据库开始设计了,就从文件设计开始。当然,之后,我会将该系统重新使用B/S模式实现,那时,会使用到数据库,从数据库开始设计,功能也会比现在复杂和丰富很多。

  • 文件设计
    文件中保存的是什么呢?答题系统,当然是题了。那么一道完整的题包括什么呢?题的编号,题的描述,题的答案与题的类型。所以在文件中我们将使用@将如上属性分割保存。这是题库文件。还有一个保存标识的文件,保存界面关闭时题的类型与题的编号,也是用@分割,作用是保存上次答题位置,可以在打开系统后继续在上次位置答题。

  • UI设计(界面设计)
    因为是答题系统,人性化的界面设计会让人使用的更舒服、更加有效率。界面如下。(使用JAVA中SWING开发GUI)


因为是桌面应用,本着实用的目的去设计的UI图。UI设计也是设计过程中非常重要的一步,离用户最近的一层。

  • 代码实现
    代码实现在之后的博客中一步一步实现,从每个功能点出发,设计逻辑。

在之后的博客中,我将用代码一步一步实现需求中的功能,个人技术有限,在设计过程中经验不足,代码质量不够好还请海涵,大家可以指出我的问题,大家一起进步。

一个简单答题系统的设计与实现(一)相关推荐

  1. 一个简单答题系统的设计与实现(二)

    在一个简单答题系统的设计与实现(一)博文中列出了需求分析,与详细设计,现在按照之前的详细设计开始一步一步实现. 文件设计(数据层设计) 该系统由于需求场景限制,在数据层利用文件和文件的读写实现查询.具 ...

  2. 一个简单答题系统的设计与实现(四)

    这篇描述生成试卷和练习模式.错题本的功能的思路与实现. 生成试卷 在平常生活中,考试和平常练习是不同的两种状态,在考试时,试卷有分配好的题型和题数,在本系统中,将其定义为常量: Constant系统常 ...

  3. 【无标题】C语言编写一个简单答题系统

    这是蒟蒻写的第一个博客,将就看看吧! 首先,我写的是一个填空题答题系统,填空题数目为20. 其次,需要随机出题,题目出现顺序要不一致. (1) 产生随机数 1~20 (2)  解决运气不好的问题1-1 ...

  4. 基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,要求:(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能

    基于列表框的简单选课窗体开发.编写Windows应用程序,设计实现一个简单选课系统,要求: (1)点击"添加"按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加 ...

  5. 3.2 实战项目二(手工分析错误、错误标签及其修正、快速地构建一个简单的系统(快速原型模型)、训练集与验证集-来源不一致的情况(异源问题)、迁移学习、多任务学习、端到端学习)

    手工分析错误 手工分析错误的大多数是什么 猫猫识别,准确率90%,想提升,就继续猛加材料,猛调优?     --应该先做错误分析,再调优! 把识别出错的100张拿出来, 如果发现50%是"把 ...

  6. 考试/答题系统的设计思路

    基于SpringBoot实现的考试/答题系统,由于这是从一个大项目中截取的部分功能,具体的业务代码非常复杂就不列出了,这里主要介绍系统的设计思路,可作为课设或毕设的参考 数据库设计 实体类设计 tes ...

  7. 一个简单仓库管理系统的设计与实现--需求篇

    去年12月份,帮助一个老乡完成了一份大作业,使用VB+ACCESS实现一个简单的仓库管理系统,现做一下总结并进一步完善,分为三部分:需求.设计.实现. 需求篇 项目需求: 一.控件技术要求: 1.Ac ...

  8. java调python 监控_利用Python实现一个简单的系统监控图表

    作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...

  9. 简单答题系统(判断题)

    使用C语言编写一个答题系统. 一.判断题数据:20道题 (1)题干 (2)正确答案(T/t F/f ,True , False) 二.需要随机出题,题目出现顺序要不一致 C语言需要学会如何随机抽取 ( ...

最新文章

  1. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
  2. win7(x64)安装oracle 10g 32位的方法
  3. Chrome的一点小问题
  4. excel转成csv格式的默认分隔符
  5. sklearn自学指南(part52)--潜在狄利克雷分配(LDA)
  6. 最小生成树Prim算法和Kruskal算法
  7. android camera 显示过程,Android Camera2 API显示已处理的预览图像
  8. 【AI视野·今日Robot 机器人论文速览 第八期】Wed, 16 Jun 2021
  9. 简单说说我对几位认识的号主的印象
  10. c++快速读取配置文件
  11. 190328文件处理
  12. BaseAdapter的逗逼、普通、文艺写法
  13. 身份证前6位数据/行政区划分代码
  14. TIBCO Jaspersoft 使用教程+JasperReport 生成PDF记录
  15. ASP.NET 安全认证(三)—— 用Form 表单认证实现单点登录(Single Sign On)
  16. 如何实现小程序的无限推送
  17. js获取最近12个月
  18. 中国智能手机集成电路(IC)行业市场供需与战略研究报告
  19. 【Pytest篇】pytest生成报告的几种方式
  20. 阿里、腾讯等大厂技术面试题目汇总

热门文章

  1. 刚挑选出的几本硬件设计类书籍
  2. 怎么下载AutoCAD才能成功打开并使用?具体步骤详解指南
  3. js 格式化prettier配置_Prettier格式化配置
  4. 111 ajax获取数据jsrender显示数据
  5. MapReduce中的压缩和解压缩
  6. 解决win10访问linux的smb共享的文件夹,拒绝访问
  7. 斯坦福机器狗的设计与实现 让四足机器人动起来
  8. 关于Java中SQL语句拼写小问题(换行时缺少空格)
  9. JS - 全局变量 局部变量
  10. [附源码]java毕业设计高校学院主页系统