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

【项目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)百以内算术:运算数、结果都在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;
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

时间: 2019-02-18

C语言实现小学生考试系统

本文实例为大家分享了C语言实现小学生考试系统的具体代码,供大家参考,具体内容如下 问题及代码: /*烟台大学计算机学院 题目描述:做一个小学生考试系统,功能包括: (1)利用随机数出10道加法题: (2)小学生用户答题给出每道题的答案: (3)对小学生的答题进行评判: (4)计算出小学生答题正确率. 作者:景怡乐 完成时间:2016年12月29日 */ #include <stdio.h> #include <stdlib.h> #include <time.h> in

C语言实现小学生随机出题测试计分

本文实例为大家分享了C语言实现随机出题测试计分的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <time.h> int test(); int checknum(int a, int b); int checkresult(int x); int a = -1, b, c, x; static int k = 0, grade; void main() { printf("请

java语言实现权重随机算法完整实例

前言 现在app就是雨后春笋,嗖嗖的往外冒啊,有经验的.没经验的.有资历的.没资历的都想着创业,创业的90%以上都要做一个app出来,好像成了创业的标配. 做了app就得推广啊,怎么推,发券送钱是最多用的被不可少的了,现在好多产品或者运营都要求能够随机出优惠券的金额,但是呢又不能过于随机,送出去的券都是钱吗,投资人的钱,是吧. 所以,在随机生成的金额中就要求,小额度的几率要大,大额度的几率要小,比如说3元的70%,5块的25%,10块的5%,这个样子的概率去生成优惠券,这个怎么办呢? 对于上述的

Java实现随机出题,10道10以内加减法计算代码实例

本文实例为大家分享了Java实现随机出题,10道10以内加减法计算l的具体代码,供大家参考,具体内容如下 package com.swift; import java.awt.Toolkit; import java.util.Scanner; public class PlusQuiz { public static void main(String[] args) { int i=0; int number1=0,number2=0; for(;;) { number1=(int) (Mat

java实现的根据概率随机中奖测试类

本文实例讲述了java实现的根据概率随机中奖测试类.分享给大家供大家参考,具体如下: 最近要做一个宝箱抽奖的功能 自己先联系了一下,分别用 list和set 进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论. 废话少说上代码: package com.test.testRandom; import java.util.ArrayList; import java.util.HashSet; import java.util.Ite

C语言 文件的随机读写详解及示例代码

前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读写,也就是说从文件的任意位置开始读写. 实现随机读写的关键是要按要求移动位置指针,这称为文件的定位. 文件定位函数rewind和fseek 移动文件内部位置指针的函数主要有两个,即 rewind() 和 fseek(). rewind() 用来将位置指针移动到文件开头,前面已经多次使用过,它的原型为

C语言实现小学生计算机辅助教学系统

开发一个小学生计算机辅助教学系统.使用随机书产生函数产生1~10之间的随机数作为操作数,随机产生一道四则运算题,配合使用switch语句和print()函数调用,来为学生输入的正确或者错误的答案输出不同的评价.若10道题做完之后正确率低于75%,则重新做10道题,直到回答正确率高于75%时才退出程序.要求用模块化程序设计方法来编程. #include<stdio.h> #include<stdlib.h> #include<time.h> int Calculate(i

易语言制作双色球随机选号工具的代码

双色球随机选号代码 .版本 2 .程序集 窗口程序集1 .子程序 _随机选号按钮_被单击 .局部变量 z, 逻辑型 .局部变量 随机号 随机号 = 取随机数 (1, 33) .如果 (随机号 < 10) 红球编辑框1.内容 = "0" + 到文本 (随机号) .否则 红球编辑框1.内容 = 到文本 (随机号) z = 假 .如果结束 .循环判断首 () 随机号 = 取随机数 (1, 33) .如果 (随机号 = 到数值 (红球编辑框1.内容)) z = 真 .否则 .如果 (随机

php简单实现多语言切换的方法

本文实例讲述了php简单实现多语言切换的方法.分享给大家供大家参考,具体如下: 1.主程序代码: <?php include "lib/function.php"; ?> <script src="js/language.js"></script> <?php if(isset($_GET["language"])){ $_SESSION["language"] = $_GET[&qu