c语言单项选择题标准化考试系统设计
单项选择题标准化考试系统

单项选择题标准化考试系统摘要在现代化考试中,大规模的单项选择题已经非常常见,如果应用计算机实现机考随机取题并判卷无疑是非常好的办法,依靠所学C语言知识,编出一套完备的单项选择题标准化考试系统有非常重要的现实意义,既可以实现考试的现代化又可以减轻老师的阅卷压力。
我们编写的这个系统实现了提取试题库,增加新题,随机取题,自动判卷,满足了本次课程设计课题的全部要求,并在此基础上本着创新的精神加入自己的东西——程序加密。
关键字:单项选择题;考试系统;自动判卷;c语言ITEM MULTIPLE-CHOICE STANDARDIZED TEST SYSTEMABSTRACTIn the examination of modernization, large items of multiple choice questions are very common, if you apply a computer machine random access to the examination questions and imposes no doubt is a very good way, relying on the c language, produce a comprehensive item multiple-choice standardized test system has a very important practical significance, both can modernize examination and can relieve pressure on the teacher's scoring.We prepared this system extracts examination question database, add a new question, random access problems, automatically sentenced volume, meets all the requirements of this course design project, and on this basis, in a spirit of innovation to join own thing--procedure encryption.Key word : Item multiple-choice; examination system; automatic sentencevolumes;c language目录1 绪论 (1)1.1课题内容与要求 (1)1.2课题研究方法 (1)2设计过程 (2)2.1总体设计 (2)2.2详细设计 (3)2.2.1保存文件功能 (3)2.2.2输出文件功能 (3)2.2.3答题功能 (4)3 调试分析 (5)4 总结 (8)参考文献 (9)附录 (10)1 绪论1.1 课题内容与要求课题内容:(1)用文件保存试题库。
c语言单项选择题标准化考试系统设计

课程设计任务书学院、系:专业:学生姓名:学号:设计题目:单项选择题标准化考试系统设计起迄日期:指导教师:1.设计目的设计单项选择题标准化考试系统。
2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案).(2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入).(4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩.3 模块划分单项选择体标准化考试系统4主要函数说明及N-S图(1)菜单Menu():用来给用户提供选项;(2)Read()函数:用于打开文件;(3)Save()函数:用于添加试题后保存试题;(5)Add()函数:用于添加试题5.程序运行数据及其结果6 课程设计心得通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太少了,好多知识点都记得不牢,还需要大量的练习。
又因为一个学期没看了,好多东西都忘了,所以好多知识点都是在看得时候重新拾起来的。
这次实训给我的教训就是平时要多多练习一些题型,时不时的复习以前的知识点,让自己更加熟练的掌握更多编程技巧,更多的思路。
还有一点就是没有思路的时候千万不要放弃,要学会思考,学会独立有耐心的完成一些事情,等到做完成功之后,便会收获很多的信心和欣慰。
总之就是要有耐心,坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。
附录:#include<>#include<> xt","r+");opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real); }fclose(fp);return i;}void save(struct question que[N],int n)xt","w+"))==NULL){printf("文件打开失败!\n"); return ;}else{for(i=0;i<n;i++)fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1 ,que[i].a2,que[i].a3,que[i].a4,que[i].real);}fclose(fp);}void Put()opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4); getch();}void Add()xt","a+");opic,&que[i].a1,&que[i].a2,&que[i].a3,&que[i].a4,&que[i].rea l);fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%c\n",que[i].topic,que[i]. a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);}printf("添加信息成功!");fclose(fp);getchar();getchar();}void Ask()xt","r+");printf("请输入要答得题目数:");scanf("%d",&m);for(int i=1;i<=m;i++){fread(&que[i],sizeof(struct question)-1,1,fp);printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i] .a2,que[i].a3,que[i].a4);printf("\n请输入您的答案:");scanf("%c",&r);getchar();if(que[i].real==r){ printf("\n答案正确!\n");score++;}else {printf("\n答案错误!\n");score=score;}printf("\n你的总成绩为:%d\n",score);getchar();getchar();}}int main(){ Menu1();}。
c语言单项选择题标准化考试系统设计

c语言单项选择题标准化考试系统设计课程设计任务书学院、系:专业:学生姓名: 学号: 设计题目: 单项选择题标准化考试系统设计起迄日期:指导教师:1.设计目的设计单项选择题标准化考试系统。
2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案). (2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入). (4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩. 3 模块划分单项选择体标准化考试系统判退添显答卷出加示题系试试统题题到库试题库4主要函数说明及N-S图(1)菜单Menu():用来给用户提供选项;输出菜单界面输入选项输入1 N Y添加Add 输入2 N Y ()函数添加Put输入3 N Y ()函数添加输入4 N Y Ask()函数exit(0)break break break(2)Read()函数:用于打开文件; FILE *fp ,int i=0 breakfp=fopen("单项选择题标准化考试系统设计.txt","r+")Y if(fp==NULL) Nprintf("文件打开失败");return 0;for(i=0;!feof(fp);i++)fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1,que[i] .a2,que[i].a3,que[i].a4,que[i].real);fclose(fp)return i(3)Save()函数:用于添加试题后保存试题;FILE *fpint i=0if((fp=fopen(“单项选择题标准化考试系统设计.txt”))==Null)Y Nprintf(“文件打开失败~”)i=0;i<n;i++fprintf(fp,”%s %s %s %s %s%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i] .real”) (4)Put()函数:用于显示试题;int i,nn=Read(que)打印表头i=0;i<n;i++fprintf(fp,”%s %s %s %s%s\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4”)getch()(5)Add()函数:用于添加试题(5)Adi FILE *fp int i,a,n . sruct question quen=Read(que)printf(“请输入增加试题的数目”)scanf(“%d“,&a);i=0;i<n; i++scanf(”%s %s %s %s%s%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real”)fprintf(fp,”%s %s %s %s%s%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real”)fclose(fp)(5)Ask()函数:用于答题并判卷。
c语言课程设计报告单项选择题标准化考试系统设计

