C语言之小学生四则运算

基本要求:

(1)实现一个加减乘除运算的小型系统,进行整数的加、减、乘、除运算;

(2)在每一种运算下,由系统随机产生两个数(数值大小在1~100之间)参加运算,当用户根据系统提供的公式进行计算,并输入计算结果后,系统判断结果的对错。如果结果正确,则显示“Very Good”,否则,显示“Wrong!!!”。

(3)每次选择一种运算后,系统随机产生5或10道题目(需保证出的题目不超纲,即加法和与乘积不能超出100、减法结果不能出现负数、除法必须能整除),当用户运算完毕后,系统给出正确率。如用户10题答对了6题,则显示正确率为60%。每道题目可以考虑最多给2次答题机会。运算完毕后,系统将返回主菜单,供用户再次选择。

一、功能结构图

 

Tips:因为循环等原因,源程序中的变量定义与流程图不同。

二、核心功能介绍

        用户选择一种运算,出现10道或者5道相应的100以内的运算题,用户根据系统提供的公式进行计算,并输入计算结果后,系统判断结果的对错。如果结果正确,则显示“Very Good”,否则,显示“Wrong!!!”。每道题目用户最多有2次答题机会。当用户运算完毕后,系统给出正确率。

三、源程序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
int main()
 {
	int a[10],b[10],sum[10],k;
	int i,j,m,n,t=0;
	char q;

    q=getchar();
    //选择运算,输入“+,-,*,/”四个运算符决定运算类型。 
    
    srand((unsigned)time(NULL));
    k=rand()%2;
    if(k==0) n=5;
    else n=10;
    printf("你将要答题 %d道\n",n);
    
    //随机选择产生5道还是10道 题目 。
    
    for(i=1;i<=n;i++)
    //产生n道题目
	 
    {
    	srand((unsigned)time(NULL));
    	a[i]=rand()%100+1;
    	b[i]=rand()%100+1;
    
    	//随机产生两个1~100的随机数 。
    	
	while(q=='+'&&a[i]+b[i]>100){srand((unsigned)time(NULL));a[i]=rand()%100+1;b[i]=rand()%100+1;} 
    	while(q=='-'&&a[i]-b[i]<0){srand((unsigned)time(NULL));a[i]=rand()%100+1;b[i]=rand()%100+1;}
    	while(q=='*'&&a[i]*b[i]>100){srand((unsigned)time(NULL));a[i]=rand()%100+1;b[i]=rand()%100+1;}
    	while(q=='/'&&(a[i]/b[i]<0||a[i]%b[i]!=0)) {srand((unsigned)time(NULL));a[i]=rand()%100+1;b[i]=rand()%100+1;}
    	
    	//保证出的题目不超纲,即加法和与乘积不能超出100、减法结果不能出现负数、除法必须能整除。
    	
    	if(q=='+')  {printf("%d. %d+%d= \n",i, a[i],b[i]);sum[i]=a[i]+b[i];}
    	if(q=='-')  {printf("%d. %d-%d= \n",i,a[i],b[i]);sum[i]=a[i]-b[i];}
    	if(q=='*')  {printf("%d. %d*%d= \n",i,a[i],b[i]);sum[i]=a[i]*b[i];}
    	if(q=='/')  {printf("%d. %d/%d= \n",i,a[i],b[i]);sum[i]=a[i]/b[i];}
    	
		//输出公式让用户计算,并保留正确答案 。 

		for(j=1;j<=2;j++)
		{
			scanf("%d",&m);
			if(m==sum[i]) {printf("Very Good\n");t=t+1;break;}
			else printf("Wrong!!\n");
		}
		//判断用户输入答案的正确性,最多有两次答题机会。	
}
	printf("正确率:百分之%d\n",t*100/n);
	
	//输出正确率 
 
	return 0;
}

四、程序运行结果

4.1 加法测试

 

4.2 减法测试

 

4.3 乘法测试

 

4.4 除法测试

 

4.5 测试小结

经测试,加、减、乘、除的基本功能都可以正常实现。

在最后输出环节,个人认为还可以输出错题集,表明错的地方,错的次数,还有正确答案。输出如下:

正确率:百分之80

错题:第1题 2次 正确答案 3;第2题 1次 正确答案 5

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值