大学在线考试系统设计毕业论文
更新时间:2023-08-31 09:56:01 阅读量: 教育文库 文档下载
- 大学在线考试怎么考推荐度:
- 相关推荐
关于大学生考试系统网站的毕业设计
面向对象的系统开发与设计课程设计报告书
成 绩: 学 号:姓 名: 指导教师:
2012 年 2月 15 日
关于大学生考试系统网站的毕业设计
课 程 设 计 任 务 书
关于大学生考试系统网站的毕业设计
大学在线考试系统
摘要:
随着计算机应用的迅猛发展,网络应用的不断扩大,如远程教育和虚拟大学大出现等,且这些应用正逐步深入要千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而是考试更趋于公正、客观,更加激发学生的学习兴趣。在线考试系统是为了方便学生考试、老师阅卷、提高考试的公正性、公平性。本文主要包括系统的课题概述、业务层设计、数据库设计、数据访问层设置、应用层设计等。
1 课题概述
1.1 系统基本需求
(1)操作简单方便,界面简洁美观。
(2)具有实时性,已注册的用户无论身在何地,通过Internet游览器,都可登录网络考试系统。 (3)具有严肃性和公正性,系统提供的自动交卷功能使考试到结束时间时,系统自动交卷。 (4)提供考试时间倒计时功能,让考生随时了解考试剩余时间。 (5)系统自动阅卷,保证成绩真实,准确。 (6)考生可以随时查看考试成绩 (7)对考生注册信息进行管理 (8)系统运行稳定,安全可靠
系统功能模块如图:
1.2 系统功能分析(用例图) 学生用例图:
关于大学生考试系统网站的毕业设计
管理员用例图:
2 业务层设计
2.1 类的识别
本网站共创建了7个类,分别为 Datacon.cs(数据操作类),JudgeProblem.cs(判断题类)MultiProblem.cs(多选题类),Paper.cs(试卷类),Scores.cs(分数类),SingleProblem.cs(单选题类),GetSafeData.cs(数据安全类)。其中JudgeProblem.cs,SingleProblem.cs,MultiProblem.cs,Paper.cs,Scores.cs放置到BusinessLogicLayer文件夹中,GetSafeData.cs放置到DataAccessHelper文件夹中。
2.2 类的属性和方法设计
(1)Datacon.cs(数据操作类) 方法:
getcon:用来连接数据库
eccom: 用来执行对数据库操作的SQL语句命令 bind: 用于将数据库绑定到表格控件中
ecDropDownList:用于姜数据库绑定到下拉列表框中
Bindinfostring:用于将数据库数据绑定到表格控件中,并获取数据表中的主键字段
(2)SingleProblem.cs(单选题类) 属性:
public int ID {
set
{
this._ID = value; }
关于大学生考试系统网站的毕业设计
get {
return this._ID; } }
public int CourseID {
set {
this._CourseID = value; } get {
return this._CourseID; } }
public string Title {
set {
this._Title = value; } get {
{
this._AnswerB = value; } get {
return this._AnswerB; } }
public string AnswerC {
set {
this._AnswerC = value; } get {
return this._AnswerC; } }
public string AnswerD {
set {
this._AnswerD = value; return } this._Title; }
public string AnswerA {
set {
this._AnswerA = value; } get {
return this } ._AnswerA; }
public string AnswerB {
set
方法:
LoadData 初始化题目
UpdateByProc 更新判断题信息
(3)MultiProblem.cs(多选题类) 属性:
public
int ID { set { this._ID = value; } get { } return this._ID; } public int CourseID { set { this._CourseID = value; } get { return this._CourseID; } } public { string Title set { this._Title = value; } get { return this._Title; } } public{ string AnswerA set { } this._AnswerA = value; get { return this._AnswerA; } }
方法:
LoadData 初始化题目
UpdateByProc 更新判断题信息 (4)JudgeProblem.cs(判断题类)
} get {
}
} return this._AnswerD; public{
string Answer set {
this._Answer = value; } get {
return this._Answer; }
} public{ string AnswerB set { this._AnswerB = value; } get { return } } this._AnswerB; public{ string AnswerC set { this._AnswerC = value; } get { return this._AnswerC; } } public{ string AnswerD set { this._AnswerD = value; } } get { } return this._AnswerD; public{ string Answer set { this._Answer = value; } get { return this._Answer; } }
关于大学生考试系统网站的毕业设计
属性:
public int ID {
set {
this._ID = value; } get {
return this._ID; } }
public int CourseID {
set {
this._CourseID = value; } get {
return this._CourseID; public string Title {
set {
this._Title = value; } get {
return this._Title; } }
public Boolean Answer {
set {
this._Answer = value; } get {
return this._Answer; }
} 方法:
LoadData 初始化题目
UpdateByProc 更新判断题信息
(5)Scores.cs(分数类) 属性:
public int ID {
set {
this._ID = value; } get {
return this._ID; } }
public string {
UserID set {
} this._userID = value; get {
return this._userID; }
} 方法:
InsertByProc:向Score表中添加成绩 (6)Paper.cs(试卷类) 属性:
public int PaperID {
set {
this._paperID = value; } get {
return this._paperID; } }
public {
int CourseID set {
this._courseID = value; } get {
return this._courseID;
} } 方法:
InsertByProc:向Paper表中添加试卷信息 UpdateByProc:更新试卷信息
}
} public{
int PaperID set {
this ._paperID = value; } get {
return this._paperID; }
} public{
int Score set {
this._score = value } ; get }
{
} return this._score; public{
string PaperName set {
this._paperName = value; } get {
}
} return this._paperName; public{
byte PaperState set {
this._paperState = value; } get {
return }
} this._paperState;
关于大学生考试系统网站的毕业设计
2.3 类间继承与联系设计
Datacon.cs,JudgeProblem.cs,MultiProblem.cs,Paper.cs,Scores.cs,SingleProblem.cs都运用了Datacon.cs的GetDataSet,MakeInParam方法并且继承了GetSafeData.cs。
2.4 类图
3 数据库设计
3.1 逻辑结构设计
类和关系模型向关系模式转化:
1.考生信息表(学号,姓名,密码,性别,密码问题,答案,专业,加入时间)
2.单选题信息表(题目编号,课程编号,题名,选项A,选项B,选项C,选项D,正确答案) 3.多选题信息表(题目编号,课程编号,题名,选项A,选项B,选项C,选项D,正确答案) 4.判断题信息表(题目编号,课程编号,题目,正确答案) 5.专业信息表(专业编号,专业名,加入时间) 6.考试科目表(课程编号,课程名)
7.管理员信息表(管理员编号,管理员名称,密码,加入时间)
Course表
tb_TaoTi表
关于大学生考试系统网站的毕业设计
tb_Student表
tb_Profession表
tb_Administrator表
SingleProblem表
Score表
关于大学生考试系统网站的毕业设计
MultiProblem表
JudgeProblem表
tb_TaoTiDetail表
3.2 物理结构设计
(1).为关系模式选择存取方法:
选择索引方法
(2).确定数据库的存储结构
为了提高系统性能,将表和索引放在不同的磁盘上。 系统配置使用默认值。
3.3 完整性设计
1.实体完整性:
Course表中 ID设为主键并且为自增长identity(1,1)
JudgeProblem表中 ID设为主键并且为自增长identity(1,1) MultiProblem 表中 ID设为主键并且为自增长identity(1,1) Sorce表中 ID设为 主键并且为自增长identity(1,1)
SingleProblem表中 ID设为主键并且为自增长identity(1,1) tb_Administrator表中 ID设为主键
关于大学生考试系统网站的毕业设计
tb_Profession表中 ID设为主键并且为自增长identity(1,1) tb_Student表中 ID设为主键
tb_TaoTi表中 ID设为主键并且为自增长identity(1,1)
tb_TaoTiDetail表中ID设为主键并且为自增长identity(1,1)
2.,参照完整性:
JudgeProblem表中: foreign key CourseID references Course(ID) MultiProblem 表中:foreign key CourseID references Course(ID) Sorce表中: foreign key UserID references tb_Student(ID) foreign key PaperID references tb_TaoTi(ID)
SingleProblem表中:foreign key CourseID references Course(ID)
tb_Student表中: foreign key profession references tb_Profession(Name) tb_TaoTi表中: foreign key CourseID references Course(ID)
tb_TaoTiDetail表中:foreign key PaperID references tb_TaoTi(ID) 3.用户定义完整性:
列值非空(not null)如上表图所示 CHECK(Sex IN('男','女'))
3.4 用户权限设计
1.创建成绩视图供管理员和考生查看成绩
3.5 存储过程设计
(1)Proc_JudgeProblemDetail 判断题详细信息
CREATE PROCEDURE [dbo].[Proc_JudgeProblemDetail] @ID [int] AS SELECT *
FROM [dbo].[JudgeProblem] where ID=@ID
(2)Proc_JudgeProblemModify 判断题修改
CREATE PROCEDURE [dbo].[Proc_JudgeProblemModify] (@ID [int], @CourseID [int], @Title [varchar](1000), @Answer [bit])
AS UPDATE [Examination].[dbo].[JudgeProblem] SET [CourseID] = @CourseID, [Title] = @Title, [Answer] = @Answer WHERE ( [ID] = @ID)
(3)Proc_MultiProblemDetail 多选题详细信息
CREATE PROCEDURE [dbo].[Proc_MultiProblemDetail] @ID [int] AS SELECT *
FROM [dbo].[MultiProblem] where ID=@ID
4)Proc_MultiProblemModify 多选题修改
CREATE PROCEDURE [dbo].[Proc_MultiProblemModify] (@ID [int], @CourseID [int], @Title [varchar](1000), @AnswerA [varchar](500), @AnswerB [varchar](500), @AnswerC [varchar](500), @AnswerD [varchar](500), @Answer [varchar](50))
关于大学生考试系统网站的毕业设计
AS UPDATE [Examination].[dbo].[MultiProblem] SET [CourseID] = @CourseID, [Title] = @Title, [AnswerA] = @AnswerA, [AnswerB] = @AnswerB, [AnswerC] = @AnswerC, [AnswerD] = @AnswerD, [Answer] = @Answer WHERE ( [ID] = @ID)
(5)Proc_PaperDetail 试卷信息 (6)Proc_PaperModify 试卷修改
CREATE PROCEDURE [dbo].[Proc_PaperModify] (@PaperID [int], @PaperState [bit])
AS UPDATE [Examination].[dbo].[tb_TaoTi] SET [PaperState] = @PaperState WHERE ( [PaperID] = @PaperID)
(7)Proc_ScoreAdd 分数插入
CREATE PROCEDURE [dbo].[Proc_ScoreAdd] (@UserID [varchar](20), @PaperID [int], @Score [int])
AS INSERT INTO [Examination].[dbo].[Score] ([UserID], [PaperID], [Score]) VALUES ( @UserID, @PaperID, @Score)
(8)Proc_SingleProblemDetail 单选题信息
CREATE PROCEDURE [dbo].[Proc_SingleProblemDetail] @ID [int] AS SELECT *
FROM [dbo].[SingleProblem] where ID=@ID
(9)Proc_SingleProblemModify 单选题修改
CREATE PROCEDURE [dbo].[Proc_SingleProblemModify] (@ID [int], @CourseID [int], @Title [varchar](1000), @AnswerA [varchar](500), @AnswerB [varchar](500), @AnswerC [varchar](500), @AnswerD [varchar](500), @Answer [varchar](2))
AS UPDATE [Examination].[dbo].[SingleProblem] SET [CourseID] = @CourseID, [Title] = @Title, [AnswerA] = @AnswerA, [AnswerB] = @AnswerB, [AnswerC] = @AnswerC, [AnswerD] = @AnswerD, [Answer] = @Answer WHERE ( [ID] = @ID)
4 数据访问层设计
4.1数据访问类设计
数据访问类为Datacon.cs,包括getcon(),bind()等方法,用于数据连接和数据绑定。
public class Datacon {
public SqlConnection getcon() {
string strCon = "server=JW-PC;database=Examination;Integrated Security=True"; SqlConnection sqlCon = new SqlConnection(strCon); return sqlCon;
关于大学生考试系统网站的毕业设计
}
public bool eccom(string sqlstr) {
SqlConnection cn = this.getcon(); cn.Open();
SqlCommand cmd = new SqlCommand(sqlstr, cn); try {
cmd.ExecuteNonQuery(); return true; } catch {
return false; }
finally {
cn.Close(); } }
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) {
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value); }
public void bind(GridView gv, string sqlstr) {
SqlConnection cn = this.getcon(); cn.Open();
SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset); gv.DataSource = mydataset; gv.DataBind(); cn.Close();
}
public bool ecDropDownList(DropDownList DDL, string sqlstr, string DTF, string DVF) {
SqlConnection cn = this.getcon(); cn.Open();
SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset);
DDL.DataSource = mydataset; DDL.DataTextField = DTF; DDL.DataValueField = DVF; try {
DDL.DataBind(); return true; } catch {
return false; }
finally {
cn.Close(); } }
public void bindinfostring(GridView gv, string sqlstr, string DNK) {
SqlConnection cn = this.getcon(); cn.Open();
SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset); gv.DataSource = mydataset;
gv.DataKeyNames = new string[] { DNK }; gv.DataBind(); cn.Close(); }
public DataSet GetDataSet(string ProcName, SqlParameter[] Params) {
SqlConnection cn = this.getcon(); cn.Open();
SqlCommand Cmd = CreateCommand(ProcName, Params); SqlDataAdapter adapter = new SqlDataAdapter(Cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); cn.Close(); return dataset; }
private SqlCommand CreateCommand(string ProcName, SqlParameter[] Prams) {
SqlConnection cn = this.getcon(); cn.Open();
关于大学生考试系统网站的毕业设计
SqlCommand Cmd = new SqlCommand(ProcName, cn); http://www.77cn.com.cnmandType = CommandType.StoredProcedure;
if (Prams != null) {
foreach (SqlParameter Parameter in Prams) Cmd.Parameters.Add(Parameter); }
return Cmd; }
public int RunProc(string ProcName, SqlParameter[] Params) {
SqlConnection cn = this.getcon(); cn.Open(); int Count = -1;
SqlCommand Cmd = CreateCommand(ProcName, Params); Count = Cmd.ExecuteNonQuery(); cn.Close(); return Count; } }
5 应用层设计
5.1 输入设计
后台管理页面使用了菜单栏,在菜单栏的右侧使用了iframe框架,实现了右侧动态显示网页的功能。在添加中还使用了DropDownList,TextBox等控件。布局在 Dreamweaver 8中实现。
例如试题添加:
5.2 输出设计
输出界面主要运用GridView,便于查询。布局同样在Dreamweaver 8中实现。 考试页面运用GridView和RadioBotton,CheckBox的嵌套。同时运用javascript 编写一个时间控件。
例如学生管理:主要运用GridView
关于大学生考试系统网站的毕业设计
考试界面:GridView和RadioBotton,CheckBox的嵌套
6 系统开发实施
6.1 开发工具选择
网站开发环境:Microsoft Visual Studio 2008 网站开发语言:http://www.77cn.com.cn+C#
网站后台数据库:SQL Server 2005
6.2 系统体系结构选择
该系统采用三层结构开发,核心层在App_code下:
关于大学生考试系统网站的毕业设计
7 系统使用指南
前台登陆地址:/MyWeb/Index.aspx 学生需要注册以后方能使用 后台管理地址:/MyWeb/admin.aspx 默认管理帐号/密码:2010/123
8 总结
参考资料
1.http://www.77cn.com.cn项目开发全程实录/张领等编著 -北京:清华大学出版社,2008.6 2.C#程序设计教程/李瑞旭主编 —北京:中国电力出版社,2009.6
3.数据库系统概论/王珊,萨师煊 -第四版 -北京:高等教育出版社,2006.5
正在阅读:
大学在线考试系统设计毕业论文08-31
顾问类英文简历范文【精选】04-11
专项方案设计说明(1)06-16
编程判断输入整数的正负性和奇偶性12-01
电力系统技术考试问答题(难度80题)11-01
刮板输送机司机安全隐患排查责任制(新版)04-08
学生会、院社团联合部新干事聘任大会发言稿04-13
1隆元证券投资基金2005年半年度报告07-20
劳动关系整理02-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 在线考试
- 毕业论文
- 设计
- 大学
- 系统
- 企业常见涉税疑难问题处理和风险规避技巧
- PLC控制系统可靠性与安全性设计
- 信贷岗位廉政风险点自查表
- (人教版)化学选修四思维导图:1-3化学反应热的计算(含答案)
- 自然灾害的防治
- 3细胞的生命历程胚胎工程
- 答案参考资料
- 高三地理教学经验总结
- 2018年度个人与团队管理案例分析题(机考精华版)
- 民族政策法规知识竞赛试题答案(满分)
- 110kv降压变电所的一次系统初步设计 开题报告
- 广西农村留守儿童基本情况登记表
- excel2003和2007快捷键大全
- 网络拓扑发现算法
- 鼎利路测路测软件后台分析软件Navigator操作培训
- 职业生涯规划(学前教育)
- 五年级语文第五单元检测质量分析
- AQ3002-2005阻隔防爆撬装式汽车加油(气)装置技术要求
- 香格里拉酒店集团市场营销分析
- 光谱分析作业指导书