一、任务概述(文章仅供参考)

1、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)
2、试题录入:可随时增加试题到试题库中
3、试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)
4、答题:用户可实现输入自己的答案
5、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

二、功能展示



三、思维导图

四、程序源码

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>#define TRUE 1
#define ERROR 0
#define MAX  30
typedef int Status;typedef struct{char option1[30],option2[30],option3[30],option4[30],subject[150];char result;
}TestNode;
TestNode Testquestions[MAX];Status SaveNode(int N)  //把结构体数组保存到文件"qinhu"中,如成功保存返回TRUE,否则返回ERROR{  int i;FILE *fp;if((fp=fopen("qinhu","wb"))==NULL) return ERROR;for(i=0;i<N;i++)fwrite(&Testquestions[i],sizeof(TestNode),1,fp);fclose(fp);return TRUE;
}Status ReadNode(int N) //从文件读出结构体数组的内容,如成功读取返回TRUE,否则返回ERROR{  FILE *fp;int i=0;if((fp=fopen("qinhu","rb"))==NULL) return ERROR;while(!feof(fp))// 用feof检测文件是否结束,如果结束,返回正确{    fread(&Testquestions[i],sizeof(TestNode),1,fp);i++;}N=i-1;return TRUE;
}void InputTitle(int N)// 输入N道试题数据
{int i; for(i=0;i<N;i++){   printf("请输入第%d道题题目、题干和选项:\n",i+1);//输入结构体元素内容printf("请输入题目:");gets(Testquestions[i].subject);printf("请输入选项A:");gets(Testquestions[i].option1);printf("请输入选项B:");gets(Testquestions[i].option2);printf("请输入选项C:");gets(Testquestions[i].option3);printf("请输入选项D:");gets(Testquestions[i].option4);printf("请输入答案:");scanf("%c",&Testquestions[i].result);getchar();system("cls");                                    //清屏}
}Status InsertNodeA(int N) //输入试题内容
{   if(N>MAX) return ERROR;printf("请输入所要输入题题目、题干和选项:\n");printf("请输入题目:");gets(Testquestions[N].subject);printf("请输入选项A:");gets(Testquestions[N].option1);printf("请输入选项B:");gets(Testquestions[N].option2);printf("请输入选项C:");gets(Testquestions[N].option3);printf("请输入选项D:");gets(Testquestions[N].option4);printf("请输入答案:");scanf("%c",&Testquestions[N].result);getchar();N++;              //N表示结构体数组长度,通过加&号使其值能返回return TRUE;
}Status InsertNodeB(int N) //插入试题内容
{   if(N>MAX) return ERROR;printf("请输入所要插入题题目、题干和选项:\n");printf("请输入题目:");gets(Testquestions[N].subject);printf("请输入选项A:");gets(Testquestions[N].option1);printf("请输入选项B:");gets(Testquestions[N].option2);printf("请输入选项C:");gets(Testquestions[N].option3);printf("请输入选项D:");gets(Testquestions[N].option4);printf("请输入答案:");scanf("%c",&Testquestions[N].result);getchar();N++;              //N表示结构体数组长度,通过加&号使其值能返回return TRUE;
}Status DeleteNode(int n)//删除数组中的第n个元素
{   return TRUE;
}void printNode(TestNode p,int n)//输出第n道题题目
{   printf("(%d) ",n);printf("%s\n",p.subject);printf("  A %s  ",p.option1);printf("  B %s  \n",p.option2);printf("  C %s  ",p.option3);printf("  D %s  ",p.option4);
}Status  Match(TestNode p,char m)//判断m是否为p题目的答案,若是返回TRUE,否则返回ERROR
{   if(m==p.result) return TRUE;else return ERROR;
}void answer(int sum)//进行答题
{int i,score=0,Num;char r;for(i=1;i<=sum;i++){  Num= rand()%sum;                //随机函数,以随机选定何题进行解答printNode(Testquestions[Num],Num+1);printf("\n请输入答案:");scanf("%c",&r);getchar();if( Match(Testquestions[Num],r)) //调用函数IsMatch判断所输入的答案与标准答案是否相同{    printf("\n答案正确!\n");score++;}else printf("\n答案错误!\n");}printf("\n你的总成绩为:%d\n",score);
}void main()
{   char  flag='N';int N=0,i, sum,score=0,chose;printf("输入想建立的题目文件题目数:");scanf("%d",&N);getchar();InputTitle(N);ReadNode(N);while(flag=='N'||flag=='n'){ printf("\t\t\t单项选择题标准化考试系统\n ");printf("\n");printf("  \t\t\t1 进行答题并判卷\n");printf("  \t\t\t2 显示整张试卷内容\n");printf("  \t\t\t3 插入试题\n");printf("  \t\t\t4 保存到文件\n");printf("  \t\t\t5 退出系统\n");printf("  \t\t\t  请选择:");scanf("%d",&chose);getchar();switch(chose) {      case 1:system("cls");printf("请输入你想要的答题数目:");scanf("%d",&sum);getchar();answer(sum);break;case 2:system("cls");for(i=1;i<=N;i++) {      printNode(Testquestions[i-1],i);printf("\n");}   break;case 3:system("cls");InsertNodeB(N);break;case 4:system("cls");if(SaveNode(N)) printf("保存成功!\n");else printf("保存失败!\n");break;case 5:printf("你将退出系统(Y or N)?");scanf("%c",&flag);getchar();if(flag=='Y'||flag=='y') exit(0);system("cls");break;default:printf("请输入正确选择!\n");}}
}

大家可以点个关注后续会持续更新0.0(在此先谢过各位了)

C语言课设选择题标准化考试系统(大作业)相关推荐

  1. C语言课设图书信息管理系统(大作业)

    一.设计功能(文章仅供参考) 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)图书信息录入功能( ...

  2. C语言课设职工信息管理系统(大作业)

    一.设计功能(文章仅供参考) 职工信息包括:工号,姓名,性别,出生年月,婚姻状况,职称,家庭地址,电话,E-mail等. 设计一个职工信息管理系统,使之能提供以下功能: (1)职工信息录入功能(学生信 ...

  3. C语言课设手机电话簿管理系统(大作业)

    一.任务概述(文章仅供参考) 用c设计出模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 二.设计功能 查看功能:选择此功能时,列出下列三类选择.A办公类,B个人类,C商务类,当选中某类时,显示出 ...

  4. c语言考试系统设计报告,C语言课程设计(单项选择题标准化考试系统)报告

    <C语言课程设计(单项选择题标准化考试系统)报告>由会员分享,可在线阅读,更多相关<C语言课程设计(单项选择题标准化考试系统)报告(15页珍藏版)>请在人人文库网上搜索. 1. ...

  5. c语言考试系统设计报告,c语言课程设计报告单项选择题标准化考试系统.doc

    c语言课程设计报告单项选择题标准化考试系统.doc <C语言程序设计>课程设计题目:单项选择题标准化考试系统专业:计算机科学与技术班级:计科1001目录<C语言程序设计>课程设 ...

  6. c语言标准化考试系统课程设计,C语言课程设计单项选择题标准化考试系统.doc

    . ... 仲恺农业工程学院 课程设计报告 单项选择题标准化考试系统 课程名称 C 语言程序设计 姓 名 院(系) 信息科学与技术学院 专业班级 学 号 指导教师 目 录 TOC \o "1 ...

  7. 单项选择题标准化考试系统C语言课程设计

    单项选择题标准化考试系统 1.问题描述 设计一个单项选择题标准化考试系统,该系统要求能自动组卷和评分. 2.功能要求 (1)用文件保存试题库.(每个试题包括题干.4个备选答案.标准答案). (2)试题 ...

  8. c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...

    C语言课设报告(学生考试成绩查询程序)[荐].doc 学生考试成绩查询程序 学号:******** 姓名:***** 完成日期:****年月 通过键盘输入学生的考试信息,包括:学号.姓名.课程名称.学 ...

  9. 单项选择题 安卓课程设计_单项选择题标准化考试系统课程设计论文.doc

    单项选择题标准化考试系统课程设计论文.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 蝿腿 ...

最新文章

  1. 面向对象--第三部分
  2. html iframe.b.gen 病毒,常见病毒及处理方法.doc
  3. linux mysql python包_03_mysql-python模块, linux环境下python2,python3的
  4. B3log 分布式社区的 Java 博客端节点系统
  5. c++语言socket udp聊天程序,使用C/C++实现Socket聊天程序
  6. 使用Java对sftp带有中文路径的文件夹进行下载,乱码打不开文件夹
  7. (待补充)CSS进阶--flex布局
  8. 传递给 left 或 substring 函数的长度参数无效_MySQL:函数入门实例
  9. 语音识别技术:2018年主要参与者的完整指南
  10. 逻辑回归算法原理及python实现
  11. win10系统设置选择电源键按钮功能设置步骤
  12. python crc16-ccitt
  13. 10招教你练就“最强大脑“”
  14. 交通行业舆情危机管理方案
  15. NEXUS 上传到私仓的SNAPSHOT 包下载不下来
  16. Mandala Coloring Book Game ver 1.2 - 曼陀羅著色遊戲U3D源碼
  17. Ubuntu 13.04 解决 QQ 问题:pidgin-lwqq 亲测可用
  18. springboot疫情物资管理系统的设计与实现
  19. 银行转账问题(死锁)
  20. cad延伸命令怎么用_CAD高手不可不知,走心CAD命令汇总,设计院师傅都在用

热门文章

  1. 【 QT 遇到“程序异常结束“,The process was ended forcefully问题-可能原因之一】
  2. 旅游网站管理系统简易版 php开源,基于Laravel框架开发的旅游网站管理系统PHP源码...
  3. 数据库编程总结[转载 深之JohnChen的专栏]
  4. 零基础小白复现Java 若依项目
  5. 搜索二叉树(Key-Value)
  6. HTML5 Plus 移动 App开发入门
  7. 计算机网络pdf(湖科大)
  8. 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。注:参赛球队列表见附录注2:使用Math.random 来产生随机数。(也可以使用其它方法)
  9. RestSharp 使用(含超时处理)
  10. kafka和zookeeper下载地址和安装方法和JAVA消费者方法