四则运算题目生成器——项目笔记

这个程序,能够实现生成彼此不重复的题目,并且计算出相应答案答案,以及根据题目计算结果的功能。

预估时间及实际花费时间表格



设计以及调试花费了大量的时间。

PSP2.1 Personal Software Process Stages Time
Planning 计划  
· Estimate · 估计这个任务需要多少时间 20h
Development 开发  
· Analysis · 需求分析 (包括学习新技术) 5h
· Design Spec · 生成设计文档 1h
· Design Review · 设计复审 (和同事审核设计文档) 1h
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1h
· Design · 具体设计 2h
· Coding · 具体编码 3h
· Code Review · 代码复审 1h
· Test · 测试(自我测试,修改代码,提交修改) 3h
Reporting 报告  
· Test Report · 测试报告 3h
· Size Measurement · 计算工作量 1h
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 1h
  合计 22h

需求分析

这次作业大体上可以分为三个部分的实现。

首先,根据参数生成满足要求的四则运算题目

其次,计算出生成题目的答案

最后,根据输入的两个文件进行评测

同时,还要求生成的题目不能有重复,因为重复的判定十分困难,所以构思对应的算法和存储数据的数据结构,花费了大量的时间和精力。

性能分析

测试用例

-n 1 -r 1 -e exercise.txt -a answer.txt

-n 5 -r 1 -e exercise.txt -a answer.txt

-n 10 -r 1 -e exercise.txt -a answer.txt

-n 10 -r 2 -e exercise.txt -a answer.txt

-n 1 -r 10 -e exercise.txt -a answer.txt

-n 10 -r 10 -e exercise.txt -a answer.txt

-n 100 -r 10 -e exercise.txt -a answer.txt

-n 1 -r 100 -e exercise.txt -a answer.txt

-n 10 -r 100 -e exercise.txt -a answer.txt

-n 100 -r 100 -e exercise.txt -a answer.txt

总结与收获



这个个人项目,是软件工程课程的第一次作业。

题目的要求很多而且实现起来并不容易。在最开始做题的时候,心中并没有一个很好的轮廓,就开始着手了代码的编写。之后的过程证明了这种做法是完全错误的。因为每增加一个功能,几乎都会发现之前的数据结构的设置,或者相应的函数都并不能完美的适合新的功能,需要回过头去重新修改,这无形之中大大的增加了工作量,也让程序的进展十分的缓慢。

完成这次个人项目的过程中,我进一步体会到做工程与写小程序的区别。

做工程首先要有一个整体的分析与规划,确定程序的需求以及大体的解决步骤。之后对于每一个小的步骤,确定适合的算法以及相应的数据结构。当完成了整个程序的构思,还需要进行检查,以避免出现差错。最后才是代码的编写工作。

希望之后的作业不要再出现这次的情况,盲目地开始编写真是痛苦万分,而且事倍功半,这次的教训已十分深刻。

时间: 2024-08-05 08:18:19

四则运算题目生成器——项目笔记的相关文章

个人项目---四则运算题目生成器项目记录

本次作业是设计并实现一个四则运算题目随机生成器(支持分数运算),其功能包括生成题目文件,并自动生成对应的答案文件,以及根据输入的题目文件,对输入的答案文件进行批改打分. 时间表格 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 24h Development 开发 · Analysis · 需求分析 (包括学习新技术) 2h · Design Spec · 生成设计文档 2h ·

四则运算题目生成器项目博客

PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 1h Development 开发 · Analysis · 需求分析 (包括学习新技术) 2h · Design Spec · 生成设计文档 1h · Design Review · 设计复审 (和同事审核设计文档) 0.5h · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0.5h · Desi

结对编程1 —— 基于GUI和Swing的四则运算题目生成器

结对编程1 -- 基于GUI和Swing的四则运算题目生成器 合作伙伴 201421123089 周迪 201421123069 黄睿 代码地址:https://git.coding.net/H1159650478/sizeyunsuanjiaqiang.git 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功能.一定价值的程序.在下面

结对项目:四则运算题目生成器(JAVA+GUI)

结对项目(JAVA+GUI) 结对伙伴: 胡梓泽(3118005002) 黄伟洪(3118005004) Github链接:https://github.com/Hubbard1999/operation 1 项目简介 1.1 题目描述 1.1.1 题目:实现一个自动生成小学四则运算题目的命令行程序(也可以用图像界面,具有相似功能). 1.1.2 说明: 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. 自然数:0, 1, 2, -. 运算符:+, ?, ×, ÷. 括号:(,

关于四则运算题目生成项目

PSP2.1 Personal Software Process Stages Time Planning 计划     · Estimate · 估计这个任务需要多少时间 30 Development 开发    · Analysis  · 需求分析 (包括学习新技术) 1  · Design Spec  · 生成设计文档 1   · Design Review  · 设计复审 (和同事审核设计文档) 1   · Coding Standard  · 代码规范 (为目前的开发制定合适的规范)

c/c++:四则运算题目生成器3

题目要求: 1.学生写的程序必须能判定用户的输入答案是否正确 2.程序必须能处理四种运算的混合算式 3.要求两人合作分析,单独编程,单独撰写博客 团队成员:杜文星,张邵佳(http://www.cnblogs.com/me-tts/) 我的代码: head.h 1 #pragma once 2 #include<iostream> 3 #include<ctime> 4 #include<strstream> 5 #include<stdlib.h> 6 #

四则运算题目生成器2

题目要求:在第一次原有的功能的基础上增加以下功能: 1.避免题目的重复 2.可定制(可定制题目数量\打印方式) 3.控制参数的生成: a.是否允许乘除发的生成 b.是否允许有括号的生成(最多支持十个数参与运算) c.可以设定数值范围的范围 d.是否负数参与运算  e.除法是否有余数 我的代码: 1 #include<iostream> 2 #include<ctime> 3 #include<strstream> 4 #include<stdlib.h> 5

结对项目:四则运算题目生成器(Java)

目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4.2 性能优化 4.2.1 优化前:(执行过程消耗时间为:74s) 4.2.2 查重算法优化后:(执行过程消耗时间为:11s) 4.2.3 多线程并发优化后(执行过程消耗时间为:1s) 五.测试报告 5.1 测试项:生成题目和答案是否符合要求 5.2 测试项:批卷功能是否正确判断答案正确与否 5.3

结对项目——四则运算题目生成器

一.GitHub项目地址 : https://github.com/OurPrograming/Exercises 结对项目成员:软三 陈纪禧(3118005043).软三 程伟杰(3118005045) 二.PSP预计时间: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划  60 · Estimate · 估计这个任务需要多少时间 60 Development 开发 1680 · Analysis ·