四则运算作业

博客园班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18

作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377

 

需求分析:
1.能自动生成四则运算题目
2.除了整数外,还要支持真分数的四则运算
3.判断运算结果对错

3170701219

 

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-11-06 16:47  这有人用吗  阅读(135)  评论(0)    收藏  举报