四则运算

主要功能:实现小学生四则运算的功能。

设计思想:考虑到小学生的运算能力,可以让小学生自己选择四则运算的种类,以及运算的位数,答完题后,系统自动判断对错。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int add(int num1,int num2)//加法
{
 return num1+num2;
}
int subtraction(int num1,int num2)//减法
{
 return num1-num2;
}
int mul(int num1,int num2)//乘法
{
 return num1*num2;
}
float divis(int num1,int num2)//除法
{
 return ((int)(((float)num1/num2)*100+0.5))/100.0;
}
int main()
{ 
 int type = -1;
 int data = -1;
 int choice,num1,num2,results;
 float div_result;
 int right = 0;
 int wrong = 0;
 char ch;
 printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\n");
 srand((unsigned int)time(NULL));
 while(1)
 {
  printf("请选择运算类型:1.加法  2.减法  3.乘法  4.除法(保留两位小数)\n");
  scanf("%d",&choice);
  printf("请选择位数:1.一位数  2.两位数\n");
  scanf("%d",&data);
  switch (choice)
  {
  case 1:
   if(data == 1)
   {
    num1 = rand()%10;
    num2 = rand()%10;
    printf("%d + %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == add(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   else if (data == 2)
   {
    num1 = rand()%100;
    num2 = rand()%100;
    printf("%d + %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == add(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   break;
  case 2:
   if(data == 1)
   {
    num1 = rand()%10;
    num2 = rand()%10;
    printf("%d - %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == subtraction(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   else if (data == 2)
   {
    num1 = rand()%100;
    num2 = rand()%100;
    printf("%d - %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == subtraction(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   break;
  case 3:
   if(data == 1)
   {
    num1 = rand()%10;
    num2 = rand()%10;
    printf("%d * %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == mul(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   else if (data == 2)
   {
    num1 = rand()%100;
    num2 = rand()%100;
    printf("%d * %d=__?__\n",num1,num2);
    scanf("%d",&results);
    if(results == mul(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   break;
  case 4:
   if(data == 1)
   {
    num1 = rand()%10;
    num2 = rand()%10+1;
    printf("%d / %d=__?__\n",num1,num2);
    scanf("%f",&div_result);
    if(div_result == divis(num1,num2))
    {
     printf("回答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   else if (data == 2)
   {
    num1 = rand()%100;
    num2 = rand()%100+1;
    printf("%d / %d=__?__\n",num1,num2);
    scanf("%f",&div_result);
    if(div_result == divis(num1,num2))
    {
     printf("答正确!\n");
     right++;
    }
    else
    {
     printf("回答错误!\n");
     wrong++;
    }
    printf("是否继续?y/n\n");
    getchar();
    scanf("%c",&ch);
    if(ch == 'y')
     break;
    else if(ch == 'n')
     goto end;
   }
   break;
  default :
   printf("输入错误!\n");
   break;
  }
 }
end:
 printf("回答正确%d题,回答错误%d题\n",right,wrong);
 printf("\n====================谢谢光临====================!\n");
 system("pause");
 return 0;
}























总结:通过这次完成实现自动生成小学四则运算题目的程序,我意识到我的C语言的基础知识还是不扎实,在老师和同学的帮助下才完成的这个项目,所以,在以后的学习中,我还要不断地继续努力,上课多提问,多去查阅相关资料的书籍,使自己不断的进步。

 

posted @ 2016-03-15 16:40  豆豆奶片  阅读(135)  评论(2编辑  收藏  举报