(2012届)基于VC#的题库管理系统的框架与界面设计(终稿)---林浩森

韶关学院

毕业设计

题目:基于VC#的题库管理系统的框架与界面设计学生姓名:林浩森

学号:0810*******

系(院):计算机科学学院

专业:网路工程

班级:08(2)班

指导教师姓名及职称:程细柱(讲师)

起止时间:2011年6月——2011年11月

基于VC#的题库管理系统的框架与界面设计

摘要:计算机的出现对各行各业都有着巨大的冲击,各行各业都能用计算机来优化自身产业,从而提高效率,推动社会进步。其中,对教育事业也有着很大的贡献,各种的系统方便了老师和学生。本系统就是为了方便教师出卷和改卷,减轻教师们的工作压力,从而提高效率和教学的质量

关键词:计算机教育系统

Based on the VC#database management system framework

and interface design

Abstract:the emergence of the computer for people from all walks of life have a huge impact, all trades and professions can use the computer to optimize their industrial,thereby improving the efficiency,promote social progress.Among them,to the cause of education also has the very big contribution,various system is convenient for teachers and students.The system is for the convenience of teachers to roll out and changed volume,reduce teachers'working pressure, thereby improving the efficiency and the quality of teaching

Key words:computer education system

目录

1前言 (1)

1.1开发背景 (1)

2开发工具的简述 (1)

2.1C#的特点 (1)

2.2SQL Server2005 (3)

3需求与可行性分析 (5)

4概要设计 (7)

4.1功能模块设计 (7)

4.2流程图设计 (10)

5详细设计 (11)

5.1数据库连接设计 (11)

5.2E-R图 (12)

5.3考试系统数据库表 (12)

5.4功能模块图设计 (14)

5.5时序图 (16)

6代码生成 (19)

6.1关键代码设计 (19)

6.1.1抽取试卷代码 (19)

6.1.2自动改卷代码 (22)

7界面设计 (25)

7.1题库系统界面设计 (25)

7.2考试系统界面设计 (28)

8软件测试 (33)

9开发总结 (39)

致谢 (40)

参考文献 (41)

基于VC#的题库管理系统的框架与界面设计专业班级:08计算机科学与技术2班学生姓名:林浩森

指导老师:程细柱

1前言

1.1开发背景

考试是检验教师的教与学生的学的重要手段,也是促进学生学习的重要手段,是教学过程中的一个重要环节。学生考试成绩的优劣,不但反映其对教学内容和应掌握知识的分析、理解、吸收、运用的能力,更反映教师对教学内容的把握和熟练程度,是教育中得重点。

而传统的基于纸和笔的考试方式,老师要花费大量的时间和精力出题、改卷、统计分数等,存在诸多弊端:工作量大、周期长、反馈能力弱、人为的因素影响考试成绩。随着高校扩招和各类考试自动化出卷批改的要求,迫切需要一种高效、快捷、科学的考试方式。

如今随着计算机的飞速发展,计算机的功能也越来越全面,它所笼罩的范围也越来越广。计算机考试方式的优越性较之传统方式,既灵活方便,又高效可靠,还能及时反馈教学情况,减少诸多中间环节,提高教学效率。

2开发工具简介

2.1C#的特点

C#是Microsoft为.NET平台量身定做的新程序语言,它拥有如VB一样的容易使用性,并同时具备Visual C++强大功能两种特色。许多Visual C++中令人感到难以学习或容易出错的功能,如指针(Pointer),宏(Macro)、模板(Template)及多重继承等特色,在C#中己经删除。除此以外,C#的语法99%都与C++相同,因此,对于原先C++的用户而言,学习相对容易。然而,C#与C ++主要的不同之处在于,C#是专门为.NET平台量身定做的,因此,C#语言的特色都与.NET平台有着密不可分的关系。C#语言本身并无类库(Class Library),而是直接使用.NET Framework所提供的类函数库;此外,关于类型

安全检验(Type-safety verify)、自动资源回收(Automatic garbage collection)等操作,也都是直接交给CLR(Common Language Runtime)来处理。因此,C#是最适合NET平台的程序语言。

C#最引人入胜的地方是它和Java的不同,而不是相似的地方.C#实现的和Java不同的地方或者Java根本没有的特点有:

中间代码:MSIL不是解释性的,而是被编译成了机器码.。

命名空间中的申明:

当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用using关键字来引用其他命名空间的内容,

基本的数据类型:

C#拥有比C、C++或者Java更广泛的数据类型。这些类型是bool,、byte、ubyte、short、ushort、int,、uint、long,、ulong、float、double、和decimal。

参数传递:

方法可以被声明接受可变数目的参数。缺省的参数传递方法是对基本数据类型进行值传递。ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值。out关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值。

Form类的控件:

BackgroundImage属性:用来设置窗体的背景图象。

