资源描述
长治学院
课程设计报告
课程名称:数据库原理课程设计
设计题目: 图书销售管理系统
系 别: 计算机系
专 业: 计算机科学与技术
组 别: 计07-1班第三组
学生姓名: 师贞贞 学 号: 07407125
起止日期: 2010年4月 1日 ~2010年5月1日
指导教师: 马桂芳
目 录
一、 需求分析 2
1.1 课题背景 2
1.2 需完成的功能 2
1.3 运行环境 2
二、总体设计 2
2.1 系统功能分析 2
2.2 系统功能模块设计 3
三、数据库设计 4
3.1 概念模型设计 4
3.2 逻辑数据库设计 5
3.3 物理数据库设计 6
四、程序设计与调试 7
五、程序模块设计 7
5.1查询功能实现 7
5.2 插入功能实现 8
5.3 删除功能实现 9
六、总结和致谢 10
七、参考文献 10
一、需求分析
1.1课题背景
图书销售管理系统开发:互联网的不断发展使得网上售书越来越受现代人的欢迎,但好多的读者还是喜欢去书店浏览图书,借阅购买自己喜爱的书籍,但如何能更方便、有效、快捷地实现店主、营业员、读者各自的功能,及相互之间的联系呢?针对这一问题,我们开发了图书销售管理系统,该系统主要有四大模块:用户管理模块,图书信息管理模块,分类信息管理模块和图书销售信息管理模块,各模块提供了数据的查询、插入、删除等功能,从而满足了用户的需求。
在该系统中,我承担的模块是图书信息管理模块。
1.2 需完成的功能
l 用户信息:包括用户名和用户密码;在该模块中针对不同的用户设置了权限管理,并且对用户信息有查询、删除、修改的功能。
l 有关图书信息的输入,包括图书编号、图书名称、作者、出版社、出版日期、价格;在该模块中可以分别按图书编号、图书名称实现数据的查询、录入、删除功能。
l 图书类别信息:包括类别编号、类别名称和说明;在该模块中可以按类别编号实现数据的插入、查询、删除功能。
l 图书销售信息:包括图书编号、类别编号、价格、出售日期;在该模块中可以通过图书编号和类别编号实现数据的插入、查询、删除功能,
1.3 运行环境
(1)操作系统: Microsoft Windows2000/Windows xp
(2)数 据 库: SQL Server数据库
(3)编程环境: PowerBuilder 9.0
二、总体设计
1.1系统功能分析
图书销售管理系统分为四大模块:
一.用户管理:在该系统中,用户有三种:店主、营业员和读者。在用户登录系统时,输入自己的用户名和密码,根据自己的权限,进入不同的主窗口。店主可以对各模块中的数据进行查询、删除、修改、录入;营业员可以查询图书的相关信息和销售信息;读者可以查看图书的基本信息和类别信息等。通过设置这样的权限,才能保证数据库系统的安全性,避免非法用户登录系统对系统内的重要数据进行修改等非法操作。连接好数据库后,输入正确的用户名和用户密码后就可以进入“图书销售管理系统登录”的界面,即可完成各种数据的操作,实现各自的功能。
二.图书基本信息管理:图书的基本信息是对图书自身的介绍,所以图书信息应包括图书编号、图书名称、作者、出版社、价格、出版日期等基本信息。该模块中可以对图书信息进行查询、录入、删除操作。
三.分类信息管理:类别信息是读者对图书类别的了解,可以实现图书信息的分类,所以该信息应包括类别编号、类别名称和说明,该模块管理可以使用户更方便的查阅书,也可以使读者对图书信息进一步了解,所以应包括类别编号、类别名称、说明。该模块管理可以实现对图书类别信息的查询、录入、删除操作。
四. 图书销售信息管理:图书销售信息是对所售图书情况的描述,所以图书销售信息包括图书编号、类别编号、价格和出售日期。并且可以通过图书销售表可以直观地了解售了哪些书,什么样的书,从而记录所卖图书的信息。通过该模块管理可以实现对图书销售情况的录入、查询、删除操作。
2.2 系统功能模块
通过系统功能层次图可以直观地理解系统的功能,并且有助于实现模块与模块以及各模块内的密切联系。
系统功能层次图如下:
图书销售管理系统
销售信息管理
分类信息管理
图书信息管理
用户管理
用户
密码修改
图书信息录入
图书信息删除
图书信息查询
分类信息录入
分类信息删除
分类信息查询
销售信息录入
销售信息删除
用户信息删除
用户信息录入
用户信息查询
销售信息查询
图1 系统功能层次图
三、数据库设计
3.1 概念模型设计
概念数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,所以使用E-R图来建立数据模型,直观地反映了各实体的属性及实体间相互联系。所以开发者必须收集一些基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典。根据这些基本信息设计出功能齐全、使用方便的系统。
系统所处理的E-R图如下:
销售
1
出版社
属于
图书分类信息
类别名称
说明
图书基本信息
作者
出版日期
图书编号
价格
图书名称
1
n
类别编号
价格
图书编号
类别编号
图书销售信息
出售日期
n
图2 系统E-R图
3.2数据库逻辑设计
逻辑结构设计阶段的主要任务是把概念结构设计好的E-R图转换为与DBMS产品所支持的数据模型相符合的逻辑,即将实体型、实体的属性和实体型之间的联系转换为关系模式,为此建立了四个数据表:
(1)图书信息表:包括的数据项有:图书编号、图书名称、作者、出版社、价格、出版日期;其中图书编号是主属性
(2)分类信息表:包括的数据项有:类别编号、类别名称、说明;其中类别编号是主属性。
(3)用户信息表:包括的数据项有:用户名、用户密码;其中用户名是主属性。
(4)销售信息表:包括的数据项有:图书编号、类别编号、价格和出售日期;其中图书编号和类别编号是主属性。
表1 用户表
列名
数据类型
长度
用户名
char
10
用户密码
char
10
表2 图书信息表
列名
数据类型
长度
图书编号
char
10
图书名
char
40
作者
char
10
出版社
char
40
价格
char
10
出版日期
char
10
表3 图书分类信息表
列名
数据类型
长度
类别编号
char
10
类别名称
char
10
说明
varchar
50
表4 图书销售信息表
列名
数据类型
长度
图书编号
char
10
类别编号
char
10
价格
char
10
出售日期
char
10
备注:在图书销售信息表中,图书编号和类别编号分别是图书信息表和分类信息表的外键。
3.3物理数据库设计
数据库的物理设计主要是根据上述关系模式选择索引存取,在经常出现在查询条件的属性上建立索引,并从时间效率、空间效率、维护代价等方面考虑数据的存储结构,使设计出的程序可读性强,通用性广,简易性高。
在该图书销售系统中,可根据上述各表建立各自的索引表,便于快速查找,从而实现数据库的物理设计。
四、程序设计与调试
该系统所选用的软件编程环境是PowerBuilder 9.0,所以进入PB环境与SQL Server数据库连接后,运行该系统程序,如果有错误则需不停地调试,直到正确为止。调试正确后运行,通过输入用户名,密码进入主窗口,然后进行各种数据库操作,包括对数据库信息中各表进行查询,修改,删除,保存等操作,最后退出图书销售管理系统,完成对管理系统的测试。
五、程序模块设计
——图书信息模块设计
在图书信息模块中,主要实现对图书基本信息的查询、删除、插入功能。
5.1查询功能实现
(1)查询方式:在该模块中可以按图书编号查询,也可以按图书名查询
(2)查询结果:
图3 图书信息模块查询运行结果图
(3)查询关键代码:
select "书"."图书编号","书"."图书名","书"."作者","书"."出版社","书"."价格","书"."出版日期" /*查询符合条件的记录
into :ls_sno,
:ls_name,
:ls_author,
:ls_chbsh,
:ls_price,
:ls_date
from "书" where "书"."图书编号"=:ls_id; */
if sqlca.sqlcode<>0 then
messagebox("error!","没有该图书记录,请重新输入!",information!,ok!)
sle_1.text=""
sle_1.setfocus() //文本编辑框获得焦点
return
5.2插入功能实现
(1)插入方式:在该模块中输入要插入图书的基本信息,完成插入功能。
(2)插入结果:
图4 图书信息模块插入运行结果图
(3)插入关键代码:
if (trim(ls_sno)<>sno) then
insert into 书(图书编号,图书名,作者,出版社,价格,出版日期) /*插入一条记录
values(:sno,
:sname,
:sauthor,
:schbsh,
:sprice,
:sdate);
messagebox("提示","插入成功!",information!,ok!) */
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
else
messagebox("error!","图书编号不允许重复,请重新输入!!",information!,ok!)
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
end if
5.3删除功能实现
(1)删除方式:在该模块中输入要插入图书的基本信息,完成插入功能。
(2)删除结果:
图5 图书信息模块删除运行结果图
(3)删除关键代码:
if sqlca.sqlcode<>0 then
messagebox("error!","没有该图书信息,请重新输入!",information!,ok!)
sle_1.text=""
sle_1.setfocus()
return
else
i=messagebox("提示", "确实要删除吗?",information!,yesno!)
if i=1 then
delete from 书 where 书.图书编号=:ls_sno; //删除所选记录
messagebox("提示", "删除成功",information!,ok!)
sle_1.text=""
end if
六、总结和致谢
在该图书销售系统中,我做的是图书信息管理模块,通过该设计使我对数据库原理设计有了更进一步的理解,并熟悉掌握了power builder9.0这样一个开发软件和数据库的各种插入,修改,删除操作,更重要的是通过该课程设计,激发了我对开发数据库系统的浓厚兴趣,为以后的学习打下了坚实的基础。
总之,这次课程设计让我学到了很多,不仅是巩固了先前学的的理论知识,而且也加强了我的动手能力,增强了我的团队合作意识。
最后,感谢辅导老师马桂芳老师几天来的辛苦辅导以及同组同学的积极配合,最终圆满完成任务。
七、参考文献
1.王珊.计算机应用系统的设计与开发[M].北京:高等教育出版社,1989
2.王珊,萨师煊.数据库系统及应用[M]. 北京:高等教育出版社,2000
3.郑阿奇.PowerBuilder实用教程[M]. 北京:电子工业大学出版社,2009
指导教师评语:
指导教师签名: 年 月 日
成绩评定
项 目
权重
成绩
1、设计过程中出勤、学习态度等方面
0.1
2、设计技术水平
0.4
3、编程风格
0.2
4、设计报告书写及图纸规范程度
0.3
总 成 绩
展开阅读全文