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

下载本文档

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

文档简介

1、. java程序设计课程设计报告 精品.设计题目:商场库存管理系统设计与实现 学院名称: 信息工程学院 专业班级: 13计本2 姓 名: 刘 飞 学 号: 1312210243 目录一 需求分析。3二 概要设计。32.1概要设计原则。32.2将用户模块需求化。32.3最终确定。3三 系统主要功能模块设计。43.1 登录流程。6精品.3.2.数据库管理。8四 数据库文件。10 五程序的主要界面及程序代码。155.1.用户登录界面。155.2商品信息管理界面。165.2.1查找界面。175.2.2添加界面。175.2.3删除界面。185.2.1修改界面。18六 总结。19参考资料:17精品.一 需

2、求分析本系统的主要目的就是实现商品信息管理,使商品信息管理工作更加容易,从而提高工作效率,降低管理成本. 系统中需要对商品价格,数量进行管理,及库存量等。.二 概要设计/*概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。2.1 概要设计的原则概要设计是根据

3、系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。(2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。(5)提高独立性,减少耦合:各个

4、模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10100行的范围内,最好为3060行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。由于概要设计

5、是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。2.2 将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。精品.(1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。(3)程序代码:用来实现模块功能的源代码。2.3 确定系统最终

6、模块概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。/*三, 系统主要功能模块设计1.1 登录模块流程本模块的主要功能是对用户身份进行验证,只有系统的合法用户才能进入系统。在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。并在输入了错误的或者是不存在的账户和密码时,系统会提示出错信息,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。系统登录模块流程如图4.1所示。1.2库存管理流程功能:本模块的主要功能是商品信息的查询和更新,库存信息的查询和

7、更新。查询商品信息:主要功能查询商品的明细信息,和它的库存信息。添加商品信息:主要功能添加新进的商品。精品.修改商品信息:主要功能是修改商品的信息,包括他的库存数量。删除商品信息:主要功能是删除不再销售的商品信息。输入项、输出项:本模块的数据输入项主要是商品编号。库存管理流程如图4.4所示确定登录商品更改删除商品查询添加商品商品数据库系统数据流图四,数据文件(或数据库)设计 表1精品. 表2精品.五,程序的主要界面、代码实现1 用户登录界面: 1.1 输入用户编号和密码后,可以登录,可以关闭窗口,也可以重置1.2若密码和用户名输入不正确,将显示提示对话框2 .登录成功后系统 2.1登录成功后将

8、显示提示语句:精品.2.2并自动进入商场库存管理界面:2.3查询界面:2.4删除界面:精品.2.5添加界面:2.6修改界面精品.3.1这是gread类,用于连接数据库package work;import java.sql.*;public class greadconnection conn=null;statement stmt=null;resultset rs=null;public gread()trystring driverclassname = com.mysql.jdbc.driver; class.forname(com.mysql.jdbc.driver); /2.连接数

9、据库 connection conn = drivermanager.getconnection(jdbc:mysql:/localhost:3306/mydatabase,root,); stmt=conn.createstatement();catch(exception ex)ex.printstacktrace();resultset executequery(string sql)/查询try精品.rs=stmt.executequery(sql);catch(exception e)system.out.println(e);return rs;void executeupdate

10、(string sql)/修改trystmt.executeupdate(sql);catch(sqlexception e)void close()/关闭trystmt.close();conn.close();catch(sqlexception e)3.2这是商品库存管理界面类package work;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.awt.borderlayout;import java.awt.rectangle;import java.sql.*;public cl

11、ass gul extends jframe implements actionlistenerborderlayout bl=new borderlayout();jbutton jq=new jbutton();/查询jbutton ji=new jbutton();/插入jbutton jd=new jbutton();/删除jbutton jo=new jbutton();/编辑jbutton ju=new jbutton();/修改jpanel jp=new jpanel();jlabel l1=new jlabel();jlabel l2=new jlabel();jlabel l

12、3=new jlabel();jlabel l4=new jlabel();精品.jlabel l5=new jlabel();jlabel ts=new jlabel();jtextfield id=new jtextfield();jtextfield name=new jtextfield();jtextfield number=new jtextfield();jtextfield sid=new jtextfield();resultset rs=null;public gul()tryjbinit();catch(exception a)a.printstacktrace();pr

13、ivate void jbinit()throws exceptiongetcontentpane().setlayout(bl);this.settitle(商场库存管理系统);jp.setlayout(null);jp.setbackground(color.pink);l1.settext(商品编号:);l1.setbounds(new rectangle(8,103,71,30);l2.settext(数量:);l2.setbounds(new rectangle(6,175,42,15);l3.settext(商品名:);l3.setbounds(new rectangle(6,14

14、4,42,15);l4.settext(查询条件:);l4.setbounds(new rectangle(4,27,86,22);l5.settext(商品编号:);l5.setbounds(new rectangle(42,52,73,24);id.seteditable(false);id.setbounds(new rectangle(48,109,124,22);name.seteditable(false);name.setbounds(new rectangle(48,143,124,22);number.seteditable(false);number.setbounds(n

15、ew rectangle(47,174,125,23);sid.setbounds(new rectangle(82,55,110,20);ts.setbounds(new rectangle(9,281,237,34);ji.setenabled(false);ju.setenabled(false);jd.setenabled(false);jd.setdoublebuffered(true);精品.this.getcontentpane().add(jp,java.awt.borderlayout.center);jq.setbounds(new rectangle(216,53,79,

16、23);ji.setbounds(new rectangle(20,229,72,23);ju.setbounds(new rectangle(133,230,76,23);jo.setbounds(new rectangle(217,173,79,23);jd.setbounds(new rectangle(245,231,74,23);jq.settext(查询);jq.addactionlistener(this);ju.settext(修改);ju.addactionlistener(this);ji.settext(添加);ji.addactionlistener(this);jo.

17、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(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);pub

18、lic static void main(string args)gul f=new gul();public void actionperformed(actionevent e)ts.settext();if(e.getsource()=jq)/查询string s=sid.gettext().trim();string sql=select * from user where id=+s+; 精品.gread db=new gread();rs=db.executequery(sql);trywhile(rs.next()id.settext(rs.getstring(1);name.s

19、ettext(rs.getstring(2);number.settext(rs.getstring(3);rs.close();if(!id.gettext().equals()ts.settext(操作成功!);catch(sqlexception ex)else if(e.getsource()=jo)/编辑id.seteditable(true);name.seteditable(true);number.seteditable(true);ji.setenabled(true);ju.setenabled(true);jd.setenabled(true);else if(e.get

20、source()=ji)/添加string s1=id.gettext();string s2=name.gettext();int s3=integer.parseint(number.gettext();string sql=insert into number values(+s1+,+s2+,+s3+);system.out.println(sql); gread db=new gread();db.executeupdate(sql);ts.settext(操作成功!);else if(e.getsource()=ju)/修改string s1=id.gettext();string

21、 s2=name.gettext();int s3=integer.parseint(number.gettext();string sql=update number set name=+s2+,number=+s3+where id=+s1+; gread db=new gread();db.executeupdate(sql);ts.settext(操作成功!);else if(e.getsource()=jd)/删除精品.string s1=id.gettext();string s2=name.gettext();int s3=integer.parseint(number.gett

22、ext();string sql=delete number where id=+s1+and name=+s2+and numer=+s3; gread db=new gread();db.executeupdate(sql);id.settext();name.settext();number.settext();id.seteditable(false); name.seteditable(false); number.seteditable(false);ts.settext(操作成功!);3.3登录界面类package work;import java.awt.*;import ja

23、va.awt.image.*;import java.awt.event.*;import javax.swing.*;import javax.imageio.*;import java.sql.*;import java.util.*;import java.io.*;class loginwindowv2 extends jframe implements actionlistener jpanel p1=new jpanel(); jpanel p2=new jpanel();jpanel p3=new jpanel();jpanel p4=new jpanel();jpanel p5

24、=new jpanel();jtextfield txtusername=new jtextfield(15); /用户名文本框jpasswordfield txtpwd=new jpasswordfield(15);/密码框jbutton ok=new jbutton(登录);jbutton cancel=new jbutton(关闭);jbutton resert=new jbutton(重置);public loginwindowv2()/字体设置font font = new font(宋体,font.plain,24); 精品.font labelfont = new font(隶书

25、,font.bold,24); uimanager.put(button.font,font); uimanager.put(label.font,labelfont); uimanager.put(textfield.font,labelfont); jpanelback jpb = new jpanelback(); container contentpane=this.getcontentpane();/取出内容面板 p2.add(new jlabel(用户编号:);p2.add(txtusername); /将组件添加到中间容器 p3.add(new jlabel(密 码:);p3.a

26、dd(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

27、(jframe.dispose_on_close);/设置自动关闭窗口 int width = 400,height=300; setsize(width,height); dimension screen=toolkit.getdefaulttoolkit().getscreensize(); setlocation(screen.width-width)/2,(screen.height-height)/2); settitle(欢迎你进入xx商场库存系统); setresizable(false); /不让用户改变窗口大小 setvisible(true); public void ac

28、tionperformed(actionevent e) if(e.getsource()=ok|e.getsource()=txtpwd) /单击确定按钮后 string uid = txtusername.gettext().trim(); string upass = txtpwd.gettext().trim(); if(checkuser(uid,upass) int i=joptionpane.showconfirmdialog(null,登录成功,是否立即去查询系统?,是否查询,joptionpane.yes_no_option,joptionpane.question_mess

29、age); if(i=joptionpane.yes_option) gul stu = new gul(); dispose(); stu.setvisible(true); 精品. else joptionpane.showmessagedialog(null,用户编号或密码错误!); txtusername.requestfocus(); /设置焦点 txtusername.setselectionstart(0); /设置选中文本开始位置 txtusername.setselectionend(txtusername.gettext().length(); else if(e.gets

30、ource()=cancel) /单击关闭 dispose(); system.exit(0); else if(e.getsource()=txtusername) /在用户编号文本框按回车移动焦点到密码框 txtpwd.requestfocus(); else if(e.getsource()=resert) txtusername.settext(); txtpwd.settext(); txtusername.requestfocus(); public boolean checkuser(string id ,string password)try /1.注册驱动 string dr

31、iverclassname = com.mysql.jdbc.driver; class.forname(com.mysql.jdbc.driver); /2.连接数据库 connection conn = drivermanager.getconnection(jdbc:mysql:/localhost:3306/mydatabase,root,); string temp_id=txtusername.gettext(); string temp_pass=txtpwd.gettext(); string sql_user=select userid,userpw from shopping where userid=? and userpw=?; preparedstatement pst=null; pst=conn.preparestatement(sql_user); pst.setstring (1,temp_id); /为绑定变量赋值 pst.setstring (2,temp_pass); resultset rst=pst.executequery(); if

温馨提示

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

评论

0/150

提交评论