在线考试系统 毕业设计说明书.docx

上传人:b****6 文档编号:8443576 上传时间:2023-01-31 格式:DOCX 页数:20 大小:160.23KB
下载 相关 举报
在线考试系统 毕业设计说明书.docx_第1页
第1页 / 共20页
在线考试系统 毕业设计说明书.docx_第2页
第2页 / 共20页
在线考试系统 毕业设计说明书.docx_第3页
第3页 / 共20页
在线考试系统 毕业设计说明书.docx_第4页
第4页 / 共20页
在线考试系统 毕业设计说明书.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

在线考试系统 毕业设计说明书.docx

《在线考试系统 毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《在线考试系统 毕业设计说明书.docx(20页珍藏版)》请在冰豆网上搜索。

在线考试系统 毕业设计说明书.docx

在线考试系统毕业设计说明书

毕业设计说明书

(计算机应用工程系)

 

设计课题:

在线考试系统

专业班级:

学生姓名:

学生学号:

指导教师:

 

目录

第一章系统简介3

1.1内容介绍3

第二章数据库设计4

2.1数据表说明4

第三章系统功能设计8

3.1:

模块流程图8

第四章核心代码8

4.1抽象类代码8

4.2登录模块代码8

4.3学生模块代码9

第五章总结9

参考文献9

在线考试系统

[摘要]网络考试系统的开发及应用,避免了以往学校里考试纸张,笔,监考和巡考等各种资源的浪费,并且后台管理是管理员单一的管理,确保程序的安全.本在线考试系统应用了AJAX无刷新环境,在登录页面需要输入验证码.管理员还可以为用户重设密码.这样使得系统更加人性化.

[关键字]在线考试AJAX

第一章系统简介

1.1内容介绍

(1).开发环境:

VS2005+SQL200

(2).语言:

(3).系统介绍

本在线考试系统运用了AJAX无刷新环境,在考试倒计时用到AJAX的time控件.在系统登陆输入验证码,在在线考试登录窗口还可以智能记忆用户名..可以使相同用户不必每次都输入相同用户名.在大量查询信息时将会显示进度条,

第二章数据库设计

2.1数据表说明

数据库名:

mrOnLineExam数据库用户名:

sa密码:

数据库表整体说明如下:

数据库表名

表的作用

表的说明

Usermr

管理登录

存放管理员,老师.学生的用户名,密码和角色

MultiProblemmr

多选题管理

存放多选题的信息

Coursemr

考试科目管理

存放考试科目的信息

Departmentmr

系别管理

存放系别的信息

FillBlankProblemmr

填空题管理

存放填空题的信息

JudgeProblemmr

判断题管理

存放判断题的信息

SingleProblemmr

单选题管理

存放单选题的信息

Scoremr

考试成绩管理

存放考生的成绩

Rolemr

权限管理

给不同的对象不同的权限

Papermr

试卷管理

存放试卷的信息

QuestionProblemmr

问答题管理

存放问答题的信息

TreeMenu

导航管理

实现不同的页面之间跳转

UserAnswermr

考生答案

存放考生的答案

PaperDetailmr

试卷详细信息

存放试卷的详细信息

 

(1)Usersmr表

(2)MultiProblemmr表

(3)Coursemr表

(4)Departmentmr表

(5)FillBlankProblemmr表

(6)JudgeProblemmr表

(7)SingleProblemmr表

(8)Scoremr表

(9)Rolemr表

(10)Papermr表

(11)QuestionProblemmr表

(12)TreeMenu表

(13)UserAnswermr表

(14)PaperDetailmr

第三章系统功能设计

3.1:

模块流程图

模块流程图

功能介绍:

1.在线考试模块:

考生通过登录窗口,将进入试卷选择页,选择某套试题后考生就进入在线考试页.该页设置了考试时间及各种题型.

2.管理员管理模块

(1).用户管理:

管理员对用户进行管理,可以修改用户的角色和系别

(2).试卷管理:

管理员可以对各种题型进行添加,删除和修改.

(3).考试科目管理:

管理员可以对考试科目进行添加和删除和修改.

(4).成绩管理:

管理员可以对删除考生的成绩.

(5).权限管理:

管理员可以给不同的用户不同的权限.

(6).系别管理:

管理员可以添加,删除和修改系别.

3.教师模块

教师可以对学生试卷的问答题进行评分,除问答题外,其余都由系统自动打分.教师还可以对学生的试卷给出评语.教师可以修改自己的密码;

第四章核心代码

4.1公共类代码

1.连接数据库公共类:

publicclassDataBase

