第十周(3)小学生数学考试系统

小学生数学考试系统
本文介绍了一个用于小学生数学训练的考试系统实现方法,该系统能够随机生成四则运算题目,并确保运算数及结果均在100以内。通过C语言编程实现了随机出题、答案输入、评判等功能。

 

*\

烟台大学计算机与控制工程学院

All rights reserved.

作者:汪莹莉

完成日期:2016年11月14日

问题描述:

1.做一个小学生考试系统,功能包括:(1)利用随机数出10道加法题;(2)小学生用户答题给出每道题的答案;(3)对小学生的答题进行评判;(4)计算出小学生答题正确率。 
2. 进一步改进,提高题目质量。要求(1)百以内算术:运算数、结果都在100以内!(2)先随机产生运算符后,针对各个运算产生运算数保证下列要求:对加法,两数之和保证不大于100;对减法,被减数大于减数,且被减数不大于100;对乘法:两数之积不超过100;对除法:被除数大于除数,且被除数不大于100,除数不许为0。 
3. 建立一个文件,里面包含人工出好的题目。程序从文件中读取题目。

程序:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
    int sum=0;//答对的数目
    int i;
    int a,b,f,e;//a,b为运算时的两个数
    int c;//f=0为加,f=1为减,f=2为乘,f=3为除
    srand(time(0));//产生随机数
    for(i=0;i<10;i++)
    {
        printf("这是第%d道题",i+1);
        c=rand()%4;//表示0-4四个数,分别代表着加减乘除
        do
        {
          a=rand()%100+1;//a为1-100之间的数
          b=rand()%100+1;
          if(a<b&&(c==1||c==3))
          {
              f=a;
              a=b;
              b=f;
          }
          if(c==3)
           a=(a/b)*b;//调整被除数,保证能够整除
        }
        while((a+b)>=100||a*b>=100);
            switch(c)
        {
        case 0://加法
            f=a+b;
            printf("%d+%d=",a,b);
            break;
        case 1://减法
            f=a-b;
            printf("%d-%d=",a,b);
            break;
        case 2://乘法
            f=a*b;
            printf("%d*%d=",a,b);
            break;
        case 3://除法
            f=a/b;
            printf("%d/%d=",a,b);
            break;
        }
        scanf("%d",&e);
        if(f==e)
        {
            printf("回答正确!\n");
            sum++;
        }
        else
            printf("回答错误!\n");
    }
        printf("共回答正确%d道题",sum);
        return 0;
    }

运行结果:

知识点总结:srand(time(0))产生随机数,a=rand()%100+1表示1-100的随机数。

学习心得:利用switch语句使得麻烦的问题简单化,只是简单的罗列即可


 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值