C语言HSITS系统哈软智能考试系统课程设计.docx

上传人:b****6 文档编号:16570009 上传时间:2023-07-14 格式:DOCX 页数:37 大小:237.63KB
下载 相关 举报
C语言HSITS系统哈软智能考试系统课程设计.docx_第1页
第1页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第2页
第2页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第3页
第3页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第4页
第4页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第5页
第5页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第6页
第6页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第7页
第7页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第8页
第8页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第9页
第9页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第10页
第10页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第11页
第11页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第12页
第12页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第13页
第13页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第14页
第14页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第15页
第15页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第16页
第16页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第17页
第17页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第18页
第18页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第19页
第19页 / 共37页
C语言HSITS系统哈软智能考试系统课程设计.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言HSITS系统哈软智能考试系统课程设计.docx

《C语言HSITS系统哈软智能考试系统课程设计.docx》由会员分享,可在线阅读,更多相关《C语言HSITS系统哈软智能考试系统课程设计.docx(37页珍藏版)》请在冰点文库上搜索。

C语言HSITS系统哈软智能考试系统课程设计.docx

C语言HSITS系统哈软智能考试系统课程设计

 

哈尔滨学院软件学院

 

课程设计说明书

 

题目:

HSITS系统—哈软智能考试系统

 

院(系)

软件学院

专业

软件工程

年级

093

姓名

左自强

学号

09033335

指导教师

王克朝

职称

讲师

 

2011年8月31日

摘要

HSITS系统—哈软智能考试系统,是一款集题库管理(单选题)、自动智能组卷、考试与评分等功能于一体的一款智能考试系统,基于计算机进行HSITS系统—哈软智能考试系统的使用,既实现考试的无纸化管理,也方便了校方对考试的管理,还方便了考生。

基于智能考试需求的增加,本文设计并实现了一套智能考试系统。

本系统实现了单选题库管理、自动组卷、考试和评分等基本功能,其中单选题库管理包括试题的增加、删除、查找、修改和显示,而试题删除有包含指定删除和全部删除。

系统采用B/S开发模式,以C作为开发平台,以文件夹作为试题库。

整个系统层次结构简单,操作容易,并具备一定的安全性。

考生借助此系统,可以随时随地的进行各种课程考试。

关键词:

智能考试系统;B/S模式;HSITS系统

 

Abstract

HSITSSystem-HasoftintelligenttestsystemisasetofBankManagement(Multiplechoice),automaticintelligenttestpaper,testscoreandotherfunctionsandanintelligenttestsystem,computer-basedsystemforHSITS-Hasoftintelligencetestuseofthesystem,bothtoachievepaperlessmanagementoftheexamination,butalsofacilitatetheexaminationofthemanagementoftheschool,butalsofacilitatethecandidate.

Basedonintelligencetestsincreaseddemand,thepaperdesignandimplementasetofintelligenttestsystem.Thedatabasemanagementsystemtoachieveasingleanswer,automatictestpaper,testandscoreandotherbasicfunctions,includinglibrarymanagement,includingmultiplechoicequestionstoadd,delete,find,editanddisplay,anddeletequestionsthatcontainthespecifieddeleteanddeleteall.SystemusesB/Sdevelopmentmodel,withCasadevelopmentplatform,tofileasatestdatabase.Theentiresystemhierarchyissimple,easy,andhavesomesecurity.CandidatesWiththissystem,youcantestanytime,anywhereforavarietyofcourses.

Keywords:

IntelligentTestSystem;B/Smode;HSITSsystem

第一章需求分析

1.1系统需要解决的主要问题

该系统需要解决的主要问题是考生将试题保存在文本文件中,一个单选题对应一个文本文件,进入系统后通过录入试题将题库中的试题录入系统,录入的试题数必须大于等于50而小于等于100。

当考生进行考试时系统首先判断系统中的试题数大于50道题,然后系统自动从系统的题库中随机抽取20道题供考生作答。

答题结束时系统自动将考生答对以及答错的题数告诉用户。

1.2系统应该具备的基本功能

(1)录入试题:

用户输入试题的文件名,并录入正确答案,一个文件为一道客观题。

(2)显示试题:

当系统中存在试题时,将系统中所有的试题的文件名打印出来。

(3)增加试题:

当系统中已经存在一些试题后,还可以通过添加试题来增加试题。

(4)查找试题:

系统首先自动判断系统中的试题数是否为0,若不为零,则提示用户输入题目,然后在系统中进行查找,存在则打印查找成功,;反之则打印查找失败.

(5)修改试题:

在系统中存在被修改的试题的前提下,用户可以通过输入被修改试题的题号重新设置试题。

(6)删除试题:

a.删除指定试题:

通过输入题号,用户可以删除指定位置的试题。

b.全部删除:

删除系统中所有的试题。

c.返回:

返回主菜单。

(7)考试:

首先判断系统中的试题数是否大于等于50,若小于则打印“题库中数据不足请录入试题”,不能进行考试,反之则由系统随机抽取系统中20到题目进行考试,考完后系统自动进行统计答对的试题数和答错的试题数,剩下的则是没有答的。

(8)退出:

退出系统。

第二章开发工具介绍及试题库设计

2.1系统开发工具简介

该系统的开发工具主要是MicrosoftVisualC++6.0

2.2系统试题库实现

在设计试题的数据库时,考虑到系统是由单一用户使用,所以该系统中的试题是以文件库的形式存在,通过将试题放在同一个名为试题的文件夹下,该文件夹的位置最好放在工程所在目录下。

录入试题时如下:

试题\1.txt

试题\2.txt

试题\3.txt

试题\4.txt

试题\5.txt

试题\6.txt

试题\7.txt

.

.

.

试题\(int)x.txt

.

.

.

每道试题的答案在录入试题的时候对应试题录入正确的答案。

第三章概要设计

3.1系统模块结构图

本系统功能模块有:

录入试题,显示试题,增加试题,查找试题,修改试题,删除试题,学生考试。

1.录入试题模块:

主要是向系统中录入试题。

2.显示试题模块:

主要是在系统中存在试题的前提下打印系统中所有题目。

3.增加试题模块:

主要是向系统中增加试题。

4.查找试题模块:

主要是在系统中查找是否存在某个试题。

5.修改试题模块:

主要是修改系统中的试题。

6.删除试题模块:

主要是删除系统中的试题。

7.学生考试模块:

主要是用户通过系统随机出题进行考试。

系统模块结构图如图3.1所示。

 

图3.1,系统模块结构图

 

3.2系统流程图

用户对系统进行操作的流程也用图作了形象的解释,系统对操作的用户反馈其对应的信息。

学生对考试过程透明,系统自动在考生考完时打印学生的成绩。

其流程图如图3.2所示。

图3.2,系统流程图

第四章详细设计

4.1系统首页设计

本系统的主界面设计结构采用了分页的结构,总共有三页。

首页显示的是系统的相关信息,图4.1;第二页显示的是用户在使用系统时的相关提示以及信息,图4.2;第三页是主菜单用户所有的操作都是在该页进行的,图4.3;在主菜单当中,由上至下的显示了系统的主要功能。

界面设计如下几图所示。

 

图4.1系统首页

图4.2系统第二页

图4.3系统第三页

4.2系统基本功能设计与实现

本节将对系统主要功能设计进行详细的说明。

4.2.1录入试题模块设计与实现

由于用户进行考试必须是在系统中存在一定试题的前提下才能进行,因此在用户进行考试前首先需要向系统录入一定量的试题。

当用户输入题目和正确答案之后首先要进行正确答案验证,如果正确答案是属于A,B,C,D,则成功录入试题,反之,如果正确答案不在那个范围内,提示错误信息“答案输入错误,请重新输入:

”,用户重新输入正确的正确答案。

录入试题的程序流程图如图4.4所示。

图4.4录入试题模块程序流程图

 

录入试题模块的代码如下

do{

cout<<"输入题目"<

cin>>num;

cout<<"输入正确答案:

"<

cin>>an;

if(an!

='A'&&an!

='B'&&an!

='C'&&an!

='D')

{

cout<<"答案输入错误,请重新输入:

"<

cin>>an;

}

Testcc(num,an);

la.Insert(la.length()+1,cc);

cout<<"录入成功,你还想继续吗(y/n)"<

cin>>p;

if(p!

='y'&&p!

='Y'&&p!

='n'&&p!

='N')

{

cout<<"指令错误,请重新输入:

"<

cin>>p;

}

}while(p=='y'||p=='Y');

