哈工大软件过程与工具作业1(100以内加减法练习小软件)

news2024/12/25 13:18:33

softwareProcess-lab1-master

哈工大软件过程与工具作业1

100以内加减法练习小软件
地址:https://github.com/944613709/Addition-and-subtraction-practice-small-software

项目概述

(1)项目名称:100以内加减法练习小软件

(2)项目简要介绍:本项目开发的加减法练习小软件主要面向于小学一年级学生进行100以内加减法练习,在软件项目开发过程中采用增量模型,其中,第一轮迭代形成基本系统,完成训练器的基本操作页面布局;第二轮迭代加入增量1,可以随机生成100以内加减法算式,并读取用户输入判断正误;第三轮迭代加入增量2,实现定时功能,并且能够查询完成题目数及正确题目数。

说明

采用了三轮迭代开发

迭代过程的划分,各迭代计划完成的增量任务,进度安排。

(1)第1轮迭代的任务:完成项目的基本系统,形成训练器的基础操作界面布局;速度安排:10.9上午完成软件操作界面基础布局。

(2)第2轮迭代的任务:完成训练器的基础核心功能:随机生成两个100内的数及加法或者减法,提取用户输入信息并对其进行正误判断,加入非法操作(如:输入非数、输入超1000、不按正常流程顺序点击训练器布局按钮等)处理;速度安排: 10.9下午实现基础生成数,完成正误判断功能及非法操作处理。

(3)第3轮迭代的任务:加入计时功能并统计用户在该段时间完成题目数及正确回答数;速度安排:10.9号晚上完成该增量。

总体需求分析

1)项目要开发的软件的目的和意义(回答为什么要开发该项目)。

主要面对小学一年级学生用户,可以有效对其进行加减法训练并验证正误,统计训练时间及其训练效果;同时,也可以节省家长时间,方便学生家长督促孩子学习,也可以使老师了解到学生的学习进度,知识的掌握程度;方便师生家长及时交流,提供良好有效的学习条件和方法。最后,也可以通过项目分析与设计体会增量模型在软件项目开发中的作用。

2)软件系统的涉众分析(列出该系统跟哪些相关人员有关,其关心的核心内容)。

一年级学生,其关心的核心内容是训练器对响应请求的反应时间和操作界面的美观、是否操作简易,易理解;

学生家长,其关心的核心内容是,该软件的稳定性,计算的正确性,是否显示正确答案等;

老师,其关心的核心内容是全班同学做题数目及正确率等数据信息,对学生完成情况进行统计分析。

3)软件系统的功能需求:可从用户视角来描述功能需求(即用户故事)。

对于一年级学生,其需要进行反复多次的100以内加减法运算,以便于巩固数学基础,掌握加减法运算规则,锻炼计算速度及正确性;

对于学生家长,其需要察看已完成题目数,正确率和计算速度,以便于了解孩子训练情况,督促孩子学习;

对于老师,其需要可视化察看全班同学做题信息,以便于掌握学生学习进度,制订下一步教学计划。

**(4)软件系统的非功能需求:**包括性能要求、界面要求、技术指标等。

性能要求:应当在0.5s内响应用户的相应请求(如:输入输出,计算,刷新等) ;

界面要求:界面简洁易懂,对没有经验的小学生可在二分钟内熟悉操作过程;

容错性:对用户的非法输入(如:输入非数,输入超1000等),也能进行处理;

可靠性:除异常情况外,计算正确率达100%。

软件系统总体设计

(1)软件系统功能结构设计方案:给出软件功能模块及模块间的关联关系。

功能设计方案:

模块功能
MyLab1Panel主模块,其中利用JFrame给出可视化界面,涉及多个窗口面板窗口
CalulateUtil工具类,里面提供了随机产生一个MyData实例数据,即随机生成加减法题目和答案,封装在MyData并返回
MyData实体类,一个实例映射了一道加减法的数据

功能模块关系图:

数据结构设计

由于项目结构简单,涉及数据结构较少,设计了一个MyData类:

