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

下载本文档

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

文档简介

1、目录1引言 41 . 1 课 题 背景 .41 .2课程设计目的 . .41.3课程设计任务 . . 42 系 统 结 构 分 析 . . . 52 . 1 需 求 分 析 . . 52 . 2 系 统 模 块 图 . . . 63 数 据 库 设 计 . . . 93 . 1 概 念 结 构 设 计 . . . 93.2 逻辑结构设103.3 数据库表的建立 . .104 系统实现 . . . 124 . 1 数 据 库 的 连接 . 1 24 . 2 系 统 功 能 模 块 设计 . . 1 35 功 能 测试 . . . . 155 . 1 订 单 界面 . 155 . 2 各 功 能

2、模 块 的 测试 1 66 结 束语 . . . . 18致谢 . . . . 1920附录 21书店管理系统的设计与实现订单信息管理模块学生姓名:冯淑华 指导老师:唐汇国摘 要 本课程设计主要解决书店的管理问题 , 设计开发一个简单的书店管理系 统 ,实现分类登陆 , 人员管理 ,书籍管理 ,订单管理以及各种查询 , 报表等功能。在 课程设计中,系统开发平台为 Windows 7, 程序设计语言采用 Java, 数据库采用 Oracle Database 10g Express Edition,程序运行平台为 Windows 7。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可

3、以应用在网上书店的管 理中,解决实际问题。关键词 书店管理系统;数据库; JavaThe Design and Implementation of the Bookstore Management System Order information management moduleStudent name: Feng Shuhua Advisor: TANG Hui-guoAbstract This course is designed mainly to solve the management issues of the bookstore which include the design

4、 and development of a simple bookstore management systems , clas sification landing'achievement , personnelmanagement , book management , order management and various queries' orreports ' functions . In curriculum design ,our system development platform is Windows 7 and programming langu

5、age uses the Java and database uses Oracle Database 10g Express Edition, and the program run platform makes use of Windows 7 . After debugging and running , The program is preliminary designed to achieve objectives, and properly perfect so that it can be applied in the management of the online books

6、tore to solve practical problems .Keywords Bookstore management system; Database; Java1 引言1.1 课题背景Internet 的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个 方面,越来越多的人开始意识到 Internet 所起到的重大作用 . 随着书店规模的不断 扩大, 员工人数的不断增多,使得书店管理的手工操作管理模式的局限性越发突出.本书店管理系统应用了科学的管理模式对员工.书籍. 订单信息进行管理和维护,并且还提供了给类报表的打印 , 使原本非常复杂的手工管理变得简洁明了。计算机信息管理

7、技术的应用,除了能在相当大的程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必 要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需 要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门技术 的单位带来了巨大的可见或不可见的利益与效益。1.2 课程设计目的书店的不断扩张 , 需要更为人性化的管理。因而设计一个好的书店管理系统,能 够提高书店的管理效率,创造更多的社会价值和经济价值。本论文旨在论述书店管 理费系统的设计与开发。通过书店管理系统的设计,熟练掌握 Java 、Oracle Database 10g E

8、xpress Edition 等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件 开发的流程,提高自身分析问题、解决问题的能力。1.3 课程设计任务本课程设计任务是通过开发一个数据库书店管理系统,学习数据库系统的设计与开发,采用 Java 和 Oracle Database 10g Express Edition等软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资 料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设 计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2 系统结构分析2.1 需求分析书店管理系统

9、是适应时代发展的需要,提高管理的效率而开发设计的。通过对 信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为 书店管理人员提供全面、准确的各种数据。实现了书店管理的简单化和规划化,提 高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效 益。经过综合分析,确定了书店管理系统的主要包括以下功能:(1) . 登陆管理功能登陆设置包括员工登陆。基本信息需要正确的员工姓名和密码才可以登陆。(2) . 员工管理功能系统设置包括员工编号设置、员工姓名设置、员工性别设置、员工生日设置和 备注。基本信息管理模块可以实现查询和删除员工信息功能。(3) . 书籍管理功能系统

10、设置包括图书名称设置、书籍编号设置、书籍出版社设置、书籍数量设 置、书籍价格设置和书籍备注信息。基本信息管理模块可以实现添加和重置书籍信 息功能:(4) . 订单管理功能系统设置包括客户姓名设置、订单日期设置、订单编号设置和经手人信息。基 本信息管理模块可以实现删除订单信息功能,以及对订单的模糊查询(5) .订单详单管理功能系统设置包括客户姓名设置、订单日期设置、订单编号设置、书籍名称设 置、书籍数目设置、图书单价设置和经手人信息。基本信息管理模块可以实现查询 订单详单信息功能。2.2功能模块图1. 根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。图2.1书店管理系统功能模块示意

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

12、顾客编号管理、顾客姓名管理、联系方式管理、权限密码信息管理,其功能模块如图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、书籍信息表 Boo

13、k Info 、订单信息表 BookOrders、顾客信息表 Customs、订单详单表 OrderDetail 。(1). 订单信息表Book Info订单信息表Book Info用来保存书籍编号、书籍名称、书籍价格、书籍类型、书籍 标记、出版社和库存等信息。表Book Info的结构如表3-2所示。表3-2 表Book Info 的结构编号字段名称数据结构说明1BookIDVarchar2(12)记录书籍编号2BookNameVarchar2(40)记录书籍名称3Pricenu mber记书籍价格4BookTypeVarchar2(20)记录书籍类型5BookRemarkVarchar2(

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

15、ders创建表BookOrders (订单信息表),它的代码如下:create table BookOrders(OrdID varchar2(12),TotalPrue nu mber(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) );GO(2) . 创建表 OrderDetail创建表

16、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 Express Edition 。客户端 采用的是 PL

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

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

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

20、单信息管理对话框,用户可以进行删除以及查询等操作,界面如图 5.2 所 示,其他界面的功能也都一一实现,完成了该系统的功能要求。图 5.2 订单信息管理对话框6 结束语经过这些天的努力,本次课程设计终于完成了。 通过这次课程设计, 使我对数 据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门 课程,必须在掌握理论知识的同时,加强上机实践。在本次课程设计中, 我明白了理论与实际应用相结合的重要性, 并提高了自己 组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。这次课程设计 同样提高了我的综合运用所学知识的能力。并对 Java 语言有了更深入的了解。由于我的经验和

21、知识的不足,在程序中还存在很多缺陷。经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。今后我会更多的学习编程技巧,不断的提高程序理解和设计能力致谢在这次数据库的课程设计中,曾遇到过不少问题,单靠我个人的努力,很难按 时完成该课程设计。在此,我衷心感谢我的指导老师彭玉旭。彭玉旭老师认真 负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。另外,还要 感谢学校领导、辅导员、各位同学对我们的关怀、帮助,为我们提供了良好的设计 环境以及各方面的支持。参考文献1 李彦,韩光林,李玉波 . SQL SERVE 完全自学手册 M. 北京:电子工业出版社, 20072 萨师煊,王珊 . 数据

22、库系统概论 . 北京:高等教育出版社 . 20053 Y.DanieI Liang.Java.万波. JAVA 语言程序设计 M. 第六版 . 北京:机械工业出版社, 2008附录 部分程序代码/ 程序名称: BookDenglu.java/ 程序功能:登陆管理/ 程序作者:冯淑华/ 最后修改日期: 2012-09-12/* 订单类 */public class OrdersVo private String ordersID;private String cusName;private String empName;private String bookName;private String

23、 bookPrice;private String bookCount;private String totalPrice;private String 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 = cusNam

24、e;public String getEmpName() return empName;public void setEmpName(String empName) 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 bookPr

25、ice) this.bookPrice = bookPrice;public String getBookCount() return bookCount;public void setBookCount(String bookCount) this.bookCount = bookCount;public String getTotalPrice() return totalPrice;public void setTotalPrice(String totalPrice) this.totalPrice = totalPrice;public String getOrdersDate()

26、return ordersDate;public void setOrdersDate(String ordersDate) this.ordersDate = ordersDate;/* 订单信息 */public class OrdersDao implements IOrdersDao private PreparedStatement pstm;private ResultSet rs;private int rowNum;private Connection conn;private String sql;Overridepublic List<OrdersVo> que

27、ryOrders(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.price, customs.cusname, employee.empname, Book

28、Info.Bookname, OrderDetail.Bookcount from BookOrders inner join OrderDetail onBookOrders.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 where customs

29、.cusName = ?"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.getString("EMPNAME");String ordersDate

30、 = rs.getString("ORDDATE"); vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName);vo.setEmpName(empName);vo.setOrdersDate(ordersDate); list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); catch (SQLException e) / TODO Auto-gene

31、rated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic List<OrdersVo> queryAllOrders() / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList<OrdersVo>();OrdersVo vo = null;try conn = du.getConnect();s

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

33、on BookOrders.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.g

34、etString("EMPNAME");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName);vo.setEmpName(empName);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrac

35、e(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic List<OrdersVo> queryOrdersDetail(OrdersVo temp) / TODO Auto-generated method stubDBUtil du = new DBUtil();List<OrdersVo> list = new ArrayList<Or

36、dersVo>();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 onBookOrders.Ordid = OrderDetail.Ordid inner join cust

37、oms on BookOrders.Cusid = customs.cusid inner join employee on BookOrders.Empid = employee.empid inner join BookInfo on OrderDetail.Bookid = BookInfo.Bookid whereBookOrders.ordId = ?"pstm = conn.prepareStatement(sql);pstm.setString(1, temp.getOrdersID();rs = pstm.executeQuery();while (rs.next()

38、 String ordersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.getString("EMPNAME");String bookName = rs.getString("BOOKNAME");String bookCount = rs.getString("BOOKCOUNT");String bookPrice = rs.getString("P

39、RICE");String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName);vo.setEmpName(empName);vo.setBookName(bookName);vo.setBookCount(bookCount);vo.setBookPrice(bookPrice);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundE

40、xception e) / TODO Auto-generated catch block e.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic List<OrdersVo> queryAllOrdersDetail() / TODO Auto-generated method stubDBUtil du = new DBU

41、til();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, OrderDetail.Bookcount from BookOrders inner join OrderDetail o

42、nBookOrders.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.prepareStatement(sql);rs = pstm.executeQuery();while (rs.next() String or

43、dersID = rs.getString("ORDID");String cusName = rs.getString("CUSNAME");String empName = rs.getString("EMPNAME");String bookName = rs.getString("BOOKNAME");String bookCount = rs.getString("BOOKCOUNT");String bookPrice = rs.getString("PRICE"

44、);String ordersDate = rs.getString("ORDDATE");vo = new OrdersVo();vo.setOrdersID(ordersID);vo.setCusName(cusName);vo.setEmpName(empName);vo.setBookName(bookName);vo.setBookCount(bookCount);vo.setBookPrice(bookPrice);vo.setOrdersDate(ordersDate);list.add(vo); catch (ClassNotFoundException e

45、) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally du.free(conn, pstm, rs);return list;Overridepublic Boolean deleteOrders(OrdersVo temp) / TODO Auto-generated method stubDBUtil du = new DBUtil();boolean bool =

46、 false;try conn = du.getConnect();sql = "delete from bookorders where ordid = ?"pstm = conn.prepareStatement(sql);pstm.setString(1, temp.getOrdersID();int flag1 = pstm.executeUpdate();sql = "delete from orderdetail where ordid = ?"pstm = conn.prepareStatement(sql);pstm.setString(

47、1, temp.getOrdersID();int flag2 = pstm.executeUpdate();if(flag1 != -1) && (flag2 != -1) )bool =true; catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally du.free(conn, pstm, rs);return bool;/* 订单服务 */public class OrdersService im

温馨提示

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

评论

0/150

提交评论