高级软件工程-作业1


软件工程作业1-四则运算

github地址:* calulator

PSP表格

题目要求

请编一个小软件,实现四则运算(《构建之法》中开篇的题目),并具有以下功能:

(1)能根据题目回答情况,自动判别答案的正误,完成最后总成绩的统计、输出;

(2)题目不要出现重复;

(3)可定制题目数量和打印方式;

(4)可以控制下列参数:是否有乘除法、是否有括号、数值范围、加减法有无负数、除法有无余数、是否支持分数(真分数、假分数......)、是否支持小数(精确到多少位)、打印时每行的间隔

解题思路

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

  • 用一个数组f[4],数组中每个值为1,0来表示是否有乘除法,是否有括号,加减法有无余数等。
  • 用数组z[N]存放每个式子的结果,数组a[]存放生成的随机数
  • 用数组f1[N]存放每个数组的对错,数组e[]来存放俩个运算符位置运算符,并通过switch 来判断使用对应的运算符
  • 通过一个while循环来实现式子的输出,知道n=N
  • 用rand()%4生成的随机数来表示对应的+,-,*,/运算符
  • 最后通过for循环来判断式子的对错

主要步骤流程图

代码说明

#define N 4   //控制产生随机数的个数
int main(int argc, char* argv[]) //还有3个项的多项式,控制的参数有1,乘除;2,括号;3,加减后的结果是否是负数;4,除法是否有余数
{
    int a[3];            //表示随机产生的3数
    int f[4];            //设计参数 f[0]是否有乘除;f[1]是否有括号,f[2]加减结有无负数,f[3]除法有无余数
    int d[2]={0,0};  //d[]分别表示左括号,右括号的位置
    int e[2];       //e[0]表示第一个位置的运算符号;e[1]表示第二个位置的数运算符号
    int z[N];       //存入每一个式子结果
    int f1[N];       //记录每一个式子的对错
    int n;
    int x;            //输入结果
    srand((unsigned)time(NULL));
    n=0;
    printf("是否有乘除?\n0,不是\t1,是\n请输入选项\n");
    scanf("%d",&f[0]);
    printf("是否有括号?\n0,不是\t1,是\n请输入选项\n");
    scanf("%d",&f[1]);    
    printf("加减结有无负数?\n0,不是\t1,是\n请输入选项\n");
    scanf("%d",&f[2]);
    printf("除法有无余数?\n0,不是\t1,是\n请输入选项\n");
    scanf("%d",&f[3]);

PSP

测试运行

小结

还没有完成成绩的统计输出,数值范围,几位小数支持等功能的实现,代码也应该分成不同的函数提高代码的可读性和重用性。

优质内容筛选与推荐>>
1、面试时如何回答职业规划的问题
2、day9.数据类型总结
3、结构和类
4、【洛谷】【堆】P1168 中位数
5、StringGrid组件与dbgrid的区别


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号