单项选择题标准化考试系统设计.doc_第1页
单项选择题标准化考试系统设计.doc_第2页
单项选择题标准化考试系统设计.doc_第3页
单项选择题标准化考试系统设计.doc_第4页
单项选择题标准化考试系统设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

精品文档 沈阳航空航天大学沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称 C 语言课程设计语言课程设计 课程设计题目 单项选择题标准化考试系统设 计 院 系 计算机学院 专 业 计算机科学与技术 班 级 34010104 学 号 2013040101164 姓 名 指导教师 孙伟东 完成日期 2014年03月1日 精品文档 目目 录录 第第 1 章章 概要设计概要设计 1 1 1 题目的内容与要求题目的内容与要求 1 内容 内容 设计并实现一个单项选择题标准化考试系统 该系统可以完成试题录入 设计并实现一个单项选择题标准化考试系统 该系统可以完成试题录入 试题抽取 自动判卷等功能 试题抽取 自动判卷等功能 1 1 2 总体结构 1 第第 2 章章 详细设计详细设计 2 2 1 菜单操作模块 2 2 2 将题目装入内存模块 4 2 3 开始答题模块 5 2 4 添加试题模块 9 第第 3 章章 调试分析调试分析 13 第第 4 章章 使用说明使用说明 14 附附 录 程序清单 录 程序清单 17 精品文档 第 1 章 概要设计 1 1 题目的内容与要求题目的内容与要求 内容 设计并实现一个单项选择题标准化考试系统 该系统可以完成试题录入 试题抽取 自动判卷等功能 要求 1 用文件保存试题库 每个试题包括题干 4 个备选答案 标准答 案 2 试题录入 可随时增加试题到试题库中 3 试题抽取 每次从试题库中可以随机抽出 N 道题 N 由键盘输入 4 答题 用户可实现输入自己的答案 5 自动判卷 系统可根据用户答案与标准答案的对比实现判卷并给 出成绩 1 2 总体结构总体结构 本程序主要分为四个模块 功能模块图见下图功能模块图见下图 1 模块一 菜单操作模块 该模块实现程序的菜单操作 2 模块二 将题目装入内存模块函数开辟内存空间将试题文件 中题目装入内存中 3 模块三 开始答题模块函数会让用户输入要答的题目数 在屏幕上输 出题干和选项并让用户输入答案 判断用户输入答案是否正确 4 模块四 添加试题模块 打开储存试题的文件进行试题信息输入 菜单操作模块 将题目装入内存 模块 开始答题模块 添加试题模块 单项选择题标准化考试系统 图图 1 1 功能模块图功能模块图 精品文档 第 2 章 详细设计 2 1 菜单操作模块 菜单操作模块 控制整个程序的运行 控制菜单操作 通过主函数模块分别调用各个模块 实现各项功能 流程如图 2 1 所示 Systcm cls n 1 exe1 break 9 n 2 n 3 exe2 break printf goodbycl n 1 1 N N Y Y N Y 开 始 精品文档 图图 2 1 该模块实现程序的菜单操作 实现算法如下 在屏幕上输出菜单选项 1 接受用户输入 2 1 n 3n 3 结结 束束 Y N 输入错误 请重新输 入 精品文档 2 2 将题目装入内存模块 将题目装入内存模块 将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中 流程如图 2 2 所示 图 图 Side By Side Fclose fp 结结 束束 feof fp fp fopen test txt Printf 文件打开失文件打开失 败 败 FILE fp N Y Y N 开始 精品文档 函数开辟内存空间将试题文件中题目装入内存中 实现算法如下 遍历文件判断回车符个数 计算题目数 1 根据提供参数判断是否将当前题目装入内存 2 开辟内存空间 将题目信息装入内存 3 关闭文件返回题目总数 4 2 3 开始答题模块 开始答题模块 开始答题模块函数会让用户输入要答的题目数 在屏幕上输出题干和选项并让用户输入答案 判断用户输入答案是否正确 流程图如图 2 3 Vold main 0 n n tm Printf 答题数应小于总数 i 0 2 N Y 开始 精品文档 ets m M rand Touppor ans 0 Printf 恭喜你答对了 I P1 head Head p1 next P1 NULL 0 m i 1 exe1 i 2 exe2 main N Y N Y 精品文档 判断用户输入的答案是否正确 输出答题结果统计 5 2 42 4 添加试题模块 添加试题模块 流程图如图 2 4 Viod main fp fopen test txt Printf 文件打开失败请检查 Struct test p1 NULL Printf 请输入题目 P que 0 0 N Y Y N 精品文档 Printf 请输入选项 A P1 answer1 0 Y N Printf 请输入选项 B P1 answer2 0 Y N Printf 请输入选项 C P1 answer3 0 6 精品文档 Scanf c p1 ture 7 n 1 Fputc n fp n 1 exe2 Free fp1 0 结结 束束 N Y N Y 精品文档 开辟内存空间 接受用户输入题目信息 2 判断用户输入是否合法 3 写到文件并保存 4 精品文档 第第 3 章章 调试分析调试分析 问题问题 1 文本文件无法删除指定的一行 方法 方法 所以要用类似于进栈出栈的方法 把要删的信息过滤出去 问题问题 2 程序不能运行 方法 方法 解决办法就是不断的按 F10 进行调试 最终找到错误的地方 问题问题 3 打开的文件没有关闭 最终导致一部分源代码被无意休改 方法 方法 问了成绩好的同学 最后加了个关闭文件的函数 精品文档 第第 4 章章 使用说明使用说明 运行操作及结果 该程序可以进行单项选择题标准化考试的系统 实现输入 不同的指令数字实现不同的功能 实现选择答题增加题目以及直接退出系统 单项选择题标准化考试系统 请输入你要的操作 1 请输入你要的操作 2 精品文档 图为进行单项选择题标准化考试系统设计的情形图为进行单项选择题标准化考试系统设计的情形 使用时根据提示选择想要的查找方式 精品文档 参考文献 参考文献 1 张长海 C 语言程设计 M 北京 高等教育出版社 2006 2 谭浩强 C 程序设计解题与上机指导 第三版 北京 清华大学出版社 2009 3 范辉 等编著 Visual C 6 0 程序设计简明教程 高等教育出版社 4 严蔚敏等 数据结构 c 语言版 北京 清华大学出版社 1997 年 4 月 第 1 版 5 胡学钢等 数据结构算法设计指导 北京 清华大学出版社 1999 年 第 1 版 精品文档 附附 录 程序清单 录 程序清单 include include define LEN sizeof struct test struct test char que 81 char answer1 81 char answer2 81 char answer3 81 char answer4 81 char ture struct test next struct test head 全局变量储存第一个结构体的指针 int zts int m 将第 m 道题装入内存 输入 1 时将返回总题数 FILE fp struct test p1 NULL char ch ch1 5 int i n 0 wz py if fp fopen c test txt r NULL 只读方式打开文件 printf 文件打开失败请检查 C 盘下的 test txt 文件 n exit 0 do py 1 ch fgetc fp for i 0 ch n i 循环判断回车符个数 精品文档 py ch fgetc fp n 储存行数的变量 if n m 如果当前行数与传入参数相等 if p1 NULL 判断是否是第一次开辟内存空间 p1 struct test malloc LEN head p1 p1 next NULL else p1 next p1 p1 struct test malloc LEN p1 next NULL wz ftell fp 记录指针当前位置 fseek fp wz py 1 0 调整指针位置到行首 fscanf fp s s s s s s fseek fp wz 1 0 调整指针位置到行末 p1 ture ch1 0 break 将数据装入内存后跳出循环 while feof fp 文件结束跳出循环 fclose fp return n 返回题目总数 n void exe1 精品文档 void main void exe2 int n m 0 tm i t 0 f 0 char ans 2 struct test p1 system cls printf 请输入要答题数 scanf d tm zts 1 if 0 n n tm printf 答题数应小于总数 exe1 for i 0 i n i n 为用户要答题数 do m rand 置随机数 while 0 m scanf s if toupper ans 0 p1 ture 判断用户输入答案是否正确 printf 恭喜你答对了 n n t 回答正确统计 else 精品文档 printf 对不起 你答错了 n 正确答案是 c n n p1 ture f 回答错误统计 p1 head do head p1 next free p1 p1 head while p1 NULL 释放结构体占用内存 printf n printf n 已完成测试 n 共做 d 道题 d 错误 d 正确 n 正确率 5 2f n n n f t float t n 100 printf n printf n n1 继续答题 2 添加题目 3 返回主菜单 n 请选择 i 0 scanf d if i 1 exe1 继续答题 else if i 2 exe2 添加题目 else main 返回主菜单 void exe2 实现用户自主输入题目 void main system cls int n FILE fp if fp fopen c test txt a NULL 精品文档 printf 文件打开失败请检查 C 盘下的 test txt 文件 n exit 0 struct test p1 NULL p1 struct test malloc LEN 开辟内存空间 do printf 请输入题目 scanf s while p1 que 0 0 do printf 请输入选项 A scanf s while p1 answer1 0 do printf 请输入选项 B scanf s while p1 answer2 0 do printf 请输入选项 C scanf s while p1 answer3 0 do printf 请输入选项 D scanf s while p1 answer4 0 printf 请输入答案 do 精品文档 scanf c p1 ture toupper p1 ture while p1 ture A printf n 确认输入题目 n1 是 2 否 n scanf d if n 1 fputc n fp fputs p1 que fp fputc fp fputs A fp fputs p1 answer1 fp fputc fp fputs B fp fputs p1 answer2 fp fputc fp fputs C fp fputs p1 answer3 fp fputc fp fputs D fp fputs p1 answer4 fp fputc fp fputc p1 ture fp fclose fp printf 保存成功 system cls free p1 printf 是否继续添加 n1 继续添加 2 返回主菜单 n scanf d if n 1 exe2 else 精品文档 main else free p1 exe2 void main int n temp 1 while 1 system cls printf n printf 欢迎使用单项选择题标准化考试系统 n printf n printf t1 开始答题 n printf t2 添加试题 n printf t3 退出系统 n printf n 请选择 scanf d switch n case 1 exe1 temp 0 break case 2 exe2 temp 0 break case 3 printf n goodbye n default printf 输入错误 请重新输入 scanf d break 精品文档 课程设计总结 课程设计总结 经过这整整 5 天的 C 课程设计的训练 我学到了很多 最主要的一点是怎样去运用自己 学过的知识 怎样去找到你所需要的资料 并在短时间把它运用到具体的实践中 运用到你 所需要的方面 这个过程是很艰难的 要花费很多的时间和精力 但是 在事情过后 自 己就会发现自己已经在这个过程中学到了自己想要的东西 这种获得是更深

温馨提示

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

评论

0/150

提交评论