4.2.2学生考试模块设计与实现

对于学生考试过程而言,考试时系统首先检查系统中的试题数是否大于等于50道题,如果小于50道题,则提示错误信息“题库中数据不足,请添加足够试题”,反之,系统自动从题库中随机提取20道题随机组合成一套试题供用户考试;考试进行后用户输入自己的答案,系统自动判断输入的答案是否合格,若不合格则提示错误信息“答案输入错误,请重新输入:

”,用户重新输入答案;考试结束时系统自动将用户答案与标准答案进行对比,统计用户答错与答对的题数,然后显示给用户。

学生考试模块的流程图如图4.5所示。

图4.5学生考试模块流程图

学生考试模块的代码如下:

FILE*file;

inttes[20];

charstr[1025];

if(la.length()<50)

{

cout<<"题库中数据不足!

"<

cout<<"请添加足够试题!

"<

system("PAUSE");

do{

cout<<"输入题目"<

cin>>num;

cout<<"输入正确答案:

"<

cin>>an;

if(an!

='A'&&an!

='B'&&an!

='C'&&an!

='D')

{

cout<<"答案输入错误,请重新输入:

"<

cin>>an;

}

Testcc(num,an);

la.Insert(la.length()+1,cc);

cout<<"录入成功,你还想继续吗(y/n)"<

cin>>p;

if(p!

='y'&&p!

='Y'&&p!

='n'&&p!

='N')

{

cout<<"指令错误,请重新输入:

"<

cin>>p;

}

}while(p=='y'||p=='Y');

}

else

{

random20(tes,la.length());//生成随机函数

cout<<"考试马上开始\n";

system("PAUSE");

for(inti=1;i<=20;i++)

{

file=fopen((la.getelem(tes[i-1],test)).ch,"rt");

while(fgets(str,1024,file)!

=NULL)

{

cout<

}

cout<

cout<<"你的答案:

";

cin>>answer;

if(answer!

='A'&&answer!

='B'&&answer!

='C'&&answer!

='D'&&answer!

='')

{

cout<<"答案输入错误,请重新输入:

"<

cin>>an;

}

if(answer=(la.getelem(tes[i-1],test)).an)//如果用户答案与正确答案相等,mark++

{

mark++;

}

else

{

wmark++;

}

}

cout<<"你答了20道题"<

cout<<"其中你答对了"<

cout<<"其中你答错了"<

}

第五章系统测试运行

5.1测试目的

测试的目的是为了发现在程序开发过程中没有发现的错误,以及遗漏的功能。

5.2测试方案

对系统进行正确和不正确的输入,以及各种极限输入测试。

5.3测试内容

1.录入试题模块功能的测试

在主菜单中选择功能1进行试题的录入,如果每次录入后都显示“录入成功”,没有出现异常,说明试题录入是成功的。

通过对系统的反复大量的测试,该模块测试成功。

(1)录入正确答案规范,如图5.1

(2)录入正确答案不规范,如图5.2

图5.1录入试题模块的测试

图5.2录入试题模块的测试

2.显示试题模块的测试

当系统中没有数据的时候,显示“没有数据”,反之,若显示的试题数与系统中实际试题数相等,说明显示试题是成功的。

通过对系统的反复大量的测试,该模块测试成功。

(1)当系统中题库为空的时候测试如图5.3

(2)当系统中题库不为空的时候测试如图5.4

图5.3显示试题模块

图5.4显示试题模块的测试

3增加试题模块的测试,如图5.5,图5.6

图5.5增加试题模块的测试

图5.6增加试题模块的测试

4退出模块的测试

 

通过对系统的反复大量的测试,所有模块测试成功。

总结

本文详细的论述了HSITS系统-哈软智能考试系统的设计与实现,该系统基本实现了需求中的要求,其中试题需要用户自己录入,用户可以进行试题的增、删、改、查、以及考试。

通过开发该系统,对学过的知识进行了一次全面的考核和实践。

虽然最后成功了,但是由于时间和技术的不足系统还存在一些不足。

首先,系统中的题目不能事先存储在一个文本中,从而直接从文本中读取;其次,没有对用户的各种约束;最后就是该系统中试题的录入和考试都是有用户自己操作,没有分开。

