小学生10以内加减运算练习系统。可以完成计算机自动出题和评判的功能,分练习模式和测试模式,在练习模式下,学生给出答案后立即判断回答是否正确并给出明确的提示,如答题错误则要求学生重新回答此问题,回答正确则继续下一题,可以由学生自己设定要练习的题目数量;考试模式一次回答50道题,按每道题2分计算成绩,在学生回答完一道题后不能立即给出评判,回答完毕后给出总成绩并保存本次考试的所有测试题,同时给出回答错误的题目。

  • 程序设计思路(可以使用程序流程图)
  1. 该程序有两个模式(1)练习模式(2)测试模式,通过输入模式前面的序号来选择模式。
  2. 输入1后进入练习模式中,首先输入要答题的个数,学生给出答案后立即判断回答是否正确并给出明确的提示,如答题错误则要求学生重新回答此问题,回答正确则继续下一题。
  3. 输入2后进入测试模式中,在学生回答完一道题后不能立即给出评判,如果答案正确加2分,答案错误不加分,并记录下错误的题号。最后输出总分和错误的题号。

运行结果:

#include <stdio.h>
#include <stdlib.h> /*包含随机数生成函数*/
#include <time.h>

int main()
{
    int num1, num2, op, result1, t;
    int yn=1;
    printf("请选择闯关模式:");
    printf("1.练习模式");
    printf("2.测试模式");
    printf("请输入闯关模式前相应的序号\n");
    scanf("%d",&t);
    if(t==1)
    {
        int w;
        bool  flag=true,flag1=true;
        printf("请输入要答题的数量:\n");
        scanf("%d",&w);        
         for(int s=0;s<w;)
         {
           srand(time(NULL)); /*随机数种子优化*/ 
           num1 = rand() % 10;
           num2 = rand() % 10;
           op = rand() * 2/ (RAND_MAX+1);
            switch(op){
        
                 case 0: printf("第%d题: %d + %d = ?\n", s+1,num1, num2);
                         scanf("%d", &result1);
                         if(num1 + num2 == result1)
                         {
                             printf("you are right\n");
                             s++;
                         }
                         else
                         {            
                             printf("you are wrong\n再试一次吧!\n");
                             while(1)
                             {
                                   printf("第%d题: %d + %d = ?\n", s+1,num1, num2);
                                   scanf("%d",&result1);
                                   if(num1 + num2 == result1)
                                   {
                                        printf("you are right\n");
                                         s++;
                                        break;
                                   }
                                   else
                                       printf("you are wrong\n再试一次吧!\n");
                             }
                         }
                         break;
                 case 1: if(num1<num2)
                         {
                             t=num1;
                             num1=num2;
                             num2=t;
                         }
                         printf("第%d题: %d - %d = ?\n", s+1,num1, num2);
                         scanf("%d", &result1);
                         if(num1 - num2 == result1)
                         {
                             printf("you are right\n");
                             s++;
                         }
                         else
                         {        
                             printf("you are wrong\n再试一次吧!\n");
                             while(1)
                             {
                                   printf("第%d题: %d - %d = ?\n", s+1,num1, num2);
                                   scanf("%d",&result1);
                                   if(num1 - num2 == result1)
                                   {
                                        printf("you are right\n");
                                        s++;
                                        break;
                                   }
                                   else
                                       printf("you are wrong\n再试一次吧!\n");
                             }
                         }
                         break;
           }
         }
         printf("答题结束\n");
    }
    else if(t==2)
    {
        int g=0;
        int z[50];
        for(t=0;t<50;t++)
        {
            z[t]=0;
        }
        int sum=0;
        for(int i=0;i<50;i++)
        {
           srand(time(NULL));
           num1 = rand() % 10;
           num2 = rand() % 10;
           op = rand() * 2/ (RAND_MAX+1);
           printf("第%d题 : ",i+1);
            switch(op){
        
                 case 0: printf("%d + %d = ?\n", num1, num2);
                         scanf("%d", &result1);
                         if(num1 + num2 == result1)
                             sum+=2;
                         else
                         {
                             for(g=0;g<50;g++)
                             {
                                 if(z[g]==0)
                                 {
                                     z[g]=i+1;
                                     break;
                                 }
                             }
                         }
                         break;
                 case 1: if(num1<num2)
                         {
                             t=num1;
                             num1=num2;
                             num2=t;
                         }
                         printf("%d - %d = ?\n", num1, num2);
                         scanf("%d", &result1);
                         if(num1 - num2 == result1)
                             sum+=2;
                         else
                             for(g=0;g<50;g++)
                             {
                                 if(z[g]==0)
                                 {
                                     z[g]=i+1;
                                     break;
                                 }
                             }
                         break;
           }           
        }
        printf("总分为:%d\n",sum);
        
        if(sum!=2*50)
        {
           printf("错误的题目有:");
           for(g=0;g<50;g++)
           {
                if(g%5==0)
                        printf("\n");
                if(z[g]==0)
                        break;
                printf("第%d题  ",z[g]);              
           }
           printf("\n");
        }
        else
            printf("真棒!全部正确!\n");
    }
    return 0;
    
}
(程序小白,多多包涵<(-- ~--)>)