{

protectedSqlConnectionConnection;

protectedstringConnectionString;

publicDataBase()

{

ConnectionString="DataSource=(local);DataBase=mrOnLineExam;UserID=sa;Password=;";

}

privatevoidOpen()

{

if(Connection==null)

{

Connection=newSqlConnection(ConnectionString);

Connection.Open();

}

else

{

if(Connection.State.Equals(ConnectionState.Closed))

Connection.Open();

}

}

publicvoidClose()

{

if(Connection.State.Equals(ConnectionState.Open))

{

Connection.Close();

}

}

~DataBase()

{

try

{

if(Connection!

=null)

Connection.Close();

}

catch{}

try

{

Dispose();

}

catch{}

}

publicvoidDispose()

{

if(Connection!

=null){

Connection.Dispose();

Connection=null;

}

}

publicboolGetRecord(stringXSqlString)

{

Open();

SqlDataAdapteradapter=newSqlDataAdapter(XSqlString,Connection);

DataSetdataset=newDataSet();

adapter.Fill(dataset);

Close();

if(dataset.Tables[0].Rows.Count>0)

{

returntrue;

}

else

{

returnfalse;

}

}

publicintGetRecordCount(stringXSqlString)

{

stringSCount;

Open();

SqlCommandCmd=newSqlCommand(XSqlString,Connection);

SCount=Cmd.ExecuteScalar().ToString().Trim();

if(SCount=="")

SCount="0";

Close();

returnConvert.ToInt32(SCount);

}

publicDataSetAdvancedSearch(stringXTableName,HashtableXHT)

{

intCount=0;

stringFields="";

foreach(DictionaryEntryIteminXHT)

{

if(Count!

=0)

{

Fields+="and";

}

Fields+=Item.Key.ToString();

Fields+="like'%";

Fields+=Item.Value.ToString();

Fields+="%'";

Count++;

}

Fields+="";

stringSqlString="select*from"+XTableName+"where"+Fields;

Open();

SqlDataAdapterAdapter=newSqlDataAdapter(SqlString,Connection);

DataSetDs=newDataSet();

Adapter.Fill(Ds);

Close();

returnDs;

}

privateSqlCommandCreateCommand(stringProcName,SqlParameter[]Prams)

{

Open();

SqlCommandCmd=newSqlCommand(ProcName,Connection);

Cmd.CommandType=CommandType.StoredProcedure;

if(Prams!

=null)

{

foreach(SqlParameterParameterinPrams)

Cmd.Parameters.Add(Parameter);

}

returnCmd;

}

privateSqlCommandCreateStrCommand(stringStrName,SqlParameter[]Prams)

{

Open();

SqlCommandCmd=newSqlCommand(StrName,Connection);

Cmd.CommandType=CommandType.Text;

if(Prams!

=null)

{

foreach(SqlParameterParameterinPrams)

Cmd.Parameters.Add(Parameter);

}

returnCmd;

}

publicSqlParameterMakeParam(stringParamName,SqlDbTypeDbType,Int32Size,ParameterDirectionDirection,objectValue)

{

SqlParameterParam;

if(Size>0)

Param=newSqlParameter(ParamName,DbType,Size);

elseParam=newSqlParameter(ParamName,DbType);

Param.Direction=Direction;

if(Value!

=null)

Param.Value=Value;

returnParam;

}

publicSqlParameterMakeInParam(stringParamName,SqlDbTypeDbType,intSize,objectValue)

{

returnMakeParam(ParamName,DbType,Size,ParameterDirection.Input,Value);

}

publicintRunProc(stringProcName)

{

intCount=-1;

SqlCommandCmd=CreateCommand(ProcName,null);

Count=Cmd.ExecuteNonQuery();

Close();

returnCount;

}

publicintRunStr(stringStrName)

{

intCount=-1;

SqlCommandCmd=CreateStrCommand(StrName,null);

Count=Cmd.ExecuteNonQuery();

Close();

returnCount;

}

publicintRunProc(stringProcName,SqlParameter[]Params)

{

intCount=-1;

SqlCommandCmd=CreateCommand(ProcName,Params);

Count=Cmd.ExecuteNonQuery();

Close();

returnCount;

}

publicintProcStr(stringStrName,SqlParameter[]Params)

{

intCount=-1;

SqlCommandCmd=CreateStrCommand(StrName,Params);

Count=Cmd.ExecuteNonQuery();

Close();

returnCount;

}

publicSqlDataReaderRunProcGetReader(stringProcName,SqlParameter[]Params)

{

SqlCommandCmd=CreateCommand(ProcName,Params);

returnCmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

}

publicintRunProcGetCount(stringProcName,SqlParameter[]Params)

{

SqlCommandCmd=CreateCommand(ProcName,Params);

stringSCount;

SCount=Cmd.ExecuteScalar().ToString().Trim();

if(SCount=="")

SCount="0";

Close();

returnConvert.ToInt32(SCount);

}

publicDataSetGetStrDataSet(stringStrName)

{

Open();

SqlDataAdapteradapter=newSqlDataAdapter(StrName,Connection);

DataSetdataset=newDataSet();

adapter.Fill(dataset);

Close();

returndataset;

}

publicDataSetGetDataSet(stringProcName,SqlParameter[]Params)

{

Open();

SqlCommandCmd=CreateCommand(ProcName,Params);

SqlDataAdapteradapter=newSqlDataAdapter(Cmd);

DataSetdataset=newDataSet();

adapter.Fill(dataset);

Close();

returndataset;

}

publicDataSetGetStrDataSetSql(stringStrName,SqlParameter[]Params)

{

Open();

SqlCommandCmd=CreateStrCommand(StrName,Params);

SqlDataAdapteradapter=newSqlDataAdapter(Cmd);

DataSetdataset=newDataSet();

adapter.Fill(dataset);

Close();

returndataset;

}

publicDataSetGetDataSetSql(stringXSqlString)

{

Open();

SqlDataAdapterAdapter=newSqlDataAdapter(XSqlString,Connection);

DataSetDs=newDataSet();

Adapter.Fill(Ds);

Close();

returnDs;

}

publicintInsert(stringXSqlString)

{

intCount=-1;

Open();

SqlCommandcmd=newSqlCommand(XSqlString,Connection);

Count=cmd.ExecuteNonQuery();

Close();

returnCount;

}

publicintGetIDInsert(stringXSqlString)

{

intCount=-1;

Open();

SqlCommandcmd=newSqlCommand(XSqlString,Connection);

Count=Convert.ToInt32(cmd.ExecuteScalar().ToString().Trim());

Close();

returnCount;

}

publicDataRowGetDataRow(StringSqlString)

{

DataSetdataset=GetDataSet(SqlString);

dataset.CaseSensitive=false;

if(dataset.Tables[0].Rows.Count>0)

{

returndataset.Tables[0].Rows[0];

}

else

{

returnnull;

}

}

publicboolUpdate(StringTableName,HashtableCols,StringWhere)

{

intCount=0;

if(Cols.Count<=0)

{

returntrue;

}

StringFields="";

foreach(DictionaryEntryiteminCols)

{

if(Count!

=0)

{

Fields+=",";

}

Fields+="["+item.Key.ToString()+"]";

Fields+="=";

Fields+=item.Value.ToString();

Count++;

}

Fields+="";

StringSqlString="Update"+TableName+"Set"+Fields+Where;

String[]Sqls={SqlString};

returnExecuteSQL(Sqls);

}

publicboolExecuteSQL(String[]SqlStrings)

{

boolsuccess=true;

Open();

SqlCommandcmd=newSqlCommand();

SqlTransactiontrans=Connection.BeginTransaction();

cmd.Connection=Connection;

cmd.Transaction=trans;

inti=0;

try

{

foreach(StringstrinSqlStrings)

{

cmd.CommandText=str;

cmd.ExecuteNonQuery();

i++;

}

trans.Commit();

}

catch

{

success=false;

trans.Rollback();

Close();

}

finally

{

Close();

}

returnsuccess;

}

publicDataTableGetDataTable(StringSqlString)

{

DataSetdataset=GetDataSet(SqlString);

dataset.CaseSensitive=false;

returndataset.Tables[0];

}

}

}

4.2管理员模块代码

Usersmruser=newUsersmr();

DataSetmyds=user.QueryUsers();

GridView1.DataSource=myds;

GridView1.DataBind();

LabelPageInfo.Text="你所在的位置:

当前(第"+(GridView1.PageIndex+1).ToString()+"页共"+GridView1.PageCount.ToString()+"页)

4.3教师模块代码

ScoresmrExamScore=newScoresmr();

ExamScore.UserID=Request.QueryString["UserID"].ToString();

ExamScore.PaperID=int.Parse(Request.QueryString["PaperID"].ToString());

ExamScore.ExamTime=Convert.ToDateTime(lblExamtime.Text);

if(queScore.Text.Trim()!

="")

{

ExamScore.Score=Convert.ToInt32(sumScore.Text);

ExamScore.PingYu=tbxPingyu.Text;

Papermrmypaper=newPapermr();

mypaper.PaperID=int.Parse(Request.QueryString["PaperID"].ToString());

mypaper.state="已评阅";

if(!

ExamScore.CheckScore(ExamScore.UserID,ExamScore.PaperID)

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

当前位置:首页 > 党团工作 > 思想汇报心得体会

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

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