单项选择题实用标准化考试系统设计_第1页
单项选择题实用标准化考试系统设计_第2页
单项选择题实用标准化考试系统设计_第3页
单项选择题实用标准化考试系统设计_第4页
单项选择题实用标准化考试系统设计_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档面向对象程序设计(C+)课程大作业设计题目:单项选择题标准化考试系统设计院 系:计算机科学与信息工程学院专业班级:学号姓名:指导教师:指老师2015年1月文案大全一、成员分工1二、需求分析2三、总体设计3四、详细设计4五、系统测试10六、总结13七、参考文献14一成员分工我们小组成员共有三名,分别是为了能按时圆满的完成这次C+M程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定单项选择题标准化考试系统设计 需要以下几个功能模块:(1) 需求分析(2) 保存试题库(3) 试题的录入(4) 试题的抽取(5) 答题(6) 自动判卷(7) 系统测试(8)

2、 退出系统经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工:神具体完成以下模块的设计与实现:(1 )需求分析(2 )保存试题库(3 ) 试题的录入具体完成以下模块的设计与实现:(1) 试题的抽取(2) 答题具体完成以下模块的设计与实现:(1) 自动判卷(2) 系统测试(3) 退出系统二需求分析1 .设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、 程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各 方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+锂序设计语言的基本理论知识,理论联

3、系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C+诩言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。2 .课程设计名称及内容课程设计名称:单项选择题标准化考试系统设计内容:设计一个单项选择题标准化考试系