2.2主要结构组与函数
题目,选项ABCD答案:
typedef struct Exam
{
char question[1024];
char A[100];
char B[100];
char C[100];
char D[100];
char correct; //正确答案选项
}Exam;
void load_question();
计算机程序设计基础(C语言)
课程设计说明书
设计题目:单项选择题标准化考试系统设计
班级:
姓名:
学号:
2021年7月
填写格式及说明
1、系统概述
本系统是对学生测试的单项选择题标准化系统设计,顾名思义就是用于对学生的测试考量,方便进行学生的测试,同时也简化了老师的试题录入和判卷,是一个简单实用的考试系统。
2、数据结构设计
printf("1.导入试卷\n");
printf("2.试题录入\n");
printf("3.测试答题\n");
printf("4.浏览试题\n");
printf("5.保存退出\n");
printf("请选择:");
scanf("%d",&i);
fflush(stdin);
return i;
}
int main()
p = strtok(NULL, "\t");
questions[count].correct = p[0];
count++;
}
}
c 单项选择题标准化考试系统

c 单项选择题标准化考试系统在现代教育体系中,考试是对学生学习成果的一种重要评估方式。
而单项选择题作为其中的一种形式,在标准化考试系统中扮演着至关重要的角色。
本文将就单项选择题标准化考试系统进行探讨,分析其特点和优势,并提出一些改进建议。
首先,单项选择题作为标准化考试系统的一部分,具有明确的题目结构和选项设置。
这种题型要求考生在给定的选项中选择最符合题意的答案,具有一定的客观性和标准性。
这种特点使得单项选择题在大规模考试中得以广泛应用,例如高考、托福、雅思等。
其次,单项选择题的设计可以全面覆盖考试范围,从而有效地检验学生的知识掌握情况。
通过设计不同难度和类型的题目,可以全面地考察学生对知识点的掌握程度,从而更加客观地评价学生的学习成果。
另外,单项选择题的批改和成绩统计相对简便快捷。
通过自动化的评分系统,可以快速准确地对学生的答题情况进行统计和分析,节约了人力和时间成本。
然而,单项选择题也存在一些不足之处。
首先,它可能会导致学生的应试心理过重,而忽视了对知识的深入理解和应用能力的培养。
其次,单项选择题的设计需要十分严谨和精准,一旦出现错误的选项或者模糊的题意,就可能导致考生的答题错误,影响了评价的准确性。
为了改进单项选择题的考试系统,我们可以采取一些措施。
首先,可以适当增加题目中的案例分析和实际应用题型,从而更好地考察学生的综合能力。
其次,可以加强对题目设计的质量把控,确保题目清晰明了,选项准确无误。
此外,也可以结合现代技术手段,开发更加智能化的评分系统,提高评分的准确性和效率。
总的来说,单项选择题作为标准化考试系统的一部分,具有一定的优势和不足之处。
通过合理的设计和改进,可以更好地发挥其作用,促进学生的全面发展和知识水平的提高。
希望未来能够有更加科学合理的考试评价体系,为学生的学习和成长提供更好的支持和指导。
c语言单项选择题标准化考试系统设计

