标准化考试系统C语言版Word文档格式.docx

上传人:b****5 文档编号:17483825 上传时间:2022-12-06 格式:DOCX 页数:11 大小:222.81KB
下载 相关 举报
标准化考试系统C语言版Word文档格式.docx_第1页
第1页 / 共11页
标准化考试系统C语言版Word文档格式.docx_第2页
第2页 / 共11页
标准化考试系统C语言版Word文档格式.docx_第3页
第3页 / 共11页
标准化考试系统C语言版Word文档格式.docx_第4页
第4页 / 共11页
标准化考试系统C语言版Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

标准化考试系统C语言版Word文档格式.docx

《标准化考试系统C语言版Word文档格式.docx》由会员分享,可在线阅读,更多相关《标准化考试系统C语言版Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

标准化考试系统C语言版Word文档格式.docx

一、提交材料应包括:

(1)系统源代码

(2)课程报告

二、整个设计过程具体要求

(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;

(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)

(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;

(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。

成绩

评定

报告撰写情况(30分)

系统完成情况(30分)

答辩情况(40分)

总分

20分

规范程度

5分

程序测试

基本功能20分

扩展功能10分

自述情况10分

答辩情况

30分

成绩评定教师:

1需求分析

根据程序要求分析,我们认为整个程序应该分为4个大块,其中包括主函数以及其他功能函数:

注册登录模块,学生操作模块,教师操作模块。

各个模块又利用小模块实现小功能划分,教师操作模块由创建题库、插入题目、修改题目、删除题目、显示题目、题目排序、查询题目这7个模块组成,而其中查询题目又包含了题号查询、题目查询和模糊查询3个小模块;

注册登录模块由4个函数完成对学生教师不同身份的注册及登录,学生登录后可以选择答题数量组成试卷考试并得到成绩。

通过这些模块的组合连接,就可以实现一个完整的标准化考试系统。

2系统设计

.数据结构设计

voidStudent_login();

/*学生登录*/

voidTeacher_login();

/*教师登录*/

voiddenglu();

/*主菜单*/

voidAddstudent(charid[],charpassword[]);

/*将学生账号密码存入文件*/

voidAddteacher(charid[],charpassword[]);

/*将教师账号密码存入文件*/

voidTeachermenu();

/*教师菜单*/

voidStudentmenu();

/*学生菜单*/

voidPrintDoc(structtext*head);

/*从文件中读取题库信息并输出*/

voidNameQueDoc(structtext*head);

/*按照题目查询信息*/

voidNumberQueDoc(structtext*head);

/*按照题号查询信息*/

voidNameVagueDoc(structtext*head);

/*按照题目模糊查询信息*/

voidkaoshi(structtext*head,intsum,intk);

/*学生考试菜单*/

voidfprint(structtext*head);

/*将链表写入文件*/

structtext*CreateDoc();

/*创建试题库并通过链表存入文件*/

structtext*load();

/*从文件读取题库信息并存入链表*/

structtext*DeleteDoc(structtext*head);

/*删除题库题目信息*/

structtext*ReviseDoc(structtext*head);

/*修改题库题目信息*/

structtext*InsertDoc(structtext*head,structtext*book);

/*插入题目*/

structtext*SortDoc(structtext*head);

/*对题库题目进行排序*/

structtext*QueDoc(structtext*head);

/*题库查询菜单*/

intcount(structtext*head);

/*统计题库中题目总数*/

intyanzheng(structtext*head,intm);

/*验证题号是否重复*/

char*Getpasswd(void);

/*将注册登录的密码转为星号*/

structtext{

intnumber;

charque[81];

charanswer1[81];

charanswer2[81];

charanswer3[81];

charanswer4[81];

charture[81];

structtext*next;

};

/*定义text结构*/

.功能模块设计

主菜单模块

教师菜单模块

学生菜单模块

3系统实现及关键代码

基本功能

菜单设计

voiddenglu()

{

charid[81],password1[81]={NULL},password2[81]={NULL};

intchoice,choi;

printf("

\n"

);

〒〒〒〒〒欢迎进入标准化考试系统:

〒〒〒〒〒\n"

★★★★★★★welcome★★★★★★★\n"

\t*【1】注册账户*\n"

\t*【2】登陆账户*\n"

\t*【0】退出系统*\n"

请输入你的选择:

"

scanf("

%d"

&

choice);

system("

cls"

xt"

"

w"

))==NULL){

Cannotopenthefile!

exit(0);

}

for(p1=head;

p1;

p1=p1->

next){

fprintf(fp,"

%d%s%s%s%s%s%s\n"

p1->

number,p1->

que,p1->

answer1,p1->

answer2,p1->

answer3,p1->

answer4,p1->

ture);

fclose(fp);

}

/*------------------------------------------从文件读取题库信息--------------------------*/

structtext*load()

FILE*fp;

structtext*head,*tail,*p1;

head=tail=NULL;

if((fp=fopen("

G:

\\试题库.txt"

r"

printf("

文件输入错误!

exit(0);

if(!

feof(fp)){

while(!

p1=(structtext*)malloc(sizeof(structtext));

fscanf(fp,"

%d%s%s%s%s%s%s\n"

p1->

answer3,&

answer4,&

if(head==NULL)

head=p1;

else

tail->

next=p1;

tail=p1;

}

tail->

next=NULL;

returnhead;

else

returnNULL;

删除题目信息

structtext*DeleteDoc(structtext*head)

inta;

structtext*p1,*p2;

请输入要删除题目的题号:

a);

while(head!

=NULL&

&

head->

number==a)

{

p2=head;

head=head->

next;

free(p2);

if(head==NULL)

p1=head;

p2=head->

while(p2!

=NULL)

if(p2->

{

p1->

next=p2->

free(p2);

p1=p2;

p2=p1->

fprint(head);

拓展功能

密码设计

char*GetPasswd(void)

charc;

inti=0;

charpasswd[6]={NULL};

while((c=getch())!

='

\r'

passwd[i]=c;

putchar('

*'

i++;

if(i>

=6)

break;

returnpasswd;

考试函数

voidkaoshi(structtext*head,intsum,intk)/*随机抽题考试*/

intscore=0,a[1000],i,j;

charanswer[81],answer1[81];

srand((unsigned)time(NULL));

/*保证随机出来不重复的数字*/

for(i=0;

i<

sum;

i++)

a[i]=rand()%k+1;

/*随机产生1~k之间一个整数*/

for(j=0;

j<

i;

j++)

if(a[i]==a[j])

i--;

structtext*p;

p=head;

while(p!

=NULL){

if(p->

number==a[i])

break;

p=p->

题号:

%d\n"

p->

number);

题目:

%s\n"

que);

选项A:

%s选项B:

answer1,p->

answer2);

选项C:

%s选项D:

answer3,p->

answer4);

strcpy(answer,p->

请输入答案:

scanf("

%s"

answer1);

if(strcmp(answer,answer1)==0)

printf("

回答正确!

score++;

else

答案错误!

正确答案为:

answer);

您的总成绩为:

score);

}/*学生通过此函数对随机的试题进行答题并得到自己的成绩*/

4系统演示

文件读写功能

插入题目功能

密码功能

考试功能

5总结

系统缺陷与不足

这个考试系统里面的学生界面功能还待加强,可以给学生更多的组卷方式,例如老师创建题库时可以给题目信息增加一个章节的信息,然后学生可以根据章节来组卷考试。

系统可扩展功能

(1)修改密码功能;

(2)按章节组卷功能;

6课程心得总结

在编写学生考试函数时,使用的srand()和rand()函数未能随机产生不重复的数字,后来决定使用数组储存随机产生的数字,再通过for循环对每次产生的随机数和之前产生的进行比较,不同就存进数组,相同则继续循环,直至产生需要的随机数个数。

我学习C语言差不多一年了,其中学习过程中或多或少有些遗漏的知识点没有领悟透彻,通过这次做大程序的机会,得以将过去一年中学习的知识点再次连贯起来,有了一次比较综合的再学习,这次的大程序也还有一些功能因为所学知识的原因未能实现。

通过这次的大程序,也使我认识到自己的优点与不足,这将会激励我以后努力学习,争取更上一层楼。

参考书籍:

[1]谭浩强,C语言程序设计,第2版.北京:

高等教育出版社2014.

[2]StephenCPrata,PrimerPlus,第5版.北京:

人民邮电出版社2014.

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

当前位置:首页 > PPT模板 > 图表模板

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

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