软件工程毕业设计说明书内容.docx
《软件工程毕业设计说明书内容.docx》由会员分享,可在线阅读,更多相关《软件工程毕业设计说明书内容.docx(28页珍藏版)》请在冰豆网上搜索。
软件工程毕业设计说明书内容
1引言
1.1课题的提出
近年来随着计算机科学技术的高速发展,计算机技术也被广泛应用在我们生活的诸多领域,当然它在高校的信息化进程中也发挥着重要作用。
通过先进的计算机网络技术管理高校资源,不仅提高了工作效率,而且提高了管理水平,更提高了服务质量[1]。
高校校友是一个知识体系密集、信息资源丰富、社会能力强的群体,是对自身母校有着特殊感情的群体,是潜藏在母校之外的独有的重要宝贵资源,它以桥梁和纽带的角色有效建立起学校和社会之间的联系,在学校的发展过程中发挥着重要的作用[2,3]。
1.2课题的现状及其发展
目前世界上各种形式的校友录网站大约28万多个之多,大致有以下几类:
1)以收费方式分,有收费校友录和免费校友录,其中以后者居多;2)以提供校友录服务的网站分大致有三种,有大专院校自己网站的校友录;有专门单独的校友录网站;有综合网站上的校友录;3)还有网络校友录和手机校友录之分[4]。
中国校友录发展现状:
下面选取两个具有代表性的校友录来看看中国校友录网站发展的具体情况。
1)中国人校友录是目前各种校友录中最具代表性、权威性的校友录。
它有完善的界面服务,在校友录基本的留言、相册等功能之上,中国校友录还开通了手机校友录,同学大搜捕,星级会员等增值服务。
还包括了其他信息服务内容,可以进行天气预报,股市,热点新闻的信息定制,并针对毕业班同学为他们提供全面就业信息及咨询。
2)世纪同学录,现有注册用户440914人,注册班级120864个(数据截止到2004年1月10日)[5]。
1.3本课题的主要工作
本次课题设计的是中北大学校友录管理系统,主要工作任务是实现以下系统功能:
校友成员注册、登录、留言,上传并浏览照片、通讯录、系统后台管理。
具体实现:
校友数据的添加、修改、删除、和查询,已完成校友数据的收集及进行数据电子化;用户之间的互动,包括上传照片,相互留言,查看信息;对中北大学校友录管理系统的用户权限进行管理,以保证数据资源的合理利用。
通过提供完善的校友录服务和规范校友录的管理,可以达到增进校友之间、校友与母校之间的感情,方便校友联系的目的[6]。
整个系统的设计过程中,充分考虑了数据库的安全性、一致性、稳定性和可靠性的问题,并具有较强的实用作用,使用户在友好的操作界面下完成强大的功能,最终达到信息自由交换,资源自由共享[7]。
校友录极大地便捷了校友之间的联系,同时也充分体现出现代社会信息化管理的理念[8,9]。
本文叙述了中北大学校友录管理系统的系统目标和需求分析,重点介绍了中北大学校友录管理系统的实现过程,主要包括需求分析,数据库设计,概要设计,详细设计,系统实现,程序文件组织,系统测试和调试[10]。
2需求分析
2.1任务描述
本系统开发的首要任务是了解系统最终要实现的功能,这对于定义应用程序的功能十分重要。
根据中北大学特点以及校友录系统应具有的基本功能,中北大学校友录管理系统开发完成后应实现以下目标:
用户管理包括注册、登录、完善个人信息、上传个人照片。
留言管理包括发表、查看和删除留言。
通讯录管理包括条件查询自己想要找到的同学的信息。
管理员可以设置学校基本信息,对基本信息可以进行增删改查,管理员还可以发布新闻公告。
2.2系统功能需求
功能需求主要是对系统最终实现的目标进行分解,使之形成及相互独立又相互联系的整体。
中北大学校友录管理系统基本功能分为用户注册、留言、查看相册以及通讯录、个人信息管理和管理员后台管理。
系统存在两种用户:
第一类是校友,他们是用浏览器查看留言,发表留言,浏览相册,查看通讯录等等;第二类是管理员,他管理整个校友录的站点。
针对不同的用户有不同的用户功能需求:
(1)校友的需求
新用户通过输入自己基本信息验证自己是否是中北大学学生,通过之后可以注册账号,并由唯一用户名来识别。
要使用校友录系统中的功能,用户必须先登录。
登录的用户在通讯录模块可以通过学号或者班级或者学院或者年级或者专业对其他用户进行查询,在搜索结果中可以查看用户最近的联系信息,方便校友之间交流。
在留言板模块所有用户可以浏览其他同学发表的留言也可以自己发表留言,方便大家沟通。
在相册模块可以共享校友上传的照片。
在个人信息管理模块用户可以上传照片到服务器文件中,也完善个人信息比如电话、通讯地址、工作单位、职业等,也可以修改自己密码。
(2)管理员的需求
管理员通过后台管理功能实现对注册用户进行管理并对网站的参数进行定义,包括学院、专业、班级、年级、校友等基本信息设置,以及对基本信息进行修改、删除、更新、查看操作,管理员还具有发布、更新、删除公告等权限。
2.3系统数据需求
中北大学校友录管理系统的需要涉及到的表有用户信息表,校友信息表,留言信息表,照片信息表。
其中用户信息表主要有用户名、密码;校友信息表主要有姓名、性别、电话、所在学院、所在班级、所学专业、通讯地址等等;留言信息表有留言编号、留言标题、留言内容、留言人、留言时间等;照片信息表主要有照片编号、照片名称、保存路径、所属相册等。
3概要设计
这个阶段的工作是划分出系统物理元素,但是每个元素仍然处于黑盒子级,具体的内容将在详细设计中[11]。
概要设计的任务还包括设计软结结构,也就是确定系统中的每个程序是由那些模块组成,以及各个模块之间的联系。
3.1目标设计
本系统一共包括三大模块,每个模块看似独立,其实共享一个数据库,只是访问的表不同而已,依据功能分析,系统在三大块的基础上每一模块有分几个模块,设计的基本目标为:
(1)用户个人信息管理,包括学号,姓名,学院,年级,班级,专业,性别等信息的完善添加以及更新;修改密码;上传照片。
(2)后台信息管理,包括基本信息设置:
学院、班级、年级、名族、校友、专业、年级等基本信息设置,以及基本信息的增、删、改、查等基本操作。
(3)主界面,包括用户注册、登录,查看留言,发表留言,浏览相册,浏览通讯录。
(4)操作界面友好、功能全、操作方便简单、查询功能强大。
(5)数据库设计合理,减少冗余数据,太高系统效率。
(6)系统具有灵活、严格权限设定功能。
3.2系统总体功能设计
通过需求分析,中北大学校友录管理系统是为了实现处于各个地方的校友联系起来,建立一个“大家庭”,方便大家交流沟通。
主要功能如下:
(1)用户注册
要申请的新用户必须先填写基本信息验证自己是否是中北大学校友,通过之后方可注册,否则不能注册。
申请账号:
验证信息之后进入注册页面,填写新的帐号,一经注册不能修改。
设置自己密码,密码是可以修改的。
(2)用户登录
只要正确的账号和密码才能登录。
(3)个人信息完善
用户可以添加自己信息包括电话、Email、QQ、通讯地址、工作单位、职业、生日。
方便大家联系到自己。
也可以通过此功能修改自己信息。
(4)用户上传照片
用户可以将自己照片上传于网页与大家分享。
标题是必填项。
也可以删除自己上传照片。
(5)留言板
登录的用户可以浏览大家发表的留言,也可以自己发表留言,并且将在主页中显示为第一条留言,显示发表时间。
(6)浏览照片
任何人都可以使用这个功能,显示所有校友上传的照片。
(7)查看通讯录
每个用户都可以使用,可以通过单个条件查询自己要找同学的联系方式。
条件查询包括通过学院、学号、姓名、专业、年级、班级六个条件。
(8)管理员入口
基本信息设置:
学院、专业、班级、年级、校友基本信息的增、删、改、查功能,动态管理:
发布新闻公告等,显示在首页中。
中北大学校友录管理系统功能模块图如图3.1所示。
通讯录
留言板
用户个人信息管理
后台管理
新闻
相册
中北大学校友录管理系统
图3.1系统功能模块图
3.3数据库总体设计
数据库存放计算机内有组织可供想的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享[12]。
下面简单介绍一下本系统主要功能模块的主要实体信息:
校友实体信息,是中北大学校友录管理系统的中心实体,存放每个校友的基本信息,有学号、姓名、性别、名族、出生日期、入学年份、所在学院、所在班级、所学专业、电话、QQ、Email、通讯地址、工作单位、职业。
其中学号是唯一标识。
校友E-R图如图3.2所示。
校友
所在班级
所在学院
入学年份
工作单位
所学专业
民族
生日
Email
性别
姓名
学号
电话
QQ
职业
照片
照片标题
照片描述
保存路径
所属相册
照片编号
留言
留言时间
留言人
留言标题
留言内容
留言编号
用户
用户名
密码
图3.2校友实体E-R图
照片实体信息,是相册的内部对象,主要存放照片的详细信息,包括照片编号、照片标题、照片保存路径、照片描述、所属相册。
其中照片编号是唯一标识。
照片E-R图如图3.3所示。
图3.3照片实体E-R图
留言实体信息,主要存放校友发表的留言信息,有留言编号、留言标题、留言内容、留言时间、留言人。
其中留言编号是唯一标识。
留言E-R图如图3.4所示。
图3.4留言实体E-R图
用户实体信息,主要存放校友注册的帐号信息,有用户名和密码,其中用户名是唯一标识。
用户实体E-R图如图3.5所示。
图3.5用户实体E-R图
4详细设计
4.1数据库设计
所有的web项目都是基于数据库的,所以数据库设计是一个非常重要的环节,对于指定的应用环境,功能确定之后,通过合理的逻辑设计和有效的物理设计构造最优的数据库模式,在逻辑上满足用户需求[13]。
逻辑结构确定之后,进行关系数据的设计,将实体模型转换成关系模型,建立数据表,建立字段,确定每个字段的数据类型和数据长度的值域,数据标的主键[14]。
以下是中北大学校友录管理系统的数据库关系模式信息如下:
用户信息表(用户名、密码)用来记录用户注册的帐号相关信息,详细字段结构见表4.1所示。
表4.1user表
序号
字段
说明
数据类型
长度
可否为空
1
User
用户名
文本
10
否
2
Pwd
密码
文本
10
否
学院信息表(学院编号、学院名称)用来记录学院的基本信息,详细字段结构见表4.2所示。
表4.2paras表
序号
字段
说明
数据类型
长度
可否为空
1
ParasID
学院编号
数字
2
否
2
ParasName
学院名称
文本
20
否
专业信息表(专业编号、专业名称、所属学院)用来记录专业基本信息,详细字段结构见表4.3所示。
表4.3special表
序号
字段
说明
数据类型
长度
可否为空
1
SpecialID
专业编号
数字
10
否
2
SpecialName
专业名称
文本
10
否
3
ParasID
所属学院
数字
2
否
班级信息表(班级编号、班级名称、所属学院、所学专业)用来记录班级基本信息,详细字段结构见表4.4所示。
表4.4banji表
序号
字段
说明
数据类型
长度
可否为空
1
ClassID
班级编号
数字
10
否
2
ClassName
班级名称
文本
10
否
3
ParasID
所属学院
数字
2
否
4
SpecialID
所学专业
数字
10
否
留言基本信息表(照片编号、标题、内容、留言人、留言时间)用来记录留言基本信息,详细字段结构见表4.5所示。
表4.5picture表
序号
字段
说明
数据类型
长度
可否为空
1
BoardID
留言编号
数字
10
否
2
BoardName
标题
文本
10
否
3
Content
内容
文本
50
否
4
BoardTime
留言时间
日期/时间
10
否
5
SchoolmeteID
留言人
数字
10
否
校友基本信息表(所在学院、所在班级、所学专业、入学年份、姓名、性别、学号)用来记录校友基本信息,详细字段结构见表4.6所示。
表4.6schoolmate表
序号
字段
说明
数据类型
长度
可否为空
1
SchoolmateID
学号
数字
10
否
2
SchoolmateName
姓名
文本
10
否
3
Sex
性别
文本
2
否
4
ParasID
所属学院
数字
2
否
5
SpecialID
所学专业
数字
10
否
6
GradeID
入学年份
数字
3
否
7
ClassID
所在班级
数字
10
否
年级信息表(年级编号、年级名称)用来记录年级的基本信息,详细字段结构见表4.7所示。
表4.7grade表
序号
字段
说明
数据类型
长度
可否为空
1
GradeID
年级编号
数字
3
否
2
GradeName
年级名称
文本
10
否
学生基本信息表(学号、电话、QQ、Email、工作单位、职业、生日、通讯地址、民族)记录校友完善的个人信息,详细字段结构见表4.8所示。
表4.8student表
序号
字段
说明
数据类型
长度
可否为空
1
SchoolmateID
学号
数字
10
否
2
Phone
电话
文本
10
可以
3
QQ
QQ
文本
15
可以
4
Email
邮箱
文本
20
可以
5
Workshop
工作单位
文本
20
可以
6
Occucipation
职业
文本
20
可以
7
Birthday
生日
日期/时间
10
可以
8
Address
通讯地址
文本
20
可以
9
Nation
民族
文本
8
可以
照片基本信息表(照片标号、照片标题、保存路径、照片描述、所属相册)用来记录照片基本信息,详细字段结构见表4.9所示。
表4.9picture表
序号
字段
说明
数据类型
长度
可否为空
1
PictureID
照片编号
数字
10
否
2
PictureName
照片名称
文本
10
否
3
Content
描述
文本
50
否
4
Path
保存路径
文本
20
否
4.2功能模块设计
模块化设计可以提高代码重用性,可维护性和稳定性。
可以模块化的部分有:
每个网页的头和尾重复使用多次,可以设置母版页。
(1)网页的头和尾或者其他部分也可以独立,所以可以将头和尾分别设置成一个用户控件来使用。
(2)页面的整体布局。
一般地,为了整个网站的风格一致,事先设计一个整夜的页面布局,然后只要填充不同的栏目和内容就可以。
(3)链接数据库的代码可以放到一个文件中。
校友录首页主要是导航的功能,是各个重要功能模块的入口点,有着极其重要的地位,它界面的友好、美观,直接影响着大多数用户的心态。
它的实用性和操作的难易度也直接影响着用户的使用。
本系统主页界面简洁、美观、友好,实用和操作简单,给人感觉清新、明了。
主页最上边采用通用的用户帐号和密码登录机制。
在其下面出现的是导航列表,它们分别是:
最新动态、个人信息管理、留言板、相册、后台管理入口、通讯录。
从名称上我们就可以了解它们的功能,根据用户权限的不同,用户可以使用的导航相应的不同。
导航下面是主体内容。
给人一目了然的感觉。
注册模块的主要功能是注册成为本站成员。
根据校友录的需求,此页需要先进行校友验证,输入校友资料通过验证之后才能进行下一步填写帐号(唯一标识)、用户密码,点击“注册”将数据提交到数据库储存数据。
如果数据符合注册条件,那么将提示注册成功,并转到登录页面,否则,将会提示信息具体哪一个地方不符合要求,并返回到错误信息的地方,以便改正。
相册模块,能够放置自己喜欢的照片。
本系统网站使用简单,只需要通过自己注册的账号和密码登录系统,然后进入相册区,就可以浏览照片。
后台管理模块是确保网站正常运行的基础。
后台功能设计的是否合理,功能是否强大直接导致网站的使用情况。
根据本系统的需求分析和详细设计,我们可以知道本系统的后台管理员管理网站的公告动态发布、删除、修改以及回复,网站的所有基本信息和用户的添加、删除、修改。
校友录模块是放置校友通讯录的页面,登录的用户在首页导航条中点击校友录就可以进入校友录模块,在页面中可以条件查询自己要找的同学的通讯信息。
本系统的条件查询是单条件查询,包括学院、专业、班级、年级、姓名、学号六个条件,查询操作简单方便。
留言板模块,只要注册成功的用户登录系统之后在首页导航条中点击留言板就可以进入留言模块,在这个页面中你可以查看其他人的留言。
如果你也想要留言的话,可以点击“签写留言”进行留言,输入相关信息之后点击“提交”按钮,就成功留言了,点击“返回留言板”按钮就可以看见自己的留言。
个人信息管理模块主要功能是完善自身信息、修改密码、上传照片。
在这里只要点击“个人信息”完善或者更改信息,信息主要包括电话,QQ,Email,通讯地址,工作单位,职业。
这里的信息填写的是用户的真实信息,以保证通讯录的信息真实可信,但是有些信息不想被别人看到时可以填写保密。
点击“修改密码”就可以更改自己的密码。
上传照片功能可以选择自己想要上传图片供大家在相册模块分享。
5系统实现
下面介绍各个功能模块的实现内容:
(1)注册用户
进入系统后,点击注册便进入校友验证界面,注册用户需要填写自己个人信息,包括学院、学号、姓名、班级、专业、年级、性别,所有信息必须全部填写,点击提交之后所有信息核对无误才能进行下一步注册,否则不能注册。
可以注册的用户需要填写用户名和密码。
校友验证界面如图5.1所示。
注册界面如图5.2所示。
图5.1校友验证界面
图5.2用户注册界面
核心代码如下:
if(txtUserName.Text==null)
{
Response.Write("");
}
else
{
using(OleDbConnectionconn=newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+
Server.MapPath("~/zbxyl.accdb")))
{
OleDbCommandcmd=
newOleDbCommand(
"insertinto[user]([Username],[Pwd])values('"+txtUserName.Text+"','"+txtUserPwd.Text+"')",
conn);
conn.Open();
if(cmd.ExecuteNonQuery()>0)
{
conn.Close();
Response.Write("");
this.Button1.Enabled=true;
this.Button2.Enabled=false;
}
else
{
conn.Close();
Response.Write("");
}
}
(2)上传照片模块
这个模块主要是上传自己照片到网页与其他同学共享。
这里可以上传jpg,png,gif格式的照片,成功上传后提示“成功上传到数据库…”,并在栏目的下方显示刚刚上传的照片,在这里还可以直接删除照片。
若上传不成功会显示错误信息。
界面如图5.3所示。
图5.3上传照片界面
核心代码如下:
privatevoidGetFileSource()
{
using(
OleDbConnectionconn=
newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+
Server.MapPath("~/zbxyl.accdb")))
{
OleDbDataAdapterda=
newOleDbDataAdapter(
"select*frompictureorderbyPictureIDdesc",conn);
DataSetds=newDataSet();
da.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataKeyNames=new[]{"PictureID"};
GridView1.DataBind();
}
}
protectedvoidbtnSavePhoto_Click(objectsender,EventArgse)
{
stringpath=FileUpload1.PostedFile.FileName;
stringext=path.Substring(path.LastIndexOf(".")+1);if(ext.ToLower()=="jpg"||ext.ToLower()=="bmp"||ext.ToLower()=="gif"||ext.ToLower()=="png"||
ext.ToLower()=="tif")
{
stringsPath=Server.MapPath("..\\Photo\\NormalPics\\"+txtTitle.Text+"."+ext);path="..\\Photo\\NormalPics\\"+txtTitle.Text+"."+ext;
using(
OleDbConnectionconn=
newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+
Server.MapPath("~/zbxyl.accdb")))
{
OleDbCommandcmd=
newOleDbCommand(
"insertinto[picture](PictureName,PicContent,PicPath,PhotoName)values('"+
txtTitle.Text+"','"+txtContent.Text+"','"+path+"','"+ddlPicType.Text+"')",conn);
conn.Open();
if(cmd.ExecuteNonQuery()>0)
{
conn.Close();
GetFileSource();
FileUpload1.PostedFile.SaveAs(sPath);
Response.Write("