FirstNumber加减法第一个操作数Int
LastNumber加减法第二个操作数Int
Operator加减法操作符号Char
Answer本算式正确答案Int

演示

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/530740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一图看懂 markupsafe 模块:为 Python 实现 XML/HTML/XHTML 标记安全字符串,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 markupsafe 模块:为 Python 实现 XML/HTML/XHTML 标记安全字符串,资料整理笔记(大全) 🧊摘要🧊模块图…

【JAVA】Java中的类型转换

目录 1.自动类型转换&#xff08;隐式转换&#xff0c;小类型转换为大类型&#xff09; 2.强制类型转换&#xff08;显示转换&#xff0c;大类型转换为小类型&#xff09; 3.小于4字节的类型转换问题 3.1 byte<->int 3.2 char<->int 3.3 String<->int …

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-4

深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践-总结-4 垃圾收集器与内存分配策略经典垃圾收集器Serial Old收集器CMS收集器Garbage First收集器 垃圾收集器与内存分配策略 经典垃圾收集器 Serial Old收集器 Serial Old是Serial收集器的老年代版本&#xff0c;它同样…

Liunx基础命令 - find命令

find命令 – 根据路径和条件搜索指定文件 find命令的功能是用于根据给定的路径和条件查找相关文件或目录&#xff0c;参数灵活方便&#xff0c;且支持正则表达式&#xff0c;结合管道符后能够实现更加复杂的功能&#xff0c;是Linux系统运维人员日常工作必须掌握的命令之一。 …

跟小枫社长学建站

该文章为看视频时的一些笔记&#xff0c;完整版可以看小枫社长的视频 小枫社长视频原址 一、租云服务器 腾讯云阿里云 阿里云对控制台进行了全面升级&#xff0c;在首页使用了新的设计方案&#xff0c;云服务器ECS位置如下&#xff0c;点击左上角目录即可。 二、创建实例 云…

牛客网面试必刷:BM22 比较版本号

牛客网面试必刷&#xff1a;BM22 比较版本号 前言一、解法1&#xff1a;分割截取 前言 牛客项目发布项目版本时会有版本号&#xff0c;比如1.02.11&#xff0c;2.14.4等等 现在给你2个版本号version1和version2&#xff0c;请你比较他们的大小 版本号是由修订号组成&#xf…

三十三、微服务,SpringCloud架构

1、微服务架构 1.1 单体应用架构 将项目所有模块(功能)打成jar或者war&#xff0c;然后部署一个进程 优点: 1:部署简单:由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。 2:技术单一:项目不需要复杂的技术栈&#xff0c;往往一套熟悉的技术栈就可以完成开发。…

JAVA8的新特性——Stream

JAVA8的新特性——Stream 在这个深夜写下这篇笔记&#xff0c;窗外很安静&#xff0c;耳机里是《季节更替》&#xff0c;我感触还不是很多&#xff0c;当我选择封面图片的时候才发现我们已经渐渐远去&#xff0c;我们都已经奔赴生活&#xff0c;都在拼命想着去换一个活法&#…

Kubernetes 二进制部署高可用集群

概述 在私有局域网内完成Kubernetes二进制高可用集群的部署 ETCD Openssl > ca 证书 Haproxy Keepalived Kubernetes 主机规划 序号名字功能VMNET 1备注 1备注 2备注 3 备注 4备注 50orgin界面192.168.164.10haproxykeepalived1reporsitory仓库192.168.164.16yum 仓库re…

哈工大C语言大作业-学生成绩管理系统

哈工大C语言大作业-学生成绩管理系统 完整项目地址&#xff1a;https://github.com/944613709/Student-Performance-Management-System-ByC 说明 l 设计了学生成绩管理系统&#xff0c;来实现对于学生数据的录入统计等各个功能l 进入主菜单之前执行音效播放l menu主菜单中显…

C语言基础知识:C语言中的控制语句

