电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C语言课程设计单项选择题标准化考试系统报告VIP免费

C语言课程设计单项选择题标准化考试系统报告_第1页
1/15
C语言课程设计单项选择题标准化考试系统报告_第2页
2/15
C语言课程设计单项选择题标准化考试系统报告_第3页
3/15
重庆理工大学课程设计课程程序设计基础C题目C语言综合程序设计院系名称班级学生姓名学号指导教师评阅教师时间2011.61问题描述题目十四:单项选择题标准化考试系统设计功能要求:(1)、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2)、试题录入:可随时增加试题到试题库中(3)、试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)、答题:用户可实现输入自己的答案(5)、自动判卷:系统可根据用户答案与标准答案进行评分。2系统分析2.1题目要求程序分4个函数来实现菜单操作、将题目装入内存、开始答题、题目的录入。1.菜单操作:Main函数,实现程序的菜单操作。根据用户选择的菜单的不同选项调用不同的函数,实现“开始答题”、“添加试题”、“退出系统”等功能。2.将试题装入内存:此函数由“开始答题”函数调用。调用此函数时传递一个整型参数m,函数开辟内存空间将试题文件(“C:\test.txt”)中第m道题装入内存中,并返回总题数。如果传递参数m为-1,函数将直接返回试题文件中所储存的总题数,不将任何试题装入内存中。3.开始答题:函数会让用户输入要答的题目数并进行判断,若用户要求的答题数大于总题数程序会要求用户重新输入。程序生成随机数并判断是否合法,如果合法就调用“将试题装入内存”函数,参数为随机数。在屏幕上输出题干和选项并让用户输入答案。判断用户输入答案是否正确。4.添加试题:打开储存试题的文件(“C:\test.txt”),开辟内存空间。进行试题信息输入。自动保存文件。2.2算法设计(1)模块一:菜单操作模块该模块实现程序的菜单操作。实现算法如下:○1在屏幕上输出菜单选项。○2接受用户输入。○3判断用户输入,跳转到对应函数入口。(2)模块二:将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中。实现算法如下:○1遍历文件判断回车符个数(计算题目数)。○2根据提供参数判断是否将当前题目装入内存。○3开辟内存空间,将题目信息装入内存。○4关闭文件返回题目总数。(3)模块三:开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。判断用户输入答案是否正确。实现算法如下:○1接受用户输入题目数,判断是否合法(大于0、小于总题数)。○2置随机数并判断随机数是否合法。○3调用将题目装入内存模块题目装入内存。○4在屏幕上输出题目,接受用户输入答案。○5判断用户输入的答案是否正确,输出答题结果统计。(4)模块四:添加试题模块打开储存试题的文件进行试题信息输入。实现算法如下:○1打开文件。○2开辟内存空间,接受用户输入题目信息。○3判断用户输入是否合法。○4写到文件并保存。2.3流程图1.菜单操作模块:2.将题目装入内存模块:3.开始答题模块:4.添加试题模块:2.4关键问题文件读写时文件指针的移位:当用fgetc()函数遍历文件时文件指针是顺序移动的,当遇到回车符时才会判断出文件在第几行。而当读取文件信息的时候文件指针的位置应该在行首,这是就要用到fseek()函数将文件指针移位。而且还要恢复文件指针的位置,用于继续判断当前是文件的第几行。3系统实现3.1源代码#include#include#defineLENsizeof(structtest)structtest{charque[81];charanswer1[81];charanswer2[81];charanswer3[81];charanswer4[81];charture;structtest*next;};structtest*head;//全局变量储存第一个结构体的指针intzts(intm)//将第m道题装入内存,输入-1时将返回总题数{FILE*fp;structtest*p1=NULL;charch,ch1[5];inti,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'&&ch!=-1;i++)//循环判断回车符个数{py++;ch=fgetc(fp);}n++;//储存行数的变量if(n==m)//如果当前行数与传入参数相等{if(p1==NULL)//判断是否是第一次开辟内存空间{p1=(structtest*)malloc(LEN);head=p1;p1->next=NULL;}else{p1->next=p1;p1=(structtest*)malloc(LEN);p1->next=NULL;}wz=ftell(fp);//记录指针当前位置fseek(fp,(wz-py-1),0);//调...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C语言课程设计单项选择题标准化考试系统报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部