报刊订阅管理系统的设计与实现.doc
《报刊订阅管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《报刊订阅管理系统的设计与实现.doc(37页珍藏版)》请在沃文网上搜索。
1、目录第一章:概念设计 -第二章:E-R图和流程图 -第三章:数据库系统分析 -第四章:运行调试和截图 -第五章:程序代码 -参考文献-心得体会-第一章:概要设计-报刊订阅管理系统需求分析:问题描述: 报刊订阅管理系统是一种智能化的管理系统,它面向所有用户,但是却具有高度安全性能。只有后台管理员可以实施系统的日常维护功能,包括新报刊信息的录入,后台数据库的备份和恢复,用户的权限设置等。用户合法注册后必须输入有效密码才能成功进入此系统,若要进行订阅报刊,查询信息,统计信息等操作,必须经由管理员对其权限开放。对于非法操作,系统有识别和防护措施。需求文档:(1) 对于首次登陆此系统的用户提供“用户注册
2、”功能,用户填写个人信息后,输入新密码,并确认密码后方可成功注册,此时用户的所有信息都入库保存,并且该用户的所有权限都默认为空。(2) 为保证系统安全性,所有用户(包括管理员)必须输入有效密码才能登陆。对管理员,所有权限都开放,管理员可以进行系统维护,如对数据的备份和恢复,还有对每个注册的用户进行权限设置,并将其设置入库。而对于用户登陆后,要查询其权限,然后在界面上显示相应的功能。(3) 用户登陆后,若有订阅报刊的权利,系统要能防止该用户利用其他人的名义订阅报刊。(4) 为保持数据的一致性,若有新的用户注册或有新的报刊入库,则在它们入库的同时,其相关信息要一并添加到相应界面上,保证了系统并发操
3、作时的数据一致性和完整性。系统结构设计:本系统包括后台数据库设计和前台应用程序的设计两个大的方面,后台数据库的设计是为前台应用程序而服务的,而应用程序的设计则是基于数据库编写的:数据库的设计是基于SQL Server的设计,首先创建报刊订阅数据库,新建相关表,包括订阅人员表(即用户表),报刊表,订阅表,权限表和管理员表等。订阅人员表中包括了用户基本信息、用户密码,报刊表中包括了报刊基本信息,订阅表中包括了用户订阅报刊的相关信息,权限表中包括了所有用户的权限设置,管理员表中有管理员及其密码信息。对每个表设置主键,若有需求,对相关表的字段进行check约束、默认值、字符长度限制等设置。并创建表与表
4、的关系表。前台应用程序设计是基于Borland Delphi 7的设计,其界面设计包括注册、登陆、查询、订阅、统计、系统维护等界面的设计,管理员拥有对所有这些界面的使用权,而一般的用户登陆后的界面可能因人而异,这要看管理员对其权限的开放是如何设置的。对于一个从未登陆过此系统的用户,他必须注册成功后才能登陆此系统,系统对每个刚注册的用户的权限设置都默认为全部屏蔽,这时要由管理员对其相关权限进行开放。功能模块设计:本系统主要有以下功能模块:l 录入新信息功能:包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;输入模块登入信息用户注册报刊信息管理员注册l 订阅功能:订阅报刊并计
5、算金额;订阅报刊订阅报刊号订阅数量计算金额l 查询功能:;查 询 功 能人员查询报刊查询部门查询l 统计功能:可以按用户姓名、部门名称、报刊信息统计报刊的销售情况。其中报刊信息中,又包括按报刊的代号、报刊类型、报刊定价等信息实现统计功能;统 计 功 能报刊查询人员查询部门查询订阅信息l 系统维护功能:实现后台管理员对系统的日常维护功能。系 统 维 护权限设置数据库备份数据库恢复ll第二章:E-R图和流程图-关系模型为:部门(部门号,部门名)用户(用户名,密码,性别,部门号,联系电话,家庭住址)报刊(报刊代号,报刊名,类型,出版报社,半年订阅价,年订阅价)授权(用户名,权限名)管理员(管理员姓名
6、,密码)订阅(用户名,报刊代号,订阅周期,订阅年限,订阅份数)下面为实体和属性图:部 门部门号部门名用户名权限名授 权用 户用户名家庭地址联系电话性 别部门号密码 管理员名字姓名份数订阅周期订阅年限订 阅报刊号用户名出版社报刊名报 刊类型订价代号报刊订阅管理系统的概念模型E-R图: 部门权限 1 n属于授予管理员 n 1 用户录入信息 m 订阅 m n n报刊 订阅订阅权权登陆系统流程图:开始y 统计权用户登陆统计y管理员y密码正确? N Y订阅统计查询系统维护录入报刊信息预览恢复备份权限设置打印第三章:数据库系统分析-对各个关系模式进行范式的级别分析:部门关系模式中,部门号 部门名,决定因素
7、只有一个,侯选码只有一个,不存在非主属性对码的部分函数依赖和传递函数依赖,且除侯选码外无其他决定因素,满足BNF;用户关系模式中,用户名为唯一决定因素和侯选码,显然也满足BNF;同理报刊关系模式和管理员关系模式也满足BNF要求;在授权关系模式中,(用户名,权限名)是全码,显然符合BNF要求;在订阅关系模式中,(用户名,报刊代号)为唯一侯选码和决定因素,且不存在非主属性对码的部分函数依赖和传递函数依赖,满足BNF;综上所述,该该数据库模式的所有关系模式都满足了BNF要求。1. 登陆(1) 管理员登陆管理员输入姓名:a和密码:b后,系统从管理员表中查询是否存在此记录,若返回记录不为空,则登陆成功,
8、此时界面上所有的权限都开放。(2) 用户登陆同理,用户输入姓名:a和密码:b后,系统从订阅人员表中查询是否存在此记录,若返回记录不为空,再从权限表中查询该用户各权限值,若权限值为1,则开放该权限,若为0则屏蔽该权限,根据这些值,对其权限界面进行相应的开放和屏蔽。2. 录入报刊信息设置一个按钮用来触发向数据库提交数据的事件,这里填写的信息包括报刊代号、报刊名、类型、出版报社、半年订阅价和年订阅价。由于报刊代号为主键,且报刊名、类型、半年订阅价和年订阅价都不为空,所以系统要能对其进行判断,如果所有条件都满足,则将数据插入到报刊表中。3. 订阅(1) 计算金额用户填写用户名:a、报刊代号:b、订阅周
9、期:c、订阅年限:d和订阅份数:e,根据用户填写的报刊代号:a,从数据库中查找该报刊,若返回的记录不为空,得到报刊价格。 再根据选择的订阅周期、年限和份数用计算金额。 注意:用户要能订阅报刊,必须是先登陆了,所以用户在订阅时填写的用户名必须和登陆时的用户名一致,并且提供的订阅周期选择只有“半年”和“一年”的,这些都是系统能实现的。(2) 订阅报刊系统同样能根据数据库设计的约束进行判断输入内容是否符合条件,用到的SQL语句:insert into 订阅 values(:a,:b,:c,:d,:e)。4. 查询(1) 按人员姓名查询:得到该人员的报刊订阅情况,用到的SQL语句:select * f
10、rom 订阅 where 订阅人姓名=:a(2) 按报刊代号查询:得到该报刊的被订阅情况,用到的SQL语句:select * from 订阅 where 报刊代号=:b(3) 按部门代号查询:得到该部门人员的订阅情况,用到的SQL语句:select * from 订阅 where 订阅人姓名 in (select 订阅人姓名 from 订阅人员 where 部门号=:c)注意:本系统对生成报表的设计5. 统计(1) 按人员姓名统计:得到该人员共订阅了几种报刊用到的SQL语句:select count(*) from 订阅 where 订阅人姓名=:a(2) 按部门号统计:得到该部门人员共订阅了
11、几种报刊用到的SQL语句:select count(*) from 订阅 where 订阅人姓名 in (select 订阅人姓名 from 订阅人员 where 部门号=:a)(3) 按报刊统计l 按报刊号统计:得到该报刊共有多少人订阅用到的SQL语句:select count(*) from 订阅 where 报刊代号=:al 按报刊类型统计:得到该种类报刊共有多少人订阅用到的SQL语句:select count(*) from 订阅 where 报刊代号 in (select 报刊代号 from 报刊 where 类型=:a)l 按报刊价格统计:不同范围内报刊的销售情况以上是统计订阅周期
12、为半年的报刊各个价位的销售情况,同理可以统计订阅周期为一年的报刊各个价位的销售情况。6. 权限设置管理员通过浏览所有注册的用户名,对其各权限进行设置,包括订阅、查询、统计。用到的SQL语句:update 权限 set 订阅报刊=:b,查询=:c,统计=:d where 订阅人姓名=:a注意:由于所有的用户,他在未进行权限设置前,其在权限表中的各个权限都默认为0,所以只需要用updata更新语句即可,不需要用insert into语句。7. 数据库备份和恢复用到的SQL语句:backup database mrxt to disk=c:zl.bak with init将当前数据库备份到一个已建立
13、的数据库文件c:zl.bak中;用到的SQL语句:restore database mrxt from disk=c:zl.bak with init,将备份文件c:zl.bak恢复为数据库第四章:运行调试和截图下面为运行界面对话框;(1) 登入“欢迎您使用报刊订阅管理系统”;输入相关信息,如果不存在该用管理员或者用户,你可以选择注册,之后再登入。下面输入以管理员为例子。如上图点击确定,你将可以成功登入到该系统。如果你没有注册则进行注册,否则可以直接输入用户名和密码登入。输入注册用户名和密码,点击注册,系统对其进行判断,是否符合要求,下图为输入信息符合要求,注册成功。下面为对话框的主界面,工具
14、栏上面有:录入;订阅;查询,统计,系统维护,和关闭。首先进行人员登入:例如输入下图信息,可以成功录入信息到数据库中。显示成功录入该用户信息:(上面输入的信息)录入相关的报刊信息: 将下面的信息输入到数据库中,并保存起来。登入报刊订阅功能: 输入人员编号,报刊编号,订阅数量;和订阅日期报刊订阅成功并且输出价格总数:订阅查询:按部门查询: 其余截图和这同样过程,次出省掉;下图为按人员进行统计: 其余如:按报刊,按部门进行统计,同样可以输出象如下表格;因此省去。第五章:程序代码管理员登陆代码:procedure TForm1.Button1Click(Sender: TObject);beginif
15、 (RadioButton1.Checked = true) And (edit1.Text = admin) And (edit2.text = admin)thenbeginedit1.Text:=;edit2.Text:=;form2.Show;end用户登陆代码:else if (RadioButton2.Checked = true) thenbeginif(edit2.Text=) thenbeginedit1.text:=;showmessage(用户名或密码错误,请重新输入!)endelse begin /endform12.query1.SQL.Clear;form12.qu
16、ery1.sql.Add(select *);form12.query1.sql.Add(from 用户);form12.query1.sql.add(where 用户名=+edit1.text+ );form12.Query1.open;form12.Query1.Active:=true;if(form12.DBGrid1.Fields1.asstring = edit2.Text) thenbeginedit1.Text:=;edit2.text:=;form2.N1.enabled:=false;form2.N2.enabled:=false;form2.N3.enabled:=fal
17、se;form2.N8.enabled:=false;form2.show;endelsebeginedit1.Text:=;edit2.text:=;showmessage(用户名或密码错误,请重新输入!);end;end /beginend /if (RadioButton2.Enabled = true)else beginedit1.Text:=;edit2.text:=;showmessage(用户名或密码错误,请重新输入!);endend;新用户注册:procedure TForm7.Button2Click(Sender: TObject);beginform7.Close;en
18、d;procedure TForm7.Button1Click(Sender: TObject);beginform7.Query1.close;form7.query1.SQL.Clear;form7.query1.SQL.Add(insert into 用户);form7.query1.SQL.Add(values(+edit1.text+,+edit2.text+);form7.Query1.ExecSQL;edit1.Text:=;edit2.Text:=;showmessage(恭喜,注册成功);form7.show;end;procedure TForm1.Button2Click
19、(Sender: TObject);beginform1.Close;end;procedure TForm1.FormActivate(Sender: TObject);beginedit1.SetFocus;radiobutton1.Checked:=true;end;procedure TForm1.Button3Click(Sender: TObject);beginform7.show;end;end.procedure TForm2.N2Click(Sender: TObject);beginform3.show;end;procedure TForm2.N10Click(Send
20、er: TObject);beginform2.close;end;procedure TForm2.N4Click(Sender: TObject);beginform4.show;end;procedure TForm2.N3Click(Sender: TObject);beginform3.show;end;procedure TForm2.N5Click(Sender: TObject);beginform5.show;end;procedure TForm2.N6Click(Sender: TObject);beginform12.query1.SQL.Clear;form12.qu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报刊 订阅 管理 系统 设计 实现