小学生10以内加减运算练习系统(c语言)相关推荐

  1. Python妙用|给小外甥生成10以内加减运算数学作业

    前言: 前不久接到任务,要每天给小外甥出10以内的加减法习题.我寻思了一下,还是写代码生成测试习题方便. 为了自己偷懒,把习题和答案都生成,做完了让他自己检查,我只检查他有没有做题就行了^_^ 你还在 ...

  2. 51单片机基于 Proteus 制作 10 以内加减的计算器

    近来,看到好几个要求用 51 单片机和数码管来设计计算器的题目: http://zhidao.baidu.com/question/2075214728949956868.html http://zh ...

  3. 2.3.2 浮点数的加减运算

    加油哦棒棒哒(●• ̀ω•́ )✧取快递 要如何实现浮点数的运算呢?所以这个小节我们要探讨的是浮点数如何实现加减运算,那除了加减运算的实现之外,我们还会探讨浮点数,还有定点数之间的一个强制类型转换的问 ...

  4. C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计

    文章目录 C语言经典实例:1-10例:三角求和.显示所占字节数.自增自减运算while语句输出最小值.计算快递费用.学生成绩统计等 1.程序的编写工具 2.项目的创建 3.C语言经典实例1-10编写的 ...

  5. 程序设计题:小学 100 以内正整数加减运算

    程序设计题:小学 100 以内正整数加减运算 1 问题描述 设计并实现"小学 100 以内整数加减运算"系统,程序要求如下: (1)随机出 10 道题,这 10 道题目不能重复,如 ...

  6. 如何进行时间的加减运算

    ☆ Day 开头的函数 ● Unit DateUtils function DateOf(const Avalue: TDateTime): TDateTime; 描述 使用 DateOf 函数用来把 ...

  7. C/C++小学100以内正整数加减运算[2023-03-14]

    C/C++小学100以内正整数加减运算[2023-03-14] 程序设计题:小学100以内正整数加减运算 面向专业:计算机科学与技术 难度等级:4 出题人:崔红燕 1 问题描述 设计并实现" ...

  8. void *指针的加减运算

    1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...

  9. c语言中字符减减自符意思,C语言中的自加自减运算

    [摘 要]C语言中运算符十分丰富,自加运算和自减运算是c语言的教学中的重点和难点,但我们只要在教学中抓住运算的基本定义,通过经典题型分析和适度深入解析,就不难达到熟练应用之目的. [关键词]运算的定义 ...

最新文章

  1. 动态调用WCF不添加服务(svcutil.exe)
  2. 把一个dataset的表放在另一个dataset里面_视频自监督一. STCR: 一个基于数据增强的简单有效正则项 (降低静态信息的影响)...
  3. 2018-2019-1 20165315 实验三 实时系统
  4. 在soa工程中使用dubbo的步骤
  5. iOS用workspace和cocoapods管理多个项目
  6. [Leetcode][JAVA]第[29]题[两数相除][二分法]
  7. Gin实践 番外 Golang交叉编译
  8. Lesson Plan 教学计划 翻译
  9. python3安装包是说解压数据出错怎么办_无法修复“zipimport.zipimporter错误:无法解压缩数据;键入python3.6时zlib不可用获取pip.py...
  10. Java工程师必备资料,整合1G多jar包,网速慢也没关系,关注获取更多资源
  11. c语言八大排序算法详细版
  12. GitHub微信防撤回项目 for Mac
  13. Mac入门指南(二)常用命令
  14. 如何连接学校计算机机房的网络,学校电脑室机房管理之网络连接
  15. java学习笔记----Mybatis-Plus
  16. 团队如何提高执行力,总结以下几点:
  17. 180天如何突击高考-从400到550?
  18. 如何编制试算平衡表_编制试算平衡表
  19. ABAP BDC返回成功但是未创建单据或没有产生相应效果
  20. 网络编程(python语言)

热门文章

  1. 经典深度神经网络AlexNet、VGGNet
  2. 多样性强化学习:不光要赢,还要赢得精彩 | 清华吴翼
  3. UISlider 滑动条基本属性
  4. 。iod_IOD '09,第二天:Maria Winans谈信息主导的即时通讯转型
  5. 编辑为什么建议转投_编辑建议转投其他期刊一般有哪些原因
  6. DELLEMC S4048
  7. SRS流媒体服务器——服务器读取RTMP推流数据
  8. 计算机二级电子商务考试内容,电子商务师考试内容
  9. 实用小工具:加密软件
  10. 传统业务上云:跨AZ容灾架构解析