C语言课程设计报告Word文件下载.docx
《C语言课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
计算机基础自主学习中心
起止时间
2013.1.14~2013.1.18
设计内容及要求
功能要求:
(1)用文件保存试题库。
(每个试题包括题干、4个备选答案、标准答案)
(2)试题录入:
可随时增加试题到试题库中
(3)试题抽取:
每次从试题库中可以随机抽出N道题(N由键盘输入)
(4)答题:
用户可实现输入自己的答案
自动判卷:
系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
1月14日第一大节、第二大节讲解课程设计任务
1月14日第三大节、第四大节阅读课程设计指导书,选择课题
1月15日第一大节、第二大节讲解结构体相关知识
1月15日第三大节、第四大节学生练习结构体的使用
1月16日第一大节、第二大节程序编码
1月16日第三大节、第四大节程序编码
1月17日第一大节、第二大节程序编码
1月17日第三大节、第四大节编写课程设计报告
1月18日第一大节、第二大节课程设计答辩
1月18日第三大节、第四大节课程设计答辩
参考资料
[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年
[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
系主任:
指导教师:
伍建全/王双明/黄永文/陈国荣/葛继科2013年1月12日
摘要
此论文为单项选择题标准化考试系统的模拟程序,需实现对于试题的录入,抽取,答辩,评分及退出功能和在任意功能之间循环等功能。
本次所设计的程序为C语言设计,通过对于一系列函数的调用实现上述功能。
该程序主要使用了定义结构变量,指针,数组,函数的编辑与调用以及文件的输入和输出功能。
通过定义结构变量实现数据的录入输出,并结合数组进行程序的录入输出。
本程序的设计思路为:
首先进行主界面的控制选择,通过主界面的选择,运用嵌入式循环,定义多种函数。
每个函数控制一项功能,使得编写有所分工,最后结合在主函数上。
对于定义函数,以方便使用为主要原则,尽量保证读者能直截了当的了解程序的整体布局和作用。
因此减少了许多以外的编辑麻烦。
而不同于直接编辑,调用函数能够使程序的编辑更加有序,修改上也比较容易。
关键字:
试题管理系统、数组、函数
目录
摘要………………………………………………………………………………4
1软件需求分析说明书…………………………………………6
1.1软件功能……………………………………………………6
1.2特殊功能……………………………………………………6
2系统分析与设计…………………………………………………7
2.1软件界面设计………………………………………………7
2.2软件的数据(结构)设计…………………………………7
2.3软件的算法设计……………………………………………7
3软件的实现…………………………………………………………8
4软件测试……………………………………………………………9
5软件使用说明书…………………………………………………10
6致谢………………………………………………………………………………14
参考文献………………………………………………………………………14
第一章
软件需求分析说明书
1.1软件功能
1.1.1试题录入
本功能可以实现试题信息的录入,通过屏幕的指示输入用户需要输入的序号,题干,选项,答案等并且保存在文件中。
使用本功能时,需要注意严格按照屏幕上的指示,否则将造成存储失误,影响使用,并且尤其需要注意输入时不能有空格;
1.1.2试题抽取
本功能可以实现从试题库中抽取任意试题数,但不能超过题库中的总数,如果超过系统会进行提示,从新抽取。
1.1.3答题
通过本功能,用户可以方便在电脑上进行选择题,而且可以进行多项选择题作答。
1.1.4评分
本功能可以实现100分制评分,无论题数多少,满分总是100分,答完后系统会给予评分输出。
1.1.5退出功能
本功能可以实现系统的退出。
1.2特殊功能
本程序针对各种可能的操作情况做出了提示,100分制,可以进行多选题作答,可以随时简便的进行试题数的变更,可以在当前功能出跳至任意功能处。
1.2.1选择时输入失误
此时系统会提示重新输入。
1.2.2文件不存在
此时系统提示确认文件路径并作出下一步指示。
1.2.2分配失败、
此时系统会提示分配空间失败。
1.2.4功能完成后提示
此时系统会提示做出下一步选择(如继续使用或者退出)。
第二章系统分析与设计
2.2软件的数据(结构)设计
该软件使用了switch结构,函数的创建与使用,定义结构变量,指针,数组。
2.3软件的算法设计
第三章程序设计
#include<
stdio.h>
stdlib.h>
time.h>
enum{LEN=16};
/@@@定义枚举变量,实现试题数的改变@@@/
typedefstructtest/@@@定义一个结构体并取名为stu,实现各个信息的输入@@@/
{
intID;
charquestion[100];
charchoose[100];
charanswer[4];
}stu;
voidoutput1(FILE*fp,stu*p);
voidoutput2(FILE*fp,stu*p);
voidinput(FILE*fp,stu*p);
char*an(FILE*fp,stu*p);
intgread(char*p1,char*p2);
intmain()
doublesum=0;
intN,n,a,i;
charz[4];
stu*buf,d;
FILE*pf;
while(n!
=4)
printf("
**********欢迎进入试题库系统***********\n"
);
/
printf("
功能:
\n"
1.试题录入:
2.试题抽取和答题:
3.评分:
4.退出\n"
请选择功能:
scanf("
%d"
&
n);
if(n==1)
{
a=1;
while(a!
=0)
{
printf("
请输入序号:
scanf("
d.ID);
请输入题目:
%s"
d.question);
fflush(stdin);
请输入选项:
d.choose);
fflush(stdin);
请输入答案:
d.answer);
pf=fopen("
a.txt"
"
a"
output1(pf,&
d);
是否继续?
(1代表继续,0代表退出)\n"
&
a);
fclose(pf);
}
}
if(n==2)
FILE*pf=fopen("
r"
if(!
pf)
文件打开失败\n"
return0;
buf=(stu*)malloc(LEN*sizeof(stu));
n
for(i=0;
i<
LEN;
i++)
input(pf,&
buf[i]);
a=1;
while(a!
{
请输入您所抽取的题数:
N);
if(N>
LEN)
printf("
对不起,您抽取的题数超出题库的总数,请从新抽取:
else
srand(time(0));
N;
a=rand()%LEN+1;
output2(stdout,&
buf[a]);
请输入您的答案\n"
gets(z);
if(gread(z,an(pf,&
buf[a]))==1)
sum+=100/N;
}
free(buf);
\n\n"
if(n==3)
您的最终得分是%0.2lf\n"
sum);
if(sum>
=60)
恭喜你!
及格了!
if(sum<
60)
唉...没有及格哦!
下次再努力!
if(n==4)
欢迎下次使用!
return0;
}
voidinput(FILE*fp,stu*p)
fscanf(fp,"
%d%s%s%s"
(p->
ID),p->
question,p->
choose,p->
answer);
voidoutput1(FILE*fp,stu*p)
fprintf(fp,"
%d%s%s%s\n"
p->
ID,p->
voidoutput2(FILE*fp,stu*p)
%d%s%s\n"
choose);
char*an(FILE*fp,stu*p)
%s\t\n"
returnp->
answer;
intgread(char*p1,char*p2)
inti,flag=1;
for(i=0;
4;
if(*p1!
=*p2)
flag=0;
break;
returnflag;
第四章软件测试
voidoutput1(FILE*fp,stu*p)
使用这两个函数,实现试题录入:
Stud;
界面上输入:
17,2+5=?
A3B4C7D2D
在文件中显示:
voidinput(FILE*fp,stu*p)
使用这三个函数,实现试题的抽取,作答,判断及评分:
在界面上:
题数:
2
13+9=?
A12B5C6D7
作答:
D
26+9=?
A4B6C15D8
作答:
C
得分:
您的分数使50分
唉...没有及格哦!
第五章软件使用说明书
1.试题录入:
2.试题抽取、作答:
3.评分与评价:
致谢
这次的课程设计过程很难,但是有老师的指导和同学的帮助,顺利完成了任务,十分感谢他们的帮助。
希望以后用自己的实际行动报答他们的帮助。
签名:
李桃
日期:
2013/1/18
参考文献
C语言课本