课程设计商场库存管理系统_第1页
课程设计商场库存管理系统_第2页
课程设计商场库存管理系统_第3页
课程设计商场库存管理系统_第4页
课程设计商场库存管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXX程序设计课程设计报告设计题目:商场库存管理系统设计与实现学院名称:信息工程学院专业班级:13计本2姓名:刘笑学号录一需求剖析。3二纲领设计。32.1纲领设计原则。32.2将用户模块需求化。32.3最后确定。3三系统主要功能模块设计。43.1登录流程。63.2.数据库管理。8四数据库文件。10五程序的主要界面及程序代码。155.1.用户登录界面。155.2商品信息管理界面。16查找界面。175.2.2增添界面。175.2.3删除界面。185.2.1更正界面。18六总结。19参照资料:172一需求剖析本系统的主要目的就是实现商品信息管理,使商品信息管理工作更为简单,

2、进而提高工作效率,降低管理成本.系统中需要对商品价钱,数量进行管理,及库存量等。.二纲领设计纲领设计阶段主假如大体描绘整个软件的框架,并从业务的角度描绘软件的模块、工作流程等。项目的成功取决于设计的利害,而纲领设计则是整个设计的重点部分。纲领设计的主要任务是将用户的需求差别为不同样的功能,尔后将这些功能细分红模块,并给模块一些规则约束,以达到各个模块之间能够相互沟通的目的。纲领设计关乎到系统的整体架构,因此想做好一个纲领设计,不行是要熟悉用户的业务流程,还要具备相当丰富的设计经验。2.1纲领设计的原则纲领设计是依照系统剖析的需求和工作环境的情况对整个软件的整体构造进行大概的设计。纲领设计要坚持

3、以下几个原则。1)细分原则:软件系统都是由好多不同样的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。2)提高代码重用性:在面向对象设计中,第一考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改正,节俭了人力物力。3)从上而基层层剖析:纲领设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,尔后一步步细分,直到最小的功能模块。4)一致性原则:纲领设计要求所有功能模块在定义时使用一致的规范。5)提高独立性,减少耦合:各个模块与模块之间尽量减少关系,否则更正一个地方就会惹起其他多处的改正,不切合面向对象的原则

4、。一般情况下,对类封装后,只赞同对类进行扩展,而不能够更正,而封装的类必定拥有单调职责,既理论情况下不同样意两个类共同达成一个功能。(6)模块的大小要尽量适中:不是构造算法越复杂的模块越好,模块的大小要依照实质工作目标和其他类的耦合亲密程度来决定。经验表示,一个模块的规模不应过大,模块的总行数应控制在10100行的范围内,最好为3060行,这样理解和阅读都较方便。过长的模块经常是分解不充分的表现,会增添阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传达信息所开销的开销。由于纲领设计是整个设计的重中之重,牵一发而动全身,因此要努力做一个好的纲领设计,才能在此后软件开

5、发过程中不再每每。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。2.2将用户需求模块化依照纲领设计的原则来剖析一下本项目的用户需求,并最后转变成用程序语言描绘的模块。什么样的需求才是一个模块?模块应当具备以下3个特点。1)输入和输出:模块必定能被调用而且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个表现。2)办理功能:模块必定能够对换用的输入数据进行灵便的办理,并为输出准备好办理结3果。(3)程序代码:用来实现模块功能的源代码。2.3确定系统最后模块纲领设计中最重要的就是确定此项目包括哪些模块。依照上两节表达的设计原则和模块特点,将用户需求

6、转变成下面的模块。三,系统主要功能模块设计1.1登录模块流程本模块的主要功能是对用户身份进行考证,只有系统的合法用户才能进入系统。在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行考证,只有输入了正确的账号和密码后,系统登录才会成功。并在输入了错误的或许是不存在的账户和密码时,系统会提示犯错信息,指明登录过程中的错误输入或许错误操作,以便用户进行正确的登录。系统登录模块流程如图4.1所示。1.2库存管理流程功能:本模块的主要功能是商品信息的查问和更新,库存信息的查问和更新。查问商品信息:主要功能查问商品的明细信息,和它的库存信息。增添商品信息:主要功能增添新进的商品。更

7、正商品信息:主要功能是更正商品的信息,包括他的库存数量。删除商品信息:主要功能是删除不再销售的商品信息。输入项、输出项:本模块的数据输入项主假如商品编号。库存管理流程如图4.4所示4确定登录增添商品商品查问商品更正删除商品数据库系统数据流图四,数据文件(或数据库)设计表15表26五,程序的主要界面、代码实现1用户登录界面:1.1输入用户编号和密码后,能够登录,能够封闭窗口,也能够重置1.2若密码和用户名输入不正确,将显示提示对话框.登录成功后系统2.1登录成功后将显示提示语句:72.2并自动进入商场库存管理界面:2.3查问界面:2.4删除界面:82.5增添界面:2.6更正界面93.1这是Gre

