首页 Java课程设计报告-商店收银系统

Java课程设计报告-商店收银系统

举报
开通vip

Java课程设计报告-商店收银系统Java课程设计报告-商店收银系统Java课程设计报告【商店收银系统】系别:软件工程班级:学号:姓名:指导老师:2009年5月14日商店收银系统1系统概述1.1设计题目商店收银系统1.2可行性分析1.2.1背景商店是一个很繁忙的地方,每天有很多的顾客要买东西,收银员要和很多的顾客结算,并且要给这些结算存档,以便日后查看。如果只用人工的方法去处理这些结算和计算的数据将是一件很繁琐的事情,将投入大量的人力物力,为了解决这个问题,实现科学化、现代化的商店收银管理,我们就必须设计开发商店收银系统,并用于实践。而商店收银管理...

Java课程设计报告-商店收银系统
Java课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 -商店收银系统Java课程设计报告【商店收银系统】系别:软件工程班级:学号:姓名:指导老师:2009年5月14日商店收银系统1系统概述1.1设计 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目商店收银系统1.2可行性分析1.2.1背景商店是一个很繁忙的地方,每天有很多的顾客要买东西,收银员要和很多的顾客结算,并且要给这些结算存档,以便日后查看。如果只用人工的方法去处理这些结算和计算的数据将是一件很繁琐的事情,将投入大量的人力物力,为了解决这个问题,实现科学化、现代化的商店收银管理,我们就必须设计开发商店收银系统,并用于实践。而商店收银管理系统是对商店的收款信息进行管理的计算机网络软件系统,它可完成商店中各种货品的收银工作,并对可以对特定时间段的出售信息进行查询。1.3总环境图图1.1是一幅上下文环境图,它演示了该商店收银管理系统的外部实体和系统接口。收银员商品管理员查询是否存在该商品商品信息商品情况对系统进行操作商店收银管理系统图1.1商店收银系统2系统目标和建设原则2.1系统目标2.1.1近期目标该系统可以使商店的收银工作变得轻松了许多,商店的管理员不必将大量的时间用在对厚厚的账本的管理上,可以直接查询数据库来相关的信息。因此,开发商店收银系统可以提高收银员和管理员的工作效率,利用计算机的方便、快捷、友好的操作环境,来完成相对比较复杂、繁琐的事务,使用户可以轻松地完成对商品的查找等操作,大大提高工作效率。2.1.2远期目标随着商店规模的扩大,商品种类的日益增加,对商品库存的管理越来越复杂,功能也需要不断的加强和扩充,本系统希能够通过不同版本的升级来完成业务功能的不断扩充和更新以完成更加复杂的工作。最终目标是方便超市收银员和管理员的各项操作。3支撑环境规划3.1网络逻辑结构该商店收银系统系统是为了方便商店收银员和管理员的操作而设计的,为每个商品管理人员和收银员配备了一台电脑,并把所有的电脑联入商店局域网内,以方便管理。为了对数据的安全性、准确性地保护,这些电脑都共享一个后台数据库。本系统采用下图局域网模式来构建的:3.2软件支撑环境及开发工具图3.1超市收银管理系统的局域网逻辑结构设计:BCAN商店收银系D统数据库…EF3.2.1软件支撑环境本系统是在下列系统配置下完成的:(1)操作系统:MicrosoftWindowsXPProfessional(SP2)(2)中央处理器(CPU):Inter(R)Pentium(R)4(3)硬盘:80G(4)内存:512MB3.2.2开发工具本系统是在下列开发环境下完成的:(1)应用程序开发环境:eclipse(2)后台数据库开发工具:MicrosoftSQLServer2000(3)文档开发环境:MicrosoftOfficeWord20034系统设计4.1功能结构在此次设计中,依据系统结构化设计方法,把本系统划分为若干个功能模块,某些模块又可以划分为多个子模块,某些子模块又可划分为多个二级子模块,经层层分解后,最小的子模块的功能便十分明确和简单了。这样做,不仅展现了一个应用软件系统的整体性和层次性,而且通过屏幕对每个应用模块有明显的提示,在这些提示下,用户可以方便地进入系统的每一层进行操作,可以非常方便地使用这一数据库应用系统。4.1.1功能结构图商店收银系统用商商商户品品品信入库销息库存售管管管管理理理理图4.2超市收银管理系统功能结构图(a)~(c)4.1.2主要功能说明本系统主要分成三个功能模块,每个模块都独立的完成了自己的功能,以下是对各功能模块的说明:(1)用户信息管理功能。该功能模块可以实现系统用户对自己基本信息的修改,不过只限于对登录密码的修改,因为用户帐号都是超市为了方便管理而事先分配好了的,是不能改变的。出于对用户信息的安全性考虑,只能修改当前登录的用户的密码。(2)商品入库信息管理功能。该功能模块是实现对即将入库的商品的统计,由于商品信息的庞大、复杂,在入库前需要对其进行详细地 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 管理,为商品的库存管理打下良好的基础。需要记录的内容有:入库商品的商品号、名称、类型、价格、同类商品的数量、采购员、验收员、生产厂商、产地、入库时间等。同时能够实现对商品入库信息的添加、修改、删除和查询功能。(3)商品销售信息管理功能。该功能模块是把要销售的商品从超市中取出来,并对库存商品进行相应的记录管理,并且把顾客的购买信息打印下来给顾客做凭证。需要记录的内容有:出售商品的名称、类型、销售价格、数量、销售时间等,同时能够实现对商品销售信息的添加、修改、删除和查询功4.2数据库结构4.2.1E-R图为了把系统的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(E-R图)。它描述了从用户角度看到的数据,它反映了用户的显示环境,而且与在软件中的实现方法无关。顾客N购物1收银员N查询销售数量出售11商品存放库房商品N11管理入库数量库存数量N商品管理员(a)上图(b)下图商品价商品名格称商品类商品号型商品生产厂产地家备注管理员帐号商品管理员管理员密码(c)(d)商品号商品名称商品类型销售价格入库价格商品库房入库时间库存量产地生产厂家备注图4.3超市收银管理管理系统E-R图(a)~(d)4.2.2关系数据库模式在本系统的数据库设计中,设计了四个基本数据库表:用户资料表USERS,商品入库资料表GOODS_IMPORT,库存商品资料表GOODS_INFO,商品销售资料表GOODS。具体结构图如下列表所示:表4.1USERS表字段名称标识名称数据类型空否字段说明USER_ID帐号CHAR(20)N主码USER_PASSWORD密码CHAR(20)NUSER_TYPE用户类型INT(4)N1:收银员2:管理员表4.2GOODS_IMPORT表字段名称标识名称数据类型空否字段说明IMPORT_ID入库商品商VARCHAR(20)N主码品号IMPORT_NAM入库商品名VARCHAR(20)NE称IMPORT_TIME入库时间DATETIMENIMPORT_NUM入库商品数VARCHAR(20)N量IMPORT_PRIC入库商品价MONEYNE格PRODCOM生产厂商VARCHAR(20)NPRODPLACE产地VARCHAR(20)NBUYER采购员VARCHAR(20)NCHECKER验收员VARCHAR(20)NIMPORT_MEM入库商品备VARCHAR(50)NO注字段名称标识名称数据类型空否字段说明GOODS_IN_ID库存商品VARCHAR(20)N主码商品号GOODS_IN_NAME入库商品VARCHAR(20)N名称GOODS_IN_TIME入库时间DATETIMENGOODS_IN_NUM库存商品VARCHAR(20)N数量IN_INPORT_PRICE入库价格MONEYNIN_EXPORT_PRIC销售价格MONEYNEIN_PROCOM生产厂商VARCHAR(20)NIN_MEMO库存商品VARCHAR(50)N备注表4.3GOODS_INFO表表4.4GOODS表字段名称标识名称数据类型空否字段说明GOODS_ID出售商品的VARCHAR(50)N主码商品号GOODS_NAME销售商品名VARCHAR(50)N称PRICE价格VARCHAR(50)NSALES_TIME出售时间DATETIMEY自动获得,可以为空AGIO是否打折VARCHAR(50)NISIN是否入库intN1:是0:否5总体实施 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 (1)首先,根据所作的需求分析,完成基本的功能界面设计,并且把界面设计成方便、易用和人性化的用户界面。(2)根据(1)中界面设计,把每个功能通过代码来实现,以完成功能的定义。(3)根据4.3.3关系数据库模式中的数据库表的设计,并通过SQLServer2000建立数据库。(4)把设计好的界面和数据库连接起来,使整个系统能够运行。(5)选取几个典型的例子对该系统进行测试,不断地发现问题和解决问题,最终使该系统能够正常的运行,完成相应的任务。(6)以下是该系统的主要界面:图5.1登录界面图5.2主控界面图5.3收银员结账界面图5.4查询已出售商品界面这些主要界面代表了系统中的主要风格,功能和界面都大致与这些界面设计的一样。所以不再一一列出。6部分代码6.1收银主界面代码packagecounter;importjava.awt.*;importjava.awt.event.*;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.Vector;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;publicclassshopextendsJFrameimplementsActionListener{privateJTextFieldvip,good,no,ying,shi,zhao;privateJLabelvipid,ys,goodid,goodno,yingshou,shishou,zhaoling;privateJButtonok,check;privateJRadioButtonyn;publicdoublediscount=1;doubletotal;//Stringid;JPanelp1,p2,p3,p4;JScrollPanesp;String[]colNames={"商品ID","商品名称","单价","数目"};String[][]shopList=newString[20][4];DefaultTableModelmodel=newDefaultTableModel();//定义DefaultTableModel模型JTablejTable1=newJTable(model);//定义JTable为DefaultTableModel的实例model模式publicshop(){super("商店结算系统");Containercontainer=getContentPane();");vipid=newJLabel("VIP号vip=newJTextField(10);vip.setEditable(false);ys=newJLabel("是否是VIP用户");yn=newJRadioButton("是",false);yn.addActionListener(this);goodid=newJLabel("商品ID");good=newJTextField(10);goodno=newJLabel("商品数量");no=newJTextField(10);ok=newJButton("确定");container.add(ok);ok.addActionListener(this);yingshou=newJLabel("应收");ying=newJTextField(10);ying.setEditable(false);shishou=newJLabel("实收");shi=newJTextField(10);zhaoling=newJLabel("找零");zhao=newJTextField(10);zhao.setEditable(false);check=newJButton("结算");check.addActionListener(this);p1=newJPanel();p2=newJPanel();p3=newJPanel();p4=newJPanel(newGridLayout(3,1));model.addColumn("商品名称");model.addColumn("商品id");model.addColumn("单价");model.addColumn("数目");sp=newJScrollPane(jTable1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);sp.setBorder(BorderFactory.createTitledBorder("商品清单"));//p1p2p3分别放置三行,P4放p1p2p3p1.add(vipid);p1.add(vip);p1.add(ys);p1.add(yn);p2.add(goodid);p2.add(good);p2.add(goodno);p2.add(no);p2.add(ok);p3.add(yingshou);p3.add(ying);p3.add(shishou);p3.add(shi);p3.add(zhaoling);p3.add(zhao);p3.add(check);p4.add(p1);p4.add(p2);p4.add(p3);container.add(p4,"North");container.add(sp);setBounds(300,100,550,300);setVisible(true);}publicstaticvoidmain(Stringargs[]){shopapplication=newshop();application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}//****************************事件处理***************************************************************publicvoidactionPerformed(ActionEvente){//**********************确定按钮事件***************************************************************if(e.getSource()==yn){if(yn.isSelected()){vip.setEditable(true);discount=0.9;}else{vip.setText("");vip.setEditable(false);discount=1;}}//**********************确定按钮事件***************************************************************if(e.getSource()==ok){Stringsql,isbn,num;Stringsql1,id;Vectortempvector=newVector(1,1);//定义临时集合isbn=good.getText().trim();id=vip.getText().trim();sql="select*fromgoods";sql1="select*fromuser";doubleprice;intnumber;connectionco=newconnection();ResultSetrs=co.getResultSet(sql);ResultSetrs1=co.getResultSet(sql1);//记录集有记录if(yn.isSelected()){if(check(rs1,"userid",id)){if(check(rs,"isbn",isbn)){try{num=no.getText().trim();rs.beforeFirst();//移动游标到零的位置rs.next();price=Double.parseDouble(rs.getString("price").trim());//读取价格number=Integer.parseInt(no.getText().trim());//读取数量total=price*number*discount;//计算应收价ying.setText(String.valueOf(total));//显示应收的价格sql="select*fromgoodswhereisbn='"+isbn+"'";ResultSetrs2=co.getResultSet(sql);rs2.beforeFirst();rs2.next();//while(rs2.next()){tempvector=newVector(1,1);//新的vector二维数组tempvector.add(rs2.getString("isbn"));tempvector.add(rs2.getString("goodsname"));tempvector.add(rs2.getString("price"));//tempvector.add(no.getText().trim());tempvector.addElement(num);model.addRow(tempvector);//}}catch(SQLExceptione1){e1.printStackTrace();}}elseJOptionPane.showMessageDialog(this,"对不起,商品不存在~","警告",JOptionPane.INFORMATION_MESSAGE);}else{yn.setSelected(false);vip.setText("");vip.setEditable(false);discount=1;no.setText("");good.setText("");JOptionPane.showMessageDialog(this,"用户不存在~","警告",JOptionPane.INFORMATION_MESSAGE);}}else{if(check(rs,"isbn",isbn)){try{num=no.getText().trim();rs.beforeFirst();//移动游标到零的位置rs.next();price=Double.parseDouble(rs.getString("price").trim());//读取价格number=Integer.parseInt(no.getText().trim());//读取数量total=price*number*discount;//计算应收价ying.setText(String.valueOf(total));//显示应收的价格if(total>200){insertin=newinsert();}sql="select*fromgoodswhereisbn='"+isbn+"'";ResultSetrs2=co.getResultSet(sql);rs2.beforeFirst();rs2.next();//while(rs2.next()){tempvector=newVector(1,1);//新的vector二维数组tempvector.add(rs2.getString("isbn"));tempvector.add(rs2.getString("goodsname"));tempvector.add(rs2.getString("price"));//tempvector.add(no.getText().trim());tempvector.addElement(num);model.addRow(tempvector);//}}catch(SQLExceptione1){e1.printStackTrace();}}elseJOptionPane.showMessageDialog(this,"对不起,商品不存在~","警告",JOptionPane.INFORMATION_MESSAGE);}good.setText("");no.setText("");}//**********************结算按钮事件***************************************************************if(e.getSource()==check){doublepay,change;pay=Double.parseDouble(shi.getText().trim());if(pay>=total){change=pay-total;zhao.setText(""+change);}else{JOptionPane.showMessageDialog(this,"金额不足~","警告",JOptionPane.INFORMATION_MESSAGE);shi.setText("");}vip.setText("");//zhao.setText("");//shi.setText("");/*model.addColumn("商品名称");model.addColumn("商品id");model.addColumn("单价");model.addColumn("数目");sp=newJScrollPane(jTable1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);sp.setBorder(BorderFactory.createTitledBorder("商品清单"));*//*for(inti=0;i<jTable1.getRowCount();i++)jTable1();*/}}publicbooleancheck(ResultSetrs,Stringcolunm,Strings){if(rs!=null){try{rs.beforeFirst();while(rs.next()){//rs.next();if(rs.getString(colunm).equals(s))returntrue;}}catch(SQLExceptione){e.printStackTrace();}}elsereturnfalse;returnfalse;}}6.2本规划的评价(1)本规划的特点功能的实现较好的完成了实验的目的,与应用程序的连接也比较理想。另外,应用程序的各功能模块分工明确可重用性也很强。另外,本系统可以把出售的商品信息打印给顾客作为凭证。(2)本规划的不足该程序还有很多细节问题,另外程序还没有完全完善,还有几个子模块没有实现。6.3收获与体会我觉得这次实验的收获和体会很大,主要有一下几点:(1)在这次试验中我对数据库系统设计的基本框架和java语言都有了更深地认识和学习。(2)增加了很多实际编程经验,更进一步的学习了java,在实践中遇到了很多的问题,但是经过努力也都较好地克服了。这使我感觉到做任何事都会有困难,解决的关键在于自己的不断的坚持和努力。总之,这次试验使我学习了很多书本上没有的知识,真正地达到了实践地目的。
本文档为【Java课程设计报告-商店收银系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:117KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-11-18
浏览量:39