第二次作业
题目:自动生成小学四则运算题目“软件”
需求分析:
基本功能:
1.实现100以内的四则运算
2.显示共对/错并且正确答案
3.统计对/错的数量
设计:
1.建立4个子函数(加减乘除)
2.通过调用子函数来实现(加减乘除的功能)
3.建立主函数实施调用(选择子函数)
代码实现:
#define _CRT_SECURE_NO_WARNINGS #include"stdio.h" #include"stdlib.h" int right = 0, wrong = 0; //定义全局变量 R W 纪录对题数与错题数目 void jiafa() { int a, b, c; //定义a,b,c a = rand() % 100; //随机生成0~100的数字 b = rand() % 100; //随机生成0~100的数字 printf("请回答:%d+%d=", a, b); scanf("%d", &c); //键盘接受值 if (a + b != c) //判断输入值是否正确 { printf("错误\n"); wrong++; //记录错误值+1 } else { printf("正确\n"); right++; //记录正确值+1 } } void jianfa() { int a, b, c; //定义a,b,c a = rand() % 100; //随机生成0~100的数字 b = rand() % 100; //随机生成0~100的数字 printf("请回答:%d-%d=", a, b); scanf("%d", &c); if (a - b != c) //判断输入值是否正确 { printf("错误\n"); wrong++; } else { printf("正确\n"); right++; } } void chengfa() { int a, b, c; //定义a,b,c a = rand() % 100; //随机生成0~100的数字 b = rand() % 100; //随机生成0~100的数字 printf("请回答:%d*%d=", a, b); scanf("%d", &c); if (a*b != c) //判断输入值是否正确 { printf("错误\n"); wrong++; } else { printf("正确\n"); right++; } } void chufa() { double a, b, c; //定义a,b,c a = rand() % 100; //随机生成0~100的数字 b = rand() % 99 + 1; //随机生成1~100的数字 printf("请回答:%lf/%lf=", a, b); scanf("%lf", &c); if (a / b != c) //判断输入值是否正确 { printf("错误\n"); wrong++; } else { printf("正确\n"); right++; } } void main() //主函数 { int x, con = 0; //定义x值与CON值 printf("C语言四则运算程序\n"); while (1) { printf("请选择算法:\n1加2减3乘4除\n"); if (con == 0)scanf("%d", &x); switch (x) //判断输入值 选择子函数程序 { case 1:jiafa(); break; case 2:jianfa(); break; case 3:chengfa(); break; case 4:chufa(); break; } printf("1重做,2换算法,3退出\n"); scanf("%d", &con); if (con == 1)con = 1; if (con == 2)con = 0; if (con == 3)break; } printf("总题数%d,正确%d的道题,错误%d道题!\n", right + wrong, right, wrong); //结束返货 W R值 }
程序截图:
分析与总结:
1.PSP耗时统计
2.总结:这是一个的四则运算程序,通过switch (x)的使用,调用函数或者在switch (x)中编写子程序,就可以实现,计算过程中数据的类型转换使得除法运算不够准确。
软件是需要不断改进但自身能力有限,自后的学习之路会很长,还需要加强自身能力。