




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目录一系统需求分析(1)系统概述.(2)系统目标.(3)可行性分析.(4)系统分析.二数据库设计部分(1)数据流图(2)表设计及结构(3)用T-SQL语句创建数据库、创建表以及添加数据 1.创建数据库代码: 2.创建表代码: 3.详细设计三 实验总结及体会四 参考文献一需求分析1.系统概述现如今图书销售行业发展迅速,大大小小的书店到处可见,特别是一些发展较大的书城采用大规模的连锁经营方式。随着规模的扩大传统的图书管理已经不能适应发展的需要。图书管理工作繁琐,销售频繁,包含大量的信息数据,因此就需要一个完善的图书销售管理系统来实现对这些数据的有效管理。本系统主要任务就是
2、对书店、图书、顾客、销售信息、查询进行统一管理,满足各类用户的需求。本系统在功能上要实现书店基本信息管理功能,图书销售功能,图书采购功能,财务管理工能。开发背景:我们对世面上的书城如新华书店和学校里的小书店进行了初步的了解,发现其业务主要是集中在对图书的管理和图书的销售和退货上。对图书的管理工作量较大,采用手工的方式还容易出错,并且不能满足顾客对图书的详细的查询功能。本系统在设计中考虑和克服了上诉的诸多问题,增强了实用性。2.系统目标图书销售管理系统就是要求图书管理人员通过该系统对图书、顾客、管理员、购买信息等进行统一管理,从而实现功能上的销售图书、退还图书、库存量以及信息查询。这就要求管理人
3、员能够对数据库熟悉操作而简单的表查询、触发器的建立、存储过程的建立以及用户自定义函数的建立等等这些管理数据库的方法都能对图书馆里系统的管理起到事半功倍的效果。3.系统可行性分析系统现阶段的发展过程中,利用现有人力和物力是完全具备能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法简单容易。本系统采用java和SQL Sever相结合的方法来实现。由于图书销售的普及,许多都要求使用计算机进行管理,并且实际中也有系统的使用。所以本系统的使用市场非常的广阔,易于推广和普及到现实中应用。所以本系统在市场应用上是完全可行 4.系统分析(1)图书销售管理系统功能结构图:由于管理员是本系统的主要的使用
4、者所以其涉及的活动较多。图书管理是指对图书信息的录入、更新、修改和删除。查询图书信息是在销售图书时进行的,以了解是否有该图书和库存等信息。二 数据库设计部分1.数据流图(1)第一层数据流图:(2)第二层数据流图(3)第三层数据流图销售细化购买细化财务细化(2) 表设计1.需要的表有:图书信息表,供应商信息表,书店信息表,顾客信息表,书店员工表,进货表等。 2.以下为各表的表结构(1)图书库存信息表结构列名数据类型长度是否允许为空默认值说明图书编号char12×无主键图书名nvarchar20×无图书价格char20无库存量Char20无(2)供应商信息表结构列名数据类型长度
5、是否允许为空默认值说明供应书号char12×无主键出版社char12×无供应商姓名char8×无供应商电话char12×否(3)书店信息表结构列名数据类型长度是否允许为空默认值说明书店编号char10×无主键负责人编号char20×无书店名char12无(4)顾客信息表结构列名数据类型长度是否允许为空默认值说明顾客编号char10×无主键顾客姓名char8×无顾客电话char12×无(5)书店员工表结构列名数据类型长度是否允许为空默认值说明员工编号char10×无主键员工姓名char12
6、5;无员工性别char4×无员工电话char12无(6)书店进货表结构列名数据类型长度是否允许为空默认值说明图书书号char12×无外键书店编号nvarchar10×无外键进货日期datetime×无进货量char100是(7)书店发货表结构列名数据类型长度是否允许为空默认值说明图书书号char12×无外键书店编号nvarchar10×无外键发货日期datetime×无发货量char100是(8)顾客退货表结构列名数据类型长度是否允许为空默认值说明图书书号char12×无外键书店编号nvarchar10×
7、无外键退货日期datetime×无退货量char100是(9)顾客订货表结构列名数据类型长度是否允许为空默认值说明顾客编号char10×无外键图书编号char12×无外键图书价格Char20无库存量char100×无销售量char50无(3) 用T-SQL语句创建数据库、创建表以及添加数据1.创建数据库代码: create database 图书销售管理系统on primary(name=tsxsgl_dat, filename='f:数据库tsxsgl_dat.mdf',size=10mb,maxsize=20mb,filegrowth
8、=2mb),filegroup图书销售管理系统(name=tsxsgl_data, filename='f:数据库tsxsgl_data.ndf',size=5mb,maxsize=10mb,filegrowth=1mb)log on(name=tsxsgl_log, filename='f:数据库tsxsgl_log.ldf',size=5mb,maxsize=10mb,filegrowth=1mb)go2.创建表代码create table 图书库存信息(图书编号 char(12) not null primary key,图书名 nvarchar(20)
9、not null,图书价格 char(20) null,库存量 char(20) null)insert into 图书库存信息 values('00001','红楼梦', '18','100') insert into 图书库存信息 values('00002','围城', '22','34') insert into 图书库存信息 values('00003','英语四级词汇', '30','123'
10、) insert into 图书库存信息 values('00004','电子技术基础', '33','78') insert into 图书库存信息 values('00005','计算机组成原理', '12','55') create table 顾客信息(顾客编号 char(10) not null primary key,顾客姓名 char(8) not null ,顾客电话 char(12) not null)insert into 顾客信息 values(
11、'1001','田令', '') insert into 顾客信息 values('1002','刘子', '') insert into 顾客信息 values('1003','张伟', '') insert into 顾客信息 values('1004','李全文', '') insert into 顾客信息 values('1005','王万', ''
12、) insert into 顾客信息 values('1006','高寒', '') create table 供应商信息(供应书号 char(12)not null primary key, 出版社 char(12) not null,供应商姓名 char(8) not null,供应商电话 char(12) not null)insert into 供应商信息 values('001','延边出版社', '李明','') insert into 供应商信息 values('
13、;002','延边出版社', '李明','') insert into 供应商信息 values('003','吉林出版社', '李明','') insert into 供应商信息 values('004','教育出版社', '李明','') insert into 供应商信息 values('005','教育出版社', '李明','') inser
14、t into 供应商信息 values('006','青华出版社', '李明','') insert into 供应商信息 values('007','青华出版社', '张华','') insert into 供应商信息 values('008','青华出版社', '张华','') insert into 供应商信息 values('009','广州出版社', '张
15、华','') insert into 供应商信息 values('010','广州出版社', '李明','')create table 书店信息(书店号 char(10) not null primary key,负责人编号 char(20)not null,书店名 char(12) null)insert into 书店信息 values('0001','101', '新华书店') insert into 书店信息 values('0002'
16、,'102', '新华书店') insert into 书店信息 values('0003','103', '新华书店') insert into 书店信息 values('0004','104', '新华书店') insert into 书店信息 values('0005','105', '新华书店') insert into 书店信息 values('0006','106', '
17、;新华书店') create table 顾客订货货表(图书编号 char(12) not null,书店号 nvarchar(10) not null,订货日期 datetime not null,订货量 char(100) null,)insert into 顾客订货货表 values('01','0001', '','100') insert into 顾客订货货表 values('02','0001', '','120') insert into 顾客
18、订货货表 values('03','0006', '','100') insert into 顾客订货货表 values('04','0006', '','100')insert into 顾客订货货表 values('05','0005', '','200') create table 书店发货表(图书编号 char(12) not null,书店号 nvarchar(10) not null,发货日期
19、 datetime not null,发货量 char(100) null,)insert into 书店发货表 values('01','0001', '','100') insert into 书店发货表 values('02','0001', '','120') insert into 书店发货表 values('03','0006', '','100') insert into 书店发货表 val
20、ues('04','0006', '','100')insert into 书店发货表 values('05','0005', '','200') create table 书店进货表(图书编号 char(12) not null,书店号 nvarchar(10) not null,进货日期 datetime not null,进货量 char(100) null,)insert into 书店进货表 values('01','0001'
21、;, '','100') insert into 书店进货表 values('02','0001', '','120') insert into 书店进货表 values('03','0006', '','100') insert into 书店进货表 values('04','0006', '','100')insert into 书店进货表 values('05
22、','0005', '','200') create table 供应商发货表(图书编号 char(12)not null,供应商编号 char(10) not null,图书价格 char(20)null,库存量 char(100) not null,销售量 char(50) null)insert into 供应商发货表 values('01','1001', '18','100','1') insert into 供应商发货表 values('0
23、2','1001', '22','34','2') insert into 供应商发货表 values('03','1006', '30','123','2') insert into 供应商发货表 values('04','1006', '33','78','2')insert into 供应商发货表 values('05','1005
24、39;, '12','55','3') create table 书店员工信息(员工编号 char(10) not null primary key,员工姓名 char(12) not null,员工性别 char(4) not null,员工电话 char(12) null)insert into 书店员工信息 values('11001','田伟','男', '') insert into 书店员工信息 values('11002','刘令', &
25、#39;男','') insert into 书店员工信息 values('11003','张子', '女','') insert into 书店员工信息 values('11004','李阳', '男','') insert into 书店员工信息 values('11005','王全', '男','') insert into 书店员工信息 values('11006&
26、#39;,'高万', '女','') 为进货表创建触发器trig_orders_insert,当进货表中增加一条记录时触动触发器,更新库存图书中的图书数量及相关信息。create trigger trig_orders_inserton 进货表for insertasdeclare 图书编号 varchar(13),num intselect 图书编号 =ISBN,num=stock_num from insertedupdate book set num=num+numwhere 图书编号=图书编号为进货表创建存储过程showBidPrice,
27、当输入书名时输出报价单,供操作人员选择go /*进货*/create procedure showBidPrice bname varchar(20)asdeclare num intselect * from 供应商信息表 where 图书编号=(select ISBN from book where 图书名=图书名)exec showBidPrice '数据库原理'3.详细设计该系统采用java连接SQL数据库的方式,使用图形用户界面,主要实现图书增删改等功能。下面具体对各模块进行介绍。1 登录模块及主界面登陆框流程图如下图所示,单击某个按钮就能弹出面 系统登录界面在按按钮
28、“操作数据库”后就会出现下图,在根据提示操作2.实现界面的java代码为:import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class Example public static void main(String args ) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch(ClassNotFoundException e) System.out.println("&qu
29、ot;+e); DatabaseWin win=new DatabaseWin(); class DatabaseWin extends JFrame implements ActionListener/主窗口 JMenuBar menubar; JMenu menu; JMenuItem itemShow,itemUpdate,itemInsert,itemDelete; ShowRecord showRecord; ModifyRecord modifyRecord; InsertRecord insertRecord; DeleteRecord deleteRecord ; Databa
30、seWin() menubar=new JMenuBar(); menu=new JMenu("操作数据库"); itemShow=new JMenuItem("显示记录"); itemUpdate=new JMenuItem("更新记录"); itemInsert=new JMenuItem("增加记录"); itemDelete=new JMenuItem("删除记录"); itemShow.addActionListener(this); itemUpdate.addActionListe
31、ner(this); itemInsert.addActionListener(this); itemDelete.addActionListener(this); menu.add(itemShow); menu.add(itemUpdate); menu.add(itemInsert); menu.add(itemDelete); menubar.add(menu); showRecord=new ShowRecord("显示记录对话框"); modifyRecord=new ModifyRecord("修改记录对话框"); insertRecord
32、=new InsertRecord("增加记录对话框"); deleteRecord=new DeleteRecord("删除记录对话框"); setJMenuBar(menubar); setBounds(100,100,370,250); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) if(e.getSource()=itemShow) showRecord.setVisible(
33、true); else if(e.getSource()=itemUpdate) modifyRecord.setVisible(true); else if(e.getSource()=itemInsert) insertRecord.setVisible(true); else if(e.getSource()=itemDelete) deleteRecord.setVisible(true); class ShowRecord extends JDialog implements ActionListener/负责显示记录的类 JTable table; Object a; Object
34、 name="图书编号","图书名","图书价格","库存量" JButton showRecord; Connection con; Statement sql; ResultSet rs; ShowRecord(String title) setTitle(title); showRecord=new JButton("显示记录"); showRecord.addActionListener(this); add(showRecord,BorderLayout.NORTH); setBoun
35、ds(200,60,400,250); public void actionPerformed(ActionEvent e) try con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery("SELECT * FROM 图书信息"); rs.las
36、t(); int lastNumber=rs.getRow(); a=new ObjectlastNumber6; int k=0; rs.beforeFirst(); while(rs.next() ak0=rs.getString(1); ak1=rs.getString(2); ak2=rs.getString(3); ak3=rs.getString(4); ak4=rs.getString(5); ak5=rs.getString(6); k+; con.close(); catch(SQLException ee) System.out.println(ee); table=new
37、 JTable(a,name); getContentPane().removeAll(); add(showRecord,BorderLayout.NORTH); add(new JScrollPane(table),BorderLayout.CENTER); validate(); class ModifyRecord extends JDialog implements ActionListener /负责更新记录的类 JLabel hintLabel; JTextField inputNumber; Object name="图书编号","图书名"
38、;,"图书价格","库存量" Object a=new Object16; JTable table; JButton enterModify; Connection con; Statement sql; ResultSet rs; String num; ModifyRecord(String s) setTitle(s); hintLabel=new JLabel("图书编号(回车确认):"); inputNumber=new JTextField(20); table=new JTable(a,name); enterModi
39、fy=new JButton("更新记录"); setLayout(null); Box baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(inputNumber); baseBox.add(new JScrollPane(table); baseBox.add(enterModify); add(baseBox); baseBox.setBounds(10,40,600,38); inputNumber.addActionListener(this); enterModify.ad
40、dActionListener(this); setBounds(20,60,700,200); public void actionPerformed(ActionEvent e) if(e.getSource()=inputNumber) try num=inputNumber.getText().trim(); con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); rs=sql.executeQuery("
41、;SELECT * FROM 图书信息 WHERE 图书编号='"+num+"'"); boolean boo=rs.next(); if(boo=false) JOptionPane.showMessageDialog (this,"图书编号不存在","提示",JOptionPane.WARNING_MESSAGE); else a00=rs.getString(1); a01=rs.getString(2); a02=rs.getString(3); a03=rs.getString(4); a04=rs
42、.getString(5); table.repaint(); con.close(); catch(SQLException ee) System.out.println(ee); if(e.getSource()=enterModify) try con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); sql.executeUpdate ("UPDATE 图书信息 SET 图书信息='"+a
43、00+ "',ADDRESS='"+a01+ "',IN_AMOUNT='"+a02+ "',OUT_AMOUNT='"+a03+"',REMAIN_AMOUNT='"+a04+"'WHERE 图书编号='"+num+"'"); JOptionPane.showMessageDialog (this,"更新成功","成功",JOptionPane.P
44、LAIN_MESSAGE); con.close(); catch(SQLException ee) JOptionPane.showMessageDialog (this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE); class InsertRecord extends JDialog implements ActionListener /负责增加记录的类 JLabel hintLabel; Object name="图书编号","图书名","图书价格"
45、,"库存量" Object a=new Object16; JTable table; JButton enterInsert; Connection con; Statement sql; ResultSet rs; String num; InsertRecord(String s) setTitle(s); hintLabel=new JLabel("输入新记录:"); table=new JTable(a,name); enterInsert=new JButton("增加新记录"); setLayout(null); Box
46、 baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(new JScrollPane(table); baseBox.add(enterInsert); add(baseBox); baseBox.setBounds(10,40,600,38); enterInsert.addActionListener(this); setBounds(120,160,700,200); public void actionPerformed(ActionEvent e) try con=DriverManager.g
47、etConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); int k=sql.executeUpdate ("INSERT INTO 图书信息 VALUES('"+ a00+"','"+a01+"','"+a02+"','"+a03+"','"+a04+"')");
48、 if(k=1) JOptionPane.showMessageDialog (this,"增加记录成功","成功",JOptionPane.PLAIN_MESSAGE); con.close(); catch(SQLException ee) JOptionPane.showMessageDialog (this,"增加记录失败"+ee,"失败",JOptionPane.ERROR_MESSAGE); class DeleteRecord extends JDialog implements ActionList
49、ener/负责删除记录的类 JLabel hintLabel; JTextField inputNumber; Object name="图书编号","图书名","图书价格","库存量" Object a=new Object14; JTable table; JButton enterModify; Connection con; Statement sql; ResultSet rs; String num; DeleteRecord(String s) setTitle(s); hintLabel=new JLabel("图书编号(回车确认):"); inputNumber=new JTextField(20); table=new JTable(a,name); enterModify=new JButton("删除记录"); setLayout(null); Box baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(inputNumber); baseBox.add(new JS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CGCC 34-2019儿童速冻含馅米面食品
- T/CGCC 23-2018奢侈品鉴定技术规范
- T/CFDCC 0207-2019定制家居产品安装服务规范
- T/CECS 10262-2022绿色建材评价二次供水设备
- T/CECS 10113-2020高强轻骨料
- T/CECIA 02-2020企业社会责任管理体系要求
- T/CCSAS 019-2022加氢站、油气氢合建站安全规范
- T/CCOA 3-2019花生油质量安全生产技术规范
- T/CCIASD 10006-2023多式联运经营人基本要求及等级评估指标
- T/CCAS 015-2020水泥助磨剂应用技术规范
- 《工贸企业重大事故隐患判定标准(冶金行业)》知识培训
- 四川盆地果树病虫害绿色防控-终结性考核-国开(SC)-参考资料
- 钻井及井下作业井喷事故典型案例
- 小红书食用农产品承诺书示例
- CQI-23模塑系统评估审核表-中英文
- 中考英语1600核心词汇
- 《高血压科普知识》课件
- 空调维保服务投标方案 (技术方案)
- CSTM-铝灰用于替代铝土矿石技术规范编制说明
- 询价函模板范文
- 2023年江苏省南京市中考物理试题(解析版)
评论
0/150
提交评论