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

上传人:沈*** 文档编号:103526315 上传时间:2022-06-08 格式:DOC 页数:41 大小:1.70MB
收藏 版权申诉 举报 下载
数据库课程设计--报刊订阅管理系统_第1页
第1页 / 共41页
数据库课程设计--报刊订阅管理系统_第2页
第2页 / 共41页
数据库课程设计--报刊订阅管理系统_第3页
第3页 / 共41页
资源描述:

《数据库课程设计--报刊订阅管理系统》由会员分享,可在线阅读,更多相关《数据库课程设计--报刊订阅管理系统(41页珍藏版)》请在装配图网上搜索。

1、报刊订阅管理系统的开发与实现专业: 计算机科学与技术 学号: 姓名: 课程设计名称: 数据库原理和应用 设计题目: 报刊订阅管理系统的设计与实现 完成期限:自 2009年 12 月 14 日至 2009 年 12 月 27 日共 2 周设计依据、要求和主要内容(可另加附页): 本系统主要面向的用户有系统管理员、读者。下面分角色对该系统的不同操作范围做说明,主要有以下功能模块:(1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面。(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中

2、;普通用户自行注册进行录入个人信息。(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上。(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况。(6)系统维护功能:管理员可以对用户、报刊、部门、订阅等信息进行添加、删除、更改等维护工作;用户可以更改自己的注册信息,但用户名不能更改。指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日

3、摘 要本系统是一个面向于企业的报刊订阅管理系统。系统是智能化的管理系统,它面向所有企业部门的职工用户,但具有安全性能。它能够实现报刊订阅的基本功能,包括新报刊信息的登录、录入、订阅、查询、统计等操作。用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊,查询信息,统计信息等操作。对于非法操作,系统有识别和防护措施。订阅信息处理的特点是订阅信息处理量比较大,所管理的信息信息种类繁多,而且订阅单、编辑单的发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定因难。 系统在设计过程中,为了克服这些困难,需要使程序代码标准化,软件统一化,确保软件的可维护性和实用性

4、;删除不必要的管理冗余,实现管理规范化、科学化;界面友好、简单化,做到实用、方便,尽量满足报刊订阅中员工的需要。关键词: PowerBuilder;Microsoft SQL Server 2000;录入;查询;统计;订阅; 目 录1 系统需求分析61.1 信息需求分析61.2 业务流程分析61.3 功能需求分析81.4 数据流图81.5 数据字典 112 系统设计 132.1系统功能结构设计 132.2 数据库概念设计 132.3 数据库逻辑设计 152.4 数据库物理设计 173 系统实现与测试193.1 数据库连接193.2 模块功能实现20 3.2.1 菜单的实现20 3.2.2 登录

5、模块的实现21 3.2.3 录入信息模块的实现24 3.2.4 查询信息模块的实现25 3.2.5 统计信息模块的实现28 3.2.6 订阅报刊模块的实现29 3.2.7 更改信息的实现32 3.3 系统测试 34总结41参考文献421. 系统需求分析1.1 信息需求分析 1.3.1 资料收集:业务流程中用到的相关单据主要是报刊信息还有订单信息报刊信息表:报刊代号46-250报刊名称IT时代周刊出版报社科技出版社出版周期半月刊每月定价10.00元/月分类编号1001报刊介绍IT时代周刊是一本深刻解读信息时代商业变革的杂志。除深度报道信息产业的重大新闻外,还报道金融、汽车、股市、零售等传统行业利

6、用IT提升商业与管理的新闻。IT时代周刊以调查见深度;以商业故事见功力。是CEO/CIO/CFO以和政府官员、商业领袖首选刊物。订单信息表:订单编号报刊代号用户编号订阅日期订阅月数份数操作300346-20532062008-7-1订一月1取消订阅300426-30631082008-7-8订半年2取消订阅300572-31031002008-7-9订一年1取消订阅300645-21425412008-7-10订一季1取消订阅1.2 业务流程分析:本系统主要面向的用户有系统管理员、读者。下面分角色对该系统的不同操作范围做说明。下图为该系统的业务流程图1.3 功能需求分析 本系统的主要结构功能图

7、如下: (1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面。(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上。(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用

8、户可以统计出自己的订阅情况。(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)数据结构管理员用户=管理员帐户+管理员密码订户=订户编号+订户名+联系电话+联系地址目录=目录编号+目录名+单价+批注信息订单=订单号+订户编号+下订日期订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价(注:为保证订单确定后价格不随目录单价变动,订单细

9、节中应该有独立的单价来记录下订时目录的单价) (2)数据项表2.1 数据项表编号标识符类型长度所属表名同义名1AnameVarchar20Administrator管理员帐户2ApasswordVarchar20Administrator管理员密码3UnameVarchar20Consumer订户名4UphoneVarchar15Consumer联系电话5UAddressVarchar50Consumer联系地址6Magazine_nameVarchar20Magazine目录名7WholPriceFloat8MagazineSubscrible目录单价,下订时目录单价8Snum Int4Su

10、bscribe订阅数量9Subscribenum Int4Subscribe订阅期数10SnumFloat8Subscribe订单项总价(3) 数据流编号名称来源去向组成1身份信息系统管理员应用系统管理员帐户+密码2授权信息应用系统系统管理员3错误身份信息应用系统系统管理员4查询请求系统管理员应用系统待查询对象识别符(如Cid,Ono)5查询结果应用系统系统管理员被查询对象具体信息6管理请求系统管理员应用系统识别符(Cid,Ono等)+类型7管理结果信息应用系统系统管理员被管理对象处理结果8非法请求应用系统系统管理员非法请求提示信息表2.2 数据流表2 系统设计 2.1系统功能结构设计 系统功

11、能结构图如下图所示: 图2.1.1 系统功能结构图2.2数据库概念设计基本项构思ERD的四条基本原则:原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结

12、果或状态。原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。l 管理员表(Administrator):用于存放管理员的数据记录,包括数据项:管理员名、密码。l 部门表(Department):用来存放部门的相关记录,包括数据项:部门号,部门名。l 用户表(Consumer):用于存放注册用户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表有关)等。l 报刊信息表(magazine):用于存放报刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版

13、周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。l 订单表(subscribe):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号、用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。 根据上面的设计规划出来的实体有部门实体、管理员实体、用户实体、报刊信息实体和订单实体。部门实体的E-R图如下图所示: 管理员实体的E-R图如下图所示: 用户实体的E-R图如下图所示: 报刊信息实体的E-R图如下图所示: 订单实体的E-R图如下图所示: 所有实体之间的的关系E-R图如下图所示:2.3 数据库逻辑设计 (1)一般逻辑模型设计 关系模型的逻辑结构是一组关系

14、模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。由ERD导出一般关系模型的四条原则;一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个独立的关系模式,则与该联系相连的各实体的码以和联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以和联系本身的属性均转换为关

15、系的属性,而关系的码为n端实体的码。一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以和联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以和联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。 根据以上原则将E-R图转换成的关系模式如下:部门(部门号,部门名称)用户(用户账号,密码,用户真实姓名,联系电话,联系地址,部门号)管理员(管理员名,密码)报刊类别(分类编号,分类名称)报刊(报刊代号,报刊名称,出版报社,出版周期,每月订价,内容介绍,分类编号

16、)订单(用户名,报刊代号,订阅份数,订阅月数,订阅总额)(2)具体逻辑模型设计在SQL Server2000数据库中,首先创建报刊订阅管理系统数据库,然后根据数据库的逻辑结构分析创建表4-14-6的6张数据表。在前台访问数据库阶段设置了用户和密码,用户为sa,密码为空。表4-1 department部门表结构字段名称字段类型允许空说明Dnumber(主码)Char(10)否部门号DnameChar(50)否部门名称表4-2 consumer用户表结构字段名称字段类型允许空说明Uname(主码)Char(10)否用户帐号UpasswordChar(20)是真实姓名UrealnameChar(10

17、)否用户密码UsexChar(150)是用户联系地址UphoneChar(20)是用户联系电话UaddressChar(10)否用户所属部门号SubscribenumChar(10)否订阅数量表4-3 magazine报刊表结构字段名称字段类型允许空说明mnumber(主码)Char(10)否报刊代号mnameChar(40)否报刊名称mkindInt(4)否报刊分类mpressChar(10)否出版报社mtimeChar(30)否出版日期mhalfpriceChar(10)否半年定价mwholeFloat(8)否全年定价表4-4 subscribe订单表结构字段名称字段类型允许空说明Unam

18、e(主码)Char(10)否用户帐号Mnumber(主码)Char(10)否报刊代号SyearInt(4)否订阅份数SnumberInt(4)否订阅月数SsumFloat(8)是订阅总额表4-5 adminuser管理员表结构字段名称字段类型允许空说明Aname(主码)Char(10)否管理员用户名ApasswordChar(10)否管理员密码2.4 数据库物理设计(1)索引的选择建立由于系统可能要涉和大量数据的操作,所以索引的建立就成为一种必需。本系统采用B+树索引方法,分别在各Consumer,magazine_query,consumer_stat和query_depat各个表的主键上建

19、立关系表。(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,填入Pro,服务器名,用户名,密码,数据库,如下图: 连接数据库:然后输入连接数据库的主要代码:3.

20、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_

21、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

22、,制作数据窗口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放到窗

23、口里,在窗口中过过滤器筛选中用户自己的订单信息,一打开就可以看到自己的订单信息,窗口代码: 用户统计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

24、_department,w_statconsumer中;以下仅列出按出按部门统计的代码和界面 (按用户、报刊统计类似,略); 按部门统计代码: 窗口代码: 按部门统计数据窗口: dw_1.settransobject(sqlca) dw_1.retrieve() 预览键代码:(与上页预览代码相同) 退出:close(parent)3.2.6 订阅报刊模块的实现(1)用户主菜单的订阅报刊窗口w_userorder该系统中定义了一个全局变量gs_userid,其它窗口界面都可以使用该变量,并显示用户名,用户登录后,它会显示“,欢迎使用本系统!”的欢迎界面。窗口代码:dw_1.settransobj

25、ect(sqlca) dw_1.retrieve()sle_1.setfocus()sle_2.text=gs_userid“清空”按钮代码:sle_1.text= sle_3.text= sle_5.text=“退出”按钮代码:close(w_userorder)“提交”按钮代码:3.2.7 更改信息的实现 (1)用户主菜单中的修改用户信息窗口w_modify_consumer,打开会先显示出你的信息,而用户名这一栏是输入不了的,也就是不能修改用户名,窗口代码如下:“确定”按钮代码如下:3.3 系统测试 打开本系统,首先弹出欢迎界面,选择用户入口,点击“新用户注册” 按确定后,弹出“恭喜,您

26、已注册成功!”的对话框。如果这时刷新服务管理器,打开SQL Server企业管理器,打开该数据库的用户表,就可看到刚才注册的用户已经在表中了。 然后返回到登陆页面,输入刚才注册到的用户名和密码chen,1。 登录后,弹出一个窗口,有供用户使用的菜单,然后进入系统。 选择“订阅报刊”菜单,在这个订阅界面,用户可以浏览到所有的报刊信息,看到信息的下去,订阅报刊时,输入用户名,密码,报刊号,报刊名称,订阅数量(五年以下,一次只能增加0.5),订阅年限,然后点击“提交”按钮 点击“清空”按钮就可以将输入框中的内容。点击上页,下一页可以浏览报刊信息。 订阅成功后,系统弹出“恭喜!你已成功订阅该报刊,总金

27、额是”确定后会显示出您所订阅的总额是多少元,按“清空”按钮后可以订阅其它报刊(同样的报刊不可重复订阅)。再订阅其它报刊,然后按“下页”按 由于权限的限制,“统计”菜单中的也是只能统计自己订单信息的数据。 在“修改”信息菜单中,用户名也是不可输入的文本框,即不可修改用户名,其它信息可以修改,保存后它会自动添加到数据库中。 以管理员的身份登录,用户名admin,密码admin,按登录按键,可看到管理员菜单。 选择菜单栏中的录入-录入报刊信息,管理员可以大致浏览所有报刊信息,在上面的数据窗口可以查看上一页和下一页的具体内容,并且可以对其进行添加,删除、修改、保存等操作。 录入用户信息页面,基本相似。

28、 选择菜单栏中的“查询”-“订单信息”,管理员拥有的权限可以看到所有的订单信息。 管理员也可以根据需要分别按部门、按用户、按报刊查询,结果如下: 菜单栏中的“统计”菜单有三个子菜单,管理员可以分别统计用户订单信息、部门订单信息和报刊订单信息, 直接选择就可看到统计结果,比如选择“统计用户订单信息”。结论关于这个课程设计,我的感触很深,这是我很难得的非常认真独立的做的一个课程设计。这个学期学习了PowerBuilder,所以选择了使用Powerbuilder制作前台,然后我也到图书馆借了几本用Powerbuilder制作课程设计的书,用了整整四天的时间,并且按着那本书上的例子动手实现几个简单的程

29、序。当然,这中间也有某些书本说的不是很清楚的地方,只能靠着自己慢慢摸索,找出错误的地方,实现程序的运行。用PB做课程设计有了一定的认识以后,我开始着手这个课程设计,用了大约五天的时间。构思整个系统的整体框架,权限方面分开了管理员和用户的登录,管理员和用户的菜单分别是哪些,每个菜单下的功能怎么实现,都一一设计代码,然后修改,运行,调试。最后,整个系统基本上实现了所有要求,用户可以订阅报刊、查看和统计自己的订单信息,也可修改自己的信息,除了用户名。本系统的特色在于,用户订阅报刊非常方便,用户登录系统后,用户名作为全局变量保存在系统中,进入订阅菜单后,自动显示用户名,而用户只需要输入所要订阅的报刊代

30、号和订阅份数,以和选择需要订阅的时间,系统会自动计算出这次订阅所需要的金额,确定后显示于文本框中。在查看和统计订单信息时,也是自动筛选出该用户的订单信息,而无需用户再次输入用户名和密码。管理员方面,可以输入用户、报刊的信息,并且可以对这些信息进行修改。管理订单方面,管理员可以按人员、按部门、按报刊查询和统计所有的订单信息,方便对报刊的分发进行管理,并且可以预览和打印出这些结果。还有数据库备份和恢复功能使系统的数据安全性有了保障。由于是学习了PowerBuilder做程序仅仅只是入门,难免有些不足之处。我体会到自己用Powerbuilder完成设计的乐趣,但是由于某些能力方面的限制,我的系统还不

31、是那么完美,相比现实中的管理系统有段很大的距离。比如用户真实姓名没有纠错,应该把所有部门的职工全都输入到表中,当注册的时候,输入真实姓名,如果相关部门没有此人,则不允许注册,此功能尚未实现;本来的想法是用户订阅了某份报刊后,系统会自动生成一个订单号后,但是发现实现起来比较麻烦,订单表就直接用报刊代号和用户名作为主码了;订阅了报刊后,应该可以和管理员进行信息反馈,管理员确认了该订单,然后,在该报刊还没到发送时间,用户应该可以拥有,修改、取消订单之类的操作,这样比较符合实际。以上是该系统的不足之处,我想在以后继续学习的过程中,我会找到解决的方法,通过这次课程设计,我觉得我对数据库有了更进一步更深刻

32、的认识,比如:对表内一些字段的约束,关系等的运用已经比较熟练,巩固了我的数据库的知识。而且我也学会了Powerbuilder这个软件,对于这个软件的基础应用我已相当熟悉了,感觉自学挺自豪的。我会继续学习这相关方面的知识,使我以后开发出来的系统更加完善!参考文献1 零点工作室.Powerbuilder 9.0.北京.机械出版社.2004.92 陈刚等编著.Powerbuilder 案例开发程序设计教程.北京.清华大学出版社.20023 杨诏主编.Powerbuilder 8.0 编程实用技术与案例.北京.水利水电出版社.20034 卫海登. Powerbuilder 9.0 课程设计案例精编.北京.中国水利水电出版社.20045 王晟编著.Powerbuilder数据库开发经典案例解析.北京.清华大学出版社.20056 苗雪兰等编著.数据库系统原理与应用.北京.机械工业出版社.2007

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!