课程设计任务书 学 专学院、系:生业: 姓 名: 学号: 设 计题 目: 单项选择题标准化考试系统设计起 迄日 期: 指 导教 师:1.设计目的设计单项选择题标准化考试系统。
2任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩3模块划分单项选择体标准化考试系统Y NFILE *fp ,int i=0FILE *fp ,int i=0fp=fopen("单项选择题标准化考试系统设计.txt","r+")Y - if(fp==NULL) "~~~—_ --------------Nprintf(" 文件打开失败");return 0;for(i=0;!feof(fp);i++)fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);fclose(fp)return i (3) Save()函数:用于添加试题后保存试题;i=0 ;i<n; i++sea nf(” %s %s %s %s %%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real ”)(5)Ask()函数:用于答题并判卷。
----------------------------fclose(fp)5.程序运行数据及其结果6课程设计心得通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太 少了,好多知识点都记得不牢,还需要大量的练习。
单项选择题标准化考试系统设计

面向对象程序设计(C++)课程大作业设计题目:单项选择题标准化考试系统设计院系:计算机科学与信息工程学院专业班级:学号姓名:指导教师:某老师2015 年1月目录一、成员分工 (1)二、需求分析 (2)三、总体设计 (3)四、详细设计 (4)五、系统测试 (10)六、总结 (13)七、参考文献 (14)一成员分工我们小组成员共有三名,分别是为了能按时圆满的完成这次C++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。
经过周密的考虑和详细的调查最终确定单项选择题标准化考试系统设计需要以下几个功能模块:(1)需求分析(2)保存试题库(3)试题的录入(4)试题的抽取(5)答题(6)自动判卷(7)系统测试(8)退出系统经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工:神具体完成以下模块的设计与实现:(1 )需求分析(2 )保存试题库(3 )试题的录入具体完成以下模块的设计与实现:(1)试题的抽取(2)答题具体完成以下模块的设计与实现:(1)自动判卷(2)系统测试(3)退出系统二需求分析1.设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
C++ 单项选择题标准化考试系统

