校园OA管理系统1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统原理与应用》课程设计
成果报告
校园OA管理系统设计与开发
学生学号:
学生姓名:
学院:计算机学院
专业班级:计算机科学与技术
专业课程:数据库系统概论
指导教师:
2015年7月3 日
目录
一、设计目的 0
二、系统总体设计 0
2.1 系统功能分析 0
2.2 系统功能结构 0
三、系统数据库设计 (2)
3.1 E-R图 (3)
3.2逻辑结构设计 (4)
四、系统详细设计与实现 (6)
4.1 个人设置模块的设计与实现 (6)
4.2 系统公告模块的设计与实现 (7)
4.3 系统设置模块的设计与实现 (8)
五、主要程序清单 (9)
5.1 个人设置模块的关键代码 (9)
5.2 系统公告模块的关键代码 (12)
5.3 系统设置模块的关键代码 (14)
六、总结及心得体会 (15)
校园OA管理系统设计与开发
一、设计目的
本系统以“校园OA管理系统”的设计为主,校园OA管理系统是一个适用于学校,满足其日常办公需求的管理系统,该系统初步确定由6个模块组成,分别为:考勤管理、站内信管理、项目管理、个人设置管理、系统公告、系统设置。

二、系统总体设计
2.1 系统功能分析
根据系统的功能分析,本系统的功能流程图,如图2.1所示。

图2.1 OA办公系统流程图
2.2 系统功能结构
本系统一共有六大功能管理子系统。

为:考勤签到、站内信、项目管理、个人设置、系统公告、系统设置。

图2.2所示。

图2.2 OA办公系统模块结构图
1.考勤管理
考勤分成三个功能,显示签到功能,查询功能,管理功能。

签到功能分析:在签到功能中,我们分4个时间段进行设计,上午上课时间签到,上午下课时间签到,下午上课时间签到,下午下课时间签到而且在签到功能签到后,在功能的下方会显示你的签到情况,和你最近一个星期的签到详细记录。

查询功能分析:在查询功能中,我们设置了一些查询的时间段,姓名还有是否缺勤等功能功能,教师可以在查询人员信息的时候,根据时间段,姓名是否缺勤等来查询自己想要的结果,点击进入查询功能默认是查询全部。

管理功能分析:在管理功能中,我们根据登陆角色的不同,给予不同的权限,就是不同的管理功能,在功能设计中我们设置了姓名框。

选择相应的姓名框中都会显示该组的人员姓名,当用户点击查询时,管理功能的下面的详细页面会显示查询的姓名、账户、签到情况、备注情况、编辑、是否缺勤等情况。

2.站内信管理
该模块用作当前的登录用户给系统内、外的其他用户发送短信息(即站内信息、站外信息),并可以查看其他用户发来的消息。

本模块当中的信息主要有:消息接受者、消息的发送者、消息的内容、发送时间以及是否已读等。

3.公告管理
该模块用作系统管理员以及校园高层职员向校园各部门、工作人员发送通知,通过系统管理员的审批后发布,方便大家查看,但只有发送方才有权修改、删除该通知,本模块包含的信息包括:公告填写人、公告审批人、公告标题、公
告内容、公告发布的时间。

4.个人设置管理
该功能里面分为密码修改和个人信息管理功能,可以实现用户对自己密码和个信息的修改。

5.项目管理功能模块:
项目管理分析功能分为、新增项目功能、我的项目功能、项目查询功能、项目修改功能:
新增项目功能分析:该功能仅限老师可以使用,老师可以在其中添加项目名称,规定项目的开发开始时间,项目开发结束时间,项目的负责人,项目的成员,项目的测评人,项目简介,附件,测评报告,是否完成状态
我的项目功能分析:在该功能中显示的是已完成的项目,和正在进行的项目。

已完成功能介绍:在这其中查询为默认查询,还有时间段的查询来,查看相关的项目,还有项目的闲情和这个项目进行时相关人员的日志。

正在进行的项目功能介绍:该功能默认进去时显示所有的进行中的所有项目,然后后面有项目的闲情,点击进去会显示详细的项目所有信息,下面附属这组员开发期间提交的日志信息,还有筛选功能,可以筛选自己的想要的看的日志(最新上传的日志在最上面),最下面是一个提交日志的按钮!
项目查询功能分析:在查询功能中,可以根据项目的时间,名称,已完成,未完成的情况来查询项目修改功能分析:该功能仅限老师,但是项目的名称是不能修改的,其他的功能都是可以修改的,在这个功能的下端,有一个提交项目测评报告的按钮!
6.在系统管理模块中分为角色管理、用户管理、考勤设置。

