标准化考试系统——C语言版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);