单项选择题标准化考试系统设计Word文档格式.docx

上传人:b****2 文档编号:15101609 上传时间:2022-10-27 格式:DOCX 页数:17 大小:207.42KB
下载 相关 举报
单项选择题标准化考试系统设计Word文档格式.docx_第1页
第1页 / 共17页
单项选择题标准化考试系统设计Word文档格式.docx_第2页
第2页 / 共17页
单项选择题标准化考试系统设计Word文档格式.docx_第3页
第3页 / 共17页
单项选择题标准化考试系统设计Word文档格式.docx_第4页
第4页 / 共17页
单项选择题标准化考试系统设计Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单项选择题标准化考试系统设计Word文档格式.docx

《单项选择题标准化考试系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单项选择题标准化考试系统设计Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

单项选择题标准化考试系统设计Word文档格式.docx

用户可实现输入自己的答案

(5)自动判卷:

系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

1.2总体结构

本程序主要分为四个模块(功能模块图见下图):

(1)模块一:

菜单操作模块

该模块实现程序的菜单操作。

2)模块二:

将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中。

(3)模块三:

开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。

判断用户输入答案是否正确。

4)模块四:

添加试题模块

打开储存试题的文件进行试题信息输入。

第2章详细设计

2.1菜单操作模块:

控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。

图2.1

实现算法如下:

在屏幕上输出菜单选项。

接受用户输入。

2.2.将题目装入内存模块:

  将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中 

  流程如图2.2所示

图2.2

函数开辟内存空间将试题文件中题目装入内存中。

实现算法如下:

遍历文件判断回车符个数(计算题目数)。

根据提供参数判断是否将当前题目装入内存。

开辟内存空间,将题目信息装入内存。

关闭文件返回题目总数。

2.3开始答题模块:

流程图如图2.3

                 图2.3

函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。

判断用户输

入答案是否正确。

接受用户输入题目数,判断是否合法(大于0、小于总题数)。

置随机数并判断随机数是否合法。

调用将题目装入内存模块题目装入内存。

在屏幕上输出题目,接受用户输入答案。

判断用户输入的答案是否正确,输出答题结果统计。

2.4添加试题模块:

流程图如图2.4

 

打开文件。

开辟内存空间,接受用户输入题目信息。

判断用户输入是否合法。

写到文件并保存。

第3章调试分析

问题1:

文本文件无法删除指定的一行

方法:

所以要用类似于进栈出栈的方法,把要删的信息过滤出去

问题2:

程序不能运行

   方法:

解决办法就是不断的按F10进行调试,最终找到错误的地方。

问题3:

打开的文件没有关闭,最终导致一部分源代码被无意休改

问了成绩好的同学,最后加了个关闭文件的函数。

第4章使用说明

运行操作及结果:

该程序可以进行单项选择题标准化考试的系统,实现输入不同的指令数字实现不同的功能;

实现选择答题增加题目以及直接退出系统。

单项选择题标准化考试系统。

请输入你要的操作:

1

2

   图为进行单项选择题标准化考试系统设计的情形

使用时根据提示选择想要的查找方式。

参考文献:

[1]张长海.C语言程设计[M].北京:

高等教育出版社,2006

[2]谭浩强C程序设计解题与上机指导(第三版)北京清华大学出版社2009

[3]范辉等编着《VisualC++6.0程序设计简明教程》高等教育出版社

[4]严蔚敏等《数据结构(c语言版)》北京:

清华大学出版社,1997年4月第1版。

[5]胡学钢等《数据结构算法设计指导》北京:

清华大学出版社,1999年第1版。

附录(程序清单) 

#include<

stdio.h>

stdlib.h>

#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'

&

=-1;

i++)//循环判断回车符个数

{

py++;

ch=fgetc(fp);

}

n++;

//储存行数的变量

if(n==m)//如果当前行数与传入参数相等

if(p1==NULL)//判断是否是第一次开辟内存空间

{

p1=(structtest*)malloc(LEN);

head=p1;

p1->

next=NULL;

}

else

next=p1;

wz=ftell(fp);

//记录指针当前位置

fseek(fp,(wz-py-1),0);

//调整指针位置到行首

fscanf(fp,"

%s%s%s%s%s%s"

&

p1->

que,&

answer1,&

answer2,&

answer3,&

answer4,&

ch1);

fseek(fp,wz+1,0);

//调整指针位置到行末

p1->

ture=ch1[0];

break;

//将数据装入内存后跳出循环

}while(!

feof(fp));

//文件结束跳出循环

fclose(fp);

returnn;

//返回题目总数n

}

voidexe1()

voidmain();

voidexe2();

intn,m=0,tm,i,t=0,f=0;

charans[2];

structtest*p1;

system("

cls"

printf("

请输入要答题数:

"

scanf("

%d"

n);

tm=zts(-1);

if(0>

n||n>

tm)

答题数应小于总数!

exe1();

for(i=0;

i<

n;

i++)//n为用户要答题数

do

m=rand();

//置随机数

}while(!

(0<

m&

m<

=tm));

//判断产生的随机数是否符合要求

zts(m);

p1=head;

//将zts开辟的结构体首地址赋给p1

\n第%d题:

i+1);

%s\n%s\n%s\n%s\n%s\n请输入答案:

p1->

que,p1->

answer1,p1->

answer2,p1->

answer3,p1->

answer4);

scanf("

%s"

ans);

if(toupper(ans[0])==p1->

ture)//判断用户输入答案是否正确

printf("

恭喜你答对了!

\n\n"

t++;

//回答正确统计

else

对不起,你答错了。

\n正确答案是:

%c\n\n"

ture);

f++;

//回答错误统计

p1=head;

head=p1->

next;

free(p1);

}while(p1!

=NULL);

//释放结构体占用内存

*******************************\n"

\n已完成测试!

\n共做%d道题:

%d错误,%d正确。

\n正确率:

%5.2f%%\n\n"

n,f,t,(float)t/n*100);

\n\n1.继续答题;

2.添加题目;

3.返回主菜单;

\n请选择:

i=0;

i);

if(i==1)

//继续答题

else

if(i==2)

exe2();

//添加题目

main();

//返回主菜单

voidexe2()//实现用户自主输入题目

intn;

a"

))==NULL)

p1=(structtest*)malloc(LEN);

//开辟内存空间

请输入题目:

que);

}while(p1->

que[0]=='

\0'

请输入选项A:

answer1);

answer1=='

请输入选项B:

answer2);

answer2=='

请输入选项C:

answer3);

answer3=='

请输入选项D:

answer4=='

请输入答案:

%c"

p1->

ture=toupper(p1->

ture!

A'

B'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1