FormBorderStyle属性:用来控制程序边框的样式。

BackColor属性:用来控制程序界面的颜色。

Font属性:用来控制程序界面的字体。

Label类的控件:

Name属性:用来设置控件名。

Databindings属性:用来设置与数据库中哪个子段绑定。

Text属性:用来设置控件显示的文本。

ComboBox类的控件:

Items属性:用来设置下拉列表框中的各项。

Text属性:用来设置控件所显示的文本。

BindingSource类的控件:

DataSource:用来指定和哪个数据集相连。

DataGridView类的控件:

DataSource:用来指定和哪个BindingSource控件相连。

TabControl类的控件:

TabPages属性:用来添加设置page页。

RadioButton类的控件:

Checked属性:设置是否选种。

Text:设置标题。

OnClick事件:用来添加按钮的单击事件执行的程序代码。

CheckChanged事件:用来添加按钮的选中状态变化时的代码。

Button类的控件:

Text属性:用来指定Button的标题。

OnClick事件:用来添加按钮的单击事件所执行的程序代码。

CheckBox类的控件

Text属性:用来指定CheckBox的标题。

Checked事件:为true表示复选框被选中,为false不被选中。

2.2SQL Server2005

SQL Server是一个关系数据库管理系统,它最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2版本在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了。Microsoft将SQL Server移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT版本,Sybase则较专注于SQL Server在UNIX操作系统上的应用。在系统中用到的是Microsoft SQL Server以后简称为SQL Server或MS SQL Server。

SQL Server2005是Microsoft公司推出的SQL Server数据库管理系统的最新版本该版本继承了SQL Server8.0(SQL Server2000)版本的优点。同时又比

它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows2000的膝上型电脑到运行Microsoft Windows Vista的大型多处理器的服务器等多种平台使用。

而SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。因为本系统需求一个中型,而且安全性强的数据库,所以选择SQL Server做为该系统的数据库。

SQL语言简介

SQL全称是“结构化查询语言(Structured Query Language)”,SQL语言结构简洁,功能强大,简单易学,所以自从1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

SQL中提供的语句很多,根据各语言完成的功能,可将其分为以下几个大类:数据定义语言(DLL)

数据查询语言(DSL)

数据更新语言(DRL)

数据控制语言(DCL)

SQL广泛地被采用说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

通过SQL命令,程序设计师或数据库管理员可以:

(1)建立数据库的表格。(包括设置表格所可以使用之空间)

(2)针对某个数据库或表格,授予用户存取权限。

(3)对数据库表格建立索引值。

(4)修改数据库表格结构。(新建、删除或是修改表格字段)

(5)对数据库进行数据的新建。

(6)对数据库进行数据的删除。

(7)对数据库进行数据的修改。

(8)对数据库进行数据的查询。

3需求与可行性分析

系统需要解决的主要问题

其一,命题。由于考试要求统一进行,所有考生都考同样的一份试卷,所以试卷的命题工作便一定得非常谨慎小心,试题太难或太容易,都达不到考试目的,尤其是对于一个大规模的考试,如何正确把握试卷的难度,一直都是让命题教师最为头痛的问题之一。而如何不在考试之前使命好的试题泄漏出去,也是组织者费尽心思。

其二,试卷印刷。对于大规模的考试,试卷印刷费工费时,成本高,对纸张资源也是一种浪费。对于涉及地域范围较广的考试,还要考虑试卷大的长途运送费用。在考试的印刷和运输过程中同样有试题泄漏出去的问题,任何一个环节出了问题,都可能使前面有的工作付诸流水。

其三,判卷。考试结束后,采用人工判卷比较容易出错,客观题目可能因为改卷人员分心、看错、疲劳等因素而导致分数不正确。

用户需求:

(1)出卷方便快捷,不用繁杂的运输。

(2)阅卷准确快速,客观题目不用仔细对验。

功能需求:

(1)题库管理:为了用户能方便管理庞大的试题题库,实现各种常用或者自定。

(2)义题型的录入、修改、查询、删除、分类等功能。

(3)生成试卷:用户可按自身需求选择合适的试题加入试卷。

(4)上机考试:可以提供上机远程考试,获取试题,保存答题答案。

(5)上机改卷:用户可以进行对上机考试的改卷,提供获取考生答案,自动改客观题,自动统计总分功能。

管理可行性:

科技的日渐成熟,使得计算机的功能越来越完善。为了适应时代发展,适应我国教育深化改革、全面实施素质教育的需要,教育部适时提出了加快普及信息技术,以教育信息化带动教育现代化,因此,考试系统在管理上是可行的。

经济可行性:

传统的印刷浪费大量的人力和物理,而考试系统的试卷只存在虚拟的内存中,可轻易读取、转移,节省金钱

技术可行性:

