计算机基础I
综合程序设计
题 目:
单项选择题标准化考试系统设计
院 系: 食品科学与工程 班 级: 教改1202班 学 号: ********** 姓 名: 占琳 指导老师:
***
2013年4月 19 日
1201080225——占琳
1
C语言综合程序设计—单项选择题标准化考试系统设计
目录
________________________________________________________________________________________
第1章 综合设计概述 …………………………3
1.1综合设计名称与内容 ……………………………………………………………………………3 1.2任务要求 …………………………………………………………………………………………3 1.3开发环境 …………………………………………………………………………………………3
第2章 总体设计 ………………………………4
2.1系统功能需求分析 ………………………………………………………………………………4 2.2系统总体设计框架 ………………………………………………………………………………5 2. 3系统功能模块图及各功能模块的目的与意义…………………………………………………6
第3章 详细设计 ………………………………6
3.1 功能模块设计……………………………………………………………………………………6 3.1.1 保存功能模块…………………………………………………………………………………6 3.1.2 输出文件功能模块……………………………………………………………………………7 3.1.3 答题功能模块…………………………………………………………………………………7 3.2 数据结构设计 ……………………………………………………………………………………8
第4章 调试分析过程描述 ……………………9
4.1主菜单………………………………………………………………………………………………9 4.2 进行答题并判卷 …………………………………………………………………………………9 4.3 插入试题 …………………………………………………………………………………………11 4.4 保存文件 …………………………………………………………………………………………11 4.5 退出系统 …………………………………………………………………………………………12 4.6 调试分析过程结论描述…………………………………………………………………………12
第5章 综合实际体会 …………………………13 附录 …………………………………………14
一、源程序清单………………………………………………………………………………………14 二、流程图……………………………………………………………………………………………18
参考文献 ………………………………………18
1201080225——占琳
2
C语言综合程序设计—单项选择题标准化考试系统设计
第1章 综合设计概述
1.1综合设计名称与内容
——课程设计名称:单项选择题标准化考试系统设计(这个与我们的学习息息相关,应该很好地理解它);
——课程设计内容:设计一个单项选择题标准化考试系统,该系统能够实现保存试题、录入试题、答题、系统判卷的功能。
1.2任务要求 功能要求:
(1) 用文件保存试题库 (每个试题包括题干、4个备选答案
标准答案)。
(2) 试题录入:可随时增加试题到试题库中。
(3) 试题抽取:每次从试题库中可以随机抽取N道题(N由键盘输入)。 (4) 答 题:用户可输入自己的答案。
(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出
成绩。
其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读 (2)学生可自动增加新功能模块(视情况可另外加分) (3)写出课程设计报告,具体要求见相关说明文档
1.3开发环境
1201080225——占琳
3
C语言综合程序设计—单项选择题标准化考试系统设计
—— Windows操作系统、VC++6.0 C语言 。程序设计语言是需要一个
专门编译环境的,你所说的是操作系统环境,C语言移植性比较强,所以什么操作系统都行,我介绍C语言的编译环境是VC++6.0你去这种编译环境,这个编译环境对操作系统的要求不是很高就只要是windows操作系统就行
第2章 总体设计
2.1系统功能需求分析
(一)编写目的:
通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册。 (二)需求概述:
设计一个职工信息管理系统,使之能提供以下功能:
(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答
案)
(2)试题录入:可随时增加试题到试题库中
(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入) (4)答 题:用户可实现输入自己的答案
(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给
1201080225——占琳
4
C语言综合程序设计—单项选择题标准化考试系统设计
出成绩。
(三)需求说明:
(1)可以输入单项选择题的题目、选择题的选项和正确答案,并将输
入的题目存入文件。 (2)可以统计列表的长度。
(3)可以随机的抽取试题和限定回答的数量
添加到列表中。
(4)可以找到指定的题目以写的形式重新打开文件,得到选择题的答
案(不保证是正确的答案)确保的答案是A、B、C、D中的任意一个。
(5)可以回答问题,并统计答对的题目数,显示得分。
将从文件中抽取的题目
2.2系统总体设计框架
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 sum)”函数用于答题者的输入答案;
5、自动判卷:则可以定义一个“ Status Match(TestNode p,charm)”函数,用来对比答题者的答案和正确答案,给出判断正确与否; 6、用一个main函数将上述各个函数功能块连接起来,实现“单项选择
1201080225——占琳
5
C语言综合程序设计—单项选择题标准化考试系统设计
题标准化考试系统”的各个方面的功能,完成设计。
2. 3系统 进入函数 SaveNode(int N) 功能模块图及各功能模块的目的与意成功打开文件? N Y I 第3章 详细设计 3.1 功能模块设计 3.1.1保存功能模块 1201080225——占琳 6 C语言综合程序设计—单项选择题标准化考试系统设计 3.1.2 输出文件功能模块 进入函数ReadNode(int N) 成功打开文件? N Y Return 判断条件是否成立 ERROR读出数据 i++ N+1 Return TRUE 3.1.3 答题功能模块 进入函数answer(int sum) 1201080225——占琳 7 C语言综合程序设计—单项选择题标准化考试系统设计 i=1,i 输出”总成绩为” 结束 3.2数据结构设计 1201080225——占琳 8 C语言综合程序设计—单项选择题标准化考试系统设计 程序中主要用到了结构体数组,定义类型,如typedef int Status等, 用结构体数组可以使得程序比较简便,易于读懂,免去频繁的赋值,而用定义类型,可以使得程序具有移植性,健壮性好。 第4章 调试分析过程描述 4.1主菜单 4.2 进行答题并判卷 1201080225——占琳 9 C语言综合程序设计—单项选择题标准化考试系统设计 在这一部分我发现如果题库中没有试题的话,程序依然会让你答题,显示的题目和选项都是空白的,操作起来很费神。 后来在程序中加了一个判断题库中题目数量显示和比较答题数和试题数多少的判断语句,重新运行得以解决。 1201080225——占琳 10 C语言综合程序设计—单项选择题标准化考试系统设计 4.3 插入试题 4.4 保存文件 1201080225——占琳 11 C语言综合程序设计—单项选择题标准化考试系统设计 4.5 退出系统 4.6 调试分析过程结论描述: a) 在抽取试题时 试题的编号不是按照顺序显示的。错误原因是 导致输出的编号为以前 12 在输出试题前未重新对试题进行编号 1201080225——占琳 C语言综合程序设计—单项选择题标准化考试系统设计 的试题编号。 b) 在随机抽取试题时 里面用到的随机函数在随机选择试题时,有 时会遇到选择出来的试题时重复的。 第5章 综合实际体会 经过一个星期的上机实践学习,不断的在网上找资料,使我对c语言有了更进一步的认识和了解,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。 过而能改,善莫大焉。在课程设计过程中,经常在图书馆与机房里做,又因为版本不同,所以经常会做一些删改的部分。我们不断发现错误,不断改正,不断领悟,不断获取。通过这次的课程设计,让我进一步的了解到C++在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣.经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。 1201080225——占琳 13 C语言综合程序设计—单项选择题标准化考试系统设计 附录 一、源程序清单 #include option1[30],option2[30],option3[30],option4[30],subject[150]; char result; }TestNode; TestNode Testquestions[MAX]; Status SaveNode(int N )//把结构体数组保存到文件\"cheng\"中,如 成功保存返回 TRUE,否 则返回 ERROR) { int i; FILE *fp; if((fp=fopen(\"cheng\for(i=0;i Status ReadNode(int &N)//从文件读出结构体数组的内容,如成 读取返回 TRUE,否则返 回 ERROR { FILE *fp; int i=0; if((fp=fopen(\"cheng\ 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 14 C语言综合程序设计—单项选择题标准化考试系统设计 printf(\"请输入第%d 道题题目、题干和选项:\\n\输入结构体元素内容 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\ system(\"cls\"); // 清屏 } } Status InsertNode(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\getchar(); N++; //N 表示结构体数组长度,通过加&号使其值能返回 return TRUE; } Status DeleteNode(int n)//删除数组中的第 n 个元素 { return TRUE; } void printNode(TestNode p,int n)//输出第 n 道题题目 { printf(\"(%d) \ printf(\"%s\\n\ printf(\" A %s \ printf(\" B %s \ printf(\" C %s \ 1201080225——占琳 15 C语言综合程序设计—单项选择题标准化考试系统设计 printf(\" D %s \ } 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\ if( Match(Testquestions[Num],r)) //调用函数 IsMatch 判断 所输入的答案与标准 答案是否相同 { printf(\"\\n 答案正确!\\n\"); score++; } else printf(\"\\n 答案错误!\\n\"); } printf(\"\\n 你的总成绩为:%d\\n\ } void main() { char flag='N'; int N=0,i, sum,score=0,chose; /*printf(\"输入想建立的题目文件题目数:\"); scanf(\"%d\InputTitle(N);*/ ReadNode(N); while(flag=='N'||flag=='n') { printf(\"\\\ 单项选择题标准化考试系统\\n \"); printf(\"\\n\"); printf(\" \\\1 进行答题并判卷\\n\"); printf(\" \\\2 显示整张试卷内容\\n\"); printf(\" \\\3 插入试题\\n\"); printf(\" \\\4 保存到文件\\n\"); printf(\" \\\5 退出系统\\n\"); printf(\" \\\ 请选择:\"); scanf(\"%d\ 1201080225——占琳 16 C语言综合程序设计—单项选择题标准化考试系统设计 switch(chose) { case 1:system(\"cls\"); printf(\"请输入你想要的答题数目:\"); scanf(\"%d\ 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\");InsertNode(N);break; case 4:system(\"cls\"); if(SaveNode(N)) printf(\"保存成功!\\n\"); else printf(\"保存失败!\\n\");break; case 5:printf(\"你将退出系统(Y or N)?\"); scanf(\"%c\if(flag=='Y'||flag=='y') exit(0); system(\"cls\");break; default:printf(\"请输入正确选择!\\n\"); 1201080225——占琳 17 } C语言综合程序设计—单项选择题标准化考试系统设计 二、流程图 主菜单 添加选择题 回答选择题 退出 1.输入题目 2.输入4个备选答案 3.输入标准答案 输入所要选择的答案 系统自动储存所输入的题目 系统自动判卷后输出成绩 返回主菜单 参考文献 [1] 谭浩强.C程序设计(第四版)[M],北京:清华大学出版社, 2010 [2] 谭浩强. C程序设计题解与上机指导(第四版)[M],北京:清华大学出 版社,2011 [3] http://www.baidu.com 1201080225——占琳 18 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务