《2022年单项选择题实用标准化考试系统设计.docx》由会员分享,可在线阅读,更多相关《2022年单项选择题实用标准化考试系统设计.docx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 有用文档面对对象程序设计(C+)课程大作业设计题目:单项挑选题标准化考试系统设计院 系:运算机科学与信息工程学院专业班级:学号姓名:指导老师:某老师2022 年 1 月文案大全名师归纳总结 - - - - - - -第 1 页,共 24 页精选学习资料 - - - - - - - - - 有用文档目 录一、 成员分工 . 1 二、需求分析 . 2 三、总体设计 . 3 四、具体设计 . 4 五、系统测试 . 10 六、总结 . 13 七、参考文献 . 14 文案大全名师归纳总结 - - - - - - -第 2 页,共 24 页精选学习资料 -
2、 - - - - - - - - 有用文档一 成员分工我们小组成员共有三名,分别是为了能按时圆满的完成这次C+课程设计,我们小组进行了具体的分工,以确保设计能按时完成;经过周密的考虑和具体的调查最终确定单项挑选题标准化考试系统设计需要以下几个功能模块:(1)需求分析(2)储存试题库(3)试题的录入(4)试题的抽取(5)答题(6)自动判卷(7)系统测试(8)退出系统经过小组成员的争论,并依据个人的特长和具体爱好做如下具体分工:神具体完成以下模块的设计与实现:(1 ) 需求分析(2 ) 储存试题库(3 ) 试题的录入具体完成以下模块的设计与实现:(1)试题的抽取(2)答题具体完成以下模块的设计与实
3、现:(1)自动判卷(2)系统测试(3)退出系统文案大全名师归纳总结 - - - - - - -第 3 页,共 24 页精选学习资料 - - - - - - - - - 有用文档二 需求分析1设计目的将理论教学中涉及到的学问点贯穿起来,对不同的数据类型、程序掌握结构、 数据结构作一比较和总结, 结合设计题目进行综合性应用,对所学学问达到融会贯穿的程度;通过课程设计,同学在下述各方面的才能应当得到锤炼:( 1)进一步巩固、加深同学所学专业课程C+程序设计语言的基本理论学问,理论联系实际,进一步培育同学综合分析问题,解决问题的才能;(2)全面考核同学所把握的基本理论学问及其实际业务才能,从而达到提高
4、同学素养的最终目的;(3)利用所学学问,开发小型应用系统,把握运用 C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合才能;( 4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型;( 5)把握结构化程序设计方法,熟识面对对象程序设计方法;( 6)娴熟把握 C+语言的基本语法,敏捷运用各种数据类型;( 7)进一步把握在集成环境下如何调试程序和修改程序;2课程设计名称及内容课程设计名称:单项挑选题标准化考试系统设计内容:设计一个单项挑选题标准化考试系统,该系统要求能自动组卷和评分;3设计方案提示具体的功能:1 用文件储存试题库; (每个试题包括题干、 4 个备
5、选答案、标准答案) ;2 试题录入:可随时增加试题到试题库中;3 试题抽取:每次从试题库中可以随机抽出 4 答题:用户可实现输入自己的答案;N 道题( N 由键盘输入);5 自动判卷:系统可依据用户答案与标准答案的对比实现判卷并给出成果;主要学问点:1 面对对象程序设计方法 2 界面的制作, switch 的应用 3 类和对象 4 动态数组(链表)类模板 文案大全名师归纳总结 - - - - - - -第 4 页,共 24 页精选学习资料 - - - - - - - - - 有用文档5 文件的读写其他:程序设计可在 Microsoft 1总的表达VC+6.0、Borland C+ Builde
6、r 环境下进行;三 总体设计 1、用来储存试题库, 可以用到”Struct TestNode Testquestions” 结构体数组 , 将试题一一对应的保留下来 , 放在相应的文件里; 2、试题的录入 , 可以定义一个” void InputTitleint N” 和” Status InsertNodeint &N”函数将试题录入; 3、 试题的抽取 , 可以定义一个” void printNodeTestNode p,int n” 的函数 , 用到”Rand” 函数进行随机抽取; 4、答题方面 , 就定义一个” void answerint sum” 函数用于答题者的输入答案; 5、自
7、动判卷 , 就可以定义一个” Status MatchTestNode p,char m” 函数 , 用来对比答题者答案和正确答案 , 给出判定正确与否; 6、用一个main 函数将上述各个函数功能块连接起来, 实现” 单项挑选题标准化考试系统” 的各个方面的功能 , 完成 设计2大致流程图文案大全名师归纳总结 - - - - - - -第 5 页,共 24 页精选学习资料 - - - - - - - - - 有用文档单项挑选题标准化考试系统进显插保退行示入存出答整试到系题张题文统并试件判卷卷内容四 具体设计1. 程序流程图(1)储存文件文案大全名师归纳总结 - - - - - - -第 6
8、页,共 24 页精选学习资料 - - - - - - - - - 有用文档(2)输出文件(3) 答题功能模块进入函数 answerint sum i=1,isum Num=rand%sum 输出数据文案大全名师归纳总结 - - - - - - -第 7 页,共 24 页精选学习资料 - - - - - - - - - 有用文档从键盘获得数据答案是否正 确输出 ”正确”输出 ”错误 ”输出 ”总成果为 ”终止(4)结构程序中主要用到了结构体数组 , 定义类型 , 如 typedef int Status 等, 用结构体数组可以使得程序比较简便 , 易于读懂 , 免去频繁的赋值 , 而用定义类型
9、, 可以使得程序具有移植性, 健壮性好;2. 功能模块(1)文件的储存和读取模块实现此功能代码如下:把结构体数组储存到文件wenjian中, 如胜利储存返回TRUE,否就返回 ERROR Status SaveNodeint N int i; FILE *fp; iffp=fopenwenjian,wb=NULL return ERROR; fori=0;iMAX return ERROR; cout请输入所要插入题题目、题干和选项:endl; cout 请输入题目: ; getsTestquestionsN.subject; cout 请输入选项 A:; getsTestquestionsN
10、.option1; cout 请输入选项 B:; getsTestquestionsN.option2; cout 请输入选项 C:; getsTestquestionsN.option3; cout 请输入选项 D:; getsTestquestionsN.option4; coutendl; 文案大全名师归纳总结 - - - - - - -第 9 页,共 24 页精选学习资料 - - - - - - - - - 有用文档cout&TestquestionsN.result;getchar; N+; /N表示结构体数组长度, 通过加 &号使其值能返回 return TRUE; (3)试题的输
11、出模块实现此功能相关代码如下:void printNodeTestNode p,int n/ 输出第 n 道题题目 coutn; cout p.subject endl; coutA p.option1 ; coutB p.option2 endl; coutC p.option3 ; coutD p.option4 ; (4)答题判卷模块实现此功能相关代码如下:判定 m是否为 p 题目的答案,如是返回TRUE,否就返回ERROR Status MatchTestNode p,char m ifm=p.result return TRUE; else return ERROR; 进行答题 vo
12、id answerint sum/ 进行答题 int k,score=0,Num; char r; int aMAX,i; fork=1;k=sum;k+ 文案大全名师归纳总结 - - - - - - -第 10 页,共 24 页精选学习资料 - - - - - - - - - 有用文档 fori=0; i=1; -i swapai-1, arand%i; Num=ai-1; / 随机函数 , 以随机选定何题进行解答 printNodeTestquestionsNum,Num+1; coutendl; cout&r;getchar; if MatchTestquestionsNum,r /调用
13、函数IsMatch 判定所输入的答案与标准答案是否相同 coutendl; cout 答案正确 .endl; score+; else coutendl; cout 答案错误 .endl; cout 你的总成果为 :score&N;getchar; InputTitleN;*/ ReadNodeN; whileflag=N|flag=n cout 单项挑选题标准化考试系统endl; 文案大全名师归纳总结 - - - - - - -第 11 页,共 24 页精选学习资料 - - - - - - - - - 有用文档 coutendl; cout 1 进行答题并判卷 endl; cout 2 显示
14、整张试卷内容 endl; cout 3 插入试题 endl; cout 4 储存到文件 endl; cout 5 退出系统 endl; cout chose;getchar; switchchose case 1:systemcls; ifN=0 cout题库中没有试题,请添加后在进行答题!endl; break; cout题库中共有 Nsum;getchar; ifsumN cout输入错误,请重新操作!endl; break; answersum; break; case 2:systemcls; ifN=0 cout题库中没有试题,请添加后在进行此类操作!endl; break; for
15、i=1;i=N;i+ printNodeTestquestionsi-1,i; coutendl; 文案大全名师归纳总结 - - - - - - -第 12 页,共 24 页精选学习资料 - - - - - - - - - 有用文档break; case 3:systemcls;InsertNodeN;break; case 4:systemcls; ifSaveNodeN cout 储存胜利 .endl; else cout 储存失败 .endl;break; case 5:cout&flag;getchar; ifflag=Y|flag=y exit0; systemcls;break;
16、default:cout请输入正确挑选.endl; 五 系统测试1运行系统,进入界面2. 开头插入试题进行插入试题连续插入两道题文案大全名师归纳总结 - - - - - - -第 13 页,共 24 页精选学习资料 - - - - - - - - - 有用文档显示整张试卷内容3. 储存到文件并进行答题储存到文件进行答题文案大全名师归纳总结 - - - - - - -第 14 页,共 24 页精选学习资料 - - - - - - - - - 有用文档4. 退出系统退出系统六 总结经过这么多天的C+课程设计的训练, 我学到了许多, 最主要的一点是怎样去运用自己学过的学问,怎样去找到你所需要的资料,
17、并在短时间把它运用到具体的实践中, 运用到你所需要的方面;这个过程是很艰巨的,要花费许多的时间和精力,但是,在事情过后,自己就会发觉自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的;在做这个C+课程设计的时候,我原先也是学的不怎么好,什么是结构体数据, 什么是定义类型,文案大全名师归纳总结 - - - - - - -第 15 页,共 24 页精选学习资料 - - - - - - - - - 有用文档怎样在一个main 函数中调用别的定义函数,等等,可以说是忘得差不多了;然而, 在这门课程设计中,这些方面却是特殊重要的,可以说,把握了这个, 你就完全可以完成自己的任务;这就要求我们要
18、自己去学, 自己去探究; 当然 , 看书、 问同学是必不行少的,仍有 , 身边有特别丰富的网络资源给我们好好利用, 百度就是个很不错的地方;这样就从另一方面锤炼了我们检索学问猎取信息的才能,在这个过程中 ,可以学到的是一种提升自我的才能;当然 , 由于个人才能所限,这份课程设计有一些别的方面仍是要参考人家的的资料,在读懂别人材料的同时,自己取人所长,补己之短,经过多次的调试, 总结 , 最终交出一份自己比较中意的答卷;通过这次的课程设计,让我进一步的明白到 C+在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的爱好 . 经过这次的训练,我信任自己以后会用更多的时间来把这门语言学
19、好,把握好这门必修的基础语言;七 参考文献1. 段钢 编著 加密与解密(第三版).电子工业出版社 .2022 年 8 月.2. 赵树升 赵韶平 . Windows 信息安全原理与实现 .清华高校出版社 .2004 年 9 月.3. 赛奎春 .Visual C+ 信息系统开发实例精选,20054. 杨永国 . Visual C+ 6.0有用教程 . 清华高校出版社 ,2004 文案大全名师归纳总结 - - - - - - -第 16 页,共 24 页精选学习资料 - - - - - - - - - 有用文档5. 唐俊明 . Visual C+ 6.0 编程实例与技巧 . 高等训练出版, 2002
20、6. 潘锦平 . 软件系统开发技术 . 西安电子科技高校出版社 , 1997 7. 郑阿奇 丁有和 编著 Visual C+(第 2 版) . 机械工业出版社 .2022 年 8 月.8. 侯俊杰 编著 深化浅出 MFC(第 2 版) . 华中科技高校出版社 .2022 年 1 月.9. 孙鑫 余安萍 编著 VC+ 深化浅出详解 . 电子工业出版社 .2006 年 6 月.附 录源程序:#include #include 文案大全名师归纳总结 - - - - - - -第 17 页,共 24 页精选学习资料 - - - - - - - - - 有用文档#include #include #in
21、clude using namespace std; #define TRUE 1 #define ERROR 0 #define MAX 30 typedef int Status; typedef struct char option130,option230,option330,option430,subject150; char result; TestNode; TestNode TestquestionsMAX; Status SaveNodeint N /把结构体数组储存到文件cheng 中,如胜利保存返回 TRUE, 否就返回 ERROR int i; FILE *fp; if
22、fp=fopencheng,wb=NULL return ERROR; fori=0;iMAX return ERROR; cout 请输入所要插入题题目、题干和选项 :endl; cout 请输入题目: ; getsTestquestionsN.subject; cout 请输入选项 A:; getsTestquestionsN.option1; cout 请输入选项 B:; getsTestquestionsN.option2; cout 请输入选项 C:; getsTestquestionsN.option3; cout 请输入选项 D:; 文案大全名师归纳总结 - - - - - -
23、-第 19 页,共 24 页精选学习资料 - - - - - - - - - 有用文档getsTestquestionsN.option4; coutendl; cout&TestquestionsN.result;getchar; N+; /N 表示结构体数组长度 ,通过加 &号使其值能返回return TRUE; Status DeleteNodeint n/删除数组中的第n 个元素 return TRUE; void printNodeTestNode p,int n/ coutn; 输出第 n 道题题目cout p.subject endl; coutA p.option1 ; cou
24、tB p.option2 endl; coutC p.option3 ; coutD p.option4 ; Status MatchTestNode p,char m/判定 m 是否为 p 题目的答案, 如是返回 TRUE ,否就返回 ERROR 文案大全名师归纳总结 - - - - - - -第 20 页,共 24 页精选学习资料 - - - - - - - - - 有用文档ifm=p.result return TRUE; else return ERROR; void answerint sum/ 进行答题 int k,score=0,Num; char r; int aMAX,i;
25、fork=1;k=sum;k+ fori=0; i=1; -i swapai-1, arand%i; Num=ai-1; /随机函数 ,以随机选定何题进行解答printNodeTestquestionsNum,Num+1; coutendl; cout&r;getchar; if MatchTestquestionsNum,r /答案与标准答案是否相同 coutendl; cout 答案正确 .endl; score+; else coutendl; 调用函数 IsMatch 判定所输入的文案大全名师归纳总结 - - - - - - -第 21 页,共 24 页精选学习资料 - - - - -
26、 - - - - 有用文档cout 答案错误 .endl; cout 你的总成果为 :scoreendl; int main char flag=N; int N=0,i, sum,score=0,chose; ReadNodeN; whileflag=N|flag=n cout 单项挑选题标准化考试系统endl; coutendl; cout 1 进行答题并判卷endl; cout 2 显示整张试卷内容endl; cout 3 插入试题 endl; cout 4 储存到文件 endl; cout 5 退出系统 endl; cout chose;getchar; switchchose cas
27、e 1:systemcls; ifN=0 cout 题库中没有试题,请添加后在进行答题!endl; break; cout 题库中共有 Nsum;getchar; ifsumN cout 输入错误,请重新操作! !endl; break; answersum; break; case 2:systemcls; ifN=0 cout 题库中没有试题,请添加后在进行此类操作!endl; break; fori=1;i=N;i+ printNodeTestquestionsi-1,i; coutendl; break; 文案大全名师归纳总结 - - - - - - -第 23 页,共 24 页精选学习资料 - - - - - - - - - 有用文档case 3:systemcls;InsertNodeN;break; case 4:systemcls; ifSaveNodeN cout储存胜利 .endl; else cout 储存失败 .endl;break; case 5:cout&flag;getchar; ifflag=Y|flag=y exit0; systemcls;break; default:cout 请输入正确挑选 .endl; return 0; 文案大全名师归纳总结 - - - - - - -第 24 页,共 24 页