在之前编写的四则运算程序基础之上做如下改进:
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
- 用户答题结束以后,程序可以显示用户答题所用的时间
需求分析:
1.增加跟多功能
2.请采用模块化设计思想,修改之前的code,将 “计算功能” 封装起来
设计:
1.加入随机产生负数功能
2.加入程序所用时间
代码实现:
suanfa.h
#define _CRT_SECURE_NO_WARNINGS #include"stdio.h" #include"stdlib.h" int right=0, wrong=0 ; void jiafa() { int a, b, c; //定义a,b,c a = -100 + rand() % 201; //随机生成-100~100的数字 b = -100 + rand() % 201; //随机生成-100~100的数字 printf("请回答:(%d)+(%d)=", a, b); scanf("%d", &c); //键盘接受值 if (a + b != c) //判断输入值是否正确 { printf("错误 "); wrong++; //记录错误值+1 } else { printf("正确 "); right++; //记录正确值+1 } } void jianfa() { int a, b, c; //定义a,b,c a = -100 + rand() % 201; //随机生成-100~100的数字 b = -100 + rand() % 201; //随机生成-100~100的数字 printf("请回答:(%d)-(%d)=", a, b); scanf("%d", &c); if (a - b != c) //判断输入值是否正确 { printf("错误 "); wrong++; } else { printf("正确 "); right++; } } void chengfa() { int a, b, c; //定义a,b,c a = -100 + rand() % 201; //随机生成-100~100的数字 b= -100 + rand() % 201; //随机生成-100~100的数字 if (a<0 && b>0) { printf("请回答(: (%d) * %d=", a, b); } if (a<0 && b<0) { printf("请回答: (%d) * (%d)=", a, b); } if (a>0 && b<0) { printf("请回答: %d * (%d)=", a, b); } if (a>0 && b>0) { printf("请回答: %d * %d=", a, b); } scanf("%d", &c); if (a*b != c) //判断输入值是否正确 { printf("错误 "); wrong++; } else { printf("正确 "); right++; } } void chufa() { double a, b, c; //定义a,b,c a = -100 + rand() % 201; //随机生成-100~100的数字 b = -100 + rand() % 201; //随机生成-100~100的数字 printf("请回答:(%lf)/(%lf)=", a, b); scanf("%lf", &c); if (a / b != c) //判断输入值是否正确 { printf("错误 "); wrong++; } else { printf("正确 "); right++; } }
zhuchengxu.cpp
#define _CRT_SECURE_NO_WARNINGS #include"stdio.h" #include"stdlib.h" #include "suanfa.h" #include <time.h> #include<string.h> #include<iostream> //定义全局变量 R W 纪录对题数与错题数目 void main() //主函数 { int a = clock(); int x, con = 0; //定义x值与CON值 printf("C语言四则运算程序 "); while (1) { printf("请选择算法: 1加2减3乘4除 "); 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退出 "); scanf("%d", &con); if (con == 1)con = 1; if (con == 2)con = 0; if (con == 3)break; } printf("总题数%d,正确%d的道题,错误%d道题! ", right + wrong, right, wrong); //结束返货 W R值 int b = clock();//到这结束 int c = b - a;//算出来的单位是毫秒 printf("%d毫秒 ", c); // }
程序截图:
分析与总结:
1.PSP耗时统计
2.总结:增加部分功能,加强团队合作能力,还有很多功能没有,实现还需努力学习。
合作人 范国睿 罗文豪