书店管理系统数据库课程设计报告_第1页
书店管理系统数据库课程设计报告_第2页
书店管理系统数据库课程设计报告_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.目 录1引言4 1.1课题背景. . .41.2 课程设计目的 . 41.3 课程设计任务.42系统结构分析. 52.1 需求分析 .52.2 系统模块图. .63数据库设计. 93.1 概念结构设计. 93.2 逻辑结构设计. 103.3 数据库表的建立.104系统实现.124.1 数据库的连接. 124.2 系统功能模块设计.135功能测试 . 155.1 订单界面. 155.2 各功能模块的测试 166结束语. 18致谢.19参考文献.20附录.21书店管理系统的设计与实现订单信息管理模块学生XX:冯淑华 指导老师:唐汇国摘 要 本课程设计主要解决书店的管理问题,设计开发一个简单的书店

2、管理系统 ,实现分类登陆,人员管理,书籍管理,订单管理以及各种查询,报表等功能。在课程设计中,系统开发平台为Windows 7,程序设计语言采用Java,数据库采用Oracle Database 10g Express Edition,程序运行平台为Windows 7。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在网上书店的管理中,解决实际问题。关键词 书店管理系统;数据库;JavaThe Design and Implementation of the Bookstore Management SystemOrder information management mo

3、duleStudent name: Feng Shuhua Advisor:TANG Hui-guoAbstract This course is designed mainly to solve the management issues of the bookstore which include the design and development of a simple bookstore management systems , classification landingachievement , personnel management , book management , o

4、rder management and various queries or reports functions . In curriculum design ,our system development platform is Windows 7 and programming language uses the Java and database uses Oracle Database 10g Express Edition, and the program run platform makes use of Windows 7 . After debugging and runnin

5、g , The program is preliminary designed to achieve objectives, and properly perfect so that it can be applied in the management of the online bookstore to solve practical problems .KeywordsBookstore management system;Database; Java1 引言1.1课题背景Internet的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Intern

6、et所起到的重大作用.随着书店规模的不断扩大,员工人数的不断增多,使得书店管理的手工操作管理模式的局限性越发突出.本书店管理系统应用了科学的管理模式对员工.书籍.订单信息进行管理和维护,并且还提供了给类报表的打印,使原本非常复杂的手工管理变得简洁明了。计算机信息管理技术的应用,除了能在相当大的程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门技术的单位带来了巨大的可见或不可见的利益与效益。1.2课程设计目的书

7、店的不断扩X,需要更为人性化的管理。因而设计一个好的书店管理系统,能够提高书店的管理效率,创造更多的社会价值和经济价值。本论文旨在论述书店管理费系统的设计与开发。通过书店管理系统的设计,熟练掌握Java、Oracle Database 10g Express Edition等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1.3课程设计任务本课程设计任务是通过开发一个数据库书店管理系统,学习数据库系统的设计与开发,采用Java和Oracle Database 10g Express Edition等软件为开发工具。通过对计算机硬件和软

8、件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2系统结构分析2.1 需求分析书店管理系统是适应时代发展的需要,提高管理的效率而开发设计的。通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为书店管理人员提供全面、准确的各种数据。实现了书店管理的简单化和规划化,提高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效益。经过综合分析,确定了书店管理系统的主要包括以下功能: (1). 登陆管理功能登陆设置包括员工登陆。

9、基本信息需要正确的员工XX和密码才可以登陆。(2). 员工管理功能系统设置包括员工编号设置、员工XX设置、员工性别设置、员工生日设置和备注。基本信息管理模块可以实现查询和删除员工信息功能。(3). 书籍管理功能系统设置包括图书名称设置、书籍编号设置、书籍设置、书籍数量设置、书籍价格设置和书籍备注信息。基本信息管理模块可以实现添加和重置书籍信息功能:(4). 订单管理功能系统设置包括客户XX设置、订单日期设置、订单编号设置和经手人信息。基本信息管理模块可以实现删除订单信息功能,以及对订单的模糊查询。(5) .订单详单管理功能系统设置包括客户XX设置、订单日期设置、订单编号设置、书籍名称设置、书籍

10、数目设置、图书单价设置和经手人信息。基本信息管理模块可以实现查询订单详单信息功能。2.2 功能模块图1. 根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。书店管理系统登陆管理模块理顾客信息管理订单信息管理雇员信息模块书籍信息模块订单详单信息管理图2.1 书店管理系统功能模块示意图2.“雇员信息设置”功能模块用于雇员编号管理、雇员XX管理、雇员性别管理、雇员生日管理以及备注信息管理,其功能模块如图2.2所示。雇员信息设置雇员编号管理雇员性别管理雇员生日管理雇员XX管理雇员备注管理图2.2 雇员信息设置3“书籍信息管理”功能模块用于图书名称管理、书籍编号管理、信息、书籍数量管理、书籍