目录1.课程设计目的 (1)2.课程设计题目描述和要求 (1)2.1课程题目 (1)2.2课程要求 (1)3.课程设计报告内容 (1)3.1算法描述 (1)3.2 源程序 (2)4.课程设计总结: (6)5.参考书目 (7)1 课程设计目的练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.2 课程设计题目描述和要求2.1课程题目单项选择题标准化考试系统2.2课程要求(一)功能要求:(1)用文件保存试题库。
(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档.3 课程设计报告内容3.1算法描述定义题目数组,选向数组,输入题目的及选向并给定正确答案。
输入所要答的题目数,然后进行答题。
输入的答案与标准答案进行比较,如果一致,则正确,否则错误。
最后根据题目数及答对题目数进行输出得分。
3.2 源程序#include <iostream>#include <fstream>#include "dos.h"using namespace std;struct question {char ask[200];/*选择题题目*/char answer[4][80];/*选择题选项*/int right;/*正确答案*/struct question *next;};//函数声明int MenuChoice(void); //选择菜单struct question *charu_timu(struct question *fst, const struct question *ad); //向列表中插入试题函数struct question *da_an_weizhi(struct question *seek, long len, long max); //确定一个读取答案的位置的函数void GetQuestion(struct question *src); //获取问题,选项,以及正确答案函数void bao_cun(const struct question *ed, FILE *saf); //将列表中的试题保存在文件中的函数struct question *LoadFile(struct question *td, FILE *laf); //从文件中读取题目,将题目添加到列表中的函数int GetAnswer(void); //输入选择题的答案void huida_Question(const struct question *que, int n); //回答问题函数main(){struct question *start = NULL, temp;long choice, line = 0, c;FILE *fp = fopen("wangkun.dat", "a+");while ((choice = MenuChoice()) != 3)if (choice == 1){GetQuestion(&temp);start = charu_timu(start, &temp);++line;/*统计列表的长度*/system("cls");}else if (choice == 2){c =8;while (c > 6 || c > line) {cout<<"请输入要回答的问题数量: ";cin>>c;}huida_Question(start, line);}return 0;}/*da_an_weizhi函数确定一个读取答案的位置,len代表要读取的答案数,max 代表列表的长度*/struct question *da_an_weizhi(struct question *seek, long len, long max) {int i;while (i--)seek = seek->next;//找到指定的位置return seek;}//向列表中插入试题struct question *charu_timu(struct question *fst, const struct question *ad){struct question *newPtr = (struct question *)malloc(sizeof(struct question));if (newPtr == NULL)exit(0);*newPtr = *ad;newPtr->next = fst;return newPtr;}/*获取问题,选项,以及正确答案*/void GetQuestion(struct question *src){int i = 0;cout<<"请输入选择题题目:"<<endl;cin>>src->ask;while (i < 4) {cout<<"请输入选项"<<char(i + 'A')<<"的答案:"<<endl;cin>>src->answer[i++];}src->right = GetAnswer();}/*从文件中读取题目,将题目添加到列表中*/struct question *LoadFile(struct question *td, FILE *laf){struct question temp;while (fread(&temp, 1, sizeof(struct question), laf))td = charu_timu(td, &temp);return td;}/*将列表中的试题保存在文件中*/void bao_cun(const struct question *ed, FILE *saf){fclose(saf);if ((saf = fopen("wankun.dat", "w")) == NULL)//以写的方式重新打开文件 return ;while (ed) {fwrite(ed, 1, sizeof(struct question), saf);ed = ed->next;}}//得到选择题的答案(不保证是正确的答案)int GetAnswer(void){char c=0 ;//必须进行初始化,避免出现偶然性的错误fflush(stdin);while (c < 'A' || c > 'D') //确保输入的答案是A, B, C, D中的一个{cout<<"请输入正确的答案: "<<endl;cin>> c;}return c;}//回答问题,并统计答对题目数,显示得分void huida_Question(const struct question *que, int n){int i = 0, t = n;char result[1001], *p = result;for (i = 0; n--; que = que->next) {cout<<que->ask<<endl;cout<<que->answer[0]<<endl;cout<<que->answer[1]<<endl;cout<<que->answer[2]<<endl;cout<<que->answer[3]<<endl;if ((*p = que->right) == (*(p + 1) = GetAnswer()))++i;}*p = '\0';cout<<"标准答案"<<" 您的答案 "<<endl;for (p = result; *p != '\0'; )cout<<*p<<" "<<*(p+1)<<endl;cout<<"您回答了"<<t<<"道题, 答对"<<i<<"道题目, 得分:"<< (float)i / t * 100.00<<endl;}//选择菜单int MenuChoice(void){int value;cout<<" **********************************"<<endl;cout<<" * *"<<endl;cout<<" * 1 :添加选择题 *"<<endl;cout<<" * 2 :回答选择题 *"<<endl;cout<<" * 3 :退出 *"<<endl;cout<<" * *"<<endl;cout<<" **********************************"<<endl;cin>>value;return value;}4 课程设计总结:经过编写程序,检验了我们的编程的水平,从这次编程中,我发现我才学到了一点点的知识,有好多的东西都不够熟练,还需要好好的努力学习,在编写这个程序时,出现了好多的问题,经过别人的帮助和自己的认真的调试才完成,这个程序还有好多的不足,还不够美观。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
学院、系:
专业:
学生姓名:学号:
设计题目:单项选择题标准化考试系统设计
起迄日
期:
指导教
师:
1.设计目的
设计单项选择题标准化考试系统。
2 任务概述
(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案). (2)试题录入:可随时在试题库中增加试题.
(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入). (4)答题:用户可以输入自己的答案.
(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩.
3 模块划分
单项选择体标准化考试系统
(3)Save()函数:用于添加试题后保存试题;
等到做完成功之后,便会收获很多的信心和欣慰。
总之就是要有耐心,坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。
附录:
#include<>
#include<> xt","r+");
opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real); }
fclose(fp);
return i;
}
void save(struct question que[N],int n)
xt","w+"))==NULL)
{
printf("文件打开失败!\n"); return ;
}
else
{
for(i=0;i<n;i++)
fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1, que[i].a2,que[i].a3,que[i].a4,que[i].real);
}
fclose(fp);
}
void Put()opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4); getch();
}
void Add()xt","a+");
opic,&que[i].a1,&que[i].a2,&que[i].a3,&que[i].a4,&que[i].real );
fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%c\n",que[i].topic,que[i].a 1,que[i].a2,que[i].a3,que[i].a4,que[i].real);
}
printf("添加信息成功!");
fclose(fp);
getchar();
getchar();
}
void Ask()xt","r+");
printf("请输入要答得题目数:");
scanf("%d",&m);
for(int i=1;i<=m;i++){
fread(&que[i],sizeof(struct question)-1,1,fp);
printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i]. a2,que[i].a3,que[i].a4);
printf("\n请输入您的答案:");
scanf("%c",&r);
getchar();
if(que[i].real==r)
{ printf("\n答案正确!\n");
score++;
}
else {
printf("\n答案错误!\n");
score=score;
}
printf("\n你的总成绩为:%d\n",score); getchar();
getchar();
}
}
int main()
{ Menu1();
}。