本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
一、题目要求:
像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:
23 - 3 * 4 = 11
扩展要求:
1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。
2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。
初步拟定要实现的功能后,估计一下自己需要花多长时间。编程过程中记录自己实际用了多长时间。
然后和同学们比较一下各自程序的功能、实现方法的异同等等。
写博客纪录自己实现的过程和思路。
1.构思:首先想到用C语言去做,因为之前做过类似的。
2.设计:根据题目需求,(具体代码注释已经上传在Github,这里不在赘述)
①屏幕提示信息让用户输入需要显示出的题目数目,这里有个简单的判断用户输入合法性的问题;可以实现判断对错,计分数功能。
②由于需要两个运算符,所以可以用switch case依次循环++;+-;+*;+/;这个循环非常繁琐;
3.遇到的问题:①拓展问题中的实现真分数功能不能实现,构建代码一开始没有考虑到后来的问题,想到哪里做到哪里,没有为后面铺垫。没有很好的应用软件工程的思想用系统的方法去实现一个项目。
②答案的问题,因为有整数除法的存在,所以会出现小数点的问题
③两个运算符如何实现
4.如何解决:①符号位的问题为了避免繁琐,全部使用了整型。
②拓展功能的真分数功能目前还没有实现,实现了会再次上传。
③其中有一些参考了这个博主的 idea:https://www.cnblogs.com/bjzsr/p/5268377.html#3380551
二、个人软件过程耗时估计与统计表
初步拟定要实现的功能后,估计一下自己需要花多长时间。编程过程中记录自己实际用了多长时间。
时间其实大部分花在了学习的方面上,或者说复习C吧。具体的编程思路还是清晰的,就是不知道具体怎么操作。
然后就要查百度,问别人,去翻书。花费了大部分时间。这个表格的时间做大概参考吧。可能数值偏高了。
PSP2.1 | Personal Software Process Stages | Time Senior Student(h) | Time(h) |
Planning | 计划 | 1 | 1 |
· Estimate | 估计这个任务需要多少时间 | 12 | 24 |
Development | 开发 | 10 | 15 |
· Analysis | 需求分析 (包括学习新技术) | 1 | 5 |
· Design Spec | 生成设计文档 | 1 | 1 |
· Design Review | 设计复审 | 1 | 1 |
· Coding Standard | 代码规范 | 1 | 1 |
· Design | 具体设计 | 1 | 5 |
· Coding | 具体编码 | 1 | 5 |
· Code Review | 代码复审 | 1 | 1 |
· Test | 测试(自我测试,修改代码,提交修改) | 1 | 1 |
Reporting | 报告 | 1 | 1 |
· | 测试报告 | 1 | 1 |
· | 计算工作量 | 1 |
1 |
· | 并提出过程改进计划 | 1 | 1 |
三、代码提交
我的项目(szys.c)GitHub远程仓库地址:https://github.com/GzccCzc/Czc