角色管理功能分析:角色管理功能可以给不同的用户分配不同的角色这样,可以让不同的用户拥有不同的权限功能。

用户管理功能分析:用户管理模块,可以对不同的用户进行管理。

考勤管理功能分析:考勤设置功能可以对考勤的时间进行设置管理
三、系统数据库设计
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数
据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求).数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。

关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。

这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。

3.1 E-R图
在分析过程中找到实体、实体的属性、表示实体的码、确定实体之间的联系(1:1,1:n,m:n)后可得出系统的整体概念模型,用E-R图表示出来,如图3.1所示的:
图3.1 OA办公系统E-R图
3.2逻辑结构设计
通过E-R图,进行分析得到关系模型。

分别为:
用户表(User)(用户ID,用户名,密码,性别,电话,角色ID,组ID,注册时间,照片保存位置,班级ID)
班级(Class)(班级ID,班级名称,班级数量)
角色(Role)(角色ID,角色名称,角色描述)
权限(Power)(权限ID,权限名称,权限描述)
分组表(Group)(组ID,组名称,组的数量)
考勤时间表(SysManage)(系统时间ID,上午上课时间,上午下课时间,下午上课时间,下午选课时间)
考勤表(KaoQin)(用户ID,日期,是否缺勤)
表3.1 User表
表3.5 Group表
四、系统详细设计与实现
在本系统中我负责:个人设置管理模块,系统公告模块,系统设置模块三个功能模块。

4.1 个人设置模块的设计与实现
这部分主要是实现个人设置功能。

用户必须登录才能使用此功能。

在个人社会目录下,包含个人信息、修改密码等子功能。

当鼠标点击“个人信息”后进入个人信息页面。

可以查看自己的个人信息。

如图4.1所示。

图4.1个人信息
4.2 系统公告模块的设计与实现
这部分主要是系统公告管理功能。

用户必须登录才能使用此功能。

在系统公告功能目录下,包含公告查看、公告管理等子功能。

当鼠标点击“查看公告”后进入查看公告页面。

可以所有的公告列表。

如图4.2所示。

图4.2查看公告
在公告管理页面中,在这个功能中可以填写发布的公告,然后造系统的前台就可以看到发布的内容,同时可以对发布的公告进行增、删、改、查。

如图4.3所示。

图4.3管理公告
4.3 系统设置模块的设计与实现
这部分主要是实现系统设置管理功能。

只有管理员用户必须登录才能使用此功能。

在系统设置管理功能目录下,包含班级管理、组别管理、用户管理、角色管理、考勤时间管理等子功能。

当鼠标点击“班级管理”后进入班级管理页面。

在页面中,可以添加、删除班级、和编辑修改班级名称和排序数字,班级按照"排序数字"排序,数字越小,越靠前。

如图4.4所示。

图4.4 组别管理
点击“用户管理”后进入用户管理页面,此页面能实现对用户的“增加”、“删除”和编辑用户的“姓名”、“登录名”、“登陆密码”、“所属班级”、“所属组别”、“联系电话”、“成员角色”的设置。

查找用户可以通过“登录名”、“姓名”
“班级”、“组别”、“角色”任何一个条件来查找。

如图4.5和图4.6所示。

