ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:219.50KB ,
资源ID:8272609      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8272609.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(标准化考试测试系统 C语言程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

标准化考试测试系统 C语言程序.docx

1、标准化考试测试系统 C语言程序标准化考试测试系统 1. 题目及任务要求32. 系统分析33. 模块分析34. 模块设计35. 运行结果66. 设计总结87. 心得体会88. 源程序8【题目及任务要求】标准化考试测试系统(B)1. 用文件保存试题库(每个试题包括题干,4个备选答案和标准答案)2. 试题录入:可随时增加试题到试题库中3. 试题抽取:每次从试题库中可以随时抽出N道题(N由键盘输入)4. 答题:用户可实现输入自己的答案5. 自动判卷:系统可根据用户答案与标准答案对比实现判卷并给出成绩【系统分析】该系统由主程序和录入模块、抽取答题模块组成。其中主程序提供用户进入该系统、选择功能和退出系统

2、;录入模块可以让用户自行录入题目;抽取答题模块可以从试题库中抽取出用户规定的题目数并且供用户答题和自动评卷。【模块分析】录入模块:用户从主界面选择“1.录入题目”后进入录入模块。在本模块中,用户可以录入题目以及对应该题的答案。单题录入完成后,该模块提示是否继续录入或返回主界面。本模块使用指针开启关闭文件,使用do.while循环语句实现反复录入功能。抽取答题模块:用户从主界面选择“2.抽取答题”后进入该模块。在本模块中,用户可以自行抽取题目并答题,系统自动在打完每道题后给出答案并记录分数,最后公布分数。本模块使用随机数函数random来随机抽取试题库中的题目;使用指针开启读入试题及答案文件;使

3、用循环结构(for,while和do.while)实现连续答题和功能循环。【模块设计】主程序流程图: 录入模块流程图:抽取答题模块流程图:完整流程图:【运行结果】开始界面:录入功能界面:抽取答题功能界面:退出界面:【设计总结】在设计并且编程的过程中,我遇到了很多难点,有几个已经超出了我的水平范围,在周遭同学和发达的网络帮助下我得以解决它们。以下是这个标准化考试测试系统编程过程中遇到的难题:1,文件的读入读出因为当时学习的过程中,文件这一块内容比较简单的带过,因此我对文件读取这一方面的掌握并不是十分好。然而,这个考试测试系统能否顺利运行的关键就在于试题文件的录入与读出,所以这就是我遇到的最大也是

4、最关键的难题。为了解决这个问题,我将课本重新阅读了一遍,并且针对文件读出读入这一内容进行反复研究,再结合网上罗列的读入读出方法,终于成功实现了试题录入和试题读出这个功能。2.随机抽取根据任务书的要求,这个考试系统抽取题目有随机性,因此我考虑采用在题目库中随即抽取的方式来读入试题,然而这就增加了一个新难度,就是随机数的获取。在之前的课上,我们并未接触到随机数函数。在书后的附录中我发现了rand()函数来获取随机数,但是使用后并不能完成这个功能。经过查找资料得知,c语言中随机数的获取并不仅仅是用一个rand()函数就能解决的,若要持续获得一定范围内的随机数,要在编译的头文件中加入,然后通过#def

5、ine random(x) (rand()%x)定义随机数函数random,再用 srand(int)time(0)定义随机数种子,这样就能用random()函数3.判卷判卷的过程就是讲答案文件中的答案读入为数组,再与用户输入的答案数组相对比,得出结果。这一个项目的关键在于答案文件的读入和两个数组的对比,在这里我运用了数组函数strcmp比较两个数组是否一样来判断用户输入答案的对错。【心得体会】通过这次程序设计,我感觉对c语言的掌握相比于之前熟悉了不少。自己完成了整套c语言的程序设计,从刚开始的流程图设计,到后来模块设计,总程序的设计和组合,整个过程虽然很繁琐,有些部分甚至超出了我原先的水平,

6、但是通过不断的询问、找资料以及跟同学交流,终于将觉得不可能的任务完成之后,我感到十分愉快。这个过程不仅仅是对自己水平的考验,也是对自己对于发现问题解决问题这一个过程的考验。能够完成这个程序设计,我想我要感谢的人很多,首先是老师和同学帮助我找思路想方法还有查找资料;其次是网络上不知名的人士,他们通过网络解决了我难以攻克的难题。因此,是许多人的帮助让我最终能呈现这样一份答卷,谢谢。【源程序】#include#include#include#include#define random(x) (rand()%x)int all=21;char m;int main() void entering();

7、 void extract(); int menu; printf(-n); printf(*欢迎进入标准化考试测试系统*n); /*进入系统*/ printf(-nn); do printf(t1.录入题目nnt2.抽取答题nnt3.退出系统nnn);/*功能选择*/ printf(请选择功能:); scanf(%d,&menu); printf(nn); scanf(%c,&m); if(menu=1) /*录入功能*/ entering(); else if(menu=2) /*抽取答题功能*/ extract(); else break; printf(退出系统?(按“Y”退出,其他任

8、意键继续) ); scanf(%c,&m); printf(nnn); while (m!=Y); printf(-n); /*退出系统*/ printf(感谢使用标准化考试测试系统,欢迎下次使用!n); printf(-nn); return 0;void entering() /*录入功能函数*/ FILE *q,*a; char question,answer,num25,num4,Q; do printf(试题库有试题数:%dn,all); printf(请输入录入题目的文件名(即题号)); /*设置文件名*/ scanf(%s,num); printf(请输入录入题目答案的文件名(即

9、题号_)); /*设置文件名*/ scanf(%s,num2); q=fopen(num,w); /*打开输出问题的文件并使q指向此文件*/ printf(请输入试题内容(包括四个选项),以#结束n); /*输入录入题目的内容*/ question=getchar(); while(question!=#) fputc(question,q); question=getchar(); fclose(q); question=getchar(); a=fopen(num2,w); /*打开输出答案的文件并使a指向此文件*/ printf(请输入该题的答案n); answer=getchar();

10、 fputc(answer,a); fclose(a); all+; printf(录入题目成功n); Q=getchar(); printf(继续录入题目?(按N退出录入,其他任意键继续) ); scanf(%c,&Q); printf(nn); m=getchar(); while (Q!=N);void extract() /*抽取答题功能函数*/ int n,r,count,sum=0; char ques70,answ5,answ_2,num_5,tran2=_; FILE *q_,*a_; do printf(试题库有试题数:%dn,all); printf(请输入需要抽取的题目数

11、(不要超过试题总数)); /*用户输入需要抽取得题目数n*/ scanf(%d,&n); srand(int)time(0); for(count=1;count=n;count+) /*抽取n道题并答题判卷*/ r=random(all); /*随机抽取题目*/ sprintf(num_,%d,r); q_=fopen(num_,r); if(q_=fopen(num_,r)=NULL) printf(出错); exit(0); while(!feof(q_) /*在屏幕上显示抽出的题目*/ if(fgets(ques,49,q_)!=NULL) puts(ques); ques50=0;

12、fclose(q_); printf(请答题(输入大写字母):); /*用户答题*/ scanf(%s,answ_); strcat(num_,tran); a_=fopen(num_,r); /*系统判卷*/ if(a_=fopen(num_,r)=NULL) printf(出错); exit(0); while(!feof(a_) /*读入标准答案*/ if(fgets(answ,4,a_)!=NULL) answ4=fgetc(a_); answ5=0; fclose(a_); if (strcmp(answ,answ_)=0) /*比较用户输入的答案与系统答案*/ printf(正确n); sum=sum+1; else printf(错误,正确答案是:%sn,answ); printf(n总答题数:%dn得分(一题一分):%dn,n,sum); /*给出总分*/ printf(是否继续答题?(按N退出,其他任意键继续) ); scanf(%c,&m); printf(nn); m=getchar(); while (m!=N);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1