高级数据库技术学生考试管理系统.docx

上传人:b****4 文档编号:5473754 上传时间:2023-05-08 格式:DOCX 页数:39 大小:440.01KB
下载 相关 举报
高级数据库技术学生考试管理系统.docx_第1页
第1页 / 共39页
高级数据库技术学生考试管理系统.docx_第2页
第2页 / 共39页
高级数据库技术学生考试管理系统.docx_第3页
第3页 / 共39页
高级数据库技术学生考试管理系统.docx_第4页
第4页 / 共39页
高级数据库技术学生考试管理系统.docx_第5页
第5页 / 共39页
高级数据库技术学生考试管理系统.docx_第6页
第6页 / 共39页
高级数据库技术学生考试管理系统.docx_第7页
第7页 / 共39页
高级数据库技术学生考试管理系统.docx_第8页
第8页 / 共39页
高级数据库技术学生考试管理系统.docx_第9页
第9页 / 共39页
高级数据库技术学生考试管理系统.docx_第10页
第10页 / 共39页
高级数据库技术学生考试管理系统.docx_第11页
第11页 / 共39页
高级数据库技术学生考试管理系统.docx_第12页
第12页 / 共39页
高级数据库技术学生考试管理系统.docx_第13页
第13页 / 共39页
高级数据库技术学生考试管理系统.docx_第14页
第14页 / 共39页
高级数据库技术学生考试管理系统.docx_第15页
第15页 / 共39页
高级数据库技术学生考试管理系统.docx_第16页
第16页 / 共39页
高级数据库技术学生考试管理系统.docx_第17页
第17页 / 共39页
高级数据库技术学生考试管理系统.docx_第18页
第18页 / 共39页
高级数据库技术学生考试管理系统.docx_第19页
第19页 / 共39页
高级数据库技术学生考试管理系统.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高级数据库技术学生考试管理系统.docx

《高级数据库技术学生考试管理系统.docx》由会员分享,可在线阅读,更多相关《高级数据库技术学生考试管理系统.docx(39页珍藏版)》请在冰点文库上搜索。

高级数据库技术学生考试管理系统.docx

高级数据库技术学生考试管理系统

目录

1.设计目的和任务1

2.开发环境2

2.1硬件环境2

2.2软件环境2

3.设计题目3

3.1题目名称3

3.2题目详细描述3

3.3功能要求3

4.相关技术及知识点6

5.数据库设计9

5.1系统总体结构9

5.2管理系统表关系9

5.3表详细信息10

6.设计与实现13

6.1登陆界面13

6.2新用户注册14

6.3教师界面14

 

1.设计目的和任务

本次期末大作业采用课程设计的形式进行,作为《高级数据库技术(ADO.NET&XML)》课程的期末考核。

要求综合运用ADO.NET相关知识,设计一个具有实用夹着的学生考试管理系统,并撰写课程设计报告。

其目的和任务是:

(1)巩固和加深学生对本课程基本知识的理解和掌握;

(2)掌握C#编程和ADO.NET程序调试的基本技能;

(3)掌握设计ADO.NET应用软件的基本思路和方法;

(4)提高运用ADO.NET解决实际问题的能力;

(5)培养撰写设计报告的能力。

 

2.开发环境

2.1硬件环境

计算机

2.2软件环境

XP操作系统;

MicrosoftSQLServer2005;

MicrosoftVisualStudio2005;

 

3.设计题目

3.1题目名称

学生考试管理系统

3.2题目详细描述

1.登录界面

2.新用户注册:

学员、教员

3.教师管理界面

4.管理员管理界面

5.学生在线考试

3.3功能要求

登录窗口:

功能:

1,用户对应权限登录。

分教员,学生,管理员。

根据选择的权限进入相应的界面。

2,输入用户名框非空,密码框非空,权限选择判断。

3,新学员用户注册。

注册后需管理员激活才能登录。

教师窗口:

菜单项:

一,试题管理

子菜单:

1,增加试题。

功能:

增加试题

2,查询试题。

功能:

按科目查询试题,并选择类型来查询试题,本系统中默认两种类型的试题,即选择题和填空题。

3,试题列表。

功能:

按难度以及试题类型,查询试题列表。

并可增加,修改试题各属性。

二,考试管理

子菜单:

1,生成试卷

功能:

(1),开始选题窗体:

用户输入试卷名,进入选题窗体。

(2),选题窗体:

按难度以及试题类型选择试题列表,右击将此题选入此次试卷。

提示:

你已选择1题。

显示当前试卷号,已选择题号。

按钮:

结束选题。

2,试卷管理

功能:

(1)查询所有试卷列表。

(2)激活或冻结试卷。

三,成绩管理

功能:

按试卷名查寻成绩。

要算出平均分,并对及格(>=60)以及优秀的学生(>=85)比例进行统计。

表格格式为:

学生名,成绩

文本框显示平均分,文本框显示及格率和优秀率

四,学生评价查看

教师在下拉框中选择某份试题,可以看到所有考试过此试卷的学生对此试卷的评价和意见。

五,窗口。

功能:

显示当前窗口。

六,帮助

子菜单:

关于。

功能:

显示动画。

管理员窗口

菜单项:

一,用户管理

子菜单:

1,新建用户。

(1)功能:

新建学员用户。

(2)功能:

新建教员用户。

2,查询及修改学员。

功能:

(1)按用户名模糊查询学员。

(2)右键修改学员状态。

(3)右键删除学员。

3,用户信息列表。

(1)学员信息列表。

功能:

按性别查询学员列表。

并可增加,修改学员各属性。

(2)教员信息列表。

功能:

按性别查询教师列表。

并可增加,修改教师各属性。

4,窗口。

功能:

显示当前窗口。

5,帮助。

子菜单:

关于。

功能:

倒计时。

学员窗口

一维护个人信息对个人信息进行查询,修改

二:

在线答题。

功能:

(1)可以选择已激活试卷答题。

(2)在线评分。

(3)保存考试成绩可供教师查询。

三:

学生评价

学生评价此次考试的难度,与大纲符合程度,为教师以后出试卷提供参考

具体设计可以学生在下拉框中选择本次考试的一个难度,并在文本框中输入一个主观意见。

 

4.相关技术及知识点

ADO.NET提供了多种对象模型,比较典型的以下有五种,它们全部归类System.Data.SqlClient名称空间下。

4.1SqlConnection对象

ADO.NET使用SqlConnection对象与SQLServer进行连接。

连接字符串的常用形式有两种:

1.使用Windows集成安全身份认证,例如:

stringconnectionString="IntegratedSecurity=SSPI;Database=MyDatabase.mdf;Server=localhost;";

2.在连接字符串中指定服务器名、用户id、用户口令、数据库名等信息。

例如:

stringconnectionString="server=localhost;uid=sa;pwd=123;database=MyDatabase.mdf";

然后通过连接字符串直接创建SqlConnection对象,如SqlConnectionconn=newSqlConnection(connectionString);

4.2SqlCommand对象

在ADO.NET中,有两种操作数据库的方式:

1.无连接的方式;

2.保持连接的方式。

不论哪种都可以通过SqlCommand对象提供的方法传递对数据库操作的命令,并返回命令执行结果。

在保持连接的方式下操作数据库的一般步骤为:

1.创建SqlConnection的实例;

2.创建SqlCommand的实例;

3.打开连接;

4.执行命令;

5.关闭连接。

SqlCommand对象提供了多种完成对数据库操作的方法。

常用有:

1.ExecuteNonQuery

该方法执行SQL语句的结果,但不返回命令执行的表数据,仅返回操作所影响的行数。

2.ExecuteReader

ExecuteReader方法提供了只向前的、顺序的快速读取数据库中数据的方法。

3.ExecuteScaler()

该方法用于执行SELECT查询,得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。

4.3SqlDataAdapter对象

SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。

使用这种方式操作数据库的一般步骤为:

1.创建SqlConnection的实例;

2.创建SqlDataAdapter的实例,需要的话,根据select语句生成其他SQL语句;

3.创建DataSet的实例;

4.使用Fill方法将数据库中的表填充到DataSet的表中;

5.利用DataGridView或者其他控件对象编辑或显示数据;

6.需要的话,使用Update方法更新数据库。

SqlDataAdapter对象通过SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。

一般情况下,只需要提供SELECT语句和连接字符串创建SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。

4.4DataTable对象

ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源。

DataTable对象表示保存在本机内存中的表,它提供了对表中行列数据对象的各种操作。

可以直接将数据从数据库填充到DataTable对象中,也可以将DataTable对象添加到现有的DataSet对象中。

在断开连接的方式下,DataSet对象提供了和关系数据库一样的关系数据模型,代码中可以直接访问DataSet对象中的DataTable对象,也可以添加、删除DataTable对象。

1.创建DataTable对象

可以通过以下两种方式创建DataTable对象:

1)通过DataTable类的构造函数创建DataTable对象,例如:

DataTabletable=newDataTable();

2)通过DataSet的Tables对象的Add方法创建DataTable对象,例如:

DataSetdataset=newDataSet();

DataTabletable=dataset.Tables.Add("MyTableName");

2.在DataTable对象中添加列

在DataTable对象中添加列的最常用的方法是通过DataTable对象的Column属性中的Add方法。

添加后的每一列都是一个DataColumn对象。

3.设置DataTable对象的主键

关系数据库中的表一般都有一个主键,用来惟一标识表中的每一行记录。

通过DataTable对象的PrimaryKey属性可以设置Datatable的主键。

主键可以是一个或者多个DataColumn对象组成的数组。

例如:

DataColumn[]key=newDataColumn[1];//dt是一个DataTable对象

key[0]=dt.Columns[0];

dt.PrimaryKey=key;

4.在DataTable对象中创建行

DataTable对象的每一行都是一个DataRow对象,所以创建行时可以先利用DataTable对象的NewRow方法创建一个DataRow对象,并设置新行中各列的数据,然后利用Add方法将DataRow对象添加到表中

5.将SQLServer数据库中的表填充到DataTable中

除了可以直接创建DataTable对象的行列信息外,也可以通过DateAdapter对象的Fill方法将SQLServer数据库中的表填充到DataTable对象中。

4.5DataSet对象

1.创建DataSet对象

使用创建的DataSet对象可以完成各种数据操作,利用向导生成的数据库数据源是一个强类型的DataSet以及一对或多对强类型的DataTable和TableAdapter的组合。

类型化的DataSet是一个生成的类,是从.NETFramework的一般DataSet类衍生来的,但提供了已定义的架构以及特定于该架构的属性和方法。

同时,对于DataSet中的每个表,还生成了特定于该DataSet的附加衍生类,而且每个类都为相关的表提供了特定的架构、属性和方法。

当然,也可以直接创建一般的DataSet对象,例如:

DataSetmyDataset=newDataSet();

2.填充DataSet对象

创建DataSet后,就可以使用SqlDataAdapter对象把数据导入到DataSet对象中,比如通过Fill方法将数据填充到DataSet中的某个表中。

4.6DataView

DataView就时数据视图,为数据库结构提供了外模式的实现。

同时DataView也可以为窗体控件和Web控件提供数据绑定功能,在每一个DataTable中内建了一个DataView为:

DataTable.DefaultView();创建DataViewDataViewsortedView=newDataView(dataTable);对DataView进行排序dataTable.DefaultView.sort="lastName";

dataTable.DefaultView.sort="lastName,FirstNameDESC";

4.7更新DB

在DataSet中,每一个DataTable对应着一个DataAdapter,DataAdapter.Update()时,DataTable自动更新。

4.8事务

tx=conn.BeginTransaction(IsolationLevel.Serializable);

invDA.SelectCommand.Transaction=tx;

5.数据库设计

5.1系统总体结构

系统总体结构设计采用了MVC的思想。

根据面向对象分析阶段中类划分结果,规划界面类、控制类、实体类及调用关系。

在面向对象分析阶段,我们把类大体上分成了界面和实体两类。

但是,为了提高代码的易维护性、易读性,增加类内部的纯度、类之间调用的灵活性,我们把控制代码另封装为一个类,即控制类,使系统中类之间的调用关系如下图所示:

 

 

5.2管理系统表关系

5.3表详细信息

5.3.1管理员表Admin详细信息

 

图5.3.1管理员表Admin详细信息

 

5.3.2学生表Student详细信息

 

图5.3.2学生表Student详细信息

5.3.3年级表Grade详细信息

 

5.3.3年级表Grade详细信息

5.3.4班级表Class详细信息

 

5.3.4班级表Class详细信息

5.3.5状态表UserState详细信息

 

5.3.5状态表UserState详细信息

5.4程序实现:

 

privatevoidtsmiAddStuUser_Click(objectsender,EventArgse)

{

AddStudentFormaddStudentForm=newAddStudentForm();

addStudentForm.MdiParent=this;

addStudentForm.Show();

}

 

privatevoidtsmiaddNewTeacher_Click(objectsender,EventArgse)

{

AddTeacherFormaddTeacherForm=newAddTeacherForm();

addTeacherForm.MdiParent=this;

addTeacherForm.Show();

}

 

 

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceMySchool

{

publicpartialclassAddStudentForm:

Form

{

publicAddStudentForm()

{

InitializeComponent();

}

///

///确认增加用户

///

///

///

privatevoidbtnAddStuUserOK_Click(objectsender,EventArgse)

{

if(IsValidate())//输入验证成功

{

Studentstudent=newStudent();//新建学员对象student

student.LoginId=txtStuName.Text.Trim();//以下依次给student属性set值

student.LoginPwd=txtStuPwd.Text.Trim();

student.UserStateId=rdoStatusIn.Checked?

(int)rdoStatusIn.Tag:

(int)rdoStatusOut.Tag;//条件表达式,选择活动状态,返回活动状态Id

student.ClassId=ClassDao.GetClassId(cboClass.Text);//通过班级名获得班级编号

student.StudentNO=txtStuNO.Text.Trim();

student.StudentName=txtStuRealName.Text.Trim();

student.Sex=rdoStuMale.Checked?

rdoStuMale.Text:

rdoStuFemale.Text;

student.Phone=txtStuTel.Text.Trim();

student.Email=txtStuEmail.Text.Trim();

StudentDAO.AddStudent(student);//增加新学员

txtStuName.Text="";//增加成功清空输入框

txtStuPwd.Text="";

txtStuConfirmPwd.Text="";

txtStuRealName.Text="";

txtStuNO.Text="";

txtStuTel.Text="";

txtStuEmail.Text="";

}

}

///

///关闭按钮

///

///

///

privatevoidbtnAddStuUserCancel_Click(objectsender,EventArgse)

{

this.Close();

}

 

///

///界面加载时给年级框赋值

///

///

///

privatevoidAddStudentForm_Load(objectsender,EventArgse)

{

Listlist=newList();//新建List

list=GradeDao.GradeList();//得到所有年级的list

foreach(Gradegradeinlist){//遍历list,给年级下拉框cboGrade赋值

this.cboGrade.Items.Add(grade.GradeName);

}

 

}

///

///当年级下拉框变动时,动态给班级下拉框对应赋值

///

///

///

privatevoidcboGrade_SelectedIndexChanged(objectsender,EventArgse)

{

cboClass.ResetText();//重置cboClass使之非选。

cboClass.Items.Clear();//清空cboClass原有下拉选项

stringgradeName=this.cboGrade.Text;//获取年级

intgradeId=GradeDao.GetGradeIdByName(gradeName);//通过年级名获取年级编号

Listlist2=newList();//新建Class集合list2

list2=ClassDao.FindClassByGradeId(gradeId);//通过年级编号查找班级,并返回班级的集合

foreach(Classclass1inlist2)//遍历list2给cblClass赋值

{

this.cboClass.Items.Add(class1.ClassName);

}

}

///

///输入验证

///

///

privateboolIsValidate()

{

if(txtStuName.Text=="")

{

MessageBox.Show("请输入用户名","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

txtStuName.Focus();

returnfalse;

}

elseif(txtStuPwd.Text=="")

{

MessageBox.Show("请输入密码","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

txtStuPwd.Focus();

returnfalse;

}

elseif(!

txtStuPwd.Text.Equals(txtStuConfirmPwd.Text))

{

MessageBox.Show("两次密码输入不一致","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

txtStuConfirmPwd.Focus();

returnfalse;

}

elseif(!

rdoStatusIn.Checked&&!

rdoStatusOut.Checked)

{

MessageBox.Show("请选择状态","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

returnfalse;

}

elseif(txtStuRealName.Text=="")

{

MessageBox.Show("请输入学员姓名","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

txtStuRealName.Focus();

returnfalse;

}

elseif(txtStuNO.Text=="")

{

MessageBox.Show("请输入学号","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

txtStuNO.Focus();

returnfalse;

}

elseif(!

rdoStuMale.Checked&&!

rdoStuFemale.Checked)

{

MessageBox.Show("请选择性别","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

returnfalse;

}

elseif(c

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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