目录 1. 条件判断语句 if(…) {…} if(…) {…} else {…} if(…) {…} else if(…) {…} … else if(…) {…} else {…} switch() {case …: …; case …: …; … default: …;} 2、循环语句 while语句 do while语句 for语句 3、循环体中的跳转语句 break语句。 c…

consul集群部署-linux

一.前言 1. Consul架构 consul是分布式、高可用的系统&#xff0c;下图是单数据中心的部署架构 2. Consul特性 服务发现&#xff1a;解决在分布式环境中&#xff0c;如何找到可用的服务地址的问题&#xff0c;支持通过DNS和HTTP查询服务地址。健康检查&#xff1a;定时监控服务…

如何正确学习网络安全(黑客)?看到就是赚到!

一、前言 本人10 年工作经验&#xff0c; 擅长 Web 安全攻防、渗透领域&#xff0c; 在金融领域的安全有丰富的实战经验。从事在线教育 3 年多培养学员过万&#xff0c;讲解清晰透彻&#xff0c;课程干货内容多&#xff0c;辅导学员耐心细致 那我们该如何正确学习网络安全&am…

[学习笔记] [机器学习] 5. 逻辑回归(逻辑回归、混淆矩阵、分类评估指标、ROC曲线、AUC指标、类别不均衡问题)

视频链接数据集下载地址&#xff1a;无需下载 本文学习目标&#xff1a; 知道逻辑回归的损失函数、优化方法知道逻辑回归的应用场景应用LogisticRegression实现逻辑回归预测知道精确率、召回率等指标的区别知道如何解决样本不均衡情况下的评估会绘制ROC曲线图形 1. 逻辑回归…

Linux——Linux的基本指令

作者&#xff1a;几冬雪来 时间&#xff1a;2023年5月15日 内容&#xff1a;Linux基本指令讲解 目录 前言&#xff1a; 1. 什么是操作系统&#xff1a; 2.Linux操作系统&#xff1a; 3.Linux程序&#xff1a; 4.Linux基本指令&#xff1a; 1.ls&#xff1a; 作用&a…

Java基础 关键字与标识符

关键字(keyword) 定义:被 Java 语言赋予了特殊含义&#xff0c;用做专门用途的字符串(或单词) 这些单词已经被 Java 定义好 了。 特点:全部关键字都是小写字母。 关键字比较多&#xff0c;不需要死记硬背&#xff0c;学到哪里记到哪里即可。官方地址 1. 关键字一共 50 个&…

linux bonding 技术

文章目录 背景简介目录1. Bonding驱动简介1.1 配置并编译支持bonding的内核1.2 安装ifenslave控制工具 2. Bonding驱动选项3. 配置Bonding设备3.1 使用Sysconfig配置3.1.1 利用Sysconfig使用DHCP3.1.2 利用Sysconfig配置多个Bonds 3.2 使用Initscripts配置3.2.1 利用Initscript…

Linux篇3

Shell常用命令 0. Shell介绍1. 帮助命令1.0 help&#xff1a;获取内置命令帮助信息1.1 man&#xff1a;获取帮助信息 2. 文件目录相关2.1 pwd&#xff1a;打印当前工作目录的绝对路径2.2 cd&#xff1a;切换工作目录2.3 ls&#xff1a;列出目录内容2.4 mkdir&#xff1a;创建空…

Java小游戏之贪吃蛇

文章目录 一&#xff1a;窗口的绘制1.1 定义窗口类——SnakeGame1.2 设置窗口的参数1.3 启动main方法 二&#xff1a;窗口网格的绘制2.1 重写paint方法2.1.1 为什么要重写paint方法2.1.2 实现方式 2.2 Graphics2.3 设置网格线的参数 三&#xff1a;游戏物体父类的创建——Snake…

Swagger之集成与用法

简介 Swagger 是一个规范且完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务&#xff1b; 作用 1.接口的文档在线生成 2.功能测试 SpringBoot集成Swagger 1.创建一个普通的SpringBoot项目&#xff0c;支持web应用 2.pom中加入Maven依赖 <depe…