标准化考试系统——C语言版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程报告

课程名称:程序设计实践

专业班级:计算机类1304班

****:**

学号: ************

****:***

学期:2013-2014学年第二学期

课程报告任务书

成绩评定教师:

1 需求分析

该系统包括以下功能:

1.进行随机答题并判卷

2.显示试题所有内容

3.插入试题

4.添加试题

5.自主选题并判卷

6.修改试题

7.删除试题

8.退出系统

2 概要设计

2.1整体框架图

图2-1-1

2.2 函数功能图

2.2.1 随机答题并判卷功能图

图2-2-1

2.2.2 修改试题功能图

N

图2-2-2

2.2.3 删除试题功能图

图2-2-3 2.3 自定义函数

3 详细设计

3.1 添加试题

将想要输入的是试题,从键盘输入,题库中总的题数作为结构数组的下标,存入一道题就将结构数组的下标向后移动一位,最后将存入最后一道题的下标返回,作为题库中的总题数。

Status AddNode(int &N) //添加试题内容

{

printf("如果不添加了试题了,在题目输入“*”结束!\n");

while(1){

printf("请输入所要插入题题目、题干和选项:\n");

printf("请输入题目:");

gets(Testquestions[N].subject);

if(strcmp(Testquestions[N].subject,"*")==0)

break;

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",&Testquestions[N].result);getchar();

N++; //N表示结构体数组长度,通过加&号使其值能返回

}

return TRUE;

}

3.2 修改试题

先从键盘中输入想要修改第几道试题,当题标输入m时,找到结构数组m-1对应的元素就是要修改的试题,再将修改的试题进行保存,从而实现对试题的修改功能。

Status Change(int &N){

int m,i;

printf("请输入您要修改第几题?\n");

scanf("%d",&m);

getchar(); //吸收空格字符

for(i=0;i

{

if(i==(m-1)){

printf("请输入新的题目:");

gets(Testquestions[m-1].subject);

printf("请输入新的选项A:");

gets(Testquestions[m-1].option1);

printf("请输入新的选项B:");

gets(Testquestions[m-1].option2);

printf("请输入新的选项C:");

gets(Testquestions[m-1].option3);

printf("请输入新的选项D:");

gets(Testquestions[m-1].option4);

printf("请输入新的答案:");

scanf("%c",&Testquestions[m-1].result);

getchar();

break;

}

}

if(m>N)

printf("修改试题失败!\n");

else

printf("修改试题成功!\n");

return TRUE;

}

3.3 删除试题

先从键盘中输入想要修改第几道试题,当题标输入n时,找到结构数组n-1对应的元素就是要删除的试题,在用一个for循环,将n到N-1个元素向前移动,从而实现对试题的删除功能。

Status DeleteNode(int &N) //删除数组中的第n道题

{

int n;

printf("输入你想是删除第几道试题:\n");

scanf("%d",&n);

if(n>N)

{

printf("删除不成功\n");

return ERROR;

}

while(n<=N)

{

Testquestions[n-1]=Testquestions[n];

n++;

}

N=N-1;

printf("删除成功\n");

return TRUE;

}

3.4 随机选题并判题

学生进入考试系统,输入形成试卷的题数,系统将会自动抽取试题,在进行作答之后,立刻能看到学生是否做对本道试题,如果作对,将会显示“答案正确”,否者会显示“答案错误”并且会显示正确答案。

void answer(int sum,int N) //随机进行答题

{

int i,score=0,Num;

char r;

for(i=1;i<=sum;i++)

{

Num= rand()%N; //随机函数,以随机选定何题进行解答 printNode(Testquestions[Num],i);

printf("\n");

printf("\n请输入第(%d)答案:",i);

scanf("%c",&r);getchar();

if(Match(Testquestions[Num],r)) //调用函数Match判断所输入的答案与标准答案是否相同

{ printf("\n答案正确!\n");

score++;

}

else {

printf("\n答案错误!\n");

printf("正确答案为:%c\n",Testquestions[Num].result);

相关文档
最新文档