在之前编写的四则运算程序基础之上做如下改进:
- 可以出表达式里含有负整数(负整数最小不小于-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.总结:增加部分功能,加强团队合作能力,还有很多功能没有,实现还需努力学习。
合作人 范国睿 罗文豪
