1、会议管理系统的分析与设计552020年5月29日文档仅供参考软件工程实验报告会议管理系统的分析与设计课程设计任务书.doc学生姓名学号班级成绩指导教师计算机科学与技术系 6月 13日摘 要会议是人们为了解决某个共同的问题或出于不同的目的聚集在一起进行讨论、交流的活动,它往往伴随着一定规模的人员流动和消费。当前大部分会议的主办方均有意尝试信息化更强的会议活动管理系统进行会议管理的建设,不但节约开发周期、而且费用低廉、同样也能够自定义网站样式及风格,而且在线注册环节比自主开发的要更为稳定和可靠。本次实验利用Visual C# 作为开发的语言工具,SQL server作为数据库开发工具,开发出了一个
2、小型的会议室管理系统。关键词:会议;数据库;管理系统目 录1课题描述12 可行性研究报告22.1问题描述22.2可行性研究的前提22.2.1要求22.2.2可行性研究方法23 需求分析33.1任务概述33.3数据流图33.4数据字典44 概要设计64.1定义64.2任务概述64.3总体设计65 详细设计75.1编写目的75.2数据库设计75.1.1会议管理系统E-R图75.2.1关系模型75.3前台主要界面85.3.1登陆界面85.3.2用户注册界面95.3.3用户申请会议室115.4系统后台主要界面135.4.1 后台登陆135.4.2 查询会议室145.4.3 处理用户申请175.4.4删
3、除用户信息195.4.5处理用户结账216 软件测试246.1编写目的246.2测试内容24总 结27参考文献281课题描述 当今社会竞争日益激烈,公司会议也不断增多,会议信息量也不断增大,公司经常需要会议进行沟通,解决问题以及制定决策,而现在公司会议管理效率很低,容易出错,因此利用信息化管理会议已经成为公司的急切需要。本实验利用ASP.NET技术进行会议管理系统的设计与实现,处理会议信息以及相关项目管理功能,更方便了用户和管理者的使用。信息化处理是当今社会不可避免的趋势,单一的手工操作已经不能满足规模日益增大的企业。随着计算机技术的发展,以及计算机在企业单位中的应用普及,计算机强大的功能已为
4、人们深刻认识。2 可行性研究报告2.1问题描述本会议室管理系统包括各种会议室的信息,用户能够根据需要申请、修改、删除会议室:1)用户需先注册一个账号,经过注册的账号登陆会议室管理系统进行操作。2)申请相应的会议室后,如果需要继续使用,能够申请会议室。3)也能够删除申请的会议室。管理员能够查询会议室、处理用户申请、删除用户以及查看编辑用户结账信息:1)管理员登陆会议管理系统,查询会议室的情况(空闲或占用)。2)管理员能够处理用户申请,为用户分配会议室。3)管理员能够删除用户基本信息。4)管理员处理用户结账信息。2.2可行性研究的前提2.2.1要求功能:对用户管理、对会议室管理、对会议室申请管理。
5、性能:方便快捷的实现申请、修改、删除各功能。输出:客户信息、会议室信息、申请信息输入:客户信息、会议室信息、申请信息2.2.2可行性研究方法 目的是用最小的代价在尽可能的时间内确定问题是否能解决。1)技术可行性研究本软件利用Visual C# 作为开发的语言工具,SQL server作为数据库开发工具。技术评价:在现有的软件和硬件条件能够满足我们的需求,而且经过学习能够使用C#语言实现本系统,本系统管理对象单一,数据变化性频繁,计算并不难,因此采用数据库管理。2)经济可行性研究本系统开发工具Visual C# 软件和SQL server数据库软件本开发小组已经拥有,不再需要购买,本系统的开发成
6、本较低,从经济方面来说,能够开发。3 需求分析3.1任务概述需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答:系统必须做什么?需求分析一般提出对系统的功能需求、性能需求、可靠性和可用性需求等多种需求。会议室的合理分配,不但利于公司资源最大程度的利用,而且有利于提高会议质量,解决了因资源竞争产生的一系列问题,避免冲突。会议管理是一项需要重视的工作,本软件能够让会议室的利用率进一步提高,管理员方便管理,避免管理中容易出现的一些错误。使用本软件要求用户熟悉Windows 操作,而且有一定的软件操作基础。预计本软件将会在一些小的会议室租赁公司中得到广泛使用。3.2性能要求1)系统安全、可
7、靠2)功能齐全3)界面清晰大方,操作简单4)易于维护和扩充3.3数据流图顶层数据流图如图3.1所示:图3.1顶层数据流图0层数据流图如图3.2所示:图3.2层数据流图3.4数据字典数据字典是开发者与用户相互沟通的有效途径之一。它能形象的向用户描述开发者的意图,使用户明白数据库可能具有的项目。数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。数据字典卡片:名字:客户信息别名:描述:客户的个人信息,用于对客户的确认定义:客户信息=客户+工作单位+电话+密码 位置:输入到会议系统管理员端名字:申请会议室客户清单别名:描述:已申请会议室的客户的记录定义:申请会议室客户清
8、单=客户信息的合集位置:输入到会议系统管理员端名字:会议室申请信息别名:描述:客户申请的会议室时间和类型,用于确定客户使用的会议室定义:会议室申请信息=申请会议室时间+会议室类型位置:传输到会议系统管理员端名字:会议室申请通知信息别名:描述:客户的会议室信息,根据客户的使用时间和类型确定的定义:会议室申请通知信息=客户的申请时间+会议室类型位置:传输到会议系统管理员端名字:已租出会议室信息别名:描述:会议室出租情况的信息定义:已租出会议室信息=已处理的会议室申请位置:输出到打印机名字:客户使用会议室记录别名:描述:已申请的客户在会议室出租公司的记录定义:客户使用会议室记录=客户ID+会议室信息
9、位置:输出到会议系统管理员端名称:管理员表别名:描述:对管理员的描述定义:管理员用户名密码位置:输出到会议系统管理员端4 概要设计4.1定义可行性:用最小的代价在尽可能段的时间内确定问题是否能解决,是否值得解决,但并不直接解决问题。即在较高层次上以抽象方式进行需求分析和设计。技术可行性:对要开发的项目的功能、性能和限制条件进行分析,确定在现有资源条件下,技术风险有多大,项目是否能实现。社会可行性:开发项目是否会在社会上、政治上引起侵权、破坏或其它责任问题。系统流程图:用图形符号描述组成系统的各个元素以及信息在这些部件之间的流动情况。数据流图(DFD):用来描绘软件系统的逻辑模型的工具,它描绘数
10、据在软件系统中流动和被处理的逻辑过程。数据源点/终点:正方形表示 用于反映数据流图与外部实体之间的联系。数据字典:用来定义数据流图中各个元素具体含义,它的一种准确的,无二异性的说明方式,为系统的分析、设计和维护提供了有关元素的详细描述。4.2任务概述本系统旨在开发一个实用的会议室管理系统,利用信息化手段辅助管理,达到提升管理效率的目的。4.3总体设计经过详细调查社区管理信息,充分了解了系统的概况,明确管理员和用户的各种需求,确定本次设计的会议管理系统包括如图4.1所示的几大功能:图4.1 会议管理系统功能模块图5 详细设计5.1编写目的软件详细设计就是在软件总体设计的基础上,考虑如何实现定义的
11、软件系统。直到对系统中的每个模块给出了足够详细的过程描述。在详细设计以后,程序员仍将根据详细设计的过程编写出实际的程序代码。详细设计的目标是确定应该怎样具体实现所需求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段能够把这个描述直接翻译成用某种程序设计语言书写的程序。5.2数据库设计5.1.1会议管理系统E-R图E-R图如图5.1所示:图5.1 E-R图5.2.1关系模型关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模式就是要将实体型、实体的属性和实体性之间的联系转换为关系模式。据以上E-R图以及实体集间1:1联系,1:n联系,m:n联系的转
12、换规则,能够将E-R转换为关系模型。关系模型为(其中加下划线的为主码):会议室(会议编号,类型,价格,状态)预订(编号,会议室类型,时间,电话,公司名称)管理员(用户名,密码)用户(编号,姓名,电话,密码,公司名称)5.3前台主要界面5.3.1登陆界面首先连接数据库进入登录窗口,登录窗口如图5.2所示:5.2登录窗口using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.
13、WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void BtnOk_Click(Object sender, EventArgs e) string StrYhm = TxtYhm.Text
14、.Trim(); string StrMm = TxtMm.Text.Trim(); if (StrYhm = | StrMm = ) Response.Write(alert(请输入用户名或密码!);); else SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open(); SqlCommand mycom = mycon.CreateCommand(); mycom.CommandText = select 用户ID,密码 from 用户表 where 用户ID=+StrYhm+and 密码=+StrMm+; Sql
15、DataReader myread = mycom.ExecuteReader(); bool flag = myread.Read(); if (flag) Response.Redirect(main.aspx); else Response.Write(alert(登录失败!);); mycon.Close(); mycom.Dispose(); protected void BtnCancel_Click(Object sender, EventArgs e) TxtYhm.Text = ; TxtMm.Text = ; 5.3.2用户注册界面用户注册如图5.3所示:5.3用户注册界面
16、using System;using System.Collections;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;public partial class
17、 zhuce : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void BtnOk_Click(object sender, EventArgs e) SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open(); SqlCommand mycom = mycon.CreateCommand(); mycom.CommandText = insert into 用户表 values( + TxtYhid.T
18、ext.Trim() + , + TxtDh.Text.Trim() + , + TxtGsm.Text.Trim() + , + TxtMm.Text.Trim() + ); Int32 flag1 = mycom.ExecuteNonQuery();/执行sql语句,并返回获得值 if (flag1 0)/如果数据中没有记录或有多条记录则抱错 Response.Redirect(Default.aspx); else Label1.Text = 添加失败; mycon.Close(); mycom.Dispose(); protected void BtnCancel_Click(obje
19、ct sender, EventArgs e) TxtYhid.Text = ; TxtDh.Text = ; TxtGsm.Text = ; TxtMm.Text = ; 5.3.3用户申请会议室用户申请会议室如图5.4所示:5.4用户申请会议室using System;using System.Collections;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.Security;using System.Web.UI;us
20、ing System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;public partial class Addsq : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) public void BtnOk_Click(object sender, EventArgs e) if (Txtyh.Text = ) | (Txtgs.Text = ) | (Txt
21、sj.Text = ) | (Txtlxdh.Text = ) | (Txthyslx.Text = ) Response.Write(alert(不能为空!); else SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open(); SqlDataAdapter myadapter = new SqlDataAdapter(select max(编号)as 编号 from 预定表 , mycon); DataSet myds = new DataSet(); myadapter.Fill(myds, ydb); Int3
22、2 li1 = Convert.ToInt32(myds.Tablesydb.Rows00); Int32 li2 = li1 + 2; mycon.Close(); SqlConnection mycon1 = new SqlConnection(Class1.con); mycon1.Open(); SqlCommand mycom1 = mycon1.CreateCommand(); mycom1.CommandText = insert into 预定表 (编号,用户ID,公司名,时间,电话,会议室类型,申请状态) values( + li2 + , + Txtyh.Text.Trim
23、() + , + Txtgs.Text.Trim() + , + Txtsj.Text.Trim() + , + Txtlxdh.Text.Trim() + , + Txthyslx.Text.Trim() + ,未处理); Int32 flag1 = mycom1.ExecuteNonQuery(); mycon1.Close(); SqlConnection mycon2 = new SqlConnection(Class1.con); mycon2.Open(); SqlCommand mycom2 = mycon2.CreateCommand(); mycom2.CommandText
24、 = insert into 结账表 (编号,用户ID,公司名,时间,会议室类型,价格,结账状态) values( + li2 + , + Txtyh.Text.Trim() + , + Txtgs.Text.Trim() + , + Txtsj.Text.Trim() + , + Txthyslx.Text.Trim() + , ,未结账); Int32 flag2 = mycom2.ExecuteNonQuery(); mycon2.Close(); if (flag1 0) & (flag2 0) Response.Write(alert(添加申请成功!); else Response.
25、Write(alert(添加申请成功!); public void BtnCancel_Click(object sender, EventArgs e) Txtyh.Text = ; Txtgs.Text = ; Txtsj.Text = ; Txthyslx.Text = ; Txtlxdh.Text = ; Label1.Text = Class1.bh; 5.4系统后台主要界面5.4.1 后台登陆后台登陆如图5.5所示:图5.5后台登陆using System;using System.Data;using System.Configuration;using System.Web;u
26、sing System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Bt
27、nOk_Click(Object sender, EventArgs e) string StrYhm = TxtYhm.Text.Trim(); string StrMm = TxtMm.Text.Trim(); if (StrYhm = | StrMm = ) Response.Write(alert(请输入用户名或密码!);); else SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open(); SqlCommand mycom = mycon.CreateCommand(); mycom.CommandText
28、 = select 管理员ID,密码 from 管理员表 where 管理员ID= + StrYhm + and 密码= + StrMm + ; SqlDataReader myread = mycom.ExecuteReader(); bool flag = myread.Read(); if (flag) Response.Redirect(main.aspx); else Response.Write(alert(登录失败!);); mycon.Close(); mycom.Dispose(); protected void BtnCancel_Click(Object sender,
29、EventArgs e) TxtYhm.Text = ; TxtMm.Text = ; 5.4.2 查询会议室查询会议室如图5.6所示:图5.6查询会议室using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;usin
30、g System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class Chaxun : System.Web.UI.Page public String str,str1,str2; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) bind1(); protected void BtnOk_Click(object sender, EventArgs e) str1 = TxtHysid.Text.Trim(); st
31、r2 = TxtHyslx.Text.Trim(); if (str1=) & (str2=) Response.Write(alert(请输入数据!); if (str1!=) & (str2=) str = select 会议室ID,类型,价格,状态 from 会议室表 where 会议室ID= + str1 + ; bind(str); if(str1=) & (str2!=) str=select 会议室ID,类型,价格,状态 from 会议室表 where 类型=+str2+; bind(str); if (str1!=) & (str2!=) str = select 会议室ID,
32、类型,价格,状态 from 会议室表 where 会议室ID= + str1 + and 类型= + str2 + ; bind(str); protected void BtnCancel_Click(object sender, EventArgs e) TxtHysid.Text = ; TxtHyslx.Text = ; /无输入时绑定 public void bind1() SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open();/where 状态 =闲置 SqlDataAdapter myadapter =
33、 new SqlDataAdapter(select 会议室ID,类型,价格,状态 from 会议室表 , mycon); DataSet myds = new DataSet(); myadapter.Fill(myds, ydb); this.GridView1.DataSource = myds; this.GridView1.DataBind(); mycon.Close(); /有输入时板顶 public void bind(String st) SqlConnection mycon1 = new SqlConnection(Class1.con); mycon1.Open();
34、SqlDataAdapter myadapter1 = new SqlDataAdapter(st, mycon1); DataSet myds1 = new DataSet(); myadapter1.Fill(myds1, ydb1); this.GridView1.DataSource = myds1; this.GridView1.DataBind(); mycon1.Close(); public void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) this.GridView1.PageIn
35、dex = e.NewPageIndex; if (TxtHysid.Text.Trim() =) & (TxtHyslx.Text.Trim() = ) bind1(); else bind(str); 5.4.3 处理用户申请用户申请如图5.7所示:图5.7 用户申请处理申请如图5.8所示:图5.8处理申请 using System;using System.Collections;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Web;using System.We
36、b.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;public partial class Modifysq : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) bind(); public void GridView1_RowEditing(o
37、bject sender, GridViewEditEventArgs e) GridView1.EditIndex = e.NewEditIndex; bind(); public void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) GridView1.PageIndex = e.NewPageIndex; bind(); public void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) GridView1.EditIndex = -1; bind(); public void bind() SqlConnection mycon = new SqlConnection(Class1.con); mycon.Open(); SqlDataAdapter myadapter = new SqlDataAdapter(select 编号,用户ID,公司名,时间,会议室ID,会议