书店管理系统数据库课程设计.docx
《书店管理系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《书店管理系统数据库课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
书店管理系统数据库课程设计
1引言………………………………………………………………………………………41.1课题背景……………………………………….………………………….…….….4
1.2课程设计目的………………………………………………………………..….4
1.3课程设计任务……………………………….……………………………….……4
2系统结构分析………..……………………………….……………………….…………5
2.1需求分析…………………………………………………………..…………….5
2.2系统模块图……………………………………………………………..…….….6
3数据库设计…………………………………….………………………………..…….…9
3.1概念结构设计………………………………………………………..……….…9
3.2逻辑结构设计…………………………………………………………..…….…10
3.3数据库表的建立…………………………………………………………..…….10
4系统实现………………..……..……………………….……………………12
4.1数据库的连接……………………………………………………………….…12
4.2系统功能模块设计……………………………………………………..………13
5功能测试……………..……..………………………….………………..……………15
5.1订单界面………………………………………………………….……………15
5.2各功能模块的测试……………………………………………………………16
6结束语……………..……..………………….………………..…………………………18
致谢………….………..……..……………………………………….………………19
参考文献…….………..……..…………………………………………….………………20
附录………….………..……..…………………………………………….………………21
书店管理系统的设计与实现
——订单信息管理模块
学生姓名:
冯淑华指导老师:
唐汇国
摘要本课程设计主要解决书店的管理问题,设计开发一个简单的书店管理系统,实现分类登陆,人员管理,书籍管理,订单管理以及各种查询,报表等功能。
在课程设计中,系统开发平台为Windows7,程序设计语言采用Java,数据库采用OracleDatabase10gExpressEdition,程序运行平台为Windows7。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在网上书店的管理中,解决实际问题。
关键词书店管理系统;数据库;Java
TheDesignandImplementationoftheBookstoreManagementSystem
——Orderinformationmanagementmodule
Studentname:
FengShuhuaAdvisor:
TANGHui-guo
AbstractThiscourseisdesignedmainlytosolvethemanagementissuesofthebookstorewhichincludethedesignanddevelopmentofasimplebookstoremanagementsystems,classificationlanding’achievement,personnelmanagement,bookmanagement,ordermanagementandvariousqueries’orreports’functions.Incurriculumdesign,oursystemdevelopmentplatformisWindows7andprogramminglanguageusestheJavaanddatabaseusesOracleDatabase10gExpressEdition,andtheprogramrunplatformmakesuseofWindows7.Afterdebuggingandrunning,Theprogramispreliminarydesignedtoachieveobjectives,andproperlyperfectsothatitcanbeappliedinthemanagementoftheonlinebookstoretosolvepracticalproblems.
KeywordsBookstoremanagementsystem;Database;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订单信息管理
6.“顾客信息设置”功能模块用于顾客编号管理、顾客姓名管理、联系方式管理、权限密码信息管理,其功能模块如图2.6所示。
图2.6顾客信息管理
本系统将用户划分为一种类型,即书店员工用户。
管理员可以管理其他用户的信息,在所有方面所有管理员的权限相同。
3数据库设计
3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1).雇员E-R图,如图3.1所示。
图3.1用户E-R图
根据分E-R图和需求分析,可得到总E-R图,如图3.10所示。
图3.10总体E-R图
3.2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库Bookmanage包含以下5个表:
员工信息表Employee、书籍信息表BookInfo、订单信息表BookOrders、顾客信息表Customs、订单详单表OrderDetail。
(1).订单信息表BookInfo
订单信息表BookInfo用来保存书籍编号、书籍名称、书籍价格、书籍类型、书籍标记、出版社和库存等信息。
表BookInfo的结构如表3-2所示。
表3-2表BookInfo的结构
编号
字段名称
数据结构
说明
1
BookID
Varchar2(12)
记录书籍编号
2
BookName
Varchar2(40)
记录书籍名称
3
Price
number
记书籍价格
4
BookType
Varchar2(20)
记录书籍类型
5
BookRemark
Varchar2(20)
记录书籍标记
6
Publis
Varchar2(20)
记录出版社
7
Stock
number
记录书籍库存
通过对上面表的分析,插入,删除,查找等操作,所有模式都符合3NF。
前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强书店管理系统的安全性。
3.3数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。
本系统使用的数据库为Bookmanage。
可以在企业管理器中创建数据库,也可以在查询分析器中执行以下Transact—SQl语句:
(1).创建表BookOrders
创建表BookOrders(订单信息表),它的代码如下:
createtableBookOrders(
OrdIDvarchar2(12),
TotalPruenumber(8),
CusIDvarchar2(12),
EmpIDvarchar2(12),
OrdDatedate,
primarykey(OrdID,CusID,EmpID),
foreignkey(CusID)referencesCustoms(CusID),
foreignkey(EmpID)referencesEmployee(EmpID)
);
GO
(2).创建表OrderDetail
创建表OrderDetail(订单详单信息表),它的代码如下:
createtableOrderDetail(
OrdIDvarchar2(12),
BookIDvarchar2(12),
BookCountnumber
--primarykey(OrdID)
--foreignkey(OrdID)referencesOrders(OrdID),
--foreignkey(BookID)referencesBookInfo(BookID)
);
4系统实现
4.1数据库的连接
在该系统中使用的数据库是OracleDatabase10gExpressEdition。
客户端采用的是PL/SQLDeveloper。
Java运行环境为EclipseIndigo。
在安装好了软件之后,数据库的连接设置在Eclipse里的Properties功能键中。
如图4.1所示
图4.1数据库连接
在JavaBuildPath中的Libraries中,运行AddExternalJARs…找到ojdbc14_g.jar并添加,则此时已将数据库和Java程序成功连接。
4.2系统功能模块设置
(1).设计订单信息管理对话框
订单信息管理对话框可以用来删除和查询订单信息。
添加一个对话框,将其命名为ContentPane。
对话框的布局如图4.2所示。
图4.2对话框ContentPane的布局
对话框启动,当你点击查找功能键时,则会出现要查询的订单信息,此时你可以实现删除。
当用户单击“查询”按钮时,将执行ChazhaoYuangongInfo()函数;当用户单击“删除”按钮时,将执行ShanchuYuanfongInfo()函数,在删除数据之前,程序要是否选择了要删除的订单记录,否则会提示请“请选中一行”。
设计订单详单信息管理对话框
订单信息管理对话框可以用来删除和查询订单信息。
添加一个对话框,将其命名为ContentPane。
对话框的布局如图4.3所示。
图4.3对话框ContentPane的布局
对话框启动,当你点击查找功能键时,则会出现要查询的订单细则信息,此时你可以实现查询。
当用户单击“查询”按钮时,将执行ChazhaoYuangongInfo()函数。
5功能测试
该程序实现了书店管理系统应有的功能,即登陆设置功能、员工信息管理功能、顾客信息管理功能、书籍信息管理功能和订单信息管理和订单详单管理功能。
5.1订单信息管理
程序运行时,登陆后点击“订单管理”便进入订单管理界面.点击“订单详单”便进入订单详单管理界面。
如图5.1所示
图5.1订单管理界面和订单详单管理界面
5.2各功能模块的实现
各功能的实现均与设计对话框相符合,如订单信息管理,当用户选择该项时,会弹出订单信息管理对话框,用户可以进行删除以及查询等操作,界面如图5.2所示,其他界面的功能也都一一实现,完成了该系统的功能要求。
图5.2订单信息管理对话框
6结束语
经过这些天的努力,本次课程设计终于完成了。
通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。
这次课程设计同样提高了我的综合运用所学知识的能力。
并对Java语言有了更深入的了解。
由于我的经验和知识的不足,在程序中还存在很多缺陷。
经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。
今后我会更多的学习编程技巧,不断的提高程
序理解和设计能力
致谢
在这次数据库的课程设计中,曾遇到过不少问题,单靠我个人的努力,很难按时完成该课程设计。
在此,我衷心感谢我的指导老师——彭玉旭。
彭玉旭老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。
另外,还要感谢学校领导、辅导员、各位同学对我们的关怀、帮助,为我们提供了良好的设计环境以及各方面的支持。
参考文献
[1]李彦,韩光林,李玉波.SQLSERVE完全自学手册[M].北京:
电子工业出版社,2007
[2]萨师煊,王珊.数据库系统概论.北京:
高等教育出版社.2005
[3]Y.DanieILiang.Java.万波.JAVA语言程序设计[M].第六版.北京:
机械工业出版社,2008
附录部分程序代码
//程序名称:
BookDenglu.java
//程序功能:
登陆管理
//程序作者:
冯淑华
//最后修改日期:
2012-09-12
/*订单类*/
package.vo;
publicclassOrdersVo{
privateStringordersID;
privateStringcusName;
privateStringempName;
privateStringbookName;
privateStringbookPrice;
privateStringbookCount;
privateStringtotalPrice;
privateStringordersDate;
publicStringgetOrdersID(){
returnordersID;
}
publicvoidsetOrdersID(StringordersID){
this.ordersID=ordersID;
}
publicStringgetCusName(){
returncusName;
}
publicvoidsetCusName(StringcusName){
this.cusName=cusName;
}
publicStringgetEmpName(){
returnempName;
}
publicvoidsetEmpName(StringempName){
this.empName=empName;
}
publicStringgetBookName(){
returnbookName;
}
publicvoidsetBookName(StringbookName){
this.bookName=bookName;
}
publicStringgetBookPrice(){
returnbookPrice;
}
publicvoidsetBookPrice(StringbookPrice){
this.bookPrice=bookPrice;
}
publicStringgetBookCount(){
returnbookCount;
}
publicvoidsetBookCount(StringbookCount){
this.bookCount=bookCount;
}
publicStringgetTotalPrice(){
returntotalPrice;
}
publicvoidsetTotalPrice(StringtotalPrice){
this.totalPrice=totalPrice;
}
publicStringgetOrdersDate(){
returnordersDate;
}
publicvoidsetOrdersDate(StringordersDate){
this.ordersDate=ordersDate;
}
}
/*订单信息*/
package.daoImpl;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
import.DB.DBUtil;
import.dao.IOrdersDao;
import.vo.BookVo;
import.vo.OrdersVo;
publicclassOrdersDaoimplementsIOrdersDao{
privatePreparedStatementpstm;
privateResultSetrs;
privateintrowNum;
privateConnectionconn;
privateStringsql;
@Override
publicListqueryOrders(OrdersVotemp){
//TODOAuto-generatedmethodstub
DBUtildu=newDBUtil();
Listlist=newArrayList();
OrdersVovo=null;
try{
conn=du.getConnect();
sql="selectBookOrders.Ordid,BookOrders.Orddate,bookinfo.price,customs.cusname,employee.empname,BookInfo.Bookname,OrderDetail.BookcountfromBookOrdersinnerjoinOrderDetailonBookOrders.Ordid=OrderDetail.OrdidinnerjoincustomsonBookOrders.Cusid=customs.cusidinnerjoinemployeeonBookOrders.Empid=employee.empidinnerjoinBookInfoonOrderDetail.Bookid=BookInfo.Bookidwherecustoms.cusName=?
";
pstm=conn.prepareStatement(sql);
pstm.setString(1,temp.getOrdersID());
rs=pstm.executeQuery();
while(rs.next()){
StringordersID=rs.getString