标准化考试系统C语言版Word文档下载推荐.docx

上传人:b****5 文档编号:8398841 上传时间:2023-05-11 格式:DOCX 页数:16 大小:251.76KB
下载 相关 举报
标准化考试系统C语言版Word文档下载推荐.docx_第1页
第1页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第2页
第2页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第3页
第3页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第4页
第4页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第5页
第5页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第6页
第6页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第7页
第7页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第8页
第8页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第9页
第9页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第10页
第10页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第11页
第11页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第12页
第12页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第13页
第13页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第14页
第14页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第15页
第15页 / 共16页
标准化考试系统C语言版Word文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

标准化考试系统C语言版Word文档下载推荐.docx

《标准化考试系统C语言版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《标准化考试系统C语言版Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

标准化考试系统C语言版Word文档下载推荐.docx

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

成绩

评定

报告撰写情况(30分)

系统完成情况(30分)

答辩情况(40分)

总分

20分

规范程度

5分

程序测试

基本功能20分

扩展功能10分

自述情况10分

答辩情况

30分

成绩评定教师:

1需求分析

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

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

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

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

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

2系统设计

2.1.数据结构设计

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结构*/

2.2.功能模块设计

2.2.1:

主菜单模块

2.2.2:

教师菜单模块

2.2.3:

学生菜单模块

学生操作界面

开始考试

退出系统

3系统实现及关键代码

3.1基本功能

3.1.1菜单设计

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"

//清屏

switch(choice)

{

case1:

printf("

〒〒〒〒欢迎进入标准化考试系统注册账户界面:

〒〒〒〒\n"

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

printf("

1-----学生注册2-----教师注册\n"

3-----返回上一级0-----退出系统\n"

请选择注册模式:

scanf("

choi);

system("

switch(choi)

{

case1:

printf("

〒〒〒〒欢迎进入标准化考试系统学生注册界面:

请输入学生姓名:

%s"

id);

请输入密码,密码长度最大为6:

strcpy(password1,GetPasswd());

\n请再次输入密码:

strcpy(password2,GetPasswd());

if(strcmp(password1,password2)==0)

Addstudent(id,password1);

else

\n两次密码不一致,返回主菜单!

denglu();

case2:

〒〒〒〒欢迎进入标准化考试系统教师注册界面:

请输入教师姓名:

Addteacher(id,password1);

case3:

denglu();

case0:

系统即将关闭!

exit(0);

default:

无效选项!

}

case2:

1-----学生登录2-----教师登录\n"

请选择登录模式:

scanf("

system("

switch(choi)

{

case1:

Student_login();

case2:

Teacher_login();

case3:

denglu();

case0:

exit(0);

default:

无效选项\n"

}

case0:

exit(0);

default:

}

}

3.1.2文件读写

/*-----------------------------------------------将链表写入文件--------------------------------------*/

voidfprint(structtext*head)

FILE*fp;

structtext*p1;

if((fp=fopen("

G:

\\试题库.txt"

"

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()

structtext*head,*tail,*p1;

head=tail=NULL;

r"

文件输入错误!

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;

returnNULL;

3.1.3删除题目信息

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);

3.2拓展功能

3.2.1密码设计

char*GetPasswd(void)

charc;

inti=0;

charpasswd[6]={NULL};

while((c=getch())!

='

\r'

passwd[i]=c;

putchar('

*'

i++;

if(i>

=6)

break;

returnpasswd;

3.2.2考试函数

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

请输入答案:

answer1);

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

回答正确!

score++;

else

答案错误!

正确答案为:

answer);

您的总成绩为:

score);

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

4系统演示

4.1基本功能

4.1.1文件读写功能

4.1.2插入题目功能

4.2拓展功能

4.2.1密码功能

4.2.2考试功能

5总结

5.1系统缺陷与不足

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

5.2系统可扩展功能

(1)修改密码功能;

(2)按章节组卷功能;

6课程心得总结

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

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

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

参考书籍:

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

高等教育出版社2014.

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

人民邮电出版社2014.

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2