因为开发所采用的工具全是可视化工具,开发出的应用程序均是图形化界面,操作员几乎不用记任何命令就可以操作此系统。另外,系统的操作员多为学校的教师,有较高的文化素质,他们其中大多已经基本会Windows的操作,即使不会操作Windows,经过短期的培训也能熟练的使用本软件,所以开发题库与试卷生成系统在技术上是可行的

用例图:

图3-1用户用例

图3-2软件设计用例

开发环境

软件环境:

操作系统:Windows xp

数据库:SQL Server2005

开发语言:Visual C#

开发工具:Visual Studio2005

硬件环境:

CPU:Pentium 2.16G

内存:512MB以上

硬盘:2.1GB以上(可用空间最好在160MB以上)

4概要设计

4.1功能模块设计:

1.数据库模块

2.用户模块

3.考试模块

4.改卷模块

5.管理员模块

模块分析:

(1)数据库连接:连接目标数据库

try

{string o1;

if(Form2.ConStr1==".")

{本地连接}

else

{远程连接}

}

catch(SqlException err)

{

错误提示

}

(2)用户的登录:按类别进入系统,类别不同,权限也不同

先判定输入信息不为空,接着

if(radioButton1.Checked==true)

{管理员登录}

if(radioButton2Checked==true)

{教师登录}

if(radioButton3Checked==true)

{学生登录}

(3)考试模块:学生登录,抽取试卷,并把答案输入答题卡

提交答案

SqlConnection conn=new SqlConnection(o1);

conn.Open();

using(SqlCommand cmd=conn.CreateCommand())

{https://www.360docs.net/doc/8114437819.html,mandText=("………..”)

cmd.ExecuteNonQuery();}

MessageBox.Show("提交成功!");

(4)改卷模块:教师登录,抽取学生答案,进行批改自动改卷

for(循环判断)

{

对比

if(i==0)

{正确题数加1}

}

(5)管理员模块:用户的添加和删除,系统的维护用户添加:

If(判断账号是否存在)

{

已有账号,弹出提示

}

Else if(判断姓名是否存在)

{

已有姓名,弹出提示

}

Else{

用户添加成功

}

用户删除:

If(判断账号是否存在)

{

不存在,弹出提示

}

Else

{弹出询问提示,执行删除}

4.2流程图设计:

试题生成系统流程图

图4-1

5详细设计

5.1数据库连接设计

本地连接已不能满足用户需求,现在越来越多学校需要远程教学来辅助教育。因此,设计了两种连接数据库的方式。

一种是本地连接:o1="Integrated Security=SSPI;Database="+ Form2.ConStr2+";Server=.\\SQLEXPRESS;";

一种是远程连接:o1="Server="+Form2.ConStr1+";Database="+ Form2.ConStr2+";UID="+Form2.ConStr3+";PWD="+Form2.ConStr4+";";为了方便用户,还设置保存信息功能:

path=@"1.ini";

path1=@"2.ini";

path2=@"3.ini";

path3=@"4.ini";

StreamReader sr=new StreamReader(path,Encoding.UTF8);

comboBox1.Items.Add(

sr.ReadLine()

);

StreamReader sr1=new StreamReader(path,Encoding.UTF8);

comboBox2.Items.Add(

sr1.ReadLine()

);

StreamReader sr2=new StreamReader(path,Encoding.UTF8);

comboBox3.Items.Add(

sr2.ReadLine()

);

StreamReader sr3=new StreamReader(path,Encoding.UTF8);

comboBox4.Items.Add(sr3.ReadLine());

用户只需输入一次连接数据,以后便不用再次输入,直接选择。

5.2试题系统实体间的关系E-R图

图5-1实体间的关系e-r图

5.3考试系统数据库表:

表5.1用户表(users)

字段名称类型说明

Num文本主键长度10 Name文本长度20 Type数字常整型password文本长度6

表5.2选择题(xuanzti)

字段名称类型说明

学号文本主键长度10 1文本长度10

2文本长度10

3文本长度10…..

表5.3填空题(tiankongti)

字段名称类型说明

学号文本主键长度10 [1.1]文本长度20

[1.2]文本长度20

[2.1]文本长度20 [2.2]文本长度20

……

表5.4判断题(panduanti)

字段名称类型说明

学号文本主键长度10

[1]文本长度10

[2]文本长度10

[3]文本长度10…..

表5.5简答题(jiandati)

字段名称类型说明

学号文本主键长度10 [1]文本长度250

[2]文本长度250

[3]文本长度250…..

5.4功能模块图设计:

5.4.1整体模块功能图

图5-2整体模块功能图

5.4.2试题管理模块图

图5-3试题管理模块图

5.4.3考试管理功能图

图5-4考试管理功能模块图5.5时序图

5.5.1管理员时序图:

图5-5管理员时序图5.5.2教师时序图:

5.5.3学生时序图:

相关文档
最新文档