11、价格管理以及备注信息,其功能模块如图2.3所示。书籍信息管理图书名称管理备注信息管理书籍数量管理书籍编号管理管理书籍价格管理图2.3 书籍信息管理4 .“订单详单信息管理”功能模块用于销售信息统计查询以及医生效益统计查询,其功能模块如图2.4所示。订单详单信息管理顾客名称信息经手人信息书籍编号信息书籍数量信息订单日期信息订单编号信息书籍总价信息图2.4 订单详单信息管理5.“订单信息管理”功能模块用于订单编号管理、客户XX管理、经手人XX管理、订单日期管理,其功能模块如图2.5所示。订单信息管理系统订单编号信息客户XX信息经手人XX信息订单日期信息图2.5 订单信息管理6. “顾客信息设置”功

12、能模块用于顾客编号管理、顾客XX管理、联系方式管理、权限密码信息管理,其功能模块如图2.6所示。顾客信息管理系统顾客编号信息顾客XX信息联系方式信息权限密码信息图2.6 顾客信息管理本系统将用户划分为一种类型,即书店员工用户。管理员可以管理其他用户的信息,在所有方面所有管理员的权限相同。3数据库设计3.1 概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图。(1). 雇员E-R图,如图3.1所示。雇员XX备注生日编号性别图3.1 用户E-R图根据分E-R图和需求分析,可得到总E-R图,如图3.10所示。图3.10 总体E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-

13、R图转换为关系模型。数据库Bookmanage包含以下5个表:员工信息表Employee、书籍信息表BookInfo 、订单信息表BookOrders、顾客信息表Customs、订单详单表OrderDetail。(1). 订单信息表BookInfo 订单信息表BookInfo 用来保存书籍编号、书籍名称、书籍价格、书籍类型、书籍标记、和库存等信息。表BookInfo 的结构如表3-2所示。表3-2 表BookInfo 的结构编号字段名称数据结构说明1BookIDVarchar2(12)记录书籍编号2BookNameVarchar2(40)记录书籍名称3Pricenumber记书籍价格4Book

14、TypeVarchar2(20)记录书籍类型5BookRemarkVarchar2(20)记录书籍标记6PublisVarchar2(20)记录7Stocknumber记录书籍库存通过对上面表的分析,插入,删除,查找等操作,所有模式都符合3NF。前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强书店管理系统的安全性。3.3数据库表的建立在设计数据库表结构之前,首先要创建一个数据库。本系统使用的数据库为Bookmanage。可以在企业管理器中创建数据库,也可以在查询分析器

15、中执行以下TransactSQl语句:(1) . 创建表BookOrders创建表BookOrders(订单信息表),它的代码如下:create table BookOrders(OrdID varchar2(12),TotalPrue number(8),CusID varchar2(12),EmpID varchar2(12),OrdDate date,primary key(OrdID,CusID,EmpID),foreign key(CusID) references Customs(CusID),foreign key(EmpID) references Employee(EmpID

16、);GO(2) . 创建表OrderDetail创建表OrderDetail(订单详单信息表),它的代码如下:create table OrderDetail(OrdID varchar2(12),BookID varchar2(12),BookCount number-primary key(OrdID)-foreign key(OrdID) references Orders(OrdID),-foreign key(BookID) references BookInfo(BookID);4系统实现4.1 数据库的连接在该系统中使用的数据库是Oracle Database 10g Expre

17、ss Edition。客户端采用的是PL/SQL Developer。Java运行环境为Eclipse Indigo。在安装好了软件之后,数据库的连接设置在Eclipse里的Properties功能键中。 如图4.1所示图4.1 数据库连接在Java Build Path中的Libraries中,运行Add External JARs找到ojdbc14_g.jar并添加,则此时已将数据库和Java程序成功连接。4.2 系统功能模块设置(1). 设计订单信息管理对话框订单信息管理对话框可以用来删除和查询订单信息。添加一个对话框,将其命名为ContentPane。对话框的布局如图4.2所示。图4.

18、2 对话框ContentPane的布局对话框启动,当你点击查找功能键时,则会出现要查询的订单信息,此时你可以实现删除。当用户单击“查询”按钮时,将执行ChazhaoYuangongInfo()函数;当用户单击“删除”按钮时,将执行ShanchuYuanfongInfo()函数,在删除数据之前,程序要是否选择了要删除的订单记录,否则会提示请“请选中一行”。设计订单详单信息管理对话框订单信息管理对话框可以用来删除和查询订单信息。添加一个对话框,将其命名为ContentPane。对话框的布局如图4.3所示。图4.3 对话框ContentPane的布局对话框启动,当你点击查找功能键时,则会出现要查询的

19、订单细则信息,此时你可以实现查询。当用户单击“查询”按钮时,将执行ChazhaoYuangongInfo()函数。5功能测试该程序实现了书店管理系统应有的功能,即登陆设置功能、员工信息管理功能、顾客信息管理功能、书籍信息管理功能和订单信息管理和订单详单管理功能。5.1订单信息管理程序运行时,登陆后点击“订单管理”便进入订单管理界面.点击“订单详单”便进入订单详单管理界面。如图5.1所示图 5.1订单管理界面和订单详单管理界面5.2各功能模块的实现各功能的实现均与设计对话框相符合,如订单信息管理,当用户选择该项时,会弹出订单信息管理对话框,用户可以进行删除以及查询等操作,界面如图5.2所示,其他

20、界面的功能也都一一实现,完成了该系统的功能要求。图5.2订单信息管理对话框6 结束语经过这些天的努力,本次课程设计终于完成了。通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。这次课程设计同样提高了我的综合运用所学知识的能力。并对Java语言有了更深入的了解。由于我的经验和知识的不足,在程序中还存在很多缺陷。经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。今后我会更

21、多的学习编程技巧,不断的提高程序理解和设计能力致 在这次数据库的课程设计中,曾遇到过不少问题,单靠我个人的努力,很难按时完成该课程设计。在此,我衷心感谢我的指导老师彭玉旭。彭玉旭老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。另外,还要感谢学校领导、辅导员、各位同学对我们的关怀、帮助,为我们提供了良好的设计环境以及各方面的支持。参考文献1 李彦,韩光林,李玉波. SQL SERVE完全自学手册M.:电子工业,20072 萨师煊,王珊.数据库系统概论.:高等教育. 20053 Y.DanieI Liang.Java. 万波. JAVA语言程序设计M. 第六版. :机械工业,

22、2008附录 部分程序代码/ 程序名称:BookDenglu.java/ 程序功能:登陆管理/ 程序作者:冯淑华/ 最后修改日期:2012-09-12/*订单类*/package.vo;public class OrdersVo private String ordersID;private String cusName;private String empName;private String bookName;private String bookPrice;private String bookCount;private String totalPrice;private String

23、ordersDate;public String getOrdersID() return ordersID;public void setOrdersID(String ordersID) this.ordersID = ordersID;public String getCusName() return cusName;public void setCusName(String cusName) this.cusName = cusName;public String getEmpName() return empName;public void setEmpName(String emp

24、Name) this.empName = empName;public String getBookName() return bookName;public void setBookName(String bookName) this.bookName = bookName;public String getBookPrice() return bookPrice;public void setBookPrice(String bookPrice) this.bookPrice = bookPrice;public String getBookCount() return bookCount

25、;public void setBookCount(String bookCount) this.bookCount = bookCount;public String getTotalPrice() return totalPrice;public void setTotalPrice(String totalPrice) this.totalPrice = totalPrice;public String getOrdersDate() return ordersDate;public void setOrdersDate(String ordersDate) this.ordersDat

26、e = ordersDate;/*订单信息*/package.daoImpl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import.DB.DBUtil;import.dao.IOrdersDao;import.vo.BookVo;import.vo.OrdersVo;public class OrdersDa

27、o implements IOrdersDao private PreparedStatement pstm;private ResultSet rs;private int rowNum;private Connection conn;private String sql;Overridepublic List<OrdersVo> queryOrders(OrdersVo temp) / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList

28、<OrdersVo>();OrdersVo vo = null;try conn = du.getConnect();sql = "select BookOrders.Ordid, BookOrders.Orddate, bookinfo.price, customs.cusname, employee.empname, BookInfo.Bookname, OrderDetail.Bookcount from BookOrders inner join OrderDetail on BookOrders.Ordid = OrderDetail.Ordid inner j

29、oin customs on BookOrders.Cusid = customs.cusid inner join employee on BookOrders.Empid = employee.empid inner join BookInfo on OrderDetail.Bookid = BookInfo.Bookid where customs.cusName = "pstm = conn.prepareStatement(sql);pstm.setString(1, temp.getOrdersID();rs = pstm.executeQuery();while (rs

30、.next() String ordersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.getString("EMPNAME");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName);vo.setEmpName(empN

31、ame);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic List<OrdersVo> queryAll

32、Orders() / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList<OrdersVo>();OrdersVo vo = null;try conn = du.getConnect();sql = "select BookOrders.Ordid, BookOrders.Orddate, bookinfo.price, customs.cusname, employee.empname, BookInfo.Bookname,

33、OrderDetail.Bookcount from BookOrders inner join OrderDetail on BookOrders.Ordid = OrderDetail.Ordid inner join customs on BookOrders.Cusid = customs.cusid inner join employee on BookOrders.Empid = employee.empid inner join BookInfo on OrderDetail.Bookid = BookInfo.Bookid"pstm = conn.prepareSta

34、tement(sql);rs = pstm.executeQuery();while (rs.next() String ordersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.getString("EMPNAME");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(order

35、sID);vo.setCusName(cusName);vo.setEmpName(empName);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return lis

36、t;Overridepublic List<OrdersVo> queryOrdersDetail(OrdersVo temp) / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList<OrdersVo>();OrdersVo vo = null;try conn = du.getConnect();sql = "select BookOrders.Ordid, BookOrders.Orddate, bookinfo

37、.price, customs.cusname, employee.empname, BookInfo.Bookname, OrderDetail.Bookcount from BookOrders inner join OrderDetail on BookOrders.Ordid = OrderDetail.Ordid inner join customs on BookOrders.Cusid = customs.cusid inner join employee on BookOrders.Empid = employee.empid inner join BookInfo on Or

38、derDetail.Bookid = BookInfo.Bookid where BookOrders.ordId = "pstm = conn.prepareStatement(sql);pstm.setString(1, temp.getOrdersID();rs = pstm.executeQuery();while (rs.next() String ordersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.

39、getString("EMPNAME");String bookName = rs.getString("BOOKNAME");String bookCount = rs.getString("BOOKCOUNT");String bookPrice = rs.getString("PRICE");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusNa

40、me(cusName);vo.setEmpName(empName);vo.setBookName(bookName);vo.setBookCount(bookCount);vo.setBookPrice(bookPrice);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block

41、e.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic List<OrdersVo> queryAllOrdersDetail() / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList<OrdersVo>();OrdersVo vo = null;try conn = du.getConnect();sql = "

42、select BookOrders.Ordid, BookOrders.Orddate, bookinfo.price, customs.cusname, employee.empname, BookInfo.Bookname, OrderDetail.Bookcount from BookOrders inner join OrderDetail on BookOrders.Ordid = OrderDetail.Ordid inner join customs on BookOrders.Cusid = customs.cusid inner join employee on BookOr

43、ders.Empid = employee.empid inner join BookInfo on OrderDetail.Bookid = BookInfo.Bookid"pstm = conn.prepareStatement(sql);rs = pstm.executeQuery();while (rs.next() String ordersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.getString(

44、"EMPNAME");String bookName = rs.getString("BOOKNAME");String bookCount = rs.getString("BOOKCOUNT");String bookPrice = rs.getString("PRICE");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName

45、);vo.setEmpName(empName);vo.setBookName(bookName);vo.setBookCount(bookCount);vo.setBookPrice(bookPrice);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printSta

46、ckTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic Boolean deleteOrders(OrdersVo temp) / TODO Auto-generated method stubDBUtil du = new DBUtil();boolean bool = false;try conn = du.getConnect();sql = "delete from bookorders where ordid = "pstm = conn.prepareStatement(sql)

47、;pstm.setString(1, temp.getOrdersID();System.out.println(temp.getOrdersID();int flag1 = pstm.executeUpdate();sql = "delete from orderdetail where ordid = "pstm = conn.prepareStatement(sql);pstm.setString(1, temp.getOrdersID();int flag2 = pstm.executeUpdate();if(flag1 != -1) && (fla

48、g2 != -1) )bool =true; catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return bool;/*订单服务*/package.serviceImpl;import java.util.List;import.daoImpl.CusDao;import.daoImpl.OrdersDao;import.service.IOrdersService;import.vo.CusVo;import.vo.OrdersVo;public class OrdersService implements IOrdersService Overridepublic List<OrdersVo> queryAllOrdersService() / TODO Auto-generated method stubOrdersDao dao = new OrdersDao();List<OrdersV

温馨提示

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

评论

0/150

提交评论