四则运算

博客班级 软件工程
作业要求 实现小学四则运算
作业目标 学会博客园简单的使用方法
学号 3180701333

题目要求

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

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

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

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

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

代码提交

加法

if(a==1)
	 {
          printf("5,一位数加一位数\n");
          printf("6,一位数加两位数\n");
          printf("7,两位数加两位数\n");
          printf("*********************************请输入题型:");
          scanf("%d",&a);
       while(a<5||a>7)
	   {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
	   }
       if(a==5)
	   {
          loop:b=rand()%10;
               c=rand()%10;
	           d=b+c;
  	           printf("%d+%d=?\n",b,c);
	           printf("请输入答案:");
	           scanf("%d",&e);
	           while(e!=d)
			   {
                  printf("回答错误,请重做");
                  printf("%d+%d=?\n",b,c);
                  printf("请输入答案:");
		          scanf("%d",&e);
			   }
               printf("回答正确!是否做下一题?\n");
	           printf("输入0表示是,输入1表示否\n");
		       scanf("%d",&f);
		       if(f==0)
			     goto loop;
		       if(f==1)
                 printf("欢迎再次使用!");

	   } 
       if(a==6)
	   {
          loo: b=rand()%10;
               c=rand()%100;
               if (c<10)  c=c+10;
	           d=b+c;
  	           printf("%d+%d=?\n",b,c);
	           printf("请输入答案:");
	           scanf("%d",&e);
	           while(e!=d)
			   {
                  printf("回答错误,请重做");
                  printf("%d+%d=?\n",b,c);
                  printf("请输入答案:");
		          scanf("%d",&e);
			   }
                  printf("回答正确!是否做下一题?\n");
	              printf("输入0表示是,输入1表示否\n");
		          scanf("%d",&f);
		          if(f==0)
			        goto loo;
		          if(f==1)
                    printf("欢迎再次使用!");

	   }
       if(a==7)
	   {
     loog:b=rand()%100;
          c=rand()%100;
          if(c<10)  c=c+10;
		  if(b<10)  b=b+10;
	      d=b+c;
  	      printf("%d+%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d+%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto loog;
		  if(f==1)
            printf("欢迎再次使用!");
	   }
	 }

减法

if(a==2)
	 {
          printf("5,一位数减一位数\n");
          printf("6,两位数减一位数\n");
          printf("7,两位数减两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
          while(a<5||a>7)
		  {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
		  }
          if(a==5)
		  {
     car: b=rand()%10;
          c=rand()%10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto car;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
          if(a==6)
		  {
     truck:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto truck;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
          if(a==7)
		  {
     boat:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%100;
          if(c<10)  c=c+10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto boat;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
	 }

乘法

if(a==3)
	 {
          printf("5,一位数乘一位数\n");
          printf("6,一位数乘两位数\n");
          printf("7,两位数乘两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
          while(a<5||a>7)
		  {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
		  }
          if(a==5)
		  {
     life:b=rand()%10;
          c=rand()%10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
			   }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto life;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
          if(a==6)
		  {
     shame:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	      while(e!=d)
		  {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		  }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto shame;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
          if(a==7)
		  {
     yeah:b=rand()%100;
          c=rand()%100;
		  if(b<10)  b=b+10;
          if(c<10)  c=c+10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto yeah;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
	 }

除法

if(a==4)
	 {
          printf("5,一位数除一位数\n");
          printf("6,两位数除一位数\n");
          printf("7,两位数除两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
     while(a<5||a>7)
	 {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
	 }
     if(a==5)
	 {
     hit: b=rand()%10;
          c=rand()%10;
		  {if (b>c)
		  {  
		      g=b%c;
			  if   (g!=0)
			  { 
				  b=b-g;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
			  else  d=b/c;
  	            printf("%d/%d=?\n",b,c);
		  }
		  if (c>b)
		  {
		      g=c%b;
			  if (g!=0)
			  { 
				  c=c-g;
			      t=c;c=b;b=t;
			      d=b/c;
			      printf("%d/%d=?\n",b,c);
			  }
			  else 
				  t=c;c=b;b=t;
			      d=b/c;
  	            printf("%d/%d=?\n",b,c);
		  }

	      printf("请输入答案:");
		  scanf("%d",&e);}
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto hit;
		  if(f==1)
            printf("欢迎再次使用!");

	 }
     if(a==6)
	 {
     haha:b=rand()%100;
		  c=rand()%10;
          if(b<10)  
			  b=b+10;
		  g=b%c;
		  if (g!=0)
			  b=b-g;
	      d=b/c;
  	      printf("%d/%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto haha;
		  if(f==1)
            printf("欢迎再次使用!");

	 }
     if(a==7)
	 {
     over:b=rand()%100;
          c=rand()%100;
		  if(b<10)  b=b+10;
          if(c<10)  c=c+10;
		  if (b>c)
		  {  
		      g=b%c;
			  if   (g!=0)
			  { 
				  b=b-g;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
			  else  
			  {
				  d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
		  }
		  if (c>b)
		  {
		      g=c%b;
			  if (g!=0)
			  { 
				  c=c-g;
			      t=c;c=b;b=t;
			      d=b/c;
			      printf("%d/%d=?\n",b,c);
			  }
			  else 
			  {
				  t=c;c=b;b=t;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
		  }
		  scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto over;
		  if(f==1)
            printf("欢迎再次使用!");

	 }

运行截图

个人小结

psp1.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 30 20
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 30 30
Development 开发 300 300
Analysis 需求分析(包括学习新技术) 60 60
Design Spec 生成设计文档 20 20
Design Review 设计复审 20 20
Coding Standard 代码规范 10 10
Design 具体设计 180 180
Coding 具体编码 240 240
Code Review 代码复审 20 20
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 10 10
Test Report 测试报告 10 10
Size Measurement 计算工作量 2 1
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 20 20

小结
通过这次编程练习,我深刻认识到了自己编程能力的不足,我要在今后的学习中多多锻炼自己这方面的能力!

源码

#include"stdio.h"
#include"stdlib.h"
void main()
{
     int a,b,c,d,e,f,g,t;
     printf("****************************欢迎使用!************************\n");
     printf("\n");
     printf("1.加法运算\n");
     printf("2.减法运算\n");
     printf("3.乘法运算\n");
     printf("4.除法运算\n");
     printf("*****************************请选择运算类型:");
     scanf("%d",&a);
     while(a<1||a>4)
	 {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
	 }
     if(a==1)
	 {
          printf("5,一位数加一位数\n");
          printf("6,一位数加两位数\n");
          printf("7,两位数加两位数\n");
          printf("*********************************请输入题型:");
          scanf("%d",&a);
       while(a<5||a>7)
	   {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
	   }
       if(a==5)
	   {
          loop:b=rand()%10;
               c=rand()%10;
	           d=b+c;
  	           printf("%d+%d=?\n",b,c);
	           printf("请输入答案:");
	           scanf("%d",&e);
	           while(e!=d)
			   {
                  printf("回答错误,请重做");
                  printf("%d+%d=?\n",b,c);
                  printf("请输入答案:");
		          scanf("%d",&e);
			   }
               printf("回答正确!是否做下一题?\n");
	           printf("输入0表示是,输入1表示否\n");
		       scanf("%d",&f);
		       if(f==0)
			     goto loop;
		       if(f==1)
                 printf("欢迎再次使用!");

	   } 
       if(a==6)
	   {
          loo: b=rand()%10;
               c=rand()%100;
               if (c<10)  c=c+10;
	           d=b+c;
  	           printf("%d+%d=?\n",b,c);
	           printf("请输入答案:");
	           scanf("%d",&e);
	           while(e!=d)
			   {
                  printf("回答错误,请重做");
                  printf("%d+%d=?\n",b,c);
                  printf("请输入答案:");
		          scanf("%d",&e);
			   }
                  printf("回答正确!是否做下一题?\n");
	              printf("输入0表示是,输入1表示否\n");
		          scanf("%d",&f);
		          if(f==0)
			        goto loo;
		          if(f==1)
                    printf("欢迎再次使用!");

	   }
       if(a==7)
	   {
     loog:b=rand()%100;
          c=rand()%100;
          if(c<10)  c=c+10;
		  if(b<10)  b=b+10;
	      d=b+c;
  	      printf("%d+%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d+%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto loog;
		  if(f==1)
            printf("欢迎再次使用!");
	   }
	 }
     if(a==2)
	 {
          printf("5,一位数减一位数\n");
          printf("6,两位数减一位数\n");
          printf("7,两位数减两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
          while(a<5||a>7)
		  {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
		  }
          if(a==5)
		  {
     car: b=rand()%10;
          c=rand()%10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto car;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
          if(a==6)
		  {
     truck:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto truck;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
          if(a==7)
		  {
     boat:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%100;
          if(c<10)  c=c+10;
	      d=b-c;
  	      printf("%d-%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d-%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto boat;
		  if(f==1)
            printf("欢迎再次使用!");
		  }
	 }
     if(a==3)
	 {
          printf("5,一位数乘一位数\n");
          printf("6,一位数乘两位数\n");
          printf("7,两位数乘两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
          while(a<5||a>7)
		  {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
		  }
          if(a==5)
		  {
     life:b=rand()%10;
          c=rand()%10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
			   }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto life;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
          if(a==6)
		  {
     shame:b=rand()%100;
          if(b<10)  b=b+10;
          c=rand()%10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	      while(e!=d)
		  {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		  }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto shame;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
          if(a==7)
		  {
     yeah:b=rand()%100;
          c=rand()%100;
		  if(b<10)  b=b+10;
          if(c<10)  c=c+10;
	      d=b*c;
  	      printf("%d*%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d*%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto yeah;
		  if(f==1)
            printf("欢迎再次使用!");

		  }
	 }
     if(a==4)
	 {
          printf("5,一位数除一位数\n");
          printf("6,两位数除一位数\n");
          printf("7,两位数除两位数\n");
          printf("请输入题型:");
          scanf("%d",&a);
     while(a<5||a>7)
	 {
          printf("输入错误,请重新输入");
          scanf("%d",&a);
	 }
     if(a==5)
	 {
     hit: b=rand()%10;
          c=rand()%10;
		  {if (b>c)
		  {  
		      g=b%c;
			  if   (g!=0)
			  { 
				  b=b-g;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
			  else  d=b/c;
  	            printf("%d/%d=?\n",b,c);
		  }
		  if (c>b)
		  {
		      g=c%b;
			  if (g!=0)
			  { 
				  c=c-g;
			      t=c;c=b;b=t;
			      d=b/c;
			      printf("%d/%d=?\n",b,c);
			  }
			  else 
				  t=c;c=b;b=t;
			      d=b/c;
  	            printf("%d/%d=?\n",b,c);
		  }

	      printf("请输入答案:");
		  scanf("%d",&e);}
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto hit;
		  if(f==1)
            printf("欢迎再次使用!");

	 }
     if(a==6)
	 {
     haha:b=rand()%100;
		  c=rand()%10;
          if(b<10)  
			  b=b+10;
		  g=b%c;
		  if (g!=0)
			  b=b-g;
	      d=b/c;
  	      printf("%d/%d=?\n",b,c);
	      printf("请输入答案:");
	      scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto haha;
		  if(f==1)
            printf("欢迎再次使用!");

	 }
     if(a==7)
	 {
     over:b=rand()%100;
          c=rand()%100;
		  if(b<10)  b=b+10;
          if(c<10)  c=c+10;
		  if (b>c)
		  {  
		      g=b%c;
			  if   (g!=0)
			  { 
				  b=b-g;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
			  else  
			  {
				  d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
		  }
		  if (c>b)
		  {
		      g=c%b;
			  if (g!=0)
			  { 
				  c=c-g;
			      t=c;c=b;b=t;
			      d=b/c;
			      printf("%d/%d=?\n",b,c);
			  }
			  else 
			  {
				  t=c;c=b;b=t;
			      d=b/c;
  	              printf("%d/%d=?\n",b,c);
			  }
		  }
		  scanf("%d",&e);
	     while(e!=d)
		 {
               printf("回答错误,请重做");
               printf("%d/%d=?\n",b,c);
               printf("请输入答案:");
		       scanf("%d",&e);
		 }
          printf("回答正确!是否做下一题?\n");
	      printf("输入0表示是,输入1表示否\n");
		  scanf("%d",&f);
		  if(f==0)
			goto over;
		  if(f==1)
            printf("欢迎再次使用!");

	 }
}
}
posted @ 2020-11-08 19:27  秃头=变强786  阅读(160)  评论(0编辑  收藏  举报