结对编程第二次作业

1.题目要求

能够自动生成四则运算练习题
可以定制题目数量
用户可以选择运算符
用户设置最大数(如十以内、百以内等)
用户选择是否有括号、是否有小数
用户选择输出方式(如输出到文件、打印机等)
最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

2.队伍组成

由于同寝室舍友杨里生缺少队友,我们决定拉他入伙,将驾驶员的代码编写部分分工合作,由杨里生完成测试。
在实际编写中,黄绍伟负责编写了主函数,四则运算生成
我负责添加了括号,小数,功能的实现等完善了程序
驾驶员:饶光宇,黄绍伟
领航员:杨里生

3.程序代码

#include<stdio.h>
#include<math.h>
#include<windows.h>
#include<time.h>
void add()
{
 int d,e,x;
 printf("\t\t\t请选择几以内的运算:");
 scanf("%d",&x);
 printf("\t\t\t需要练习多少道题:");
 scanf("%d",&d);
 printf("\t\t\t是否为小数(1.小数   2.整数): ");
 scanf("%d",&e);
 switch(e)
 {

    case 1:
         Xiaoshu1(d,x);break;
    case 2:
         Zhengshu1(d,x);
         break;

 }
}
 void Zhengshu1(int d,int x)
 {
     int a,b,i;
 for(i=0;i<d;i++)
 {
  a=rand()%x;
  b=rand()%x;
  printf("\n\t\t\t %d + %d = %d",a,b,a+b);
}
 }

 void Xiaoshu1(int d,int x)
 {
     float a,b;
     int i;
	 x=x*100;
     for(i=0;i<d;i++)
     {
         a=rand()%x*0.01;
         b=rand()%x*0.01;
         printf("\n\t\t\t %.2f + %.2f =%.2f",a,b,a+b);
     }
 }


void del()
{
 int d,e,x;
 printf("\t\t\t请选择几以内的运算:");
 scanf("%d",&x);
 printf("\t\t\t需要练习多少道题:");
 scanf("%d",&d);
 printf("\t\t\t是否为小数(1.小数   2.整数): ");
 scanf("%d",&e);
 switch(e)
 {

     case 1:
         Xiaoshu2(d,x);break;
    case 2:
         Zhengshu2(d,x);
         break;

 }
}
  void Zhengshu2(int d,int x)
 {
     int a,b,i;
 for(i=0;i<d;i++)
 {
     a=rand()%x;
     b=rand()%x;
     for(;a-b<0;)
     {
           a=rand()%x;
           b=rand()%x;
     }
  printf("\n\t\t\t %d - %d = %d",a,b,a-b);
}
 }
  void Xiaoshu2(int d,int x)
 {
     float a,b;
     int i;
	 x=x*100;
     for(i=0;i<d;i++)
     {
         a=rand()%x*0.01;
         b=rand()%x*0.01;
         printf("\n\t\t\t %.2f - %.2f =%.2f",a,b,a-b);
     }
 }

void mul()
{
 int d,e,x;
 printf("\t\t\t请选择几以内的运算:");
 scanf("%d",&x);
 printf("\t\t\t需要练习多少道题:");
 scanf("%d",&d);
 printf("\t\t\t是否为小数(1.小数   2.整数): ");
 scanf("%d",&e);
 switch(e)
 {

     case 1:
         Xiaoshu3(d,x);break;
    case 2:
         Zhengshu3(d,x);
         break;

 }
}
void Zhengshu3(int d,int x)
 {
     int a,b,i;
 for(i=0;i<d;i++)
 {
  a=rand()%x;
  b=rand()%x;
  printf("\n\t\t\t %d * %d = %d",a,b,a*b);
}
 }
 void Xiaoshu3(int d,int x)
 {
     float a,b;
     int i;
	 x=x*100;
     for(i=0;i<d;i++)
     {
         a=rand()%x*0.01;
         b=rand()%x*0.01;
         printf("\n\t\t\t %.2f * %.2f =%.2f",a,b,a*b);
     }
 }
void di()
{
 int d,e,x;
 printf("\t\t\t请选择几以内的运算:");
 scanf("%d",&x);
 printf("\t\t\t需要练习多少道题:");
 scanf("%d",&d);
 printf("\t\t\t是否为小数(1.小数   2.整数): ");
 scanf("%d",&e);
 switch(e)
 {
     case 1:
         Xiaoshu4(d,x);break;
    case 2:
         Zhengshu4(d,x);break;
 }
}
void Zhengshu4(int d,int x)
 {
     int a,b,i;
 for(i=0;i<d;i++)
 {
  a=rand()%x;
  b=rand()%x+1;
  printf("\n\t\t\t %d / %d = %d",a,b,a/b);
}
 }
 void Xiaoshu4(int d,int x)
 {
     float a,b;
     int i;
	 x=x*100;
     for(i=0;i<d;i++)
     {
         a=rand()%x*0.01;
         b=rand()%x*0.01+0.01;
         printf("\n\t\t\t %.2f / %.2f =%.2f",a,b,a/b);
     }
 }
 void kuohao()
{
 int a,b,c,x,d,i,e;
 printf("\t\t\t请选择几以内的运算:");
 scanf("%d",&x);
 printf("\t\t\t需要练习多少道题:");
 scanf("%d",&e);
 for(i=0;i<=e;i++)
 {
 a=rand()%x;
 b=rand()%x;
 d=rand()%x;
 printf("\n\t\t\t (%d + %d)*%d = ",a,b,d);
 a=a+b;
 printf("%d",a*d);
 }
}
int main()
{
 int choise;
 int con=1;
 printf("\n\t\t\t欢迎进入小学简易四则运算\n\n");
 while(1)
 {
  printf("\t\t请选择:\n");
  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");
  printf("\t\t\t  退出运算(请输入6)\n");
  scanf("%d",&choise);
  switch(choise)
  {
  case 1:
   add();
   break;
  case 2:
   del();
   break;
  case 3:
   mul();
   break;
  case 4:
   di();
   break;
  case 5:
   kuohao();
   break;
  case 6:
   return 0;
  }
  printf("\n\t\t\t重新选择?(请输入1)\n");
  printf("\n\t\t\t退出运算?(请输入0)\n");
  scanf("%d",&con);
  if(con==1)
   con=1;
  else if(con==0)
   break;
  else
   printf("抱歉!,你输入的指令有误!请重新输入!\n");
 }
 return 0;
}

4.运行截图


程序主界面

加法运算

减法运算

乘法运算

除法运算

括号运算

5. coding

6.总结

一开始觉得题目还蛮简单的,但是写的时候还是遇到了不少的问题,又觉得其实并不是那么的简单,在仔细查阅了资料并和导航员讨论后,才有了具体的实现思路,通过反复的测试编写,基本完成了题目的要求。自己的团队能力得到了提高,体会到了团队合作的高效。在团队合作的过程中无论是领航员还是驾驶员,在他们的身上我都看到了值得自己学习的地方,真所谓三人行必有我师焉,通过团队合作互相学习,共同进步。

感谢大家

posted @ 2018-04-17 22:34  f7r  阅读(127)  评论(0编辑  收藏  举报