程序设计实训项目一 小学生考试系统

      题目描述

小学生考试系统

做一个小学生考试系统,功能如下:

(1)利用随机函数出10道加法题;

(2)小学生用户答题,给出每道题的答案;

(3)对小学生的答题进行评判;

(4)计算小学生的答题正确率。

  进一步改进,提高题目质量。要求

(1)百以内算术:运算数、结果都在100以内!

(2)先随机产生运算符后,针对各个运算产生运算数保证下列要求:

对加法,两数之和保证不大于100;

对减法,被减数大于减数,且被减数不大于100;

对乘法:两数之积不超过100;

对除法:被除数大于除数,且被除数不大于100,

 (3)除数不许为0。

可进行多次选择,是否继续答题

代码:

/*烟台大学计算机学院 2016
作者: 马春澎
完成日期:2017年1月4日 */
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void f(int choose);//定义函数,在用户想继续答题时应用。
int main()
{
    int a,b,sum,choose,i,answer,count1;
    count1=0;//计数
    printf("*****GOOD LUCK!*****\n\n");
    for(i=0; i<10; i++)
    {
        sum=0;
         srand(time(0));
        a=rand()%10+1;
        b=rand()%10+1;//定义两个随机数。
        sum=a+b;
        printf("%d+%d=",a,b);
        scanf("%d",&answer);//计算
        if(answer==sum)
        {
            printf("right!\n");//如果结果正确输出right,并记下做对的个数
            count1++;
        }
        else printf("wrong!\n");
    }
    printf(" 正确率 :%d%%\n\n",count1*10);
      printf(" 你的得分为 :%d 分\n\n",count1*10);
    if(count1>6)
        printf("*****你真棒!*****\n");
    else printf("*****继续努力!*****\n");
    printf("请选择 :输入1 继续答题难度上升,    输入其他任意键退出。。。\n");
    scanf("%d",&choose);
    f(choose);
    return 0;
}
/*************************************************************
功能描述:进一步提高题目难度
输入参数:choose—选择是否继续答题  
返 回 值:无
其他说明:无
*************************************************************/
void f(int choose)
{
    int answer2,y,count2=0,c,choose2=1,d,e,t,j;
    srand(time(0));
    if(choose==1)//如果选择1进入循环
    {
        while(choose2==1)
        {
            system("cls");//清空屏幕上以前的数据
            printf("*****GOOD LUCK!*****\n\n");
            for(j=0; j<10; j++)
            {
                t=rand()%4+1;//定义随机数用来储存运算符
                do
                {
                    c=rand()%100+1;
                    d=rand()%100+1;
                    if(c<d&&(t==2||t==4))//如果运算符为减法或除法,保证被减数大于减数,被除数大于除数
                    {
                        e=c;
                        c=d;
                        d=e;
                    }
                    if(t==4)//保证可以整除
                        c=(c/d)*d;

                }
                while((c+d)>=100||c*d>=100);//保证两数之和不大于100,两数之积小于100
                switch(t)//进行运算
                {
                case 1:
                    y=c+d;
                    printf("%d+%d=",c,d);
                    scanf("%d",&answer2);
                    if(answer2==y)
                    {
                        printf("right!\n");
                        count2++;
                    }
                    else printf("wrong!\n");
                    break;
                case 2:
                    y=c-d;
                    printf("%d-%d=",c,d);
                    scanf("%d",&answer2);
                    if(answer2==y)
                    {
                        printf("right!\n");
                        count2++;
                    }
                    else printf("wrong!\n");
                    break;

                case 3:
                    y=c*d;
                    printf("%d×%d=",c,d);
                    scanf("%d",&answer2);
                    if(answer2==y)
                    {
                        printf("right!\n");
                        count2++;
                    }
                    else printf("wrong!\n");
                    break;
                case 4:
                    y=c/d;
                    printf("%d÷%d=",c,d);
                    scanf("%d",&answer2);
                    if(answer2==y)
                    {
                        printf("right!\n");
                        count2++;
                    }
                    else printf("wrong!\n");
                    break;
                }
            }
            printf(" 正确率 :%d%%\n\n",count2*10);
            printf(" 你的得分为 :%d 分\n\n",count2*10);
            if(count2>6)
                printf("*****你真棒!*****\n");
            else printf("*****继续努力!*****\n");
            printf("你还想再做吗?\n输入1继续做  输入其他键退出。。。\n");
            scanf("%d",&choose2);//选择循环是否继续
        }

    }
}
运算结果



知识点总结

随机数和函数的应用

学习心得

随机函数的调用方法要知道,循环的位置要放好。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值