图4.5用户管理
图4.6新增用户
五、主要程序清单
5.1 个人设置模块的关键代码
protected void butAdd_Click(object sender, ImageClickEventArgs e)
{
USER myU = new USER();
myU.Telephone = txtphone.Text;
myU.myArchives = Image1.ImageUrl;
myU.UpdateT(Convert.ToInt16(Server.HtmlEncode(Request.Cookies["userid"].Value)) );
MessageBox.succeedShow(this.Page, "个人信息保存成功!");
}
protected void uploadpic_Click(object sender, EventArgs e)
{
if ( != "")
{
DateTime now = DateTime.Now;
string ImgName = now.Year.ToString() + now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + lisecond.ToString();
string ImgPath = ;
string ImgExtend = ImgPath.Substring(stIndexOf(".") + 1);
if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif" || ImgExtend == "png"))
{
MessageBox.errorShow(this.Page, "请上传bmp|jpg|gif|png 格式的图片文件!");
return;
}
string ServerPath = Server.MapPath("../upload/") + ImgName + "." + ImgExtend;
(ServerPath);
Image1.ImageUrl = "../upload/" + ImgName + "." + ImgExtend;
}
else
{
MessageBox.errorShow(this.Page, "请选择要上传的照片");
}
}
protected void butAdd_Click(object sender, ImageClickEventArgs e)
{
USER myU = new USER();
myU.Telephone = txtphone.Text;
myU.myArchives = Image1.ImageUrl;
myU.UpdateT(Convert.ToInt16(Server.HtmlEncode(Request.Cookies["userid"].Value)) );
MessageBox.succeedShow(this.Page, "个人信息保存成功");
}
//上传学生照片?
protected void uploadpic_Click(object sender, EventArgs e)
{
if ( != "")
{
DateTime now = DateTime.Now;
string ImgName = now.Year.ToString() + now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + lisecond.ToString();
string ImgPath = ;
string ImgExtend = ImgPath.Substring(stIndexOf(".") + 1);
if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif" || ImgExtend == "png"))
{
MessageBox.errorShow(this.Page, "请上传ä?bmp|jpg|gif|png格式的图片文件");
return;
}
string ServerPath = Server.MapPath("../upload/") + ImgName + "." + ImgExtend;
(ServerPath);
Image1.ImageUrl = "../upload/" + ImgName + "." + ImgExtend;
}
else
{
MessageBox.errorShow(this.Page, "请选择要上传的照片");
}
}
5.2 系统公告模块的关键代码
protected void butAdd_Click(object sender, ImageClickEventArgs e)
{
Notice myNotice = new Notice();
myNotice.NTitle = this.txtTitle.Text;
myNotice.NContent = Request.Form["txtContent"];
myNotice.NName = Convert.ToInt16(Server.HtmlEncode(Request.Cookies["userid"].Value));
myNotice.NTime = DateTime.Now;
if (Session[""] != null)
{
myNotice.NAttachment = Session[""].ToString();
}
else
{
myNotice.NAttachment = "";
}
myNotice.Add();
Session[""] = "";
//添加完毕
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "window.onload=function(){close();W.AA();}", true);
}
protected void butAdd_Click(object sender, ImageClickEventArgs e)
{
Notice myNotice = new Notice();
myNotice.NTitle = this.txtTitle.Text;
myNotice.NContent = Request.Form["txtContent"];
myNotice.NName = Convert.ToInt16(Server.HtmlEncode(Request.Cookies["userid"].Value));
myNotice.NTime = DateTime.Now;
if (Session[""] != null)
{
myNotice.NAttachment = Session[""].ToString();
}
else
{
myNotice.NAttachment = "";
}
myNotice.Add();
Session[""] = "";
//添加完毕
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "window.onload=function(){close();W.AA();}", true);
}
5.3 系统设置模块的关键代码
protected void butAdd_Click(object sender, ImageClickEventArgs e)
{
ROLE myrole = new ROLE();
myrole.RoleName = this.tb_rolename.Text;
myrole.RoleDescription = this.tb_rolediscription.Text;
myrole.RoleNum = this.txtNum.Text;
myrole.Add();
//查询出RoleID
string selectRoleId = "SELECT RoleID FROM ROLE WHERE RoleName='" + this.tb_rolename.Text + "'";
int myroleid = Convert.ToInt16(DbHelperSQL.GetSingle(selectRoleId));
Authority myAuthority = new Authority();
//设立关系中的角色
myAuthority.RoleID = myroleid;
for (int i = 0; i < this.cbl_quanxian.Items.Count; i++)
{
if (this.cbl_quanxian.Items[i].Selected == true)
{
//设立关系中的权限
myAuthority.ModuleID = Convert.ToInt16(this.cbl_quanxian.Items[i].Value);
//添加关系入数据库
myAuthority.Add();
}
}
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "window.onload=function(){close();W.AA();}", true);
}
六、总结及心得体会
在这次课程设计中,我更加真正认识到团队合作的重要性,成员间密切合作,互相配合,效率才会高,效果也好,为以后的各种团队工作也创造良好的基础,在这么短的时间里学到这么多的东西我感到很欣慰,给了我一个很好的启示,为我前进的方向指明了道路。

项目进行的过程中,确实遇到了很多的问题,遇到问题首先不能发慌,要从根本入手,一点一滴的解决问题,软件项目是一个复杂的工程需要从每一个细节入手,需要每个人的协同合作,细节决定成败!。

相关文档
最新文档