数据库课程设计--报刊订阅管理系统

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

数据库课程设计--报刊订阅管理系统
报刊订阅管理系统的开发与
实现
专业:计算机科学与技术学号:姓名:
课程设计名称:数据库原理及应用
设计题目:报刊订阅管理系统的设计与实现
完成期限:自2009年12 月14 日至2009 年12 月27 日共 2 周设计依据、要求及主要内容(可另加附页):本系统主要面向的用户有系统管理员、读者。

下面分角色对该系统的不同操作范围做说明,主要有以下功能模块:(1)登陆功能:登陆系统为身份验证登录。

分为管理员登录和一般用户登录。

分别通过不同的用户名和密码进入报刊订阅管理界面。

(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。

(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。

(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。

查询出的信息显示在界面上。

(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况。

(6)系统维护功能:管理员可以对用户、报刊、部门、订阅等信息进行添加、删除、更改等维护工作;用户可以更改自己的注册信息,但用户名不能更改。

指导教师(签字):教研室主任(签字):
批准日期:年月日
摘要
本系统是一个面向于企业的报刊订阅管理系统。

系统是智能化的管理系统,它面向所有企业部门的职工用户,但具有安全性能。

它能够实现报刊订阅的基本功能,包括新报刊信息的登录、录入、订阅、查询、统计等操作。

用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊,查询信息,统计信息等操作。

对于非法操作,系统有识别和防护措施。

订阅信息处理的特点是订阅信息处理量比较大,所管理的信息信息种类繁多,而且订阅单、编辑单的发生量特别大,关联信息多,查询和统计的方式各不相同。

因此在管理上实现起来有一定因难。

系统在设计过程中,为了克服这些困难,需要使程序代码标准化,软件统一化,确保软件的可维护性和实用性;删除不必
5
要的管理冗余,实现管理规范化、科学化;界面友好、简单化,做到实用、方便,尽量满足报刊订阅中员工的需要。

关键词: PowerBuilder;Microsoft SQL Server 2000;录入;查询;统计;订阅;
5
目录
1 系统需求分析 (6)
1.1 信息需求分析 (6)
1.2 业务流程分析 (6)
1.3 功能需求分析 (8)
1.4 数据流图 (8)
1.5 数据字典 (11)
2 系统设计…………………………………………………………………
13
2.1系统功能结构设计………………………………………………
13
2.2 数据库概念设计 (13)
2.3 数据库逻辑设计 (15)
2.4 数据库物理设计 (17)
3 系统实现与测试 (19)
3.1 数据库连接 (19)
3.2 模块功能实现 (20)
3.2.1 菜单的实现 (20)
3.2.2 登录模块的实现 (21)
5
3.2.3 录入信息模块的实现 (24)
3.2.4 查询信息模块的实现 (25)
3.2.5 统计信息模块的实现 (28)
3.2.6 订阅报刊模块的实现 (29)
3.2.7 更改信息的实现 (32)
3.3 系统测试………………………………………………………
34
总结 (4)
1
参考文献……………………………………………………………………
42
1. 系统需求分析
1.1信息需求分析
1.3.1 资料收集:业务流程中用到的相关单据主要是报刊信息还有订单信息报刊信息表:
5
订单信息表:
5
1.2业务流程分析:
本系统主要面向的用户有系统管理员、读者。

下面分角色对该系统的不同操作范围做说明。

下图为该系统的业务流程图
5
1.3功能需求分析
本系统的主要结构功能图如下:
(1)登陆功能:登陆系统为身份验证登录。

分为管理员登录和一般用户登录。

分别通过不同的用户名和密码进入报刊订阅管理界面。

(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。

(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。

(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。

查询出的信息显示在界面上。

(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况。

(6)系统维护功能:管理员可以对用户、报刊、部门、订阅等信息进行添加、删除、更改等维护工作;用户可以更改自己的注册信息,但用户名不能更改。

1.4 数据流图
图1.6.1 报刊订阅管理系统顶层图
图1.6.2 系统1层图
图1.6.3 系统2层图
图1.6.4 系统3层图
图1.6.5 系统4层图
1.5 数据字典
(1)数据结构
管理员用户=管理员帐户+管理员密码
订户=订户编号+订户名+联系电话+联
系地址
目录=目录编号+目录名+单价+批注信

订单=订单号+订户编号+下订日期
订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价
(注:为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单价来记录下订时目录的单价)(2)数据项
表2.1 数据项表
(3) 数据流
表2.2 数据流表
2 系统设计
2.1系统功能结构设计
系统功能结构图如下图所示:
图2.1.1 系统功能结构图2.2数据库概念设计
基本项构思ERD的四条基本原则:
①原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。

②原则2 (确定联系):两个或多个实
体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。

实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。

③原则3 (确定属性):实体的属性是实体的本质特征。

实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。

联系的属性是联系的结果或状态。

④原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。

经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。

●管理员表(Administrator):用于存放
管理员的数据记录,包括数据项:管理员名、密码。

●部门表(Department):用来存放部门
的相关记录,包括数据项:部门号,部门名。

●用户表(Consumer):用于存放注册用
户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表有关)等。

●报刊信息表(magazine):用于存放报
刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。

●订单表(subscribe):用于存放用户下
达的订阅报刊的基本信息,包括数据项:订单编号、用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。

根据上面的设计规划出来的实体有部门实体、管理员实体、用户实体、报刊信息实体和订单实体。

部门实体的E-R 图如下图所示: 管理员实体的E-R 图如下图所示:
用户实体的E-R 图如下图所示: 报刊信息实体的E-R 图如下图所示:
订单实体的E-R图如下图所示:
所有实体之间的的关系E-R图如下图所示:
2.3 数据库逻辑设计
(1)一般逻辑模型设计
关系模型的逻辑结构是一组关系模式的集合。

将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。

由ERD导出一般关系模型的四条原则;①一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

如果软换为一个独立的关系模
式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。

如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

③一个m:n联系转换为一个关系模式。

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

④3个或3个以上实体间的一个多元联系可以转换为一个关系模式。

与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成
关系的码或关系码的一部分。

根据以上原则将E-R图转换成的关系模式如下:
部门(部门号,部门名称)
用户(用户账号,密码,用户真实姓名,
管理员(管理员名,密码)
报刊类别(分类编号,分类名称)
报刊(报刊代号,报刊名称,出版报社,
阅月数,订阅总额)
(2)具体逻辑模型设计
在SQL Server2000数据库中,首先创建报刊订阅管理系统数据库,然后根据数据库的逻辑结构分析创建表4-1━4-6的6张数据表。

在前台访问数据库阶段设
置了用户和密码,用户为sa,密码为空。

表4-1 department部门表结构
表4-2 consumer用户表结构
表4-3 magazine报刊表结构
表4-4 subscribe订单表结构
表4-5 adminuser管理员表结构
2.4 数据库物理设计
(1)索引的选择建立
由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必需。

本系统采用B+树索引方法,分别在各Consumer,magazine_query,consumer_st at和query_depat各个表的主键上建立关系表。

(2)数据存放位置
本系统数据和索引存放在磁盘中。

(3)确定系统配置
根据具体需要配置。

(4)模块设计
登陆模块
图2.4.1 登陆模块IPO图管理功能模块
图2.4.2 管理功能模块IPO图查询功能模块
图2.4.3 查询功能模块IPO图
3 系统实现与测试
3.1 连接数据库的实现
打开PowerBuilder,新建一个magazine,新建一个Application,取名magazine,然后点击工具栏上的DB Profile,新建一个MSS Microsoft SQL Server,填入Profile Name,服务器名,用户名,密码,数据库,如下图:
连接数据库:
然后输入连接数据库的主要代码:
3.2 模块功能实现
3.2.1 菜单的实现
(1)制作管理员主菜单w_adminview,建管理员主界面w_mainmenu,将该菜单放到窗口中
(2)制作用户主菜单w_consumer,建用户主界面w_consumermain,将菜单放到窗口中
3.2.2 登录模块的实现
(1)制作登录页面w_login1,在“确定”按钮输入如下:
“注册”按钮代码:open(w_enroll) //打开用户注册页面
“退出”按钮代码:close(w_login1)//退出本系统
(2)制作注册窗口w_register,在“注册”按钮的代码如下:
“取消”按钮代码:close(w_register) open(w_login)
3.2.3录入信息模块的实现
(1)制作管理员主菜单里的录入报刊信息窗口w_inputmagazine,录入用户信息窗口w_inputconsumer,
(2)制作数据窗口d_consumer,d_magazien在数据窗口调整好外观,添加控件,并设定相应的动作,分别放到这两个窗口中
这两个窗口功能相识,在窗口中输入:dw_1.settransobject(sqlca) dw_1.retrieve()
dw_2.settransobject(sqlca) dw_2.retrieve()
3.2.4 查询信息模块的实现
(1)制作管理员主菜单中的查询订阅信息窗口w_searchorder,制作数据窗口dw_booksearch,将其放入窗体中,在窗口中输入代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
sle_1.setfocus()
在“检索”按钮中输入代码:
“返回”按钮代码:
open(w_main)
close(w_magazine_query) 数据窗口字段
如下图:
(2)按用户查询,按钮代码如下:
返回代码如下:
open(w_main)
close(w_consumer_ruery)
数据窗口字段如下:
(3)用户主菜单的查询订单窗口w_consumer_query,将订单查找d_consumer_ruery_c放到窗口里,在窗口中过过滤器筛选中用户自己的订单信息,一打开就可以看到自己的订单信息,窗口代码:
用户统计d_consumer_query_c数据窗口如下:
3.2.5统计信息模块的实现
(1)制作管理员主菜单中的统计用户订单窗口w_stat_consumer,统计部门订单窗口w_stat_department,统计报刊订单窗口w_statconsumer:制作统计数据窗口d_consumer_stat,d_query_dept,w_stat_magazine,将d_consumer_stat,d_query_dept,w_stat_magazine分别放入
w_stat_consumer,w_stat_department,w_statconsumer中;以下仅列出按出按部门统计的代码和界面 (按用户、报刊统计类似,略);
按部门统计代码:
窗口代码:
按部门统计数据窗口:
dw_1.settransobject(sqlca)
dw_1.retrieve()
预览键代码:(与上页预览代码相同)
退出:close(parent)
3.2.6 订阅报刊模块的实现
(1)用户主菜单的订阅报刊窗口w_userorder
该系统中定义了一个全局变量gs_userid,其它窗口界面都可以使用该变量,并显示用户名,用户登录后,它会显示“~~~~,欢迎使用本系统!”的欢迎界面。

窗口代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
sle_1.setfocus()
sle_2.text=gs_userid
“清空”按钮代码:sle_1.text=""
sle_3.text=""
sle_5.text=""
“退出”按钮代码:close(w_userorder) “提交”按钮代码:。

相关文档
最新文档