4、统,该系统要求能自动组卷和评分。3 .设计方案提示具体的功能:(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案);(2)试题录入:可随时增加试题到试题库中;(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入);(4)答题:用户可实现输入自己的答案;(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。 主要知识点:(1)面向对象程序设计方法(2)界面的制作,switch的应用(3)类和对象(4)动态数组(链表)类模板(5)文件的读写其他:程序设计可在 Microsoft VC+6.0、Borland C+ Builder 环境下进行。三总体设计1

5、.总的叙述1 、用来保存试题库,可以用到"Struct TestNode Testquestions ”结构体数组,将试题一一对应的 保留下来,放在相应的文件里;2、试题的录入,可以定义一个"void InputTitle(int N) "和"Status InsertNode(int &N)”函数将试题录入;3、试题的抽取,可以定义一个"void printNode(TestNode p,int n) ”的函数,用到"Rand"函数进行随机抽取;4、答题方面,则定义一个"void answer(int s

6、um) ”函数用于答题者的输入答案;5、自动判卷,则可以定义一个"Status Match(TestNode p,char m)”函数,用来对比答题者答案和正确答案,给出判断正确与否;6 、用一个main函数将上述各个函数功能块连接起来,实现"单项选择题标准化考试系统”的各个方面的功能,完成设计2.大概流程图单项选择题标准化考试系统进行答题并判卷退出系统四详细设计1 .程序流程图(1)保存文件进入函数 Sa eNode(int N)Y-1:N.写其数据,RetnmERROR.1i+ .11.1关闭文件,实用文档(2)输出文件(3)答题功能模块实用文档(4)结构程序中主要用到

7、了结构体数组,定义类型,如typedef int Status等,用结构体数组可以使得程序比较简便,易于读懂,免去频繁的赋值,而用定义类型,可以使得程序具有移植 性,健壮性好。2 .功能模块(1)文件的保存和读取模块实现此功能代码如下:把结构体数组保存到文件"wenjian"中,如成功保存返回TRUE,否则返回ERRORStatus SaveNode(int N) int i;FILE *fp;if(fp=fopen("wenjian","wb")=NULL) return ERROR;for(i=0;i<N;i+)fwrite

8、(&Testquestionsi,sizeof(TestNode),1,fp);fclose(fp);return TRUE;从文件读出结构体数组的内容,如成功读取返回 TRUE,否则返回ERRORStatus ReadNode(int &N) FILE *fp;int i=0;if(fp=fopen("wenjian","rb")尸NULL) return ERROR;while(!feof(fp)/ 用feof检测文件是否结束,如果结束,返回正确 fread(&Testquestionsi,sizeof(TestNode),1

9、,fp);i+;N=i-1;return TRUE;(2)试题的录入模块实现此功能代码如下插入试题内容Status InsertNode(int &N)if(N>MAX) return ERROR;cout<<"请输入所要插入题题目、题干和选项:"<<endl;cout<<"请输入题目:"gets(TestquestionsN.subject);cout<<"请输入选项A:"gets(TestquestionsN.option1);cout<<"请输入

10、选项B:"gets(TestquestionsN.option2);cout<<"请输入选项C:"gets(TestquestionsN.option3);cout<<"请输入选项D:”;gets(TestquestionsN.option4);cout<<endl;cout<<"请输入答案:"cin>>&TestquestionsN.result;getchar();N+;/N表示结构体数组长度,通过加&号使其值能返回return TRUE;(3)试题的输出

11、模块实现此功能相关代码如下:void printNode(TestNode p,int n)输出第 n 道题题目cout<<n;cout<<" "<<p.subject<<" "<<endl;cout<<"A "<<p.option1<<""cout<<"B "<<p.option2<<" "<<endl;cout<<&q

12、uot;C "<<p.option3<<""cout<<"D "<<p.option4<<""(4)答题判卷模块实现此功能相关代码如下:判断m是否为p题目的答案,若是返回TRUE否则返回ERRORStatus Match(TestNode p,char m) if(m=p.result) return TRUE;else return ERROR;进行答题void answer(int sum)/进行答题int k,score=0,Num;char r;int aM

13、AX,i;for(k=1;k<=sum;k+) for(i=0; i<=sum; +i)ai=i;for(i=sum; i>=1; -i)swap(ai-1, arand()%i);Num=ai-1; /随机函数,以随机选定何题进行解答printNode(TestquestionsNum,Num+1);cout<<endl;cout<<”请输入答案:";cin>>&r;getchar();if( Match(TestquestionsNum,r)/调用函数IsMatch判断所输入的答案与标准答案是否相同 cout<&

14、lt;endl;cout<<"答案正确!"<<endl;score+;else cout<<endl;cout<<"答案错误!"<<endl;cout<<"你的总成绩为:"<<score<<endl;(5)界面主函数模块实现此功能相关代码如下:int main() char flag='N'int N=0,i, sum,score=0,chose;/*cout("输入想建立的题目文件题目数:");cin&

15、gt;>&N;getchar();InputTitle(N);*/ReadNode(N);while(flag='N'|flag='n') cout<<""<<"单项选择题标准化考试系统"<<endl;cout<<endl;cout<<""<<"1进行答题并判卷“<<endl;cout<<""<<"2显示整张试卷内容"<<

16、endl;cout<<""<<"3插入试题"<<endl;cout<<""<<"4保存到义件"<<endl;cout<<""<<"5退出系统"<<endl;cout<<""<<"请选择:";cin>>chose;getchar();switch(chose)case 1:system("

17、;cls");if(N=0)cout<<"题库中没有试题,请添加后在进行答题!"<<endl;break;cout<<" 题库中共有"<<N<<"道试题,请输入答题个数:";cin>>sum;getchar();if(sum>N)cout<<"输入错误,请重新操作! ! "<<endl;break;answer(sum);break;case 2:system("cls");if(N=

18、0)cout<<"题库中没有试题,请添加后在进行此类操作!"<<endl;break;for(i=1;i<=N;i+) printNode(Testquestionsi-1,i);cout<<endl;break;case 3:system("cls");InsertNode(N);break;case 4:system("cls");if(SaveNode(N) cout<<"保存成功!"<<endl;else cout<<"

19、保存失败!"<<endl;break;case 5:cout<<"你将退出系统(Y or N)?"cin>>&flag;getchar();if(flag='Y'|flag='y') exit(0);system("cls");break;default:cout<<"请输入正确选择!"<<endl;五系统测试1. 运行系统,进入界面文案大全容焉判卷 一普件 题张题文统 ng-.- 行一父1择 进显选12 3 42. 开始插入

20、试题进行插入试题连续插入两道题题干和选项:入题题目,77/?-22114433+ ai* + ;白 B c D ®目项项的项 所题选选选选 入入人入人入 -rr-. -4dv+.=rr-krr4.斗J-.¥4zn- nt主n主目主闫-Hint主ie t IF i > i单项选择题标准化考试系统请输入答案:B容 判卷 S咕堡行示进显.12要统 1 = 人后择选 :S请显示整张试卷内容177/7=R22B11C44D3322*3 =n4b5C6D7单项选择题标准化考试系统判卷 一西件 霸题文统- 行一不g择 进显®选 12 3 4 53. 保存到文件并进行答题保

21、存到文件保存成功?单项选择题标准化考试系统容判卷 需件 题张题文统J行不2择 进显12 3 4进行答题案正确?77/?=22B1144D33请输入答案单项选*举题标准化考试系统容 圉 判卷件 题张题文统.进显选 工2 3 4 5请4.退出系统退出系统单项选择题标准化考试系统保存成功,容 需 判卷 一签件 题张题紊 行一人后择 进显®你将退出系统d"M>?Vrocess returned 0 <0x0>execution time : 96.592 sress any key 七口 continue¥六总结经过这么多天的 c+佛程设计的训练,我学到

22、了很多,最主要的一点是怎样去运用自己学过的知识, 怎样去找到你所需要的资料,并在短时间把它运用到具体的实践中,运用到你所需要的方面。这个过程是很艰难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的。在做这个 C+叙程设计的时候,我原先也是学的不怎么好,什么是结构体数据,什么是定义类型,怎样在一个main函数中调用别的定义函数,等等,可以说是忘得差不多了。 然而,在这门课程设计中这些方面却是特别重要的,可以说,掌握了这个 ,你就完全可以完成自己的任务。这就要求我们要自己 去学,自己去探索。当然,看书、问同学是必不可少的,还有,

23、身边有非常丰富的网络资源给我们好好利 用,百度就是个很不错的地方。 这样就从另一方面锻炼了我们检索知识获取信息的能力,在这个过程中可以学到的是一种提升自我的能力。当然,由于个人能力所限,这份课程设计有一些别的方面还是要参考人家的的资料,在读懂别人材料的同时,自己取人所长,补己之短,经过多次的调试,总结,最后交出一份自己比较满意的答卷。通过这次的课程设计,让我进一步的了解到C+E我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣 .经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好, 掌握好这门必修的基础语言。七参考文献1 .段钢 编著 加密与解密(第三版).电子工业

24、出版社.2009年8月.2 .赵树升 赵韶平.Windows信息安全原理与实现.清华大学出版社.2004年9月.3 .赛奎春.Visual C+信息系统开发实例精选,20054 .杨永国.Visual C+ 6.0 实用教程.清华大学出版社,20045 .唐俊明.Visual C+ 6.0编程实例与技巧.高等教育出版,20026 .潘锦平.软件系统开发技术.西安电子科技大学出版社,19977 .郑阿奇 丁有和 编著Visual C+ (第2版).机械工业出版社.2008年8月.8 .侯俊杰 编著 深入浅出MFC(第2版).华中科技大学出版社.2008年1月.9 .孙鑫余安萍 编著VC+深入浅出

25、详解.电子工业出版社.2006年6月.源程序:#include<iostream> #include<vector>#include<fstream>#include<stdlib.h>#include <time.h>using namespace std;#define TRUE 1#define ERROR 0#define MAX 30typedef int Status;typedef structchar option130,option230,option330,option430,subject150;char res

26、ult;TestNode;TestNode TestquestionsMAX;Status SaveNode(int N)把结构体数组保存到文件"cheng"中,如成功保存返回TRUE,否则返回ERROR int i;FILE *fp;if(fp=fopen("cheng","wb")=NULL) return ERROR;for(i=0;i<N;i+)fwrite(&Testquestionsi,sizeof(TestNode),1,fp);fclose(fp);return TRUE;Status ReadNode(

27、int &N)从文件读出结构体数组的内容,如成功读取返回TRUE,否则返回ERROR FILE *fp;int i=0;if(fp=fopen("cheng","rb")=NULL) return ERROR;while(!feof(fp)/ 用feof检测文件是否结束,如果结束,返回正确 fread(&Testquestionsi,sizeof(TestNode),1,fp);i+;N=i-1;return TRUE;Status InsertNode(int &N) / 插入试题内容if(N>MAX) return ER

28、ROR;cout<<"请输入所要插入题题目、题干和选项:"<<endl;cout<<”请输入题目:"gets(TestquestionsN.subject);cout<<”请输入选项 A:"gets(TestquestionsN.option1);cout<<”请输入选项B :"gets(TestquestionsN.option2);cout<<”请输入选项C:"gets(TestquestionsN.option3);cout<<”请输入选项 D:

29、"gets(TestquestionsN.option4);cout<<endl;cout<<”请输入答案:"cin>>&TestquestionsN.result;getchar();N+;/N表示结构体数组长度通过加&号使其值能返回return TRUE; Status DeleteNode(int n)删除数组中的第n个元素return TRUE;输出第n道题题目 void printNode(TestNode p,int n) cout<<n;cout<<" "vvp.s

30、ubjectvv" "<<endl;cout<<"A"<<p.option1<<""cout<<"B"<<p.option2<<""<<endl;cout<<"C"<<p.option3<<""cout<<"D"<<p.option4<<""Statu

31、s Match(TestNode p,char m)/ 判断m是否为p题目的答案,若是返 回TRUE ,否则返回ERRORif(m=p.result) return TRUE;else return ERROR;void answer(int sum)/ 进行答题int k,score=0,Num;char r;int aMAX,i;for(k=1;k<=sum;k+) for(i=0; i<=sum; +i)ai=i;for(i=sum; i>=1; -i)swap(ai-1, arand()%i);Num=ai-1; 随机函数,以随机选定何题进行解答printNode(T

32、estquestionsNum,Num+1);cout<<endl;cout<<”请输入答案:";cin>>&r;getchar();if( Match(TestquestionsNum,r)/ 调用函数 IsMatch 判断所输入的 答案与标准答案是否相同 cout<<endl;cout<<"答案正确!"<<endl;score+;else cout<<endl;cout<<"答案错误!"<<endl;cout<<&

33、quot;你的总成绩为:"<<score<<endl;int main() char flag='N'int N=0,i, sum,score=0,chose;ReadNode(N);while(flag='N'|flag='n') cout<<"统"<<endl;cout<<endl;cout<<""<<endl;cout<<""<<endl;cout<<"cout<<"cout<<"cout<<""<<"单项选择题标准化考试系"<<&quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论