第一次个人作业-四则运算题目生成程序(计算机181 张博闻)

一、作业规范要求

这个作业属于哪个课程 AHPU-软件工程导论-计算机18级
作业要求 个人作业一-四则运算题目生成程序
学号 3180107121

二、作业要求

写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

2)程序要求能处理用户的输入,判断对错,累积分数

3)程序支持可以由用户自行选择加、减、乘、除运算

4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

三、作业内容

`
#include<stdio.h>
#include<math.h>
#include<windows.h>

int right=0;//答对的正确的题目个数
int wrong=0;//答错的题目个数

void add() //整数的加法
{
int a,b,c;
a=rand()%100; //随机生成
b=rand()%100;
printf("请回答:\n\t\t %d + %d = ",a,b);
scanf("%d",&c);
if(a+b==c)
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
}

void Add() //真分数的加法
{
int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
int a,b,c;
zhenfenshu1_m=0+rand()%100;
zhenfenshu1_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu1_m<zhenfenshu1_z)
{
	zhenfenshu1_m=0+rand()%100;
	zhenfenshu1_z=0+rand()%100;	
}

zhenfenshu2_m=0+rand()%100;
zhenfenshu2_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu2_m<zhenfenshu2_z)
{
	zhenfenshu2_m=0+rand()%100;
	zhenfenshu2_z=0+rand()%100;	
}
printf("请回答:\n\t\t %d / %d + %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
scanf("%d",&c);
a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
if(a+b==c)
{
	printf("回答正确!\n");
	right++;
}
else
{
	printf("回答错误!\n");
	wrong++;
}

}

void minu() //整数减法
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答:\n\t\t %d - %d = ",a,b);
scanf("%d",&c);
if(a-b==c)
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
}

void Minu() //真分数的减法
{
int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
int a,b,c;
zhenfenshu1_m=0+rand()%100;
zhenfenshu1_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu1_m<zhenfenshu1_z)
{
	zhenfenshu1_m=0+rand()%100;
	zhenfenshu1_z=0+rand()%100;	
}

zhenfenshu2_m=0+rand()%100;
zhenfenshu2_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu2_m<zhenfenshu2_z)
{
	zhenfenshu2_m=0+rand()%100;
	zhenfenshu2_z=0+rand()%100;	
}
printf("请回答:\n\t\t %d / %d - %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
scanf("%d",&c);
a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
if(a-b==c)
{
	printf("回答正确!\n");
	right++;
}
else
{
	printf("回答错误!\n");
	wrong++;
}

}

void mul() //整数乘法
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答:\n\t\t %d * %d = ",a,b);
scanf("%d",&c);
if(a*b==c)
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
}

void Mul() //真分数的乘法
{
int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
int a,b,c;
zhenfenshu1_m=0+rand()%100;
zhenfenshu1_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu1_m<zhenfenshu1_z)
{
	zhenfenshu1_m=0+rand()%100;
	zhenfenshu1_z=0+rand()%100;	
}

zhenfenshu2_m=0+rand()%100;
zhenfenshu2_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu2_m<zhenfenshu2_z)
{
	zhenfenshu2_m=0+rand()%100;
	zhenfenshu2_z=0+rand()%100;	
}
printf("请回答:\n\t\t %d / %d * %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; 	
scanf("%d",&c);
if(a*b==c)
{
	printf("回答正确!\n");
	right++;
}
else
{
	printf("回答错误!\n");
	wrong++;
}

}

void di() //整数除法
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答:\n\t\t %d / %d = ",a,b);
scanf("%d",&c);
if(a/b==c)
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
}

void Di() //真分数的除法
{
int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
int a,b,c;
zhenfenshu1_m=0+rand()%100;
zhenfenshu1_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu1_m<zhenfenshu1_z)
{
	zhenfenshu1_m=0+rand()%100;
	zhenfenshu1_z=0+rand()%100;	
}

zhenfenshu2_m=0+rand()%100;
zhenfenshu2_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfenshu2_m<zhenfenshu2_z)
{
	zhenfenshu2_m=0+rand()%100;
	zhenfenshu2_z=0+rand()%100;	
}
printf("请回答:\n\t\t %d / %d ÷ %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
scanf("%d",&c);
a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
if(a/b==c)
{
	printf("回答正确!\n");
	right++;
}
else
{
	printf("回答错误!\n");
	wrong++;
}

}
int main(void)
{
int choise,bot;
srand(time(NULL)); //随机数每次循环都不一样
int con=0;
printf("\n\t\t\t欢迎进入小学简易四则运算\n\n");
while(1)
{
if(con==0)
{
printf("请选择:\n");
printf("\t 整数计算(请输入1)or真分数计算(请输入2)\n");
scanf("%d",&choise);
switch(choise)
{
case 1:
printf("\t\t\t 加法运算(请输入1)\n");
printf("\t\t\t 减法运算(请输入2)\n");
printf("\t\t\t 乘法运算(请输入3)\n");
printf("\t\t\t 除法运算(请输入4)\n");
printf("\t\t\t 退出运算(请输入5)\n");
scanf("%d", &bot);
switch(bot)
{
case 1:
add();
break;
case 2:
minu();
break;
case 3:
mul();
break;
case 4:
di();
break;
case 5:
return;
}
break;
case 2:
printf("\t\t\t 加法运算(请输入1)\n");
printf("\t\t\t 减法运算(请输入2)\n");
printf("\t\t\t 乘法运算(请输入3)\n");
printf("\t\t\t 除法运算(请输入4)\n");
printf("\t\t\t 退出运算(请输入5)\n");
scanf("%d", &bot);
switch(bot)
{
case 1:
Add();
break;
case 2:
Minu();
break;
case 3:
Mul();
break;
case 4:
Di();
break;
case 5:
return;
}
break;

  		}
  	}
  	if(con==1)
	{
		switch(choise)
  		{
  			case 1:
  				printf("\t\t\t  加法运算(请输入1)\n");
		  		printf("\t\t\t  减法运算(请输入2)\n");
		  		printf("\t\t\t  乘法运算(请输入3)\n");
		  		printf("\t\t\t  除法运算(请输入4)\n");
		  		printf("\t\t\t  退出运算(请输入5)\n");
		  		scanf("%d", &bot);
		  		switch(bot)
		  		{
		  			case 1:
		  				add();
   						break;
  					case 2:
   						minu();
  						break;
  					case 3:
   						mul();
   						break;
  					case 4:
   						di();
   						break;
  					case 5:
   						return;	
				}
				break;
			case 2:
		  		switch(bot)
		  		{
		  			case 1:
		  				Add();
   						break;
  					case 2:
   						Minu();
  						break;
  					case 3:
   						Mul();
   						break;
   					case 4:
   						Di();
   						break;
  					case 5:
   						return;	
				}
				break;

  		}
	}
  	printf("\n\t\t\t继续运算?(请输入1)\n");
  	printf("\n\t\t\t重新选择?(请输入2)\n");
  	printf("\n\t\t\t退出运算?(请输入3)\n");
  	scanf("%d",&con);
  	if(con==1)
   		con=1;
  	else if(con==2)
   		con=0;
  	else if(con==3)
   		break;
  	else
   		printf("抱歉!,你输入的指令有误!请重新输入!\n");
}
fflush(stdin);   //清空输入缓冲区
printf("您总共完成了 %d 道题\n正确 %d 道\n错误 %d 道\n",right+wrong,right,wrong);

}`



二、个人小结:

posted @ 2020-10-28 01:44  崭新出土  阅读(187)  评论(3编辑  收藏  举报