8、ad类,用于连结数据库packagework;importjava.sql.*;publicclassGreadConnectionconn=null;Statementstmt=null;ResultSetrs=null;publicGread()tryStringdriverClassName=com.mysql.jdbc.Driver;Class.forName(com.mysql.jdbc.Driver);/2.连结数据库Connectionconn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/mydatabase,ro

9、ot,);stmt=conn.createStatement();catch(Exceptionex)ex.printStackTrace();ResultSetexecuteQuery(Stringsql)/查问tryrs=stmt.executeQuery(sql);10catch(Exceptione)System.out.println(e);returnrs;voidexecuteUpdate(Stringsql)/更正trystmt.executeUpdate(sql);catch(SQLExceptione)voidclose()/封闭trystmt.close();conn.c

10、lose();catch(SQLExceptione)3.2这是商品库存管理界面类packagework;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.awt.BorderLayout;importjava.awt.Rectangle;importjava.sql.*;publicclassGulextendsJFrameimplementsActionListenerBorderLayoutBL=newBorderLayout();JButtonjq=newJButton();/查问JButton

11、ji=newJButton();/插入JButtonjd=newJButton();/删除JButtonjo=newJButton();/编写JButtonju=newJButton();/更正JPaneljp=newJPanel();JLabelL1=newJLabel();JLabelL2=newJLabel();JLabelL3=newJLabel();JLabelL4=newJLabel();JLabelL5=newJLabel();11JLabelts=newJLabel();JTextFieldid=newJTextField();JTextFieldname=newJTextFi

12、eld();JTextFieldnumber=newJTextField();JTextFieldsid=newJTextField();ResultSetrs=null;publicGul()tryjbInit();catch(Exceptiona)a.printStackTrace();privatevoidjbInit()throwsExceptiongetContentPane().setLayout(BL);this.setTitle(商场库存管理系统);jp.setLayout(null);jp.setBackground(Color.pink);L1.setText(商品编号:)

