资源描述
软件工程试验汇报
会议管理系统分析和设计
课程设计任务书.doc
学生姓名
学号
班级
成绩
指导老师
计算机科学和技术系
6月 13日
摘 要
会议是大家为了处理某个共同问题或出于不一样目标聚集在一起进行讨论、交流活动,它往往伴伴随一定规模人员流动和消费。现在大部分会议主办方全部有意尝试信息化更强会议活动管理系统进行会议管理建设,不仅节省开发周期、而且费用低廉、一样也能够自定义网站样式及风格,而且在线注册步骤比自主开发要更为稳定和可靠。此次试验利用Visual C# 作为开发语言工具,SQL server作为数据库开发工具,开发出了一个小型会议室管理系统。
关键词:会议;数据库;管理系统
目 录
1课题描述 1
2 可行性研究汇报 2
2.1问题描述 2
2.2可行性研究前提 2
2.2.1要求 2
2.2.2可行性研究方法 2
3 需求分析 3
3.1任务概述 3
3.3数据流图 3
3.4数据字典 4
4 概要设计 6
4.1定义 6
4.2任务概述 6
4.3总体设计 6
5 具体设计 7
5.1编写目标 7
5.2数据库设计 7
5.1.1会议管理系统E-R图 7
5.2.1关系模型 7
5.3前台关键界面 8
5.3.1登陆界面 8
5.3.2用户注册界面 9
5.3.3用户申请会议室 11
5.4系统后台关键界面 13
5.4.1 后台登陆 13
5.4.2 查询会议室 14
5.4.3 处理用户申请 17
5.4.4删除用户信息 19
5.4.5处理用户结账 21
6 软件测试 24
6.1编写目标 24
6.2测试内容 24
总 结 27
参考文件 28
1课题描述
当今社会竞争日益猛烈,企业会议也不停增多,会议信息量也不停增大,企业常常需要会议进行沟通,处理问题和制订决议,而现在企业会议管理效率很低,轻易犯错,所以利用信息化管理会议已经成为企业急切需要。本试验利用ASP.NET技术进行会议管理系统设计和实现,处理会议信息和相关项目管理功效,更方便了用户和管理者使用。信息化处理是当今社会不可避免趋势,单一手工操作已经不能满足规模日益增大企业。伴随计算机技术发展,和计算机在企业单位中应用普及,计算机强大功效已为大家深刻认识。
2 可行性研究汇报
2.1问题描述
本会议室管理系统包含多种会议室信息,用户能够依据需要申请、修改、删除会议室:
1)用户需先注册一个账号,经过注册账号登陆会议室管理系统进行操作。
2)申请对应会议室后,假如需要继续使用,能够申请会议室。
3)也能够删除申请会议室。
管理员能够查询会议室、处理用户申请、删除用户和查看编辑用户结账信息:
1)管理员登陆会议管理系统,查询会议室情况(空闲或占用)。
2)管理员能够处理用户申请,为用户分配会议室。
3)管理员能够删除用户基础信息。
4)管理员处理用户结账信息。
2.2可行性研究前提
2.2.1要求
功效:对用户管理、对会议室管理、对会议室申请管理。
性能:方便快捷实现申请、修改、删除各功效。
输出:用户信息、会议室信息、申请信息
输入:用户信息、会议室信息、申请信息
2.2.2可行性研究方法
目标是用最小代价在尽可能时间内确定问题是否能处理。
1)技术可行性研究
本软件利用Visual C# 作为开发语言工具,SQL server作为数据库开发工具。
技术评价:在现有软件和硬件条件能够满足我们需求,而且经过学习能够使用C#语言实现本系统,本系统管理对象单一,数据改变性频繁,计算并不难,所以采取数据库管理。
2)经济可行性研究
本系统开发工具Visual C# 软件和SQL server数据库软件本开发小组已经拥有,不再需要购置,本系统开发成本较低,从经济方面来说,能够开发。
3 需求分析
3.1任务概述
需求分析是软件定义时期最终一个阶段,它基础任务是正确回复:系统必需做什么?需求分析通常提出对系统功效需求、性能需求、可靠性和可用性需求等多个需求。会议室合理分配,不仅利于企业资源最大程度利用,而且有利于提升会议质量,处理了因资源竞争产生一系列问题,避免冲突。会议管理是一项需要重视工作,本软件能够让会议室利用率深入提升,管理员方便管理,避免管理中轻易出现部分错误。
使用本软件要求用户熟悉Windows 操作,而且有一定软件操作基础。估计本软件将会在部分小会议室租赁企业中得到广泛使用。
3.2性能要求
1)系统安全、可靠
2)功效齐全
3)界面清楚大方,操作简单
4)易于维护和扩充
3.3数据流图
顶层数据流图图3.1所表示:
图3.1 顶层数据流图
0层数据流图图3.2所表示:
图3.2 0层数据流图
3.4数据字典
数据字典是开发者和用户相互沟通有效路径之一。它能形象向用户描述开发者意图,使用户明白数据库可能含有项目。数据字典是各类数据描述集合,它是进行具体数据搜集和数据分析后所取得关键结果。数据字典卡片:
名字:用户信息
别名:
描述:用户个人信息,用于对用户确实定
定义:用户信息=用户ID+工作单位+电话+密码
位置:输入到会议系统管理员端
名字:申请会议室用户清单
别名:
描述:已申请会议室用户统计
定义:申请会议室用户清单=用户信息合集
位置:输入到会议系统管理员端
名字:会议室申请信息
别名:
描述:用户申请会议室时间和类型,用于确定用户使用会议室
定义:会议室申请信息=申请会议室时间+会议室类型
位置:传输到会议系统管理员端
名字:会议室申请通知信息
别名:
描述:用户会议室信息,依据用户使用时间和类型确定
定义:会议室申请通知信息=用户申请时间+会议室类型
位置:传输到会议系统管理员端
名字:已租出会议室信息
别名:
描述:会议室出租情况信息
定义:已租出会议室信息=已处理会议室申请
位置:输出到打印机
名字:用户使用会议室统计
别名:
描述:已申请用户在会议室出租企业统计
定义:用户使用会议室统计=用户ID+会议室信息
位置:输出到会议系统管理员端
名称:管理员表
别名:
描述:对管理员描述
定义:管理员=用户名+密码
位置:输出到会议系统管理员端
4 概要设计
4.1定义
可行性:用最小代价在尽可能段时间内确定问题是否能处理,是否值得处理,但并不直接处理问题。即在较高层次上以抽象方法进行需求分析和设计。
技术可行性:对要开发项目标功效、性能和限制条件进行分析,确定在现有资源条件下,技术风险有多大,项目是否能实现。
社会可行性:开发项目是否会在社会上、政治上引发侵权、破坏或其它责任问题。
系统步骤图:用图形符号描述组成系统各个元素和信息在这些部件之间流动情况。
数据流图(DFD):用来描绘软件系统逻辑模型工具,它描绘数据在软件系统中流动和被处理逻辑过程。
数据源点/终点:正方形表示 用于反应数据流图和外部实体之间联络。
数据字典:用来定义数据流图中各个元素具体含义,它一个正确,无二异性说明方法,为系统分析、设计和维护提供了相关元素具体描述。
4.2任务概述
本系统意在开发一个实用会议室管理系统,利用信息化手段辅助管理,达成提升管理效率目标。
4.3总体设计
经过具体调查小区管理信息,充足了解了系统概况,明确管理员和用户多种需求,确定此次设计会议管理系统包含图4.1所表示几大功效:
图4.1 会议管理系统功效模块图
5 具体设计
5.1编写目标
软件具体设计就是在软件总体设计基础上,考虑怎样实现定义软件系统。直到对系统中每个模块给出了足够具体过程描述。在具体设计以后,程序员仍将依据具体设计过程编写出实际程序代码。具体设计目标是确定应该怎样具体实现所需求系统,也就是说,经过这个阶段设计工作,应该得出对目标系统正确描述,从而在编码阶段能够把这个描述直接翻译成用某种程序设计语言书写程序。
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联络转换规则,能够将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.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.Trim();
string StrMm = TxtMm.Text.Trim();
if (StrYhm == "" || StrMm == "")
{
Response.Write("<script>alert('请输入用户名或密码!');</script>");
}
else
{
SqlConnection mycon = new SqlConnection(Class1.con);
mycon.Open();
SqlCommand mycom = mycon.CreateCommand();
mycom.CommandText = "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("<script>alert('登录失败!');</script>");
}
mycon.Close();
mycom.Dispose();
}
}
protected void BtnCancel_Click(Object sender, EventArgs e)
{
TxtYhm.Text = "";
TxtMm.Text = "";
}
}
5.3.2用户注册界面
用户注册图5.3所表示:
5.3用户注册界面
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 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.Text.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(object 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;
using 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 == "") || (Txtsj.Text == "") || (Txtlxdh.Text == "") || (Txthyslx.Text == ""))
{
Response.Write("<script>alert('不能为空!')</script>");
}
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");
Int32 li1 = Convert.ToInt32(myds.Tables["ydb"].Rows[0][0]);
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() + "','" + 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 = "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("<script>alert('添加申请成功!')</script>");
}
else
{
Response.Write("<script>alert('添加申请成功!')</script>");
}
}
}
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;
using 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 BtnOk_Click(Object sender, EventArgs e)
{
string StrYhm = TxtYhm.Text.Trim();
string StrMm = TxtMm.Text.Trim();
if (StrYhm == "" || StrMm == "")
{
Response.Write("<script>alert('请输入用户名或密码!');</script>");
}
else
{
SqlConnection mycon = new SqlConnection(Class1.con);
mycon.Open();
SqlCommand mycom = mycon.CreateCommand();
mycom.CommandText = "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("<script>alert('登录失败!');</script>");
}
mycon.Close();
mycom.Dispose();
}
}
protected void BtnCancel_Click(Object sender, 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;
using 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();
str2 = TxtHyslx.Text.Trim();
if ((str1=="") && (str2==""))
{
Response.Write("<script>alert('请输入数据!')</script>");
}
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,类型,价格,状态 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 = 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();
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.PageIndex = 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.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 Modifysq : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
public void GridView1_RowEditing(object 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,会议室类型,申请状态 from 预定表", mycon);
DataSet myds = new DataSet();
myadapter.Fill(myds, "ydb");
this.GridView1.DataSource = myds;
this.GridView1
展开阅读全文