开放式实验管理系统系统设计2.docx
- 文档编号:29297040
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:29
- 大小:916.92KB
开放式实验管理系统系统设计2.docx
《开放式实验管理系统系统设计2.docx》由会员分享,可在线阅读,更多相关《开放式实验管理系统系统设计2.docx(29页珍藏版)》请在冰豆网上搜索。
开放式实验管理系统系统设计2
学生实验报告
实验项目名称:
开放式实验管理系统—系统设计实验学时:
同组学生姓名:
实验地点:
实验日期:
成绩:
批改教师:
批改时间:
一、实验目的和要求
1、目的:
在实验一基础上完成系统的体系结构的建立和系统设计工作,并给出相应的规格系统模型。
2、要求:
功能结构图设计,软件处理流程设计,类图设计,实例连接及动态模型,输出设计(主要指打印输出设计),存储文件格式设计(数据库结构设计),输入设计(主要指数据录入卡设计),
二、实验仪器和设备
1、支撑软件
操作系统:
WindowsXPProfessional
数据库软件:
SQLSERVER2000
开发工具及环境:
VisualStudio.Net2005
2、支撑硬件
机器配置最低要求:
硬盘可用空间20G以上;CPUP31G以上;内存256M以上;显卡要求32真彩、分辨率1024*768以上;建议使用PC服务器。
三、实验过程
1、系统的功能结构
本系统总的功能结构图如图所示。
开放式实验室教学管理系统
前台
后台
浏览实验信息
管理学生实验报告
学生登录
教师登录
管理员登录
批改实验报告
预约实验
个人资料管理
学生信息管理
教师信息管理
实验信息管理
管理员管理
系统设置
查询实验成绩
2、类图设计
1、信息资源管理子系统类/对象图
2、实验室管理子系统类/对象图
实验室
名称
编号
级别
地点
类别
面积
建立年份
固定资产
电话
所有属性的设置方法
和获取方法
实验室操作
实验室
添加实验室
修改实验室
删除实验室
查看实验室信息
5、系统管理子系统类/对象图
<图8用户类><图8管理用户类>
<图8登陆类><图8更改密码类>
3、动态模型
(1)部分子系统中部分对象的状态图
<图2.1信息资源对象状态图>
<图2.2设备对象状态图>
<图2.3课程对象状态图>
<图2.4用户对象状态图>
(2)部分子系统的活动图
<图3.1信息资源管理模块活动图>
<图3.2设备管理模块活动图>
<图3.5系统管理模块活动图>
4、数据库设计
数据库是管理信息系统的核心,一个良好的数据库结构既具有数据冗余少、操作处理过程简单等特点,同时也应具有信息查找比较容易、系统开销低等特点[6]。
本系统在进行数据库设计时,先根据在需求分析中得到的业务数据流,进行高度抽象得出系统实体,构造E-R图,然后再将E-R图转换生成特定的DBMS支持下的关系模式,再对确定的关系数据模式进行优化,最后确定数据的物理存储。
4.1概念结构设计
概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。
它独立于逻辑结构设计和DBMS。
现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。
对象类型的组成成分可以抽象为实体的属性。
为此本系统从业务逻辑数据流中抽象出各个实体:
学生、教师、管理员、实验课程、实验报告等。
并根据系统实际确定各实体之间的关系。
基于以上对系统数据信息流的分析和抽象,我们可以设计出本系统的E-R图(实体-联系图)如下:
图2学生E-R图
图3管理员E-R图
4.2逻辑结构设计
设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。
设计逻辑结构时要将概念结构转换为一般的关系、网状、层次模型,并将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换,对数据模型进行优化,最后再设计外模式。
由此,我们将概念结构得出的结果(E-R图)向特定DBMS支持下的数据模型转换得出如下表:
表1Student(学生)
字段
数据类型
长度
描述
Sid
nchar
10
学号(主键)
Sname
char
8
姓名
Sex
varchar
2
性别
Pwd
varchar
20
密码
Grade
varchar
50
年级
Major
varchar
50
专业
Class
varchar
50
班级
Phone
varchar
50
电话
varchar
50
邮箱
Abstract
text
16
备注
表2Major(专业)
字段
数据类型
长度
描述
Mid
varchar
50
专业编号(主键)
Major
char
8
专业名称
表3Grade(班级)
字段
数据类型
长度
描述
Mid
varchar
50
专业编号(主键)
Gid
int
4
班级编号(主键)
Grade
varchar
50
班级名称
表4Lib_Info(实验信息)
字段
数据类型
长度
描述
Cid
nchar
10
实验编号(主键)
Cname
varchar
50
实验名称
Ccontent
text
16
实验内容
Wanted
int
4
预约限制人数
Real
int
4
实际预约人数
Date
datetime
8
时间
Address
varchar
50
地点
Score
int
4
实验学分
Teacher
varchar
8
辅导教师
Worker
text
8
工作人员
表5Lib_Book(预约实验)
字段
数据类型
长度
描述
Cid
nchar
10
实验编号(主键)
Sid
nchar
10
学生编号(主键)
Check
int
4
是否审核
表6Lib_Report(实验报告)
字段
数据类型
长度
描述
Cid
nchar
10
实验编号(主键)
Sid
nchar
10
学号(主键)
Tid
int
4
教师编号
Title
char
10
实验题目
Content
char
10
实际内容
Abstract
text
16
备注
Score
int
4
实验学分
表7Lib_Public(实验发布)
字段
数据类型
长度
描述
ID
int
4
实验报告编号(主键)
Title
varchar
50
报告题目
Content
text
16
报告内容
Time
datetime
8
添加时间
表8Teacher(教师)
字段
数据类型
长度
描述
TID
int
4
教师编号(主键)
Tname
char
10
教师姓名
Tsex
char
2
教师性别
Tpwd
varchar
50
密码
Tphone
varchar
50
电话
在对系统进行数据库设计时,为了对关系模式进一步优化和完善,系统通过设置实体唯一主健、数据类型及长度约束来保证系统实体的完整性,数据正确的域完整性。
系统还设置了表间约束关系来维护表与表之间数据一致性的参照完整性。
表间约束关系如图4:
图4表间的约束关系
前面我们根据用户需求设计了局部应用视图,这种局部应用视图只是概念模型,用E-R图表示。
在我们将概念模型转换为逻辑模型后,即生成了整个应用系统的模式后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。
目前关系数据库管理系统一般都提供了视图概念,支持用户的虚拟视图。
我们可以利用这一功能设计更符合局部用户需要的用户外模式。
定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。
由于用户外模式与模式是独立的,因此我们在定义用户外模式时应该更注重考虑用户的习惯与方便。
为此,系统为不同角色的用户定义了符合自己需求的视图[7]。
5.定义视图
以下定义的视图是为学生查询预约实验返回查询结果而设计的特定视图。
图5
下面是定义视图的相关代码:
CREATEVIEWdbo.View_lib_book_result
AS
SELECTdbo.Student.SidAS学号,dbo.Lib_Info.CidAS实验号,dbo.Student.SnameAS姓名,dbo.Lib_Info.CnameAS实验名,dbo.Lib_Book.[Check]AS审核,dbo.Lib_Info.[Date]AS时间,dbo.Lib_Info.AddressAS地点
FROMdbo.Lib_InfoINNERJOINdbo.Lib_BookONdbo.Lib_Info.Cid=dbo.Lib_Book.CidINNERJOINdbo.StudentONdbo.Lib_Book.Sid=dbo.Student.Sid
6关键模块设计
6.1学生功能模块
1、学生登录
学生登录界面如图6:
图6学生登录
学生登录后进入主界面如图7:
图7系统主界面
关键代码:
protectedvoidbtnStuLogin_Click(objectsender,EventArgse)//登录系统
{
stringstuID=this.txtStuID.Text;
stringstuPwd=this.txtStuPwd.Text;
studentstu=newstudent();//定义一个学生对象
if(stu.checkStu(stuID,stuPwd)>0)//核实学生记录是否在数据库中存在
{
Session["stuID"]=stuID;
Response.Redirect("/student/Default.aspx");
}
else
{
this.lbstu.Visible=true;
this.lbstu.Text="错误提示:
用户名或密码错误,请重新输入!
";
}
}
2、学生预约实验
图8学生预约实验
关键代码:
publicpartialclassstudent_book:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
this.IsPostBack)
{
if(check_number())//核实该实验人数是否已经超出上限
{
if(check_stu())//核实学生是否已经预约该实验
{
Response.Write("
不能再对此实验进行预约!
');window.location.href='book_online.aspx';");
}
else
{
update_lib_info();
book();
}
}
else
{
Response.Write("
不能再对此实验进行预约!
');window.location.href='book_online.aspx';");
}
}
}
protectedvoidbook()//预约实验
{
stringcid=Request.QueryString["cid"];
stringstrsql="insertintoLib_Bookvalues('"+cid+"','"+Session["stuID"]+"','1')";
studentstu=newstudent();
stu.ExecuteSQL_operation(strsql);
Response.Write("
}
protectedvoidupdate_lib_info()//更新实验实际预约人数
{
stringcid=Request.QueryString["cid"];
stringstrsql="updateLib_Infosetreal=real+1whereCid='"+cid+"'";
studentstu=newstudent();
stu.ExecuteSQL_operation(strsql);
}
publicboolcheck_stu()//核实学生是否已经预约该实验
{
stringcid=Request.QueryString["cid"];
stringstrsql="select*fromLib_BookwhereSid='"+Session["stuID"]+"'andCid='"+cid+"'";
stringstrconn=ConfigurationSettings.AppSettings["strconn"];
SqlConnectionconn=newSqlConnection(strconn);
conn.Open();
SqlCommandcmd=newSqlCommand(strsql,conn);
SqlDataReadersdr=cmd.ExecuteReader();
if(sdr.Read())
{
returntrue;
}
else
{
returnfalse;
}
}
protectedboolcheck_number()//核实该实验人数是否已经超出上限
{
stringcid=Request.QueryString["cid"];
stringstrsql="select*fromLib_InfowhereCid='"+cid+"'";
stringstrconn=ConfigurationSettings.AppSettings["strconn"];
SqlConnectionconn=newSqlConnection(strconn);
SqlCommandcmd=newSqlCommand(strsql,conn);
conn.Open();
SqlDataReadersda=cmd.ExecuteReader();
if(sda.Read())
{
intwanted=int.Parse(sda.GetValue(3).ToString());
intreal=int.Parse(sda.GetValue(4).ToString());
if(real { returntrue; } else { returnfalse; } } else { returnfalse; } 3、预约实验信息查询 图9预约实验信息查询 关键代码: publicpartialclassstudent_search_lib: System.Web.UI.Page { protectedvoidPage_Load(objectsender,EventArgse) { } protectedvoidbtnOK_Click(objectsender,EventArgse) { stringstrconn=ConfigurationSettings.AppSettings["strconn"]; stringstrsql=""; if(this.rbtCid.Checked)//当选择实验号时 { strsql="select*fromView_lib_book_resultwhere实验号='"+this.txtTitle.Text+"'"; } if(this.rbtStuID.Checked)//当选择学号时 { strsql="select*fromView_lib_book_resultwhere学号='"+this.txtTitle.Text+"'"; } if(this.rbtSubTitle.Checked)//当选择实验题目时 { strsql="select*fromView_lib_book_resultwhere实验名like'%"+this.txtTitle.Text+"%'"; } SqlConnectionconn=newSqlConnection(strconn); SqlDataAdaptersda=newSqlDataAdapter(strsql,conn);//创建一个数据适配器对象 DataSetds=newDataSet();//创建一个数据记录集 sda.Fill(ds,"resultds");//用数据适配器对象填充数据集 this.Panel1.Visible=true; this.GridView1.DataSource=ds.Tables["resultds"].DefaultView;//绑定到数据源 this.GridView1.DataBind();//绑定到GridView1控件 } } 6.2教师功能模块 教师批改学生实验报告如图10所示: 关键代码: protectedvoidBut_Click(objectsender,EventArgse) { for(inti=0;i { CheckBoxcb=this.GridView1.Rows[i].FindControl("CheckBox1")asCheckBox; if(cb.Checked) { stringsid=((Label)GridView1.Rows[i].Cells[1].FindControl("Label1")).Text; stringcid=GridView1.Rows[i].Cells[6].Text; stringgrade=((DropDownList)GridView1.Rows[i].Cells[10].FindControl("ddlCatagory")).Text; if(grade=="请选择级别") { Response.Write(" ');"); } else { teachertea=newteacher(); tea.set_socre(sid,cid,grade); Response.Write(" ');"); show_lib_report(); } } } 图10教师批改学生实验报告 6.3系统管理员功能模块 (1)学生信息编辑如图11所示: 关键代码: protectedvoidbtnEdit_Click(objectsender,EventArgse) { stringsid=Request.QueryString["sid"];//接收上一页编辑管理页面传过来的学号值。 studentstu=newstudent(); stu.stuID=sid.ToString(); stu.stuName=this.txtName.Text; if(this.rbtMale.Checked) { stu.stuSex="男"; } else { stu.stuSex="女"; } stu.stuPwd=this.txtPwd.Text; stu.stuGrade=this.DropDownList2.SelectedItem.Text; stu.stuMajor=this.DropDownList1.SelectedItem.Text; stu.stuClass=this.DropDownList3.SelectedItem.Text; stu.stuPhone=this.txtPhone.Text; stu.stuEmail=this.txtEmail.Text; stu.stuAbstract=this.TextArea1.Value; if(stu.update_student(stu))//更新学生记录 { Response.Write(" ');window.location.href('stu_Edit.aspx');"); } else { Response.Write(" 请返回继续修改! ');window.location.href('stu_Edit.aspx');"); }} 图11学生信息编辑 (2)实验报告信息删除如图12所示: 图12实验报告信息删除 关键代码: publicpartialclassstudent_stu_mag_Delete_report: System.Web.UI.Page { protectedvoidPage_Load(objectsender,EventArgse) { if(! this.IsPostBack) { stringstrconn=ConfigurationSettings.AppSettings["strconn"]; SqlConnectionconn=n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开放式 实验 管理 系统 设计