郑方军

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

| 班级 |


| ---- | ---- | ---- |
| 作业要求 |
| 作业目标 | 学会使用markdown的使用方法 |
| 学号 | 3180701226 |

题目要求

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

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

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

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

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


代码说明

加法

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;

减法

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;

乘法

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;

除法

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;



运行截图

开始界面
开始界面
选择界面
选择
运算
运算
运算
运算

个人小结

 在使用markdown语法编辑的过程中,遇到了许多问题,但在不断的修改过程中依次得到了解决,但还是有很多不足。
在编辑过程中,还不是很熟练,但了解到了markdown语法的便捷性,感觉非常有趣,希望在以后的编辑中逐渐熟练


psp

psp2.1 | 任务内容 | 计划完成需要的时间(min)| 实际完成需要的时间(min) |

  • | :-: | :-: | :-: | -:
    Planing |计划 |10 |30 |
    Estimate |估计这个任务需要多少时间,
    并规划大致工作步骤 |10 | 10 |
    Development |开发| 200| 300|
    Analysis |需求分析(包括学习新技能)|30|90|
    Design Spec|生成设计文档|15|20|
    Design Review|设计审核|15|20|
    Coding Standard|代码规范|5|10|
    Design|具体设计|10|12|
    Coding|具体编码|200|200|
    Code Review|代码复核|20|20|
    Test|测试(自我测试,修改代码
    提交修改)|60|60|
    Reporting|报告|15|15|
    Test Report|测试报告|5|5|
    Size Measurement|计算工作量|20|25|
    Postmortem & Process
    Improvement|事后总结,并提出过程修改计划|5|5|

源码

#include<stdio.h>
#include<math.h>
#include<windows.h>
#include<time.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("\t\请选择:\n");
            printf("\t\t 整数计算(请输入1)\n\t\t真分数计算(请输入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 0; 
            }
      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 0; 
            }
      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 0;    
                }
                break;
            case 2:
                  switch(bot)
                  {
                      case 1:
                          Add();
                           break;
                      case 2:
                           Minu();
                          break;
                      case 3:
                           Mul();
                           break;
                       case 4:
                           Di();
                           break;
                      case 5:
                           return 0;    
                }
                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 on 2020-11-07 09:10  代号纽卡斯  阅读(162)  评论(0编辑  收藏  举报