因此该系统还待进一步的完善。

 

参考文献

[1]数据结构与算法分析(c++版)朱宏唐宁九杨秋辉著

[2]c++程序设计教程钱能著

[3]

[4]VisualBasic项目开发案例全程实录安剑孙秀梅著

附录

源代码

#include

#include

#include

#include

usingnamespacestd;

voidrandom20(intpick[],intn)//获取题号在[1,n]之间的任意20个题目

{

inti=0,j=0;

boolflag=true;//不存在为true

srand((unsigned)time(NULL));

for(i=0;i<20;i++)

{

intnum=rand()%n+1;

for(j=i-1;j>=0;j--)

{

if(pick[j]==num)

{

flag=false;

break;

}

flag=true;

}

if(flag)

{

pick[i]=num;

}

else

{

i--;

}

}

}

classTest//试题类

{

public:

charch[222];//题目

charan;//正确答案

Test(){}

Test(char*a,charb){strcpy(ch,a);an=b;}

~Test(){}

};

classList//考试系统

{

protected:

intcount;//试题数

intmaxsize;//系统最大容量

Test*elems;//系统存储对象

boolFull()const{returncount==maxsize;}

voidInit(intsize);

public:

List(){}

List(intsize);

intlength()const;

boolempty()const;

voidclear();

voidtravel();

Testgetelem(intposition,Testtest)const;

voidsetelem(intposition,constTesttest);

voidDelete(intposition,Testtest);

voidInsert(intposition,constTesttest);

~List(){delete[]elems;}

};

voidList:

:

Init(intsize)//初始化考试系统

{

maxsize=size;

if(elems!

=NULL)delete[]elems;

elems=newTest[maxsize];

count=0;

}

List:

:

List(intsize)//有参构造函数

{

elems=NULL;

Init(size);

}

intList:

:

length()const//返回系统中试题数

{

returncount;

}

boolList:

:

empty()const//系统为空返回true

{

returncount==0;

}

voidList:

:

clear()//清空系统试题

{

count=0;

}

voidList:

:

travel()//打印系统中所有试题题目

{

if(empty())

{

cout<<"没有数据!

"<

}

else

{

cout<<"所有试题如下!

:

"<

for(intposition=1;position<=length();position++)

{

{

cout<

}

}

}

}

TestList:

:

getelem(intposition,Testtest)const//获取指定位置试题

{

Testa;

if(position<1||position>length())

{

}

else

{

a=elems[position-1];

}

returna;

}

voidList:

:

setelem(intposition,constTesttest)//修改指定位置试题

{

if(position<1||position>length())

{

}

else

{

elems[position-1]=test;

}

}

voidList:

:

Delete(intposition,Testtest)//删除试题

{

intlen=length();

Testtemp;

if(position<1||position>length())

{

cout<<"位置错误!

"<

}

else

{

getelem(position-1,test);

for(inti=position;i<=length();i++)

{

strcpy(elems[i-1].ch,elems[i].ch);

elems[i-1].an=elems[i].an;

}

count--;

cout<<"删除成功!

"<

}

}

voidList:

:

Insert(intposition,constTesttest)//添加试题

{

Testtemp;//临时对象

if(Full())

{

cout<<"Listisfull"<

}

elseif(position<1||position>length()+1)

{

cout<<"范围错"<

}

else

{

count++;

for(inti=length();i>=position;i--)

{

getelem(i,temp);

setelem(i+1,temp);

}

setelem(position,test);

}

}

intmain()

{

Listla(100);

Testtest;

char*num;

num=newchar[222];//题目

charan;//正确答案

charanswer=NULL;//用户答案

charp;

intc,position;//题号

intmark=0;//答对的个数

intwmark=0;//答错的个数

system("coloraF");

cout<<"\n\t\t|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|"<

cout<<"\n\t\t|********欢迎使用哈软智能考试系统******|"<

cout<<"\n\t\t|********学校:

哈尔滨学院**************|"<

cout<<"\n\t\t|********班级:

软件学院093班***********|"<

cout<<"\n\t\t|********作者:

左自强******************|"<

cout<<"\n\t\t|********学号:

09033335****************|"<

cout<<"\n\t\t|********QQ:

975942538******************|"<

cout

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

当前位置:首页 > 表格模板 > 表格类模板

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

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