C语言项目参考-小学生数学考试系统

简介: 【项目3-小学生数学考试系统】 1.做一个小学生考试系统,功能包括:(1)利用随机数出10道加法题;(2)小学生用户答题给出每道题的答案;(3)对小学生的答题进行评判;(4)计算出小学生答题正确率。 2. 进一步改进,提高题目质量。要求(1)百以内算术:运算数、结果都在100以内!(2)先随机产生运算符后,针对各个运算产生运算数保证下列要求:对加法,两数之和保证不大于10

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

参考解答:
1.做一个小学生考试系统,功能包括:(1)利用随机数出10道加法题;(2)小学生用户答题给出每道题的答案;(3)对小学生的答题进行评判;(4)计算出小学生答题正确率。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int sum=0;/*学生答对题目*/
    int a,b,d,t; /*分别表示两个运算数,正确答案及学生输入的答案*/
    int i;
    srand(time(0)); /*初始化随机种子*/
    for(i=0; i<10; i++)
    {
        printf("第 %d 题: ", i+1);
        a=rand()%10+1;
        b=rand()%10+1;
        d=a+b;  /*得到正确答案*/
        printf("%d%d=", a, b);
        scanf("%d", &t);
        if(t==d)  /*用户输入的答案与正确答案对比*/
        {
            printf("    right! \n");
            sum++;
        }
        else
            printf("    wrong! \n");
    }
    printf("共答对了%d道题,得分率%.2f\n", sum, 1.0*sum/10*100);
    return 0;
}
  1. 进一步改进,提高题目质量。要求(1)百以内算术:运算数、结果都在100以内!(2)先随机产生运算符后,针对各个运算产生运算数保证下列要求:对加法,两数之和保证不大于100;对减法,被减数大于减数,且被减数不大于100;对乘法:两数之积不超过100;对除法:被除数大于除数,且被除数不大于100,除数不许为0。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int sum=0;//学生得分
    int a,b,d,t; //分别表示两个运算数,正确答案及学生输入的答案
    int c;  //运算:0-加 1-减 2-乘 3-除
    int i;
    srand(time(0)); //初始化随机种子
    for(i=0; i<10; i++)
    {
        printf("第 %d 题: ", i+1);
        c=rand()%4;
        do
        {
            a=rand()%100+1;
            b=rand()%100+1;
            if(a<b&&(c==1||c==3)) //给小学生的题,减和除运算保证大减小和大除以小
            {
                d=a;
                a=b;
                b=d;
            }
            if(c==3)//对于除法,调整被除数,以保证能整除
                a=(a/b)*b;
        }while((a+b)>=100||a*b>=100);
        //以上满足了题意的要求,但可以看到出题质量还可以优化
        switch(c)
        {
        case 0://加法
            d=a+b;
            printf("%d%d=", a, b);
            break;
        case 1:  //减法
            d=a-b;
            printf("%d%d=", a, b);
            break;
        case 2:  //乘法
            d=a*b;
            printf("%d×%d=", a, b);
            break;
        case 3:  //除法
            d=a/b;
            printf("%d÷%d=", a, b);
            break;
        }

        scanf("%d", &t);
        if(t==d)
        {
            printf("    right! \n");
            sum++;
        }
        else
            printf("    wrong! \n");
    }
    printf("共答对了%d道题,得分率%.2f\n", sum, 1.0*sum/10*100);
    return 0;
}

3.建立一个文件,里面包含人工出好的题目。程序从文件中读取题目。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int sum=0;//学生得分
    int a,b,d,t; //分别表示两个运算数,正确答案及学生输入的答案
    char c;  //运算:0-加 1-减 2-乘 3-除
    int i;
    FILE *fp;
    fp=fopen("excise.txt","r");
    if(fp==NULL)
    {
        printf("cannot open file!\n");
        exit(1);
    }
    for(i=0; i<10; i++)
    {
        fscanf(fp, "%d%c%d", &a, &c, &b);
        printf("第 %d 题: ", i+1);
        switch(c)
        {
        case '+'://加法
            d=a+b;
            printf("%d%d=", a, b);
            break;
        case '-':  //减法
            d=a-b;
            printf("%d%d=", a, b);
            break;
        case '*':  //乘法
            d=a*b;
            printf("%d×%d=", a, b);
            break;
        case '/':  //除法
            d=a/b;
            printf("%d÷%d=", a, b);
            break;
        }
        scanf("%d", &t);
        if(t==d)
        {
            printf("    right! \n");
            sum++;
        }
        else
            printf("    wrong! \n");
    }
    printf("共答对了%d道题,得分率%.2f\n", sum, 1.0*sum/10*100);
    fclose(fp);
    return 0;
}

目录
相关文章
|
存储 安全 数据管理
C语言之考勤模拟系统平台(千行代码)
C语言之考勤模拟系统平台(千行代码)
268 4
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
1471 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
579 12
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
452 0
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
613 6
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
436 1
|
人工智能 安全 算法
基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。
本文深入探讨了基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。C语言因其高效、可移植、灵活及成熟度高等特点,在嵌入式系统开发中占据重要地位。文章还介绍了从系统需求分析到部署维护的完整开发流程,以及中断处理、内存管理等关键技术,并展望了嵌入式系统在物联网和人工智能领域的未来发展。
693 1
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
160 1
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
192 2