小学生考试系统

问题及代码:

/******************************************************
功能描述:本程序可以随机产生10道题目,前5题为简单加减乘除
          后面5题为附带括号的加减乘除,自动评分,并带有一次补考机会
返回值:学生回答正确的题目数sum
********************************************************/
#include <stdio.h>
#include <time.h>
#include <windows.h>
int a,b,c,d,t,i;//a,b是产生的随机数,c控制运算符,d为正确答案,t为输入的答案
int x,y;//x用于存放除法的商,y用于存放除法的余数
int student_test1();
int student_test2();
int main()//程序的主控函数
{
    char class[10];//
    char name[10];
    int sum1,sum2,sum3,sum4,m=0;//控制答对题目总数
    int reply;//reply控制学生回复
    printf("\n                        二年级下半学期期末考试(卷一)\n");
    printf("本次考试一共有10道题,每道题10分,满分100\n");
    printf("考试时间25分钟\n");
    printf("请认真阅读每一小题,并在题目的后面填入你认为正确的答案\n\n");
    printf("请输入你的姓名:  ");
    gets(class);
    printf("请输入你的班级:(例如计163-1)");
    gets(name);
    printf("正在核对信息,加载中%%");
    for(i=1; i<101; i++)
    {
        if(m<10)
        {
            printf("%d",m);
            Sleep(300);
            printf("\b");
            m+=2;
        }
        else if(m>=10)
        {
            printf("%d",m);
            Sleep(300);
            printf("\b\b");
            m+=5;
            if(m>100)
                break;
        }
    }
    printf("\n信息核对成功,考试开始\n第一大题:\n\n");
    sum1=student_test1();
    printf("\n\n第二大题:复合加减乘除\n");
    sum2=student_test2();
    printf("你一共答对%d题\n",sum1+sum2);
    printf("最终得分:%d\n\n",10*(sum1+sum2));
    if((sum1+sum2)*10<60)
    {
        printf("您的成绩低于60\n\n");
        printf("是否进入补考:  (是回复1,否回复0)\n\n");
        scanf("%d",&reply);
        if(reply==1)
        {
            sum3=student_test1();
            sum4=student_test2();
            if((sum3+sum4)*10>60)
                printf("恭喜你补考通过\n");
            else
            {
                printf("补考次数为0\n");
                printf("您的最终成绩为:%d",(sum3+sum4)*10);
            }
        }
        else
            printf("考试结束\n");
    }
    return 0;
}
定义函数
int student_test1()
{
    int sum=0;
    srand(time(0));
    for(i=0; i<5; i++)
    {
        printf("第 %d 题: \n", i+1);
        a=rand()%10+1;
        b=rand()%10+1;
        c=rand()%4+1;
        switch(c)
        {
        case(1):
            printf("  %d + %d = ",a,b);
            d=a+b;
            scanf("%d",&t);
            if(t==d)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        case(2):
            printf("  %d - %d = ",a,b);
            d=a-b;
            scanf("%d",&t);
            if(t==d)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        case(3):
            printf("  %d * %d = ",a,b);
            d=a*b;
            scanf("%d",&t);
            if(t==d)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        case(4):
            printf("  %d %% %d 商=  ",a,b);
            d=a/b;
            scanf("%d",&t);
            y=a%b;
            if(t==d)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        }
    }
    return sum;
}
int student_test2()
{
    int sum=0;
    srand(time(0));
    for(i=0; i<5 ; i++)
    {
        printf("第%d题\n",i+6);
        a=rand()%10+1;
        b=rand()%10+1;
        c=rand()%4+1;
        switch(c)
        {
        case(1):
                printf("(%d - %d) + %d =",a,b,a);
                d=(a-b)+a;
                scanf("%d",&t);
                if(d==t)
                {
                    printf("恭喜你,回答正确\n");
                    sum++;
                }
                else
                    printf("回答错误,继续努力\n");
                break;
        case(2):
            printf("(%d + %d) + %d =",a,b,a);
            d=(a+b)+a;
            scanf("%d",&t);
            if(d==t)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        case(3):
            printf("(%d + %d) * %d =",a,b,a);
            d=(a+b)*a;
            scanf("%d",&t);
            if(d==t)
            {
                printf("恭喜你,回答正确\n");
                sum++;
            }
            else
                printf("回答错误,继续努力\n");
            break;
        case(4):
                printf("(%d + %d) %% %d =",a,b,a);
                d=(a+b)/a;
                scanf("%d",&t);
                if(d==t)
                {
                    printf("恭喜你,回答正确\n");
                    sum++;
                }
                else
                    printf("回答错误,继续努力\n");
            break;
        }
    }
    return sum;
}




  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值