第一次作业
需求分析:
功能设计:
1.在控制台输入题目的数量及生成数的范围
2.在文本中记录所有生成的题目
3.在文本中记录每道题对应的正确答案
4.把正确答案和做题者输入的答案进行对比,在文本中计算出正确和错误的题目数量并标记题号
设计实现:
Fraction:分数格式的结构体
MathMethod.cs:数学公式方法类,提供对应的计算方法
Fraction Add(Fraction f1, Fraction f2):分数的加法方法
Fraction Sub(Fraction f1, Fraction f2):分数的减法方法
Fraction Mul(Fraction f1, Fraction f2):分数的乘法方法
Fraction Div(Fraction f1, Fraction f2):分数的除法方法
Fraction Simplify(Fraction f):分数的化简方法
// 用最大公约数化简 public static Fraction Simplify(Fraction f) { int GCD; int temp, remain; Fraction store=f; if (f.deno < f.nume) { temp = f.deno; f.deno = f.nume; f.nume = temp; } while (f.nume != 0) { remain = f.deno % f.nume; f.deno = f.nume; f.nume = remain; } GCD = f.deno; store.deno = store.deno/GCD; store.nume = store.nume/GCD; return store; }
测试运行:
控制台:
Exercises文件:
Answers文件:
Grade文件:
个人软件过程:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | 5 | 5 |
· Estimate | 估计这个任务需要多少时间 | 650 | 360 |
Development | 开发 | 300 | 180 |
· Analysis | 需求分析 (包括学习新技术) | 5 | 5 |
· Design Spec | 生成设计文档 | 0 | 0 |
· Design Review | 设计复审 | 10 | 10 |
· Coding Standard | 代码规范 | 5 | 5 |
· Design | 具体设计 | 10 | 20 |
· Coding | 具体编码 | 300 | 150 |
· Code Review | 代码复审 | 30 | 15 |
· Test | 测试(自我测试,修改代码,提交修改) | 30 | 90 |
Reporting | 报告 | 30 | 40 |
· | 测试报告 | 2 | 2 |
· | 计算工作量 | 2 | 2 |
· | 并提出过程改进计划 | 3 | 3 |
代码地址
https://git.coding.net/HangZhe/HomeWork1.git
小结:
最近一些事情真的让我有点忙不过来,导致这次作业我花的时间其实很少,有一些功能没有实现,只是做了简单的两个操作数的整数和分数运算,后续会补齐。学到的东西还是有的,比如使用Split(char a)函数可以把一个字符串以字符a为分界线进行划分,划分的结果是一个字符串数组,每一小段都是一个数组元素,还有就是对C#的文件操作方面应用的更加熟练,对文件的写入要一次完成比较好,后面要加入的括号运算可以先在一个随机的运算数前面生成左括号,然后在这个运算数的后面再取一个随机的数前面加上右括号,对于括号的运算我的思路是使用上学期编译原理的知识转换为逆波兰式,查重应该使用栈来实现。