当前位置:
文档之家› 单项选择题标准化考试系统设计[1]
单项选择题标准化考试系统设计[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");
问题3:打开的文件没有关闭,最终导致一部分源代码被无意休改
方法:问了成绩好的同学,最后加了个关闭文件的函数。
第
运行操作及结果:该程序可以进行单项选择题标准化考试的系统,实现输入不同的指令数字实现不同的功能;实现选择答题增加题目以及直接退出系统。
单项选择题标准化考试系统。
请输入你要的操作:1
请输入你要的操作:2
exit(0Leabharlann ;}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=(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);//调整指针位置到行首
图为进行单项选择题标准化考试系统设计的情形
使用时根据提示选择想要的查找方式。
参考文献:
[1] 张长海.C语言程设计[M].北京:高等教育出版社,2006
[2] 谭浩强 C程序设计解题与上机指导(第三版) 北京 清华大学出版社 2009
[3]范辉等编著《Visual C++6.0程序设计简明教程》高等教育出版社
}
}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 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时将返回总题数
流程图如图2.3
图2.3
函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。判断用户输
入答案是否正确。
实现算法如下:
接受用户输入题目数,判断是否合法(大于0、小于总题数)。
置随机数并判断随机数是否合法。
调用将题目装入内存模块题目装入内存。
在屏幕上输出题目,接受用户输入答案。
判断用户输入的答案是否正确,输出答题结果统计。
2.4添加试题模块:
流程图如图2.4
打开储存试题的文件进行试题信息输入。
实现算法如下:
打开文件。
开辟内存空间,接受用户输入题目信息。
判断用户输入是否合法。
写到文件并保存。
第
问题1:文本文件无法删除指定的一行
方法:所以要用类似于进栈出栈的方法,把要删的信息过滤出去
问题2:程序不能运行
方法:解决办法就是不断的按F10进行调试,最终找到错误的地方。
(2)试题录入:可随时增加试题到试题库中
(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)
(4)答题:用户可实现输入自己的答案
(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
1.2
本程序主要分为四个模块(功能模块图见下图):(1)模块一:菜单操作模块
该模块实现程序的菜单操作。2)模块二:将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中。(3)模块三:开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。判断用户输入答案是否正确。4)模块四:添加试题模块
[4]严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版。
[5]胡学钢等《数据结构算法设计指导》北京:清华大学出版社,1999年第1版。
附
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct test)
struct test
打开储存试题的文件进行试题信息输入。
第
2.1菜单操作模块:
控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。
图2.1
该模块实现程序的菜单操作。
实现算法如下:
在屏幕上输出菜单选项。
接受用户输入。
2.2.将题目装入内存模块:
将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中
流程如图2.2所示
图2.2
函数开辟内存空间将试题文件中题目装入内存中。
实现算法如下:
遍历文件判断回车符个数(计算题目数)。
根据提供参数判断是否将当前题目装入内存。
开辟内存空间,将题目信息装入内存。
关闭文件返回题目总数。
2.3开始答题模块:
开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。判断用户输入答案是否正确。
fscanf(fp,"%s%s%s%s%s%s",&p1->que,&p1->answer1,&p1->answer2,&p1->answer3,&p1->answer4,&ch1);
fseek(fp,wz+1,0);//调整指针位置到行末
p1->ture=ch1[0];
break;//将数据装入内存后跳出循环
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:C语言课程设计
课程设计题目:单项选择题标准化考试系统设计
院(系):计算机学院
专 业:计算机科学与技术
班 级:34010104
学 号:2
姓 名:
指导教师:孙伟东
完成日期:2014年03月1日
第1章
1.1
内容:
要求:
(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)