资源描述
他她乐服装销售系统
学 校:渤海大学
学 院:信息科学与技术学院
指导教师:沈泽刚
组 长:杨朝文
成 员:马勇喆 王小龙 金振丰
一、项目计划 3
1.1系统开发目的 3
1.2 背景说明 3
1.3 应用范围 3
二、需求分析 3
2.1 可行性研究 3
2.1.1 技术可行性 3
2.1.2 经济可行性 3
2.1.3 操作可行性 4
2.2 需求分析 4
三、概要设计 5
3.1 系统总体功能 5
3.2局部E-R图 6
3.3将E-R转换为关系模型 9
四、数据模块 10
五、实现界面和部分源代码 14
5.1实现DataBase 和Java连接代码 14
5.2实现系统总体代码 15
5.3实现前台界面,登陆,数据库代码 32
5.4实现后台界面,数据库操作代码 52
一、项目计划
1.1系统开发目的
为了满足广大消费者的消费愿望(不在劳神费力),特有软件开发团队,结合用户的需求为服装开发仓库管理系统,来来解决后顾之忧,众所周知:大的服装的商品的存储和调配是不可忽视的大问题,和好的后备调配为前台的产品销售有很大的帮助,也可以很大程度上提高产品的销售效率,满足消费者的消费需求
1.2 背景说明
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。随着服装规模的不断扩大,服装商品数量急剧增加,有关商品的各种信息也成倍增加。面对庞大的信息量,就需要有服装进销存系统来提高服装商品管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量,所以服装进销存管理系统将会为服装管理带来了极大的方便。
1.3 应用范围
本系统适合应用于各个服装销售。
二、需求分析
2.1 可行性研究
系统开始和可行性研究是为系统开发做前期准备。在对一个项目的开发之前,我们总是要对其进行一个可行性分析与需求分析,通过和指导老师的共同分析得出了可行性开发计划。对于需求分析我们作了如下调查分析的需求。
2.1.1 技术可行性
随着软件编程技术的不断增加,功能的不断加强,和网络技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理服装销售要求数据的采集、更新能够完整、准确和及时,所以开发通用的服装销售收银系统已经完全可以做到。
2.1.2 经济可行性
因为通过网络传递销售信息,可以不受距离的限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高服装的销售效率,即提高了服装销售的经济效益,所以从经济上是完全可行的。
2.1.3 操作可行性
本系统采用Windows图形界面,是大家熟悉的操作系统,对于用户只需要具有一般的计算机知识的人员都可以轻松上手。而且整个销售系统采用最友好的交互界面,简洁明了,不需要对数据库非常了解。
由此,该系统的操作是可行的,有必要推广该系统。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。
2.2 需求分析
对于大型服装信息管理系统来说,通常它会把员工人事管理系统也包括在内。由于现考虑的是小型服装,其可承担的研发支费也有限。所以在这个系统中,要实现的功能主要如下:
(1) 功能要求
对库存产品进行资料管理和统计;
对产品的进库单和产品的销售单进行录入管理和统计;
对进库、销售、库存情况进行查询;
对用户进行管理,具体为添加用户、删除用户、修改用户密码;
对赢利状况分析,进行营业统计,按年月日及商品类别统计;
(2) 数据精确度
产品的进货单和销售单中,单价、金额采用浮点数,数量都取整数。
(3) 时间特性
该系统软件从启动到进入系统登录界面的时间正常情况下少于5秒,录入并更新数据的时间正常情况下少于10秒。
(4) 适用性
该管理系统软件适用于Windows 2000/Windows XP/ Windows7中文版下运行。
三、概要设计
3.1 系统总体功能
他她乐服装销售系统
前台系统
后台系统
商品录入
收银管理
货存管理
进货管理
销售管理
用户管理
商品编码录入
交易总额计算
支持会员卡打折
库存信息浏览
商品信息查询
商品信息录入
商品销售统计
超级用户
普通会员
图3.1 系统总体结构图
销售统计
商品
用户
管理员
入/出库
提交
购买
管理
更新
图3.2 系统总体E-R图
3.2局部E-R图
商品
备注
序号
商品编码
条形码
类别编号
商品名称
零售价
商品规格
保质期
进货价
计量单位
图3.21 局部商品E-R图
销售统计
销售编号
商品编号
销售日期
销售数量
会员卡号
商品名称
商品单价
折扣
图3.22 局部销售统计E-R图
入/出库
数量
入库编号
商品编号
进货价
下单人
仓库号
入库日期
经手人
图3.23 局部入/出库E-R图
会员
备注
卡号
用户名
身份证
密码
开卡日期
用户类型
折扣
积分
期限
图3.24 局部会员E-R图
库存
商品编码
数量
图3.25 库存E-R图
商品类别
类别编号
序号
类别名
图3.26 商品类别E-R图
3.3将E-R转换为关系模型
商品(序号,商品编码,条型码,类别编号,商品名称,零售价,商品规格,计量单位,进货价,保质期,备注)
销售统计(销售编号,商品编号,销售日期,商品数量,商品单价,折扣,会员卡号,商品名称)
入/出库(入库编号,商品编号,数量,进货价,入库日期,仓库号,经手人,下单人)
会员(卡号,用户名,身份证,密码,开卡日期,用户类型,期限,积分,折扣,备注)
库存(商品编码,数量)
商品类别(序号,商品类别,类别名)
四、数据模块
列名
数据类型
长度
允许空
说明 属性
SequenceNumber
int
4
序号
MerchandiseNumber
varchar
20
商品编码 主键
TreatyCode
Varchar
20
条型码
SortNumber
Varchar
20
√
类别编号 外键references类别表(SortNumber)
merchandiseName
Varchar
50
商品名称
RetailPrice
varchar
9
√
零售价
merchandiseSpec
Varchar
50
√
商品规格
Units
Varchar
20
计量单位
PurchasePrice
numeric
9
进货价
CheckTerm
Varchar
50
√
保质期
Remark
varchar
50
√
备注
图4.1商品表
列名
数据类型
长度
允许空
说明 属性
EnterStockID
Int
4
入库编号 主键
MerNumber
varchar
30
商品编号
Number
numeric
9
数量 外键references库存表
(Number)
PurchasePrice
numeric
9
进货价
PutDate
varchar
30
√
入库日期
StoreHourse_ID
varchar
20
仓库号
dealWithHuman
varchar
20
√
经手人
downName
varchar
20
下单人
inout
char
1
图4.2入/出库表
列名
数据类型
长度
允许空
说明 属性
CardID
varchar
20
卡号 主键
UseName
varchar
20
用户名
IDCard
varchar
20
身份证
Password
varchar
20
密码
CardDate
varchar
30
√
开卡日期
UserGrade
varchar
16
√
用户类型
term
char
10
√
期限
integral
char
10
积分
agio
char
10
折扣
remark
varchar
200
√
备注
图4.3用户表
列名
数据类型
长度
允许空
说明 属性
ID
numeric
9
MerchandiseNumber
varchar
20
商品编码 外键references商品表(MerchandiseNumber)
Number
numeric
9
√
数量 主键
图4.4库存表
列名
数据类型
长度
允许空
说明 属性
SortID
int
4
序号
SortNumber
varchar
20
类别编号 主键
SortName
varchar
20
类别名
图4.5商品类别表
列名
数据类型
长度
允许空
说明 属性
Sale_ID
numeric
9
销售编号 主键
ProductID
varchar
10
商品编号
SaleDate
varchar
50
销售日期
Number
numeric
9
商品数量 外键references库存表
(Number)
Price
numeric
9
商品单价
Discount
varchar
10
折扣
VIP_ID
varchar
10
√
会员卡号 外键references用户表
(CardID)
ProductName
varchar
50
商品名称
图4.6销售统计表
五、实现界面和部分源代码
5.1实现DataBase 和Java连接代码
类 DBAccess.java
package tatale;
import java.sql.*;
public class DBAccess {
private static final String DRIVER =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String URL = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=SuperMarket;";
private static final String USER = "sa";
private static final String PASSWORD = "0";
public static Connection getConnection() { //连接数据库
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (Exception ex) {
ex.printStackTrace();
}
return conn;
}
}
5.2实现系统总体代码
图5.2-1
图5.2-2
类 MainFrame.java
package tatale;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Rectangle;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JTable;
import javax.swing.BorderFactory;
import java.awt.Color;
import javax.swing.border.TitledBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import javax.swing.tree.TreePath;
import tatale.*;
import tatale.dialog.*;
import tatale.means.*;
import tatale.dialog.Adminstrator;
import tatale.dialog.Earning;
import tatale.dialog.Guayuqwomen;
import tatale.dialog.JoinAndExceed;
import tatale.dialog.Mytable;
import tatale.dialog.PaymentList;
import tatale.dialog.Put_Out_Depot;
import tatale.dialog.Select_card;
import tatale.dialog.Stock_Dialog;
import tatale.dialog.Vendition_dialog;
import tatale.means.Select_Means;
import tatale.MainFrame;
import tatale.MainFrame_AboutBox;
import tatale.MainFrame_jMenuItem10_actionAdapter;
import tatale.MainFrame_jMenuItem11_actionAdapter;
import tatale.MainFrame_jMenuItem15_actionAdapter;
import tatale.MainFrame_jMenuItem17_actionAdapter;
import tatale.MainFrame_jMenuItem18_actionAdapter;
import tatale.MainFrame_jMenuItem19_actionAdapter;
import tatale.MainFrame_jMenuItem1_actionAdapter;
import tatale.MainFrame_jMenuItem20_actionAdapter;
import tatale.MainFrame_jMenuItem21_actionAdapter;
import tatale.MainFrame_jMenuItem25_actionAdapter;
import tatale.MainFrame_jMenuItem2_actionAdapter;
import tatale.MainFrame_jMenuItem3_actionAdapter;
import tatale.MainFrame_jMenuItem5_actionAdapter;
import tatale.MainFrame_jMenuItem7_actionAdapter;
import tatale.MainFrame_jMenuItem8_actionAdapter;
import tatale.MainFrame_jMenuItem9_actionAdapter;
import tatale.MainFrame_jTree1_treeSelectionAdapter;
import java.util.Vector;
import java.awt.Dimension;
public class MainFrame extends JFrame {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1 = new ImageIcon(tatale.MainFrame.class.getResource(
"openFile.png"));
ImageIcon image2 = new ImageIcon(tatale.MainFrame.class.getResource(
"closeFile.png"));
ImageIcon image3 = new ImageIcon(tatale.MainFrame.class.getResource(
"help.png"));
JLabel statusBar = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTree jTree1 = new JTree();
JMenuItem jMenuItem1 = new JMenuItem();
JMenu jMenu1 = new JMenu();
JMenu jMenu2 = new JMenu();
JMenu jMenu3 = new JMenu();
JMenu jMenu4 = new JMenu();
JMenuItem jMenuItem5 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
JMenuItem jMenuItem9 = new JMenuItem();
JMenu jMenu5 = new JMenu();
JMenuItem jMenuItem10 = new JMenuItem();
JMenuItem jMenuItem11 = new JMenuItem();
JMenuItem jMenuItem17 = new JMenuItem();
JMenu jMenu7 = new JMenu();
JMenuItem jMenuItem18 = new JMenuItem();
JMenuItem jMenuItem19 = new JMenuItem();
JScrollPane jScrollPane2 = new JScrollPane();
JTable jTable1 = new JTable();
TitledBorder titledBorder1 = new TitledBorder("");
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JMenuItem jMenuItem15 = new JMenuItem();
JMenuItem jMenuItem16 = new JMenuItem();
JMenu jMenu9 = new JMenu();
JMenuItem jMenuItem8 = new JMenuItem();
JMenuItem jMenuItem20 = new JMenuItem();
JMenuItem jMenuItem21 = new JMenuItem();
JMenuItem jMenuItem22 = new JMenuItem();
JMenuItem jMenuItem23 = new JMenuItem();
JMenuItem jMenuItem24 = new JMenuItem();
JMenuItem jMenuItem25 = new JMenuItem();
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(930, 600));
setTitle("他她乐服装销售系统");
statusBar.setText(" ");
statusBar.setBounds(new Rectangle(0, 585, 800, 15));
//设置树
DefaultMutableTreeNode root = new DefaultMutableTreeNode("进销存管理");
DefaultMutableTreeNode Man2 = new DefaultMutableTreeNode("销售管理");
DefaultMutableTreeNode Man3 = new DefaultMutableTreeNode("库存查询");
DefaultMutableTreeNode Man4 = new DefaultMutableTreeNode("用户管理");
DefaultMutableTreeNode Man5 = new DefaultMutableTreeNode("信息查询");
DefaultMutableTreeNode Man6 = new DefaultMutableTreeNode("商品管理");
DefaultMutableTreeNode annal = new DefaultMutableTreeNode("入库/出库");
jMenuItem1.addActionListener(new MainFrame_jMenuItem1_actionAdapter(this));
jMenuItem2.setText("添加/修改用户");
jMenuItem2.addActionListener(new MainFrame_jMenuItem2_actionAdapter(this));
jMenuItem3.setText("个人账户查询");
jMenuItem3.addActionListener(new MainFrame_jMenuItem3_actionAdapter(this));
jToolBar.setBackground(SystemColor.control);
jMenuItem9.addActionListener(new MainFrame_jMenuItem9_actionAdapter(this));
jMenuItem15.setText("后台转前台");
jMenuItem15.addActionListener(new MainFrame_jMenuItem15_actionAdapter(this));
jMenuItem17.addActionListener(new MainFrame_jMenuItem17_actionAdapter(this));
jMenuItem10.addActionListener(new MainFrame_jMenuItem10_actionAdapter(this));
jMenuItem7.addActionListener(new MainFrame_jMenuItem7_actionAdapter(this));
jMenuItem11.addActionListener(new MainFrame_jMenuItem11_actionAdapter(this));
jMenu9.setText("按商品类别查询");
jMenuItem8.setText("上衣类查询");
jMenuItem8.addActionListener(new MainFrame_jMenuItem8_actionAdapter(this));
jMenuItem20.setText("裤子类查询");
jMenuItem20.addActionListener(new MainFrame_jMenuItem20_actionAdapter(this));
jMenuItem21.setText("鞋类查询");
jMenuItem21.addActionListener(new MainFrame_jMenuItem21_actionAdapter(this));
jMenuItem18.addActionListener(new MainFrame_jMenuItem18_actionAdapter(this));
jMenuItem19.addActionListener(new MainFrame_jMenuItem19_actionAdapter(this));
jMenuItem25.setText("按商品条形码查询");
jMenuItem25.addActionListener(new MainFrame_jMenuItem25_actionAdapter(this));
contentPane.setBackground(Color.yellow);
jMenuFile.setBackground(Color.yellow);
jMenu1.setBackground(Color.yellow);
jMenu2.setBackground(Color.yellow);
jMenu3.setBackground(Color.yellow);
jMenu5.setBackground(Color.yellow);
jMenu4.setBackground(Color.yellow);
jMenuItem5.addActionListener(new MainFrame_jMenuItem5_actionAdapter(this));
Man6.add(annal);
jMenuFile.setActionCommand("File");
jMenuItem1.setText("退出");
jMenu2.setText("仓库");
jMenu3.setText("账户管理");
jMenu4.setText("作者信息");
jMenuItem5.setText("作者");
jMenuItem7.setText("入库/出库");
jMenu5.setText("查询");
jMenuItem17.setText("销售统计");
jMenu7.setText("查询商品信息");
jMenuItem18.setText("按商品名称查询");
jMenuItem19.setText("按商品编号查询");
jScrollPane2.setBorder(BorderFactory.createLineBorder(Color.black));
jScrollPane2.setBounds(new Rectangle(167, 93, 750, 435));
root.add(Man2);
root.add(Man3);
root.add(Man4);
root.add(Man5);
root.add(Man6);
DefaultMutableTreeNode Sells = new DefaultMutableTreeNode("销售统计");
Man2.add(Sells);
DefaultMutableTreeNode Storeinfr = new DefaultMutableTreeNode("库存信息浏览");
DefaultMutableTreeNode Store1 = new DefaultMutableTreeNode("按库存商品编号查询");
Man3.add(Storeinfr);
Man3.add(Store1);
DefaultMutableTreeNode UserNa = new DefaultMutableTreeNode("添加/修改用户");
DefaultMutableTreeNode UserAdd = new DefaultMutableTreeNode("个人账户查询");
Man4.add(UserNa);
Man4.add(UserAdd);
DefaultMutableTreeNode search1 = new DefaultMutableTreeNode("按商品名称查询");
DefaultMutableTreeNode search2 = new DefaultMutableTreeNode("按商品编号查询");
DefaultMutableTreeNode search3 = new DefaultMutableTreeNode("按商品条形码查询");
DefaultMutableTreeNode search5 = new DefaultMutableTreeNode("按商品类别查询");
DefaultMutableTreeNode sort1 = new DefaultMutableTreeNode("上衣类查询");
DefaultMutableTreeNode sort2 = new DefaultMutableTreeNode("裤子类查询");
DefaultMutableTreeNode sort3 = new DefaultMutableTreeNode("鞋类查询");
search5.add(sort1);
search5.add(sort2);
search5.add(sort3);
Man5.add(search1);
Man5.add(search2);
Man5.add(search3);
Man5.add(search5); //初始化树
jTree1 = new JTree(root);
jTree1.addTreeSelectionListener(new MainFrame_jTree1_treeSelectionAdapter(this));
jMenuFile.setText("文件");
jToolBar.setBounds(new Rectangle(0, 0, 800, 29));
jScrollPane1.setBounds(new Rectangle(13, 93, 152, 435));
jMenuBar1.add(jMenuFile);
jMenuFile.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
展开阅读全文