1、销售管理系统案例分析班级:计科1201 学号:121404114姓名:魏祥引言随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。如何将计算机技术与超
2、市管理有机地结合起来,把计算机技术应用于超市管理,更高效地对超市的各种商品信息进行归类、划分、合理地组织,从而减少人们的劳动强度是很有必要的。本系统针对中小型超市管理特点和技术人员的实际水平,采用Windows易学易用的图形用户界面操作系统,用面向对象的Java语言开发技术和数据库技术,开发出贴近用户实际需求的系统。本系统抛弃了大型财务软件功能泛泛不实用的缺点,既简洁又能满足用户需求,既可以解决在销售过程中出现的问题,也能够用于对商品采购的需求。在减少工作量的基础上,提高超市管理者对企业的整体管理能力。一. 权限管理要求 有主管和销售员两个角色。主管拥有管理雇佣的销售员、发放工资。也可以对商品
3、进行添加、定价、制定折扣等权限。 销售人员拥有管理订单、管理销售记录、处理退单、和开发票的权限。二.开发语言java、开发平台eclipse。三.功能需求3.1综合功能需求分析1、主管的基本信息:主管做为销售部门的最高值为人员,他可以管理他所雇用的人员。可以实现添加、删除、修改等功能。2、销售人员工作的基本信息:销售人员的基本工作就是将客户发来的订单进行记录,填写相关信息,并更新到数据库中,处理客户的退单以及开发销售票据等。3、主管处理产品的基本信息:主管可以通过本系统,实现对产品进行制定售价,制定折扣范围,分配佣金提成以及查询产品信息等。4、主管对销售人员管理的基本信息:主管可以通过本系统,
4、实现对销售人员的销售业绩进行查询,并对其分配佣金提成。5、销售记录的基本信息:该系统的用户可以在该系统中所提供的产品销售信息的查询功能,。如果是市场分析人员需要数据时,就可以从这里得到。他们还可以根据销售记录来为员工制定工资还会涉及到奖金,罚款等多项,最终获得自己的目前工资。6、信息查询的基本情况:主管和销售人员都具备对信息的查询共能。主管与销售人员之间的查询信息的差别在于,销售人员不能查询所有销售人员的信息,只能查询自己的个人信息。7、信息管理的基本情况:在本系统中,只有管理员具备对系统中涉及到得信息(除登录用户的信息和其他管理员的信息以外的信息)进行修改功能。比如,销售员查询订单信息时,发
5、现订单信息录入有误。他本身不具备修改数据库中的信息的功能,则需上报管路员,经管理员核实再进行对数据库中的订单信息进行修改。3.2用户对系统的要求1、销售员A、信息要求:销售员能查询到相关信息,包括个人的信息、客户的基本信息、产品的基本信息、产品种类信息、订单的基本信息、销售信息。比如查询自己开的订单的信息,对于仓库中的商品的剩余量进行查询以及查询自己的信息等等。B、处理要求:对于销售员,可以实现开订单并将订单信息更新到数据库中。并且对订单等信息进行查询,如发现信息错误等情况,销售员无法实现修改,需要上报主管,主管进行核实,并修改。安全性与完整性要求。C、安全性要求:1、系统应设置访问用户的标识
6、以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;2、系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3、系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(销售人员),主管。D、完整性要求:各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。2、主管:A、信息要求:管理员所能查询的相关信息,包括个人的信息、客户的基本信息、产品的基本信息、产品种类信息、订单的基本信息、销售信息、销售人员的信息。B、处理要求:管理员可以实现查询信息的同时也可以对所能查询的信息的进行相关操作,如对
7、信息的修改、删除、更新、添加等功能。C、安全性要求:1、系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;2、系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3、系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(销售员),管理员。四.系统功能的设计与划分根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分:4.1销售人员管理部分1、销售订单2、销售记录3、退单处理4、开发票据4.2主管管理部分1、制定售价2、制定折扣范围3、分配佣金、提成4、查询各类信息5、对销售人员进行管理五.非功能性需求
8、分析1.实用、易用原则。做到操作简单,维护方便。2.稳定性、安全性原则:系统要保证了系统的稳定性。同时针对不同的人员实现不同的管理权限,具有安全防范措施,从硬件、软件以及销售信息等方面严格管理,杜绝非法入侵,以保证系统能够长期稳定的不间断运行。六.功能结构图超市销售管理系统前台零售管理子系统后台销售管理子系统系统管理前台销售管理会员管理重新登录权限设置修改密码添加用户售后服务管理后台销售管理删除会员查询会员添加会员修改会员信息兑换积分商品录入结账打印小票购物查询 商品录入销售商品汇总删除商品销售商品查询商品信息修改打折促销七.用例图1.最高层用例图超市销售管理系统用例图2第2层用例图对最高层中
9、的每个用例加以展开,得到各个用例的第2层用例图。1) 系统管理用例图系统管理子系统用例图2)前台零售管理子系统用例图前台零售管理系统用例图3)后台销售管理子系统用例图图2-5后台管理系系统用例图3.第3层用例图1)第2层零售前台管理子系统展开得到前台销售管理子系统和会员管理子系统。图2-6 前台销售管理子系统用例图图2-7 会员管理子系统用例图2)第2层后台销售管理子系统展开得到后台销售子系统图2-7 后台销售子系统用例图七.类图类图及其之间关系八.顺序图1. 顾客购买商品顺序图 2顾客查询购物情况顺序图3.超市经理查询商品销售情况顺序图4.顾客办理会员顺序图5.添加商品顺序图6.修改商品信息
10、顺序图7.删除商品顺序图九.部分源代码1.AddOrderForm.javapackage uml_gaokai;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import com.borland.dx.sql.dataset.*;import java.awt.event.*;import java.sql.*;public class AddOrderForm extends JDialog private JPanel panel1 = new JPanel(); private Borde
11、rLayout borderLayout1 = new BorderLayout(); private JPanel jPanel1 = new JPanel(); private XYLayout xYLayout1 = new XYLayout(); private JLabel jLabel1 = new JLabel(); private JTextField jTextField1 = new JTextField(); private JLabel jLabel2 = new JLabel(); private JTextField jTextField2 = new JTextF
12、ield(); private JLabel jLabel3 = new JLabel(); private JTextField jTextField3 = new JTextField(); private JLabel jLabel4 = new JLabel(); private JTextField jTextField4 = new JTextField(); private JLabel jLabel5 = new JLabel(); private JTextField jTextField5 = new JTextField(); private JButton jButto
13、n1 = new JButton(); private JButton jButton2 = new JButton(); private Database database1 = new Database(); public AddOrderForm(Frame frame, String title, boolean modal) super(frame, title, modal); try jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); public AddOrderForm() this(null, , fals
14、e); private void jbInit() throws Exception panel1.setLayout(borderLayout1); jPanel1.setLayout(xYLayout1); jLabel1.setText(商品名称); jLabel2.setText(订货数量); jLabel3.setText(订货厂商); jLabel4.setText(订货日期); jLabel5.setText(订货状态); jButton1.setText(确定); jButton1.addActionListener(new java.awt.event.ActionListe
15、ner() public void actionPerformed(ActionEvent e) jButton1_actionPerformed(e); ); jButton2.setText(取消); jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton2_actionPerformed(e); ); database1.setConnection(new com.borland.dx.sql.dataset.Conn
16、ectionDescriptor(jdbc:odbc:gaokaiSQL, sa, , false, sun.jdbc.odbc.JdbcOdbcDriver); getContentPane().add(panel1); panel1.add(jPanel1, BorderLayout.NORTH); jPanel1.add(jLabel1, new XYConstraints(11, 24, 81, 20); jPanel1.add(jTextField1, new XYConstraints(93, 23, 133, 23); jPanel1.add(jLabel2, new XYCon
17、straints(11, 68, 78, 22); jPanel1.add(jTextField2, new XYConstraints(93, 67, 133, 25); jPanel1.add(jLabel3, new XYConstraints(11, 113, 79, 23); jPanel1.add(jTextField3, new XYConstraints(93, 113, 132, 24); jPanel1.add(jLabel4, new XYConstraints(11, 155, 66, 24); jPanel1.add(jTextField4, new XYConstr
18、aints(93, 152, 134, 26); jPanel1.add(jLabel5, new XYConstraints(8, 200, 76, 26); jPanel1.add(jTextField5, new XYConstraints(93, 198, 136, 25); jPanel1.add(jButton1, new XYConstraints(317, 140, 83, 24); jPanel1.add(jButton2, new XYConstraints(316, 191, 84, 24); /增加订货信息 void jButton1_actionPerformed(A
19、ctionEvent e) try String BuyerGoodsName = jTextField1.getText() ; String BuyerGoodsNumber = jTextField2.getText() ; String BuyerManufacturer = jTextField3.getText() ; String BuyerDate = jTextField4.getText() ; String BuyerStatus = jTextField5.getText() ; Statement sql = database1.createStatement() ;
20、 sql.executeUpdate(INSERT INTO UML_CS.dbo.Buyer_TABLE(BuyerGoodsName,BuyerGoodsNumber,BuyerManufacturer,BuyerDate,BuyerStatus) VALUES (+BuyerGoodsName+,+BuyerGoodsNumber+,+BuyerManufacturer+,+BuyerDate+,+BuyerStatus+) ; dispose() ; catch(SQLException www) www.printStackTrace(); void jButton2_actionP
21、erformed(ActionEvent e) dispose() ; 2. QueryOrderForm.javapackage uml_gaokai;/download by import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.awt.event.*;public class QueryOrderForm extends JDialog private int testQuery =0 ; private JPanel jPanel1 = new JPanel(); priv
22、ate XYLayout xYLayout1 = new XYLayout(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JLabel jLabel3 = new JLabel(); private JLabel jLabel4 = new JLabel(); private JTextField jTextField1 = new JTextField(); private JTextField jTextField2 = new JTextField(); p
23、rivate JTextField jTextField3 = new JTextField(); private JTextField jTextField4 = new JTextField(); private JButton jButton1 = new JButton(); private JButton jButton2 = new JButton(); private JButton jButton3 = new JButton(); private JButton jButton4 = new JButton(); private JButton jButton5 = new
24、JButton(); public QueryOrderForm(Frame frame, String title, boolean modal) super(frame, title, modal); try jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); public QueryOrderForm() this(null, , false); private void jbInit() throws Exception jPanel1.setLayout(xYLayout1); jLabel1.setText(订货商
25、品名称); jLabel2.setText(订货厂商); jLabel3.setText(订货日期); jLabel4.setText(订货状态); jButton1.setText(查询); jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton1_actionPerformed(e); ); jButton2.setText(查询); jButton2.addActionListener(new java.awt.eve
26、nt.ActionListener() public void actionPerformed(ActionEvent e) jButton2_actionPerformed(e); ); jButton3.setText(查询); jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton3_actionPerformed(e); ); jButton4.setText(查询); jButton4.addActionListe
27、ner(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton4_actionPerformed(e); ); jButton5.setText(退出); jButton5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton5_actionPerformed(e); ); this.getContentPane().add
28、(jPanel1, BorderLayout.CENTER); jPanel1.add(jTextField1, new XYConstraints(122, 20, 110, 24); jPanel1.add(jTextField4, new XYConstraints(122, 156, 109, 25); jPanel1.add(jButton1, new XYConstraints(281, 20, 61, 23); jPanel1.add(jButton3, new XYConstraints(282, 112, 60, 21); jPanel1.add(jButton4, new
29、XYConstraints(283, 156, 60, 21); jPanel1.add(jButton2, new XYConstraints(281, 65, 61, 22); jPanel1.add(jLabel1, new XYConstraints(28, 20, 92, 24); jPanel1.add(jTextField2, new XYConstraints(122, 65, 111, 25); jPanel1.add(jLabel3, new XYConstraints(28, 112, 92, 24); jPanel1.add(jTextField3, new XYCon
30、straints(122, 112, 111, 25); jPanel1.add(jLabel4, new XYConstraints(28, 156, 96, 24); jPanel1.add(jLabel2, new XYConstraints(28, 65, 95, 26); jPanel1.add(jButton5, new XYConstraints(291, 205, 75, 22); public void cancel() dispose() ; void jButton1_actionPerformed(ActionEvent e) testQuery = 1 ; cance
31、l() ; /cancel void jButton5_actionPerformed(ActionEvent e) cancel() ; void jButton2_actionPerformed(ActionEvent e) testQuery = 2 ; cancel() ; void jButton3_actionPerformed(ActionEvent e) testQuery = 3 ; cancel() ; void jButton4_actionPerformed(ActionEvent e) testQuery = 4 ; cancel() ; public String
32、getBuyerGoodsName() return jTextField1.getText( ) ; public String getBuyerManufacturer() return jTextField2.getText() ; public String getBuyerDate() return jTextField3.getText() ; public String getBuyerStatus() return jTextField4.getText() ; public int gettestQuery() return testQuery ; 1. Logincs.ja
33、vapackage uml_gaokai;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.awt.event.*;import com.borland.dx.sql.dataset.*;import java.sql.*;import javax.swing.border.*;public class Logincs extends JDialog implements ActionListener private JPanel panel1 = new JPanel();
34、private BorderLayout borderLayout1 = new BorderLayout(); private JPanel jPanel1 = new JPanel(); private XYLayout xYLayout1 = new XYLayout(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JTextField jTextField1 = new JTextField(); private JButton jButton1 = new
35、 JButton(); private JButton jButton2 = new JButton(); private JPasswordField jPasswordField1 = new JPasswordField(); private Database database1 = new Database(); private QueryDataSet queryDataSet1 = new QueryDataSet(); private JLabel jLabel3 = new JLabel(); private JLabel jLabel4 = new JLabel(); pri
36、vate JLabel jLabel5 = new JLabel(); private TitledBorder titledBorder1; private TitledBorder titledBorder2; private JLabel jLabel6 = new JLabel(); public Logincs(Frame frame, String title, boolean modal) super(frame, title, modal); try jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); publ
37、ic Logincs() this(null, , false); private void jbInit() throws Exception titledBorder1 = new TitledBorder(); titledBorder2 = new TitledBorder(); panel1.setLayout(borderLayout1); jPanel1.setLayout(xYLayout1); jLabel1.setForeground(Color.blue);/标签控件的字体颜色 jLabel1.setText(用户名); /标签标题 jLabel2.setForegrou
38、nd(Color.blue); jLabel2.setText(密码); jButton1.setForeground(UIManager.getColor(List.selectionBackground);/按钮控件字体颜色 jButton1.setBorder(BorderFactory.createRaisedBevelBorder();/按钮外观 jButton1.setText(登录);/按钮标题 jButton1.addActionListener(this);/加入按钮事件 jButton2.setForeground(UIManager.getColor(Menu.selec
39、tionBackground); jButton2.setBorder(BorderFactory.createRaisedBevelBorder(); jButton2.setToolTipText(); jButton2.setText(取消); jButton2.addActionListener(this); jPanel1.setBorder(BorderFactory.createEtchedBorder(); jPanel1.setMinimumSize(new Dimension(600, 600);/设置面板大小 jPanel1.setPreferredSize(new Di
40、mension(400, 300); jPasswordField1.setBorder(titledBorder1); jPasswordField1.setToolTipText(); database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(jdbc:odbc:gaokaiSQL, sa, , false, sun.jdbc.odbc.JdbcOdbcDriver); queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescr
41、iptor(database1, SELECT user.userName,user.userPassword,user.userAuthority n + FROM UML_CS.dbo.user, null, true, Load.ALL); this.setResizable(false); this.setTitle(Login); jLabel3.setBackground(Color.white);/标签背景颜色 jLabel3.setForeground(Color.green); jLabel3.setBorder(BorderFactory.createEtchedBorder(); jLabel3.setText( 小型超市管理系统); jLabel4.setBorder(BorderFactory.createEtchedBorder(); jLabel4.setText( 制作人:高凯); jLabel5.setBorder(BorderFactory.createEtchedBorder(); jLabel5.setToolTipText(); jLabel5.setText(版本号: 1.1); jTextField1.setBorder(titledBorder2); jLabel6.setBorder(Bord
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100