本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
本次作业github: https://github.com/lenkay013/ly013
一、题目要求:
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:23 - 3 * 4 = 11
PSP2.1 |
Personal Software Process Stages |
Time Senior Student |
Time |
Development |
开发 |
40 |
40 |
· Analysis |
需求分析 (包括学习新技术) |
8 |
8 |
· Design Spec |
生成设计文档 |
0 |
1 |
· Design Review |
设计复审 |
0 |
1 |
· Coding Standard |
代码规范 |
4 |
3 |
· Design |
具体设计 |
6 |
6 |
· Coding |
具体编码 |
7 |
9 |
· Code Review |
代码复审 |
4 |
4 |
· Test |
测试(自我测试,修改代码,提交修改) |
11 |
8 |
Reporting |
报告 |
0 |
0 |
三 代码提交
代码提交在GitHub上。
四 博文
对c语言的知识遗忘的比较大,只实现了基本功能,用户通过输入题目条数,来产生题目。题目的扩展要求没能完成,代码的功能也没有完善好。
五 主要代码
switch (operation)
{
case '+':
if (bracket == 1)
ranswer2[i] = (num3[i] + num4[i]) / num6[i];
else if (bracket == 0)
ranswer2[i] = num3[i] + num4[i];
break;
case '-':
if (bracket == 1)
ranswer2[i] = (num3[i] - num4[i])*num6[i];
else if (bracket == 0)
ranswer2[i] = num3[i] - num4[i];
break;
case '*':
if (bracket == 1)
ranswer2[i] = (num3[i] + num4[i])*num6[i];
else if (bracket == 0)
ranswer2[i] = num3[i] * num4[i];
break;
case '/':
if (bracket == 1)
ranswer2[i] = (num3[i] - num4[i]) / num6[i];
else if (bracket == 0)
ranswer2[i] = num3[i] / num4[i];
break;
}
六 总结:通过这次作业,进一步认识到自己对c语言知识掌握不够,然后就是代码存在缺陷,同时也太繁琐,如果在判断运算符优先级的部分用到数据结构栈的知识,代码也许能够简洁一点。