这个作业属于哪个课程 | 计科国际班 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 实现一个自动生成小学四则运算题目的命令行程序 |
合作者:一位朋友
GitHub
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 240 | 200 |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 60 |
· Design Spec | · 生成设计文档 | 20 | 20 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 10 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
· Design | · 具体设计 | 60 | 40 |
· Coding | · 具体编码 | 90 | 90 |
· Code Review | · 代码复审 | 20 | 20 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 120 |
Reporting | 报告 | 30 | 30 |
· Test Report | · 测试报告 | 20 | 20 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 790 | 630 |
重要函数
srand()和rand()
srand()为初始化随机数发生器,用于设置rand()产生随机数时的种子。传入的参数seed为unsigned int类型,通常我们会使用time(0)或time(NULL)的返回值作为seed。
将time(NULL)的返回值作为seed,使用rand()生成随机数,还可以用rand()随机产生运算符。
设计流程
1.随机获取自然数;
2.随机获取四则运算符;
3.将随机数和随机运算符组合起来,加上等号得到四则运算题目,并将题目存入文件;
测试运行
成功生成10000道题目
效能分析(10个等式)
摘要图
调用函数时间占比
各函数的调用次数和时间占比
项目心得
这次结对项目,使我明白在结对编程过程中,事先确定好代码规范是很重要的,否则双方都很难看懂各自的代码。结对编程是我们能更加容易地解决遇到的问题和困难,省下了很多时间。由于时间关系和个人能力的缘故,导致我们只完成了四则运算等式的生成,生成答案和批改来不及做。