13、;L1.setBounds(newRectangle(8,103,71,30);L2.setText(数量:);L2.setBounds(newRectangle(6,175,42,15);L3.setText(商品名:);L3.setBounds(newRectangle(6,144,42,15);L4.setText(查问条件:);L4.setBounds(newRectangle(4,27,86,22);L5.setText(商品编号:);L5.setBounds(newRectangle(42,52,73,24);id.setEditable(false);id.setBounds(n

14、ewRectangle(48,109,124,22);name.setEditable(false);name.setBounds(newRectangle(48,143,124,22);number.setEditable(false);number.setBounds(newRectangle(47,174,125,23);sid.setBounds(newRectangle(82,55,110,20);ts.setBounds(newRectangle(9,281,237,34);ji.setEnabled(false);ju.setEnabled(false);jd.setEnable

15、d(false);jd.setDoubleBuffered(true);this.getContentPane().add(jp,java.awt.BorderLayout.CENTER);12jq.setBounds(newRectangle(216,53,79,23);ji.setBounds(newRectangle(20,229,72,23);ju.setBounds(newRectangle(133,230,76,23);jo.setBounds(newRectangle(217,173,79,23);jd.setBounds(newRectangle(245,231,74,23);

16、jq.setText(查问);jq.addActionListener(this);ju.setText(更正);ju.addActionListener(this);ji.setText(增添);ji.addActionListener(this);jo.setText(编写);jo.addActionListener(this);jd.setText(删除);jd.addActionListener(this);jp.add(L1);jp.add(id);jp.add(name);jp.add(number);jp.add(L5);jp.add(sid);jp.add(L4);jp.add

17、(jq);jp.add(ji);jp.add(jo);jp.add(L3);jp.add(L2);jp.add(jd);jp.add(ju);jp.add(ts);this.setSize(500,400);this.setVisible(true);publicstaticvoidmain(Stringargs)GulF=newGul();publicvoidactionPerformed(ActionEvente)ts.setText();if(e.getSource()=jq)/查问Strings=sid.getText().trim();Stringsql=select*fromuse

18、rwhereid=+s+;Greaddb=newGread();13rs=db.executeQuery(sql);trywhile(rs.next()id.setText(rs.getString(1);name.setText(rs.getString(2);number.setText(rs.getString(3);rs.close();if(!id.getText().equals()ts.setText(操作成功!);catch(SQLExceptionex)elseif(e.getSource()=jo)/编写id.setEditable(true);name.setEditab

19、le(true);number.setEditable(true);ji.setEnabled(true);ju.setEnabled(true);jd.setEnabled(true);elseif(e.getSource()=ji)/增添Strings1=id.getText();Strings2=name.getText();ints3=Integer.parseInt(number.getText();Stringsql=insertintonumbervalues(+s1+,+s2+,+s3+);System.out.println(sql);Greaddb=newGread();d

20、b.executeUpdate(sql);ts.setText(操作成功!);elseif(e.getSource()=ju)/更正Strings1=id.getText();Strings2=name.getText();ints3=Integer.parseInt(number.getText();Stringsql=updatenumbersetname=+s2+,number=+s3+whereid=+s1+;Greaddb=newGread();db.executeUpdate(sql);ts.setText(操作成功!);elseif(e.getSource()=jd)/删除Str

21、ings1=id.getText();14Strings2=name.getText();ints3=Integer.parseInt(number.getText();Stringsql=deletenumberwhereid=+s1+andname=+s2+andnumer=+s3;Greaddb=newGread();db.executeUpdate(sql);id.setText();name.setText();number.setText();id.setEditable(false);name.setEditable(false);number.setEditable(false

22、);ts.setText(操作成功!);3.3登录界面类packagework;importjava.awt.*;importjava.awt.image.*;importjava.awt.event.*;importjavax.swing.*;importjavax.imageio.*;importjava.sql.*;importjava.util.*;importjava.io.*;classLoginWindowV2extendsJFrameimplementsActionListenerJPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp

23、3=newJPanel();JPanelp4=newJPanel();JPanelp5=newJPanel();JTextFieldtxtUserName=newJTextField(15);/用户名文本框JPasswordFieldtxtPwd=newJPasswordField(15);/密码框JButtonok=newJButton(登录);JButtoncancel=newJButton(封闭);JButtonresert=newJButton(重置);publicLoginWindowV2()/字体设置Fontfont=newFont(宋体,Font.PLAIN,24);Fontla

24、belFont=newFont(隶书,Font.BOLD,24);15UIManager.put(Button.font,font);UIManager.put(Label.font,labelFont);UIManager.put(TextField.font,labelFont);JpanelBackjpb=newJpanelBack();ContainercontentPane=this.getContentPane();/取出内容面板p2.add(newJLabel(用户编号:);p2.add(txtUserName);/将组件增添到中间容器p3.add(newJLabel(密码:);

25、p3.add(txtPwd);p4.add(ok);p4.add(cancel);p4.add(resert);ok.addActionListener(this);cancel.addActionListener(this);resert.addActionListener(this);txtUserName.addActionListener(this);txtPwd.addActionListener(this);jpb.add(p2);jpb.add(p3);jpb.add(p4);contentPane.add(jpb);setDefaultCloseOperation(JFrame

26、.DISPOSE_ON_CLOSE);/设置自动封闭窗口intwidth=400,height=300;setSize(width,height);Dimensionscreen=Toolkit.getDefaultToolkit().getScreenSize();setLocation(screen.width-width)/2,(screen.height-height)/2);setTitle(欢迎你进入XX商场库存系统);setResizable(false);/不让用户改变窗口大小setVisible(true);publicvoidactionPerformed(ActionEv

27、ente)if(e.getSource()=ok|e.getSource()=txtPwd)/单击确定按钮后Stringuid=txtUserName.getText().trim();Stringupass=txtPwd.getText().trim();if(checkUser(uid,upass)inti=JOptionPane.showConfirmDialog(null,登录成功,可否立刻去查问系统?,可否查询,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(i=JOptionPane.YES_OPTION)Gul

28、stu=newGul();dispose();stu.setVisible(true);else16JOptionPane.showMessageDialog(null,用户编号或密码错误!);txtUserName.requestFocus();/设置焦点txtUserName.setSelectionStart(0);/设置选中文本开始地点txtUserName.setSelectionEnd(txtUserName.getText().length();elseif(e.getSource()=cancel)/单击封闭dispose();System.exit(0);elseif(e.g

29、etSource()=txtUserName)/在用户编号文本框按回车搬动焦点到密码框txtPwd.requestFocus();elseif(e.getSource()=resert)txtUserName.setText();txtPwd.setText();txtUserName.requestFocus();publicbooleancheckUser(Stringid,Stringpassword)try/1.注册驱动StringdriverClassName=com.mysql.jdbc.Driver;Class.forName(com.mysql.jdbc.Driver);/2.

30、连结数据库Connectionconn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/mydatabase,root,);Stringtemp_ID=txtUserName.getText();Stringtemp_pass=txtPwd.getText();Stringsql_user=selectuserID,userPWfromshoppingwhereUserID=?andUserPW=?;PreparedStatementpst=null;pst=conn.prepareStatement(sql_user);pst.setString(1,temp_ID);/为绑定变量赋值pst.setString(2,temp_pass);ResultSet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论