资源描述
目 录
1引言………………………………………………………………………………………4 1、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
书店管理系统得设计与实现
——订单信息管理模块
学生姓名:冯淑华 指导老师:唐汇国
摘 要 本课程设计主要解决书店得管理问题, 设计开发一个简单得书店管理系统 ,实现分类登陆,人员管理,书籍管理,订单管理以及各种查询,报表等功能。在课程设计中,系统开发平台为Windows 7,程序设计语言采用Java,数据库采用Oracle Database 10g Express Edition,程序运行平台为Windows 7.程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在网上书店得管理中,解决实际问题。
关键词 书店管理系统;数据库;Java
The Design and Implementation of the Bookstore Management System
——Order information management module
Student name: Feng Shuhua Advisor:TANG Hui-guo
Abstract 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 landing’achievement , personnel management , book management , order 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 running , 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 、
Keywords Bookstore management system; Database; Java
1 引言
1、1课题背景
Internet得迅速发展正以前所未有得深度与广度影响与改善着人类生活得各个方面,越来越多得人开始意识到Internet所起到得重大作用、随着书店规模得不断扩大,员工人数得不断增多,使得书店管理得手工操作管理模式得局限性越发突出、本书店管理系统应用了科学得管理模式对员工、书籍、订单信息进行管理与维护,并且还提供了给类报表得打印,使原本非常复杂得手工管理变得简洁明了.
计算机信息管理技术得应用,除了能在相当大得程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生得错误从而避免不必要得损失外,更重要得就是能建立准确畅通、简便得信息流通渠道,为工作提供所需要得准确、及时得信息以帮助做出正确而及时得选择与决定,从而给采用这门技术得单位带来了巨大得可见或不可见得利益与效益。
1、2课程设计目得
书店得不断扩张,需要更为人性化得管理。因而设计一个好得书店管理系统,能够提高书店得管理效率,创造更多得社会价值与经济价值。本论文旨在论述书店管理费系统得设计与开发。
通过书店管理系统得设计,熟练掌握Java、Oracle Database 10g Express Edition等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发得流程,提高自身分析问题、解决问题得能力。
1、3课程设计任务
本课程设计任务就是通过开发一个数据库书店管理系统,学习数据库系统得设计与开发,采用Java与Oracle Database 10g Express Edition等软件为开发工具。通过对计算机硬件与软件解决方案得论证,对应用领域进行调查分析,参考各种资料与进行数据库系统开发实践。在指导老师得帮助下,已经基本上成功地实现了设计任务书得要求,使得设计得数据库系统能够实现一般数据库得管理。
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(订单信息表),它得代码如下:
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)
);
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 Express 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、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] 李彦,韩光林,李玉波、 SQL SERVE完全自学手册[M]、 北京:电子工业出版社,2007
[2] 萨师煊,王珊、 数据库系统概论、 北京:高等教育出版社、 2005
[3] Y、DanieI Liang、Java、 万波、 JAVA语言程序设计[M]、 第六版、 北京:机械工业出版社,2008
附录 部分程序代码
// 程序名称: BookDenglu、java
// 程序功能:登陆管理
// 程序作者:冯淑华
// 最后修改日期:2012—09—12
/*订单类*/
package cn、、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 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 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 bookPrice) {
ﻩﻩ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() {
ﻩreturn ordersDate;
}
ﻩpublic void setOrdersDate(String ordersDate) {
ﻩ this、ordersDate = ordersDate;
ﻩ}
}
/*订单信息*/
package cn、、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 cn、、DB、DBUtil;
import cn、、dao、IOrdersDao;
import cn、、vo、BookVo;
import cn、、vo、OrdersVo;
public class OrdersDao implements IOrdersDao {
private PreparedStatement pstm;
private ResultSet rs;
ﻩprivate int rowNum;
ﻩprivate Connection conn;
ﻩprivate String sql;
ﻩOverride
ﻩpublic List〈OrdersVo> queryOrders(OrdersVo temp) {
// TODO Auto—generated method stub
ﻩ DBUtil 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, 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 where customs、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 = 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—generated catch block
ﻩe、printStackTrace();
ﻩ} finally {
ﻩ du、free(conn, pstm, rs);
ﻩ}
ﻩ return list;
}
Override
ﻩpublic List<OrdersVo〉 queryAllOrders() {
ﻩ // TODO Auto-generated method stub
ﻩ DBUtil 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, 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、prepareStatement(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(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-generated catch block
e、printStackTrace();
ﻩ} finally {
ﻩﻩdu、free(conn, pstm, rs);
ﻩ }
return list;
}
ﻩOverride
public List<OrdersVo> queryOrdersDetail(OrdersVo temp) {
ﻩﻩ// TODO Auto-generated method stub
ﻩDBUtil 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, 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 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、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、setCusName(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 block
ﻩﻩﻩe、printStackTrace();
ﻩﻩ} catch (SQLException e) {
// TODO Auto-generated catch block
ﻩﻩe、printStackTrace();
ﻩ } finally {
du、free(conn, pstm, rs);
}
return list;
ﻩ}
Override
ﻩpublic List〈OrdersVo〉 queryAllOrdersDetail() {
ﻩﻩ// TODO Auto—generated method stub
ﻩ DBUtil 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, 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、prepareStatement(sql);
ﻩ ﻩrs = pstm、executeQuery();
while (rs、next()) {
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
展开阅读全文