书店管理系统数据库课程设计.docx
- 文档编号:5813178
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:27
- 大小:3.09MB
书店管理系统数据库课程设计.docx
《书店管理系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《书店管理系统数据库课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
书店管理系统数据库课程设计
书店管理系统的设计与实现
学生姓名:
范佳捷指导老师:
邓广慧
摘要本课程设计主要解决书店的管理问题,设计开发一个简单的书店管理系统,实现分类登录,店员登录可以销售书籍,管理员登录可以实现用户管理,书籍管理,以及各种查询,报表等功能。
在课程设计中,系统开发平台为Windows7,程序设计语言采用Java,数据库采用OracleDatabase10gExpressEdition,程序运行平台为Windows7。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在网上书店的管理中,解决实际问题。
关键词书店管理系统;数据库;oracle;Java
1引言
1.1课题背景
Internet的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所起到的重大作用.随着书店规模的不断扩大,员工人数的不断增多,使得书店管理的手工操作管理模式的局限性越发突出.本书店管理系统应用了科学的管理模式对店员,书籍,等信息进行管理和维护,使原本非常复杂的手工管理变得简洁明了。
计算机信息管理技术的应用,除了能在相当大的程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门技术的单位带来了巨大的可见或不可见的利益与效益。
1.2课程设计目的
书店的不断扩张,需要更为人性化的管理。
因而设计一个好的书店管理系统,能够提高书店的管理效率,创造更多的社会价值和经济价值。
本论文旨在论述书店管理系统的设计与开发。
通过书店管理系统的设计,熟练掌握Java、OracleDatabase10gExpressEdition等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。
1.3课程设计任务
本课程设计任务是通过开发一个数据库书店管理系统,学习数据库系统的设计与开发,采用Java和OracleDatabase10gExpressEdition等软件为开发工具。
通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。
在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。
2系统分析
2.1需求分析
书店管理系统是适应时代发展的需要,提高管理的效率而开发设计的。
通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为书店管理人员提供全面、准确的各种数据。
实现了书店管理的简单化和规划化,提高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效益。
经过综合分析,确定了书店管理系统的主要包括以下功能:
(1)登录管理功能
用户登录需要正确的用户名和密码以及正确的身份。
用户分为两种类型,即书店店员和管理员。
管理员可以管理其他用户的信息,管理书籍信息,可以调整书籍价格与库存信息。
店员只能进行售书。
(2)用户管理功能
通过管理员登录进行用户管理,可实现查询用户信息、添加用户、删除用户和修改密码的功能。
(3)书籍管理功能
通过管理员登录进行书籍管理,可实现查询书籍信息、删除书籍信息、添加书籍信息、修改书籍信息的。
(4)售书功能
通过店员登录进行售书功能,可实现查询书籍的基本信息及库存情况,选择书籍进行购买和退订。
(5)销售记录功能
每次成功购买书籍生成一条销售记录,可根据购书日期查询某一天的销售情况,或者根据某一本书的书号模糊查询该书的销售情况。
另外可根据输入的确切日期,统计该日的销售所得利润。
2.2功能模块图
1.根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。
图2.1书店管理系统功能模块示意图
2.“用户管理模块”功能模块用于查询、添加、删除用户信息,以及修改密码,其功能模块如图2.2所示。
图2.2用户信息管理
3.“书籍信息管理模块”功能模块用于查询、添加、删除、修改书籍信息,修改书籍信息可以对书籍名称、出版社信息、书籍数量、书籍价格等进行管理,其功能模块如图2.3所示。
图2.3书籍信息管理
4.“销售书籍”功能模块用于查询销售书籍的基本信息,购买书籍以及退订书籍,其功能模块如图2.4所示。
图2.4销售书籍
5.“销售记录”功能模块用于销售信息统计、查询以及销售利润统计,其功能模块如图2.5所示。
图2.5销售记录
3数据库设计
3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1)用户E-R图,如图3.1所示。
图3.1用户E-R图
(2)书籍E-R图,如图3.2所示。
图3.2书籍E-R图
(3)销售记录E-R图,如图3.3所示。
图3.3销售记录E-R图
(4)根据分E-R图和需求分析,可得到总E-R图,如图3.4所示。
图3.4总体E-R图
3.2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库包含以下3个表:
用户信息表userinfo,书籍信息表bookinfo,销售记录表sellrecord。
关系模式:
用户信息表:
用户名,用户密码,用户身份
书籍信息表:
书号,类别,书名,作者,出版社,进价,定价,库存量
销售记录表:
记录编号,书号,购买数量,总价,购买日期,所的利润
(1)用户信息表userinfo
用户信息表包含信息用户名,用户密码,用户身份。
表userinfo的结构如图3-1所示
表3-1:
userinfo(用户信息表)
序号
字段名称
数据类型
说明
1
username
Varchar(20)
用户名,主键
2
password
Varchar(20)
用户密码
3
identity
Varchar(10)
用户身份
(2)书籍信息表bookinfo
书籍信息表包含信息书号,类别,书名,作者,出版社,进价,定价,库存量。
表bookinfo的结构如表3-2所示。
表3-2表bookinfo的结构
序号
字段名称
数据类型
说明
1
bookid
varchar2(20)
书籍编号,主键
2
category
varchar2(20)
书籍类别
3
bookname
varchar2(50)
书籍名
4
author
varchar2(30)
书籍作者
5
press
varchar2(30)
书籍出版社
6
bid
numeric(4,2)
书籍进价
7
price
numeric(4,2)
书籍售价
8
storage
int
书籍库存量
(3)销售记录表sellrecord
销售记录表包含信息记录编号,书号,购买数量,总价,购买日期,所得利润。
表sellrecord的结构如表3-3所示。
表3-3表sellrecord的结构
序号
字段名称
数据类型
说明
1
recordid
int
记录编号,主键,自动增长
2
bookid
varchar2(20)
书籍编号,外键,
引用于bookinfo表
3
quantity
int
购买书籍的数量
4
totalprice
numeric(8,2)
购买书籍的总价
5
buydate
date
购买书籍的日期
6
profit
numeric(8,2)
购买书籍所得利润
3.3数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库;本系统使用的数据库为xe;
(1)创建表userinfo(用户信息表)
createtableuserinfo(
usernamevarchar2(20),
passwordvarchar2(20),
identityvarchar2(10),
constraintspk_userinfoprimarykry(username)
);
(2)创建表bookinfo(书籍信息表)
createtablebookinfo(
bookidvarchar2(20)notnull,
categoryvarchar2(20),
booknamevarchar2(50)notnull,
authorvarchar2(30),
pressvarchar2(30),
bidnumeric(4,2),
pricenumeric(4,2),
storageint,
constraintspk_book_idprimarykey(bookid)
);
(3)创建表sellrecord(销售记录表)
createtablesellrecord(
recordidintprimarykey,
bookidvarchar2(20)notnull,
quantityintnotnull,
totalpricenumeric(8,2),
buydatedatenotnull,
profitnumeric(8,2),
constraintsfk_sellrecord_bookidforeignkey(bookid)referencesbookinfo(bookid)
);
createsequenceRECORD_SEQUENCE
minvalue1
maxvalue999999999999999999999999999
startwith1
incrementby1
cache20;
createtrigger"record_trigger"before
insertonsellrecordforeachrowwhen(new.recordidisnull)
begin
selectRECORD_SEQUENCE.nextvalinto:
new.recordidfromdual;
end;
4系统详细设计
4.1数据库连接的实现
在该系统中使用的数据库是OracleDatabase11gExpressEdition。
客户端采用的是PL/SQLDeveloper。
Java运行环境为Eclipse。
在安装好了软件之后,数据库的连接设置在Eclipse里的Properties功能键中。
在JavaBuildPath中的Libraries中,运行AddExternalJARs,找到目录下的classes12.jar并添加。
在java代码中编写getConnection()方法,连接数据库,代码如下:
publicstaticConnectiongetConnection(){
Connectionconn=null;
try{
Stringdriver="oracle.jdbc.driver.OracleDriver";
Stringurl="jdbc:
oracle:
thin:
@127.0.0.1:
1521:
xe";
Stringuser="system";
Stringpassword="password";
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
}
在连接数据库执行sql语句时,代码如下:
Connectionconn=DBManager.getConnection();
Statementst=null;
ResultSetrs=null;
try{
st=conn.createStatement();
rs=st.executeQuery(sql);
}catch(SQLExceptione){
e.printStackTrace();
}
由Statement对象st执行sql语句可得到查询结果集ResultSet类的rs实例,由rs的各种方法可取出查询结果。
4.2系统界面的设计与实现
(1)登录界面
登录界面选择身份,输入相应的用户名和密码,点击“登录”按钮进入对应身份的主界面,若登录信息不正确,则提示输入正确的信息;点击“取消”按钮则关闭登录界面;点击“注册”按钮,则弹出注册用户对话框,进行用户注册。
注册用户界面时,输入注册信息,点击“确定”提示注册情况,若用户名已存在,或用户名、密码超过指定长度,或两次输入密码不一致,则提示注册失败及原因,否则注册成功;点击“取消”按钮则取消注册。
登录功能实现如表4-1所示,注册功能实现如表4-2所示。
表4-1登录功能实现
名称
类型
说明
cmbIdentity
JComboBox
选择身份
txtUserName
JTextField
输入用户名
txtPassword
JPasswordField
输入密码
btnCertain
JButton
登录主界面
btnCancel
JButton
取消登录
btnLogon
JButton
注册用户
表4-2注册功能实现
名称
类型
说明
cmbIdentity
JComboBox
选择身份
txtUserName
JTextField
输入用户名
txtPassword
JPasswordField
输入密码
txtConfirm
JPasswordField
确认密码
btnCertain
JButton
提示注册情况
btnCancel
JButton
取消注册
(2)销售书籍界面
通过店员身份登录系统,进入销售界面,可输入书名或作者进行模糊查询,查询销售书籍的基本信息;选择要购买的书籍,点击“购买书籍”按钮,弹出确认信息界面,在该界面输入要购买或要退订书籍的数量,然后确认购买或确认退订;点击“退出系统”按钮,退出系统。
销售功能实现如表4-3所示。
表4-3销售书籍功能实现
名称
类型
说明
txtBookName
JTextField
输入书名查询
txtAuthor
JTextField
输入作者名查询
tblBookInfo
JTable
显示书籍信息
btnSearch
JButton
根据输入信息搜索书籍信息
btnSell
JButton
购买书籍
btnExit
JButton
退出系统
(3)管理界面
通过管理员身份登录系统,进入管理界面,有三个选项卡,对应书籍管理、用户管理、销售记录三个模块。
A.书籍管理功能实现模块可以选择不同方式,如书名、作者、类别等查询书籍信息,还可以选择某一书籍,对其进行修改信息或删除信息,还可以添加新的书籍信息。
功能实现如表4-4所示。
表4-4书籍管理实现
名称
类型
说明
txtBookName
JTextField
输入书名查询
txtAuthor
JTextField
输入作者名查询
txtCategory
JTextField
输入书籍类别查询
tblBookInfo
JTable
显示书籍信息
btnSearch
JButton
根据输入信息搜索书籍信息
btnUpdate
JButton
修改书籍信息
btnInsert
JButton
添加书籍信息
btnDelete
JButton
删除书籍信息
btnExit
JButton
退出系统
B.用户管理功能实现模块可以通过用户名或身份查询用户信息,还可以修改用户的密码,删除用户信息和注册新的用户。
功能实现如表4-5所示。
表4-5用户管理实现
名称
类型
说明
txtUserName
JTextField
输入用户名查询
txtIdentity
JTextField
输入身份类型查询
tblUserInfo
JTable
显示用户信息
btnUserSearch
JButton
根据输入信息搜索用户信息
btnUpdateUser
JButton
修改用户密码
btnInsertUser
JButton
注册新用户
btnDeleteUser
JButton
删除用户信息
C.销售记录功能实现模块可以通过书号查询该书的销售情况,通过购买日期查询某日的书籍销售情况。
功能实现如表4-6所示。
表4-6销售记录实现
名称
类型
说明
txtRecordBookId
JTextField
输入书号查询销售记录
txtBuyDate
JTextField
输入购书日期查询记录
tblSellRecord
JTable
显示销售记录
btnRecordSearch
JButton
根据输入信息搜索销售记录
btnCount
JButton
根据输入日期统计所得利润
5功能测试和运行结果
本系统实现了书店管理系统应有的功能,即登录功能、用户信息管理功能、书籍信息管理功能、书籍销售功能和生成销售记录功能。
5.1登录系统界面
程序运行时,首先来到登录界面,输入正确的信息,点击“登录”按钮,则弹出欢迎消息提示框,点击“确定”进入系统主界面,登录界面如图5.1所示。
欢迎消息对话框如图5.2所示。
若输入信息有误,则会弹出提示错误对话框,如图5.3,5.4所示。
点击“注册”按钮,弹出注册界面,注册界面如图5.5所示。
输入注册信息后点击确定,则弹出对应的注册成功提示,或注册失败及原因提示框。
如图5.6,5.7,5.8所示。
图5.1登录界面
图5.2欢迎消息
图5.3登录身份错误提示
图5.4登录错误提示
图5.5注册界面
图5.6注册成功
图5.7用户名已存在
图5.8注册信息不符规则
5.2销售书籍界面
以店员身份登录系统,进入销售书籍界面,销售书籍界面如图5.9所示。
图5.9销售书籍界面
在销售书籍界面中可操作:
a.点击“搜索”按钮,根据输入的书名、作者搜索数据库中符合输入信息的书籍信息并在列表中显示出来,如图5.10所示。
b.选择一行数据,点击“购买书籍”按钮,弹出确认信息及确定数量对话框,如图5.11所示,输入要购买的书籍数量,点击“确定”则弹出总金额提示框,如图5.12所示,点击“确定”则购买成功。
若购买书籍的数量大于该书的库存量,则提示库存不足,如图5.13所示。
c.点击“退出系统”按钮,弹出提示框“确定退出吗?
”,如图5.14所示。
点击“确定”则退出系统。
图5.10销售书籍查询
图5.11确定购买数量
图5.12提示购买书籍的总金额
图5.13提示库存不足
图5.14确定退出系统
5.3管理界面
以管理员身份登录系统,进入管理界面,用户可以进行书籍管理、用户管理、查看销售记录等操作。
(1)书籍管理如图5.15所示。
图5.15书籍管理界面
在书籍管理界面中可操作:
a.点击“搜索”按钮,根据输入的书名、作者、类别搜索数据库中符合输入信息的书籍信息,并在列表中显示出来,如图5.16所示。
b.点击“书籍入库”按钮,弹出新书籍信息入库的对话框,如图5.17所示,若未输入书号或书名,则弹出提示对话框,提示输入书号、书名不能为空。
如图5.18所示。
c.选择一行数据,点击“修改信息”按钮,弹出书籍信息更新对话框,如图5.19所示。
d.选择一行数据,点击“删除书籍”按钮,弹出提示框“确定删除吗?
”,如图5.20所示,点击“确定”则删除该行信息;若该书在销售记录中还存有记录,则弹出对话框提示无法删除该书,如图5.21所示。
e.点击“退出系统”按钮,弹出提示框“确定退出吗?
”,如图5.14所示,点击“确定”则退出系统。
图5.16查询书籍信息
图5.17添加书籍信息界面
图5.18输入书籍信息提示
图5.19书籍信息更新界面
图5.20确定删除
图5.21提示无法删除
(2)用户管理界面如图5.22所示
图5.22用户管理界面
在用户管理界面中可操作:
a.点击“搜索”按钮,根据输入的用户名。
身份类型搜索数据库中符合输入信息的用户信息,并在列表中显示出来。
如图5.23所示。
b.点击“添加用户”按钮,弹出添加注册用户的对话框,如图5.5注册界面所示;
c.选择一行数据,点击“修改密码”按钮,弹出修改密码对话框,如图5.25所示,输入旧密码和新密码之后,点击“确定”,若两次输入的密码不一致则会弹出提示对话框,修改密码失败,如图5.24所示。
d.选择一行数据,点击“删除用户”按钮,弹出提示框“确定删除吗?
”,如图5.20确定删除所示。
点击“确定”则删除该行信息。
图5.23搜索用户信息
图5.24密码不一致
图5.25修改密码界面
(3)销售记录界面如图5.26所示
图5.26销售记录界面
在销售记录界面中可操作:
a.点击“搜索”按钮,根据输入的书号、购书日期搜索数据库中符合输入信息的销售记录,并在列表中显示出来。
如图5.27所示。
b.点击“统计当前日利润”按钮,根据当前输入的确切日期计算出当日总利润,并弹出一个对话框显示出来,如图5.28所示,若未输入确切日期,则弹出提示对话框提示输入,如图5.29所示。
c.输入的有效书号搜索该书的销售记录,点击“删除本书记录”按钮,则弹出确认删除提示框,如图5.20所示。
若未输入有效书号,则弹出提示对话框提示输入一个有效书号,如图5.30所示。
图5.27销售记录查询
图5.28统计当前日所得利润
图5.29提示输入日期
图5.30提示输入有效书号
6结束语
经过这些天的努力,本次课程设计终于完成了。
通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。
这次课程设计同样提高了我的综合运用所学知识的能力。
并对Java语言有了更深入的了解。
由于我的经验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 书店 管理 系统 数据库 课程设计