基于net技术的会议管理系统的设计与实现大学论文Word格式.docx
《基于net技术的会议管理系统的设计与实现大学论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于net技术的会议管理系统的设计与实现大学论文Word格式.docx(32页珍藏版)》请在冰点文库上搜索。
3需求分析
3.1任务概述
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答:
系统必须做什么?
需求分析通常提出对系统的功能需求、性能需求、可靠性和可用性需求等多种需求。
会议室的合理分配不仅利于公司资源最大程度的利用,而且有利于提高会议质量,解决了因资源竞争产生的一系列问题避免冲突。
会议管理是一项需要重视的工作,本软件可以让会议室的利用率进一步提高,管理员方便管理,避免管理中容易出现的一些错误。
使用本软件要求用户熟悉Windows操作,并且有一定的软件操作基础。
预计本软件将会在一些小的会议室租赁公司中得到广泛使用。
3.2性能要求
1)系统安全、可靠
2)功能齐全
3)界面清晰大方,操作简单
4)易于维护和扩充
3.3数据流图顶层数据流图如图3.1所示:
0层数据流图如3.2所示:
3.4
数据字典数据字典是开发者与用户相互沟通的有效途径之一。
它能形象的向用户描述开发者的意图,使用户明白数据库可能具有的项目数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。
数据字典卡片:
名字:
客户信息
别名:
描述:
客户的个人信息,用于对客户的确认
定义:
客户信息=客户ID+工作单位+电话+密码
位置:
输入到会议系统管理员端
申请会议室客户清单
已申请会议室的客户的记录
申请会议室客户清单=客户信息的合集
5
会议室申请信息
客户申请的会议室时间和类型,用于确定客户使用的会议室
会议室申请信息=申请会议室时间+会议室类型
传输到会议系统管理员端
会议室申请通知信息
客户的会议室信息,根据客户的使用时间和类型确定的
会议室申请通知信息=客户的申请时间+会议室类型
已租出会议室信息
会议室出租情况的信息
已租出会议室信息=已处理的会议室申请
输出到打印机
客户使用会议室记录
已申请的客户在会议室出租公司的记录
客户使用会议室记录=客户ID+会议室信息
输出到会议系统管理员端
名称:
管理员表
对管理员的描述
管理员=用户名+密码
4概要设计
4.1定义
可行性:
用最小的代价在尽可能段的时间内确定问题是否能解决,是否值得解决,但并不直接解决问题。
即在较高层次上以抽象方式进行需求分析和设计。
技术可行性:
对要开发的项目的功能、性能和限制条件进行分析,确定在现有资源条件下,技术风险有多大,项目是否能实现。
社会可行性:
开发项目是否会在社会上、政治上引起侵权、破坏或其他责任问题。
系统流程图:
用图形符号描述组成系统的各个元素以及信息在这些部件之间的流动情况。
数据流图(DFD):
用来描绘软件系统的逻辑模型的工具,它描绘数据在软件系统中流动和被处理的逻辑过程。
数据源点/终点:
正方形表示
用于反映数据流图与外部实体之间的联系。
数据字典:
用来定义数据流图中各个元素具体含义,它的一种准确的,无二异性的说明方式,为系统的分析、设计和维护提供了有关元素的详细描述。
4.2任务概述
本系统旨在开发一个实用的会议室管理系统,利用信息化手段辅助管理,达到提升管理效率的目的。
4.3总体设计
通过详细调查社区管理信息,充分了解了系统的概况,明确管理员和用户的各种需求,确定本次设计的会议管理系统包括如图4.1所示的几大功能:
5详细设计
5.1编写目的
软件详细设计就是在软件总体设计的基础上,考虑如何实现定义的软件系统。
直到对系统中的每个模块给出了足够详细的过程描述。
在详细设计以后,程序员仍将根据详细设计的过程编写出实际的程序代码。
详细设计的目标是确定应该怎样具体实现所需求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
5.2数据库设计
5.1.1会议管理系统E-R图
E-R图如图5.1所示:
5.2.1关系模型
关系模型的逻辑结构是一组关系模式的集合。
将E-R图转换为关系模式就是要将实体型、实体的属性和实体性之间的联系转换为关系模式。
据以上E-R图以及实体集间1:
1联系,m:
n联系,m:
n联系的转换规则,可以将E-R转换为关系模型。
关系模型为(其中加下划线的为主码):
会议室(会议编号,类型,价格,状态)
预订(编号,会议室类型,时间,电话,公司名称)
管理员(用户名,密码)
用户(编号,姓名,电话,密码,公司名称)
5.3前台主要界面
5.3.1登陆界面
首先连接数据库进入登录窗口,登录窗口如5.2所示:
usingSystem;
usingSystem.Data;
using
System.Configuration;
using
System.Web;
System.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclass_Default:
System.Web.UI.Page{protectedvoid
Page_Load(objectsender,EventArgse)
{9}protectedvoidBtnOk_Click(Objectsender,EventArgse){stringStrYhm=TxtYhm.Text.Trim();
stringStrMm=TxtMm.Text.Trim();
if(StrYhm=="
"
||StrMm=="
){
Response.Write("
<
script>
alert('
请输入用户名或密码!
'
);
/script>
}else{SqlConnectionmycon=newSqlConnection(Class1.con);
mycon.Open();
SqlCommandmycom=mycon.CreateCommand();
mycom.CommandText="
select用户ID,密码from用户表where用户ID='
+StrYhm+"
and密码='
+StrMm+"
;
SqlDataReadermyread=mycom.ExecuteReader();
boolflag=myread.Read();
if(flag){Response.Redirect("
main.aspx"
}else{Response.Write("
登录失败!
}mycon.Close();
mycom.Dispose();
}}protectedvoidBtnCancel_Click(Objectsender,EventArgse){TxtYhm.Text="
TxtMm.Text="
}}
5.3.2用户注册界面用户注册如图5.3所示:
usingSystem.
Collections;
System.Data;
System.Web.UI;
System.Web.UI.WebControls;
publicpartialclasszhuce:
{}protectedvoidBtnOk_Click(objectsender,EventArgse)
{SqlConnection
mycon=newSqlConnection(Class1.con);
SqlCommand
mycom=mycon.CreateCommand();
mycom.CommandText="
insertinto
用户表values('
+TxtYhid.Text.Trim()+"
'
+TxtDh.Text.Trim()+"
+TxtGsm.Text.Trim()+"
+TxtMm.Text.Trim()+"
)"
Int32flag1=mycom.ExecuteNonQuery();
//执行sql语句,并返回获得值11if(flag1>
0)//如果数据中没有记录或有多条记录则抱错
{Response.Redirect("
Default.aspx"
}else{Label1.Text="
添加失败"
}
mycon.Close();
}protectedvoidBtnCancel_
Click(objectsender,EventArgse){TxtYhid.Text="
TxtDh.Text="
TxtGsm.Text="
5.3.3用户申请会议室用户申请会议室如图5.4所示:
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI.HtmlControls;
publicpartialclassAddsq
:
System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}publicvoidBtnOk_Click(objectsender,EventArgse)
{if((Txtyh.Text=="
)||(Txtgs.Text=="
)||(Txtsj.Text=="
)||(Txtlxdh.Text=="
)
||(Txthyslx.Text=="
)){Response.Write("
不能为空!
)<
}else
{SqlConnectionmycon=newSqlConnection(Class1.con);
SqlDataAdaptermyadapter=newSqlDataAdapter("
selectmax(编号)as编号from预定表"
mycon);
DataSetmyds=newDataSet();
myadapter.Fill(myds,"
ydb"
Int32li1=Convert.ToInt32(myds.Tables["
].Rows[0][0]);
Int32li2=li1+2;
SqlConnectionmycon1=newSqlConnection(Class1.con);
mycon1.Open();
SqlCommandmycom1=mycon1.CreateCommand();
mycom1.CommandText="
insertinto预定表(编号,用户ID,公司名,时间,电话,会议室类型,申请状态)values('
+li2+"
+Txtyh.Text.Trim()+"
+Txtgs.Text.Trim()+"
+Txtsj.Text.Trim()+"
+Txtlxdh.Text.Trim()+"
+Txthyslx.Text.Trim()+"
未处理'
Int32flag1=mycom1.ExecuteNonQuery();
mycon1.Close();
SqlConnectionmycon2=newSqlConnection(Class1.con);
mycon2.Open();
SqlCommandmycom2=mycon2.CreateCommand();
mycom2.CommandText="
insertinto结账表(编号,用户ID,公司名,时间,会议室类型,价格,结账状态)values('
+Txthyslx.Text.Trim()+"
2000'
未结账'
Int32flag2=mycom2.ExecuteNonQuery();
mycon2.Close();
if((flag1>
0)&
&
(flag2>
0))
{Response.Write("
添加申请成功!
}}
5.4系统后台主要界面
5.4.1后台登陆
后台登陆如图5.5所示:
System.Web.UI.Page{protectedvoid
{}14protectedvoidBtnOk_Click(Objectsender,EventArgse)
{stringStrYhm=TxtYhm.Text.Trim();
{Response.Write("
{SqlConnectionmycon=newSqlConnection(Class1.con);
select管理员ID,密码from管理员表where管理员ID='
+StrYhm+"
+StrMm+"
SqlDataReadermyread=mycom.ExecuteReader()
}
5.4.2查询会议室查询
会议室如图5.6所示:
publicpartialclassChaxun:
System.Web.UI.Page{publicStringstr,str1,str2;
protectedvoidPage_Load(objectsender,EventArgse)
{if(!
IsPostBack){bind1();
}}protectedvoidBtnOk_Click(objectsender,EventArgse)
{str1=TxtHysid.Text.Trim();
str2=TxtHyslx.Text.Trim();
if((str1=="
)&
(str2=="
请输入数据!
}if((str1!
="
)){str="
select会议室ID,类型,价格,状态from会议室表where会议室ID='
+str1+"
bind(str);
}if((str1=="
(str2!
))
{str="
select会议室ID,类型,价格,状态from会议室表where类型='
+str2+"
and类型='
+str2+"
}}protectedvoidBtnCancel_Click(objectsender,EventArgse){TxtHysid.Text="
TxtHyslx.Text="
}//无输入时绑定publicvoidbind1(){SqlConnectionmycon=newSqlConnection(Class1.con);
//where状态='
闲置'
select会议室ID,类型,价格,状态from会议室表"
mycon);
myadapter.Fill(myds,"
this.GridView1.DataSource=myds;
this.GridView1.DataBind();
}//有输入时板顶publicvoidbind(Stringst){SqlConnectionmycon1=newSqlConnection(Class1.con);
SqlDataAdaptermyadapter1=newSqlDataAdapter(st,mycon1);
DataSetmyds1=newDataSet();
myadapter1.Fill(myds1,"
ydb1"
this.GridView1.DataSource=myds1;
this.G