大一c语言 小学生算数出题系统 的设计与实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大一c语言 小学生算数出题系统 的设计与实现?相关的知识,希望对你有一定的参考价值。

第一题:小学生算数出题系统的设计与实现
一个小学生四则运算考试系统,该系统功能如下:
1.主界面包括:计算练习、计算考试、查询成绩、成绩排序、学生信息删除。 
2.计算练习时,系统随机出题,运算数均在100以内,运算类型包括加减乘除,除法应能整除,显示算式,键入结果,正确和错误均有提示,出错时允许再输入,最多三次机会,若还不正确,给出答案。根据提示信息继续练习或者退出练习
退出前显示总题数,正确数和正确率。
退出练习后根据提示信息进入主界面或者退出系统
3 计算考试时提示输入学号和姓名后,可以输入出题数量,系统随机出题,每题只给一次机会,总分为100分,根据正确率计算得分,统计得分。
结束后,给出总分,显示各题的对错信息,错误的给出答案。
并将学生学号、姓名和成绩保存入文件,成绩只保留最高分。
考试结束后根据提示信息进入主界面或者退出系统

4 查询成绩时,首先提示输入学生学号和学生姓名,输出学生的考试成绩。
查询结束后退出练习后根据提示信息进入主界面或者退出系统。
5 排序成绩时,将已有学生成绩降序排序,并输出排序前后的结果。
排序后根据提示信息进入主界面或者退出系统
6 学生信息删除时,提示输入学号和姓名,删除学生相关信息。
如果不存在此学生时,给出提示信息。
信息删除后根据提示信息进入主界面或者退出系统


一、设计的流程:

1. 主界面设计,选择练习或测试,按ESC结束程序。
2. 题型选择界面设计,选择加、减、乘、除或混合运算,按ESC返回主界面。
3. 系统随机出题,运算数及结果均在100以内,乘、除法应能整除,显示算式。
4. 练习时,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入,最多三次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。
5. 测试时,系统自动出10道题,每题只给一次机会,每题10分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。
相关知识:按键操作、数组、指针、结构体等

二、例程:

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
void main()

  int a[10],b[10],d[10],c[10],num=0,result,add=0;
  float val;
  char fa[5]='+','-','*','/';
  
  /* 出10道题 */
  while(1)
  
   srand((unsigned)time(NULL));
   d[num]=abs(rand())%4;/* 保证出题算法的随机性 */
   while(1)   /* 保证出题成功 */
   
   c[num]=-1;
   a[num]=abs(rand())%100;
   b[num]=abs(rand())%100;
   if(d[num]==0) c[num]=a[num]+b[num];
   else if(d[num]==1) c[num]=a[num]-b[num];
   else if(d[num]==2) c[num]=a[num]*b[num];
   else if(d[num]==3) 
     
       if(b[num]>0)val=1.0*a[num]/b[num];
       else val=-1;
     
   if(d[num]<=2)
       
       if(c[num]>=0 && c[num]<=100) break;
       
   else
       
    if(a[num]==int(val)*b[num] && val>=0)
       c[num]=val; break;
       
   
   num++;
   if(num==10) break;
  
  /* 回答 */
  num=0;
  while(1)
  
   printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
   scanf("%d",&result);
   if(result==c[num])
   
    printf("回答正确!\\n");
    add+=10;
   
   else
    printf("错误,正确答案: %d\\n",c[num]);
      num++;
      if(num==10) break;
    
  printf("\\n得分:%d\\n",add);
  getch();





参考技术A 紫金代有才人出,各领滑稽数百年。

以上是关于大一c语言 小学生算数出题系统 的设计与实现?的主要内容,如果未能解决你的问题,请参考以下文章

Java设计给小学生的自动出题系统

小学生四则运算出题系统——计应193许颖然

小学生数学算数游戏

软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想

小学计算题版-----高冰冰

小学生1,2年级出题器