服装销售管理信息系统Word格式文档下载.docx
《服装销售管理信息系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《服装销售管理信息系统Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
软件集成了客户订单处理、采购订单管理、客户财务管理、库存管理、报表中心等功能模块。
1.2系统数据流图
数据流图(DataFlowDiagram):
简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流程图是软件工程学和管理信息系统科学中的概念,它描述的是一个具体的业务处理系统的信息来源,存储,处理和信息将要流到何处去的全面情况,它可以辅助计算机专业人员更好的了解现有系统的一些状况,但还需要一些工具来补充系统的流程细节。
是以图形的方式表达在问题中信息的变换和传递过程。
它把系统看成是由数据流联系的各种概念的组合,用分解及抽象手段来控制需求分析的复杂性,采用分层的数据流程图来表示一个复杂的系统。
需要注意的是数据流图和程序设计中的程序流程图是不同的,数据流图关心的是企业业务系统中的数据处理加工的客观过程,并不关心未来电子化处理的加工过程;
数据流图中流动的只是数据,并没有控制过程,但在程序流程图当中,必须有控制逻辑。
结构化分析是面向数据流开展需求分析工作的一种有效方法。
一般采用自顶向下,逐层分解的演义分析法来定义系统的需求,即先把分析对象抽象成一个系统,然后自顶向下的逐层分解,将复杂的系统分解成简单的、能够清楚地被理解和表达的若干个子系统。
这样就可以分别理解系统的每个细节、前后顺序和相互关系,找出各部分之间的数据接口。
在结构化分析方法所采用的工具有数据流程图(DFD)、数据字典(DD)、结构化语言、判定树、判定表等。
服装销售管理系统的功能为:
(1)接受顾客的订单,检验订单,若库存有货,进行供货处理,即修改库存,给仓库开备货单,并且将订单留底;
若库存量不足,将缺货订单登入缺货记录。
(2)根据缺货记录进行缺货统计,将缺货通知单发给采购部门,以便采购。
(3)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。
(4)根据留底的订单进行销售统计,打印统计表给经理。
图1.1数据流图
第二章系统设计
2.1结构设计
2.1.1概念设计
概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。
概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。
概念数据模型,主要在系统开发的数据库设计阶段使用,是按照用户的观点来对数据和信息进行建模,利用实体关系图来实现.它描述系统中的各个实体以及相关实体之间的关系,是系统特性和静态描述.数据字典也将是系统进一步开发的基础
主要有四种策略:
自顶向下,自底向上,由里向外(逐步扩张)和混合策略。
一般先画出组织的局部E-R图,然后将其合并,在此基础进行优化和美化。
下面是系统各个实体以及总体的E-R图:
图2.4系统总体E-R图
2.1.2逻辑设计
逻辑设计就是把一种计划、规划、设想通过视觉的形式通过概念、判断、推理、论证来理解和区分客观世界的思维传达出来的活动过程。
逻辑设计比物理设计更理论化和抽象化,关注对象之间的逻辑关系,提供了更多系统和子系统的详细描述。
逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQLServer或Oracel或MySql)。
由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。
设计步骤:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
列名
数据类型
字段大小
必填字段
默认值
说明
f
varchr
50
是
主键
m
varchar
否
l
xl
xxl
s
列名
bid
cid
F1
F2
F4
F3
F5
title
Name
Address
Phone
2.1.3物理设计
数据库设计工作包含两方面的内容:
数据库逻辑设计:
设计数据库的逻辑结构,与具体的DBMS无关,主要反映业务逻辑。
数据库物理设计是后半段。
将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法,这个过程就是数据库的物理设计。
物理结构依赖于给定的DBMS和和硬件系统,因此设计人员必须充分了解所用RDBMS的内部特征、存储结构、存取方法。
数据库的物理设计通常分为两步,第一,确定数据库的物理结构,第二,评价实施空间效率和时间效率确定数据库的物理结构包含下面四方面的内容:
1、确定数据的存储结构
2、设计数据的存取路径
3、确定数据的存放位置
4、确定系统配置
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,选择一个优化方案作为数据库物理结构。
在数据库物理设计中,最有效的方式是集中地存储和检索对象。
部分所建表如下所示:
2.2行为设计
2.2.1总体设计
系统功能结构图主要从功能的角度描述了系统的结构,但并未表达各功能之间的数据传送关系。
事实上,系统中许多业务或功能都是通过数据文件联系起来的。
例如,某一功能模块向某一数据文件中存入数据,而另一个功能模块则从该数据文件中取出数据。
再比如,虽然在数据流程图中的某两个功能模块之间原来并没有通过数据文件发生联系,但为了处理方便,在具体实现中有可能在两个处理功能之间设立一个临时的中间文件以便把它们联系起来。
上述这些关系在设计中是通过绘制信息系统流程图来从整体上表达的。
下图为系统功能图。
图2.8系统功能模块图
2.2.2模块设计
1.登陆界面设计
用户拥有自己的用户名、密码和使用权限。
当输入用户名和密码以后,点击“确定”键,如果用户名和密码都正确就可以顺利进入主窗体,如果输入错误,那么就有相应的提示信息。
如图2.9所示。
图2.9登陆界面图
主要代码如下所示:
packagelanding;
importjava.awt.Container;
importmarketing.*;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjavax.swing.Icon;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
publicclassLanding{
/**
*@paramargs
*/
privateJFramelandFrame;
privateJLabellandLabel;
privateJTextFieldlandJTextField;
privateJPasswordFieldlandPasswordField;
privateIconlandIcon;
privateFlowLayoutlandfFlowLayout;
privateStringname="
用户名:
"
;
privateStringpass="
密码:
privateJLabellandname;
privateJLabellandpass;
privateJButtonlandButton;
staticinti=9;
publicvoidinit()
{
landFrame=newJFrame("
服装销售管理系统---------------------111301033"
);
landIcon=newImageIcon("
.\\pic\\landpic.jpg"
landLabel=newJLabel(landIcon);
landname=newJLabel(name);
landpass=newJLabel(pass);
landJTextField=newJTextField(12);
landPasswordField=newJPasswordField(12);
FontnameFont=newFont(null,0,15);
landJTextField.setFont(nameFont);
landPasswordField.setFont(nameFont);
landfFlowLayout=newFlowLayout();
landFrame.add(landLabel);
landFrame.add(landJTextField);
landFrame.add(landPasswordField);
landButton=newJButton("
登陆"
}
publicLanding()
{this.init();
landFrame.setVisible(true);
landFrame.setBounds(350,200,600,350);
landFrame.setResizable(false);
Containerlandcontainer;
landcontainer=landFrame.getContentPane();
landFrame.setDefaultCloseOperation(3);
landcontainer.setLayout(landfFlowLayout);
landcontainer.add(landLabel);
landcontainer.add(landname);
landcontainer.add(landJTextField);
landcontainer.add(landpass);
landcontainer.add(landPasswordField);
landcontainer.add(landButton);
landButton.addActionListener(newLandlistener());
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Landinglanding=newLanding();
publicclassLandlistenerimplementsActionListener
{publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
StringnameString=landJTextField.getText().toString();
StringpassString=landPasswordField.getText().toString();
Connc=newConn();
try{
i=c.panduan(nameString,passString);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
if(i==1)
{landFrame.dispose();
newMarketing();
else{
newerror();
}}}
2.用户管理界面设计
图2.10用户管理界面图
主要代码如下所示:
packagemarketing;
importjava.awt.BorderLayout;
importjava.awt.Dimension;
importjavax.swing.Action;
importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JScrollPane;
importjavax.swing.JTable;
importjavax.swing.RootPaneContainer;
importjavax.swing.table.DefaultTableModel;
importlanding.error.Exit;
publicclassMarketingextendsJFrame{
privateJFramejFrame;
privateJMenuBarmenuBar;
privateJMenuxiadan;
privateJMenuhelp;
privateJLabeldingdanhao;
privateDefaultTableModeldefaultTableModel;
privateStringaa[][]={{"
0"
"
},
{"
},{"
}};
privateJLabelkehuname;
privateJLabelkehuphone;
privateJLabelfahuofangshi;
privateJTablejTable;
privateJMenuItemxiadanItem;
privateJMenuItemchaxuniItem;
privateJMenuItemexitItem;
privateJMenuItembangzhuItem;
privateJMenuItemguanyuItem;
privateJTextFielddingdanghaoField;
privateJTextFieldkehunameField;
privateJTextFieldkehuphoneField;
privateJTextFieldfahuofangshiField;
privateJButtonbutton;
privateStringbid="
privateStringcname="
privateStringcphone="
privateStringcadd="
{
jFrame=newJFrame("
服装销售管理系统"
menuBar=newJMenuBar();
menuBar.setOpaque(true);
xiadan=newJMenu("
单据"
help=newJMenu("
帮助"
xiadanItem=newJMenuItem("
新建"
chaxuniItem=newJMenuItem("
查询"
exitItem=newJMenuItem("
退出"
bangzhuItem=newJMenuItem("
guanyuItem=newJMenuItem("
关于"
help.add(bangzhuItem);
help.add(guanyuItem);
xiadan.add(xiadanItem);
xiadan.add(chaxuniItem);
xiadan.add(exitItem);
menuBar.add(xiadan);
menuBar.add(help);
dingdanhao=newJLabel("
订单号"
dingdanghaoField=newJTextField(12);
Stringdata[][]=newString[5][5];
Stringid[]={"
编号"
s"
m"
x"
xl"
xll"
};
defaultTableModel=newDefaultTableModel(data,id);
jTable=newJTable(defaultTableModel);
jTable.setPreferredScrollableViewportSize(newDimension(350,80));
kehuname=newJLabel("
客户姓名:
kehuphone=newJLabel("
联系电话:
fahuofangshi=newJLabel("
发货方式:
kehunameField=newJTextField(20);
kehuphoneField=newJTextField(20);
fahuofangshiField=newJTextField(20);
button=newJButton("
确定"
publicMarketing()
{init();
Boxb1,b2,b3,b4,bb;
b1=Box.createVerticalBox();
b2=Box.createVerticalBox();
b3=Box.createVerticalBox();
b4=Box.createVerticalBox();
jFrame.setLayout(newFlowLayout());
jFrame.setDefaultCloseOperation(3);
jFrame.setBounds(400,100,400,450);
jFrame.setJMenuBar(menuBar);
jFrame.setVisible(true);
jFrame.add(dingdanhao);
jFrame.add(dingdanghaoField);
jFrame.add(jTable);
JScrollPanescrollPane=newJScrollPane(jTable);
jFrame.add(scrollPane,BorderLayout.CENTER);
b1.add(kehuname);
b1.add(kehunameField);
b2.add(kehuphone);
b2.add(kehuphoneField);
b3.add(fahuofangshi);
b3.add(fahuofangshiField);
b4.add(kJLabel);
b4.add(kkJLabel);
b4.add(kkkJLabel);
b4.add(kkkkJLabel);
b4.add(kkkkkJLabel);
b4.add(kkkkkkJLabel);
jFrame.add(b1);
jFrame.add(b2);
jFrame.add(b3);
jFrame.add(b4);
Frame.add(button);
button.addActionListener(newxiada