版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计》实验名称:Java深入面向对象编程商品销售系统班级:^^组长:组员:^^评语:评语:成绩:指导教师:批阅时间:年月日编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页一.实验目的1.
掌握Java面向对象编程的初步知识,理解类的定义和使用,会正确运用Java的非访问控制符和访问控制符来实现面向对象的编程思想;掌握Java类的修饰符、访问控制符的使用;2.
培养团队合作精神和沟通能力。二.实验题目
以与大学生学习、生活、娱乐相关的信息服务为例,各团队自选题目,用面向对象的方法进行需求分析,划分功能模块,每位成员负责其中某些模块的设计与实现。
首先练习类的定义和使用,包括类、属性和方法的各种修饰符的使用、方法与构造函数的定义与使用,练习修饰符的使用。
三.要求1.
采用Application图形界面显示,请注意用户界面的友好性;2.
源程序中必需对程序功能、方法、属性等加适当的注释;3.
每个人一个包(即用英文命名的文件夹),所有类的命名都要用设计者姓名拼音缩写加若干能表达功能意义的字符组成;4.
每组有一个组长,组长除完成本身任务外,还要负责设计作为程序入口的主类、系统总的说明文档;每位成员负责编写自己每次的说明文档;5.
作业由组长以团队形式提交到教学平台上,压缩包名为三个成员汉语名字合成,第一个为组长。6.提交时间:四、实验步骤与源程序1.选题与团队分工选题:商品销售系统分工:角色姓名承担的具体任务组长强余彬程序的主入口、客户类、修改产品、修改客户、下单及一些界面类组员李宏志产品类、销添加删除客户、产品的类组员谢超初始化数据类、、查询客户、产品类、用户类2.系统需求分析系统功能描述商品销售系统系统管理员:添加客户资料、删除客户资料、修改客户资料、查询客户资料、添加商品、删除商品、修改商品、查询商品、下单、取消下单、修改密码(包括销售人员)销售人员:添加客户资料、修改客户资料、查询客户资料、修改商品、下单、取消下单、修改密码系统用例图3.系统类图设计系统类图(强余彬)搜查实体类异常类(李宏志)(谢超)4.源程序五、测试数据与实验结果 登陆界面输入错误系统管理员主界面修改客户(失败) 修改客户(成功)下单 下单失败 添加产品删除产品 修改产品修改密码(输入密码错误) 未输入修改密码输入密码不一致 修改成功修改销售人员密码(账号错误) 修改销售人员密码成功李宏志:
谢超六、结果分析与实验体会(强余彬)本次实验对系统的功能没有做修改,主要是优化了系统的结构。首先是本次实验大量运用了继承,尤其是界面,大多数的界面继承的是ReviseClientGUI这个界面,重复利用了界面上的布局以及标签,大大简化了工作量以及代码的长度,有些界面是继承的一些相似的界面,例如删除客户继承了删除产品的界面,而删除产品又是继承于修改客户这个界面。其次,本次实验添加了一个自定义异常类,当创建新用户的时候密码低于三位数会自动派出此异常。本次试验还添加了一个Search类,里面有一些常用函数,例如查找客户、查找产品、比较字符串、删除客户等方法,在其他界面中要用可以调用此嘞的一些方法,实现了类的封装。此外,本次实验还将以前在输入一些非法数据会产生的异常给补上了,例如有NullPointerException、NumberFormatException等等。有一些界面只需要接收一个用户输入的数据,所以就是用了JOPtionPane类中的showInputDialog函数用来接收数据,大大简化了代码量,优化了系统性能。本次实验画了整体系统的类图之间的关系,大大加深了我对此系统的了解,形成了一个严密的框架,对于今后的学习会有很大的帮助。老师的代码对于我们的学习是有很大的帮助的,学习是一件长期的事,实践着“痛并快乐着……”的感觉是非常好的,我会继续坚持下去的。(李宏志)本次实验主要运用了属性以及函数的继承,隐藏,重载等操作。通过遮羞方法的运用,能够明显简化代码的复杂度,尤其是继承的运用,通过继承其他属性函数的操作,从而简化程序的复杂度,此外还需要运用文本域的隐藏操作,对于新的操作需要重新定义标签和文本域,另外在继承操作时需要注意继承的对象公共和私有,来避免错误。在编程时会出现一些异常,对于异常的处理,可以通过publicvoidp(intx){try{}catch(Exceptione){}finally{}}语句来捕获异常,如果在try语句中出现异常,则会被抛出。对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。本次实验还练习了通过visio软件画系统类图和用例图,包括实体类、界面类,特性与操作的参数的输入,顶层包的加载等等。(谢超)第三次试验是在第二次的基础上的拓展,在这次试验中我完成了我所有的包中的文件的测试,以及完成了相应的文件的类图的画图。在类图的画画过程中还是有一些不懂得地方,对于系统中的集体的操作和特性有的区分的不是很清楚,在画类图的时候参考了老师的类图的画法,还有同学的帮助。这次试验掌握了类图的画法,和对继承的一些了解。源代码/*一个简单的校园卡系统设计示例版本:Ver2.0作者:强余彬时间:2010.5.1*//*对用户商品进行查找操作的业务类*/packageSalesSystem.qyb;//定义系统所属包名importSalesSystem.xc.*;//引入实体类所在包importSalesSystem.lhz.*;importjava.util.*;importjavax.swing.JOptionPane;publicclassSearch//定义一个业务类,实现查找操作{ //Clientclient; publicintclientflag; publicintgoodsflag; publicClientfindClient; publicGoodsfindGoods; publicSearch() { clientflag=0; goodsflag=0; } publicClientsearchClient(Stringname) { for(inti=0;i<Client.lth;i++) { try{if(Init.init.client[i].getId().equals(name)) findClient=Init.init.client[i]; clientflag=1; } catch(NullPointerExceptionee){} } if(clientflag==0)findClient=null; returnfindClient; }publicGoodssearchGoods(Stringtmp) { for(inti=0;i<Goods.lth;i++) { try{ if(Init.init.goods[i].getName().equals(tmp)) { findGoods=Init.init.goods[i]; goodsflag=1; }} catch(Exceptionee){} } if(goodsflag==0)findGoods=null; returnfindGoods; } publicvoiddeleteClient(Stringtmp) { intflag=0; for(inti=0;i<Client.lth;i++) { if(Init.init.client[i].getId().equals(tmp)) { intj; for(j=i;j<Client.lth;j++) Init.init.client[j]=Init.init.client[j+1]; Init.init.client[j]=null; Client.lth--; JOptionPane.showMessageDialog(null,"删除成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此顾客,无法删除","警告",JOptionPane.WARNING_MESSAGE); JOptionPane.showInputDialog(null,"输入客户的名字","删除客户",JOptionPane.PLAIN_MESSAGE); } }publicvoiddeleteGoods(Stringtmp) { intflag=0; for(inti=0;i<Goods.lth;i++) { if(Init.init.goods[i].getName().equals(tmp)) { intj; for(j=i;j<Goods.lth;j++) Init.init.goods[j]=Init.init.goods[j+1]; Init.init.goods[j]=null; Goods.lth--; JOptionPane.showMessageDialog(null,"删除商品成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此商品,无法删除"); tmp=JOptionPane.showInputDialog(null,"输入产品的名字","删除产品",JOptionPane.PLAIN_MESSAGE); } } publicstaticbooleanisEmpty(Stringtmp) { try{ if(tmp.length()==0) { JOptionPane.showMessageDialog(null,"您未输入任何字符","错误",JOptionPane.ERROR_MESSAGE); returnfalse; } else returntrue; }catch(NullPointerExceptionee){} returnfalse; }}/*一个简单的销售系统设计示例版本:Ver2.0作者:强余彬时间:2010.4.25*//*销售系统客户实体类*/packageSalesSystem.qyb;importSalesSystem.xc.*;publicclassClientextendsUser//继承了user实体类{ privateStringGender; publicStringGoods[]=newString[15];//购买的商品名称 publicintPrice[]=newint[15];//相应的价格 publicintAmount[]=newint[15];//买的数量 privateintgoodslth; static { lth=0; } publicClient(Stringid) { super(id); Id=id; Gender="男"; UserType="客户"; lth++; goodslth=0; } publicClient(Stringid,Stringsex)//构造用户1,默认身份为销售人员 { super(); Id=id; Gender=sex; UserType="客户"; lth++; goodslth=0; } publicintgetGoodslth() { returngoodslth; } publicvoidalterGoodslth(inttmp) { goodslth=tmp; } publicStringgetGender() { returnGender; } publicvoidalterGender(Stringsex) { Gender=sex; } publicvoidbuyGoods(Stringgoods,intprice,intamount) { Goods[goodslth]=goods; Price[goodslth]=price; Amount[goodslth]=amount; goodslth++; } publicStringprintGoods() { Stringtmp="产品:"; for(inti=0;i<getGoodslth();i++) { tmp+=Goods[i]+"、"; } returntmp; } publicStringprintAmount() { Stringtmp="数量:"; for(inti=0;i<getGoodslth();i++) { tmp+=Amount[i]+"、"; } returntmp; }}/*一个简单的销售系统设计示例版本:Ver1.0作者:李宏志时间:2010.4.7*//*销售系统产品实体类*/packageSalesSystem.lhz;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassGoods{ privateStringName; privateintPrice; privateintTotalAmount; privateintLeft; publicstaticintlth; static { lth=0; } publicGoods(Stringname,intprice,inttotal,intleft) { Name=name; Price=price; TotalAmount=total; Left=left; lth++; } publicGoods(Stringname,intprice,inttotal)//初始化余量等于总量 { Name=name; Price=price; TotalAmount=total; Left=total; lth++; } publicStringgetName() { returnName; } publicvoidalterName(Stringtmp) { Name=tmp; } publicintgetPrice() { returnPrice; } publicvoidalterPrice(inttmp) { Price=tmp; } publicintgetTotalAmount() { returnTotalAmount; } publicvoidalterTotalAmount(inttmp) { TotalAmount=tmp; } publicintgetLeft() { returnLeft; } publicvoidalterLeft(inttmp) { Left=tmp; } publicStringtostring() { Strings; s="商品名:"+getName()+"\t价格:"+getPrice()+"\t总量:"+getTotalAmount()+"\t余量:"+getLeft(); returns; }}/*一个简单的销售系统设计示例版本:Ver1.0作者:谢超时间:2010.4.7*//*销售系统初始化客户、商品信息类*/packageSalesSystem.xc;importSalesSystem.lhz.*;importSalesSystem.qyb.*;publicclassInit{ publicUseruser1; publicUseruser2;publicUseruser4; publicUseruser3; publicClientclient[]=newClient[20]; publicGoodsgoods[]=newGoods[20]; publicstaticInitinit=newInit(); publicInit() { try{ user1=newUser("强余彬","0000","系统管理员"); user2=newUser("谢超","0000","销售人员"); user3=newUser("李宏志","0000","销售人员"); } catch(UnexpectedCreatee){System.out.println(ee.toString());} client[0]=newClient("张三","男"); client[0].buyGoods("铅笔",1,50); client[0].buyGoods("文具盒",10,2); client[1]=newClient("李四","男"); client[1].buyGoods("铅笔",1,10); client[1].buyGoods("本子",2,3); client[2]=newClient("王五","男"); client[2].buyGoods("钢笔",9,8); client[2].buyGoods("文具盒",10,3); client[3]=newClient("小红","女"); client[3].buyGoods("钢笔",9,8); client[3].buyGoods("文具盒",10,3); client[4]=newClient("小明","男"); client[4].buyGoods("本子",2,10); client[4].buyGoods("铅笔",1,20); client[4].buyGoods("钢笔",9,2); goods[0]=newGoods("铅笔",1,1000,800); goods[1]=newGoods("钢笔",9,300,280); goods[2]=newGoods("本子",2,600,590); goods[3]=newGoods("文具盒",10,200,195); goods[4]=newGoods("橡皮",1,200,200); }}/*一个简单的销售系统设计示例版本:Ver2.0作者:强余彬时间:2010.5.1*//*系统管理员图形界面类*///自定义异常类,当创建新用户密码过短时产生packageSalesSystem.qyb;importSalesSystem.xc.*;publicclassUnexpectedCreatextendsException{ privateUseruser;//产生当前错误的User对象的引用 privateStringIllegalPsd;//产生当前错误的非法的密码 publicUnexpectedCreat(Usertmp,Stringpsd)//构造函数 { super("不合法的初始充值数额");//调用父类Exception的构造函数 user=tmp;//初始化两个属性 IllegalPsd=psd; } publicStringtoString()//重载父类的方法,给出详细的错误信息 { Strings; s="创建用户时出错:"+user.getId() +"该、用户的密码" +IllegalPsd +"不合规定"; returns; } }/*一个简单的销售系统设计示例版本:Ver2.0作者:谢超时间:2010.5.1*//*销售系统用户实体类*/packageSalesSystem.xc;importSalesSystem.lhz.*;importSalesSystem.qyb.*;importjavax.swing.*;publicclassUser{ publicstaticintlth;//存的个数 protectedStringId; privateStringPassword; protectedStringUserType;//用户类型管理员、普通用户 static { lth=0; } publicUser() { } publicUser(Stringid)//构造用户,默认身份为销售人员,默认密码为0000 { Id=id; Password="0000"; UserType="销售人员"; lth++; } publicUser(Stringid,Stringpsd)throwsUnexpectedCreat//构造用户,默认身份为销售人员 { //根据用户名和密码,声明了抛出异常 this(id); if(psd.length()<4) throw(newUnexpectedCreat(this,psd)); Password=psd; UserType="销售人员"; lth++; } publicUser(Stringid,Stringpsd,Stringtype)throwsUnexpectedCreat//构造用户 { this(id,psd); //Id=id; //Password=psd; UserType=type; lth++; } publicStringgetId() { returnId; } publicvoidalterId(Stringid) { Id=id; } publicStringgetPassword() { returnPassword; } publicbooleanalterPassword(Stringtmp)//密码新添了判断是否为空和限定密码长度不能太短的功能 { if(tmp.length()==0) { JOptionPane.showMessageDialog(null,"您未输入任何字符","错误",JOptionPane.ERROR_MESSAGE); returnfalse; } elseif(tmp.length()<=3) { JOptionPane.showMessageDialog(null,"您输入的密码过短","警告",JOptionPane.WARNING_MESSAGE); returnfalse; } else { Password=tmp; JOptionPane.showMessageDialog(null,"成功修改密码!"); returntrue; } } publicStringgetUserType() { returnUserType; } publicvoidalterUserType(Stringtmp) { UserType=tmp; } publicbooleanuserTypeJudge(Stringname,Stringpwd,Stringtype){ if(Id.equals(name)&&Password.equals(pwd)&&UserType.equals(type)) returntrue; else returnfalse;} publicbooleanuserPsdJudge(Stringtmp,Stringpwd){ if(tmp.equals(pwd)) returntrue; else returnfalse;} publicStringtostring() { Strings; s="用户名:"+getId()+" 密码:"+getPassword()+" 用户类型:"+getUserType(); returns; }}/*一个简单的销售系统设计示例版本:Ver1.0作者:强余彬时间:2010.4.7*//*销售系统主入口类*/packageSalesSystem;importjava.io.*;importSalesSystem.xc.*;publicclassMain{ publicstaticvoidmain(Stringargs[]) { System.out.println(Init.init.user1.tostring()); System.out.println(Init.init.user2.tostring()); System.out.println(Init.init.user3.tostring()); System.out.println(Init.init.goods[0].tostring()); System.out.println(Init.init.goods[1].tostring()); System.out.println(Init.init.goods[2].tostring()); System.out.println(Init.init.goods[3].tostring()); System.out.println(Init.init.goods[4].tostring()); newGUI(); //构造一个新窗体对 }}/*一个简单的销售系统设计示例版本:Ver1.0作者:强余彬时间:2010.4.7*//*销售系统主登陆窗口图形界面类*/packageSalesSystem;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importSalesSystem.lhz.*;importSalesSystem.xc.*;importSalesSystem.qyb.*;publicclassGUIextendsFrameimplementsActionListener,ItemListener{ TextFieldtxId;//一定一个宽度为10个字符的文本框,用于答案输入 TextFieldtxPassword; LabellbTitle; LabellbId; LabellbPassword; ButtonbtOk; ButtonbtCancel; ButtonbtReset; Labeltype; ChoicetypeChoice; FontmyFont; Stringchtype; publicUseru; GUI()//构造函数,用来初始化 { super("主登陆界面");//调用父类构造函数 btOk=newButton("确定"); btCancel=newButton("退出"); btReset=newButton("重置"); chtype="销售人员"; typeChoice=newChoice(); type=newLabel("身份:"); lbTitle=newLabel("商品销售系统"); lbTitle.setFont(myFont); lbId=newLabel("用户账号"); txId=newTextField(10); lbPassword=newLabel("用户密码"); txPassword=newTextField(10); txPassword.setEchoChar('*'); myFont=newFont("黑体",Font.BOLD,20);//定义字体为黑体、加粗、字号18 GridBagLayoutgbl=newGridBagLayout(); GridBagConstraintsgbc=newGridBagConstraints(); setLayout(gbl); //设置标题控件的位置 gbc.anchor=GridBagConstraints.NORTH;//让标题顶部居中 gbc.gridwidth=GridBagConstraints.REMAINDER;//让标题成为所在行最后(也是唯一)一个组件 add(lbTitle,gbc); //设置姓名控件的位置 gbc.anchor=GridBagConstraints.WEST;//让ID标签位于左侧 gbc.gridwidth=1;//占一个单元格 add(lbId,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER;//让ID输入框成为所在行最后一个组件 add(txId,gbc); //设置密码控件的位置 gbc.gridwidth=1; add(lbPassword,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER; add(txPassword,gbc); //设置身份控件的位置 gbc.gridwidth=1; add(type,gbc); add(typeChoice,gbc); typeChoice.add("销售人员"); typeChoice.add("系统管理员"); gbc.gridwidth=GridBagConstraints.REMAINDER;//让ID输入框成为所在行最后一个组件 add(typeChoice,gbc); gbc.anchor=GridBagConstraints.SOUTH; gbc.gridwidth=1; add(btOk,gbc); gbc.gridwidth=1; add(btCancel,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER;//让ID输入框成为所在行最后一个组件 add(btReset,gbc); btOk.addActionListener(this);//为输入文本框注册监听器对象 btReset.addActionListener(this);//为按钮注册监听器对象 btCancel.addActionListener(this); typeChoice.addItemListener(this); setBackground(Color.yellow);//设置背景色为黄色 setSize(300,260); setBounds(450,220,300,260); setVisible(true); validate();}publicvoiditemStateChanged(ItemEvente){if(e.getItemSelectable()instanceofChoice) { chtype=((Choice)e.getItemSelectable()).getSelectedItem();}}publicvoidactionPerformed(ActionEvente)//实现ActionListener接口的actionPerformed方法 { if(e.getSource()==btOk) {//判断事件源,如果是输入文本框 booleana,b,c; a=Init.init.user1.userTypeJudge(txId.getText(),txPassword.getText(),chtype); b=Init.init.user2.userTypeJudge(txId.getText(),txPassword.getText(),chtype); c=Init.init.user3.userTypeJudge(txId.getText(),txPassword.getText(),chtype); if(a||b||c) { if(chtype.equals("系统管理员")) { newManagerGUI("系统管理员:强余彬"); this.setVisible(false); } else { if(b)u=Init.init.user2; elseu=Init.init.user3; newSalesmanGUI("销售人员:"+txId.getText(),u); this.setVisible(false); } } elseif(Init.init.user1.userPsdJudge(txId.getText(),txPassword.getText())||Init.init.user2.userPsdJudge(txId.getText(),txPassword.getText())||Init.init.user3.userPsdJudge(txId.getText(),txPassword.getText())) JOptionPane.showMessageDialog(null,"密码输入错误!"); elseJOptionPane.showMessageDialog(null,"此账号不存在!","错误",JOptionPane.ERROR_MESSAGE); } elseif(e.getSource()==btReset) { txId.setText(""); txPassword.setText(""); } else System.exit(0);//系统正常退出,如果参数是1,则为异常退出 }}/*一个简单的销售系统设计示例版本:Ver2.0作者:强余彬时间:2010.4.25*//*系统管理员图形界面类*/packageSalesSystem.qyb;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.JOptionPane;importSalesSystem.lhz.*;importSalesSystem.xc.*;publicclassManagerGUIextendsJFrameimplementsActionListener /**这里定义了一个图形用户界面主要按钮大类 */{//为了便于其它包继承访问把标签都设为了公有的 publicFontmyFont=newFont("宋体",Font.BOLD,20); publicJButtonbtnQuit=newJButton("退出"); publicJRadioButtonradResetData;publicJRadioButtonradAddData;publicJRadioButtonradDeleatData;publicJRadioButtonradPrintData;publicJRadioButtonradOrder;publicJRadioButtonradCancelOrder; publicJRadioButtonradConsultProduct; publicJRadioButtonradAddProduct; publicJRadioButtonradDeleteProduct; publicJRadioButtonradResetProduct; publicJRadioButtonradResetPassword;publicJLabellbltittle=newJLabel("系统管理员",JLabel.CENTER); publicButtonGroupradioGroup=newButtonGroup(); FrameListenerfListener=newFrameListener();//响应用户的退出操作 publicManagerGUI(Strings) { super(s); radResetData=newJRadioButton("1.修改客户资料",false); radAddData=newJRadioButton("2.添加客户资料",false); radDeleatData=newJRadioButton("3.删除客户资料",false); radPrintData=newJRadioButton("4.查询客户资料",false); radOrder=newJRadioButton("5.下单",false); radCancelOrder=newJRadioButton("6.取消下单",false); radConsultProduct=newJRadioButton("7.查询产品",false); radAddProduct=newJRadioButton("8.添加产品",false); radDeleteProduct=newJRadioButton("9.删除产品",false); radResetProduct=newJRadioButton("10.修改产品",false); radResetPassword=newJRadioButton("11.修改密码",false); Containerc=getContentPane(); c.setLayout(null);lbltittle.setFont(myFont);c.add(lbltittle); c.add(btnQuit); c.add(radResetData); c.add(radAddData); c.add(radDeleatData); c.add(radPrintData); c.add(radOrder); c.add(radCancelOrder); c.add(radConsultProduct); c.add(radAddProduct); c.add(radDeleteProduct); c.add(radResetProduct); c.add(radResetPassword); radioGroup.add(radResetData); radioGroup.add(radAddData); radioGroup.add(radDeleatData); radioGroup.add(radPrintData); radioGroup.add(radOrder); radioGroup.add(radCancelOrder); radioGroup.add(radConsultProduct); radioGroup.add(radAddProduct); radioGroup.add(radDeleteProduct); radioGroup.add(radResetProduct); radioGroup.add(radResetPassword); radResetData.addActionListener(this); radAddData.addActionListener(this); radDeleatData.addActionListener(this); radPrintData.addActionListener(this); radOrder.addActionListener(this); radCancelOrder.addActionListener(this); radConsultProduct.addActionListener(this); radAddProduct.addActionListener(this); radDeleteProduct.addActionListener(this); radResetProduct.addActionListener(this); radResetPassword.addActionListener(this); this.addWindowListener(fListener);//关闭系统监听器 //给各个界面元素定位 radResetData.setBounds(50,50,200,40); radAddData.setBounds(50,100,200,40); radDeleatData.setBounds(50,150,200,40); radPrintData.setBounds(50,200,200,40); radOrder.setBounds(50,250,200,40); radCancelOrder.setBounds(300,50,200,40); radConsultProduct.setBounds(300,100,200,40); radAddProduct.setBounds(300,150,200,40); radDeleteProduct.setBounds(300,200,200,40); radResetProduct.setBounds(300,250,200,40);radResetPassword.setBounds(300,300,200,40); lbltittle.setBounds(130,10,200,40); btnQuit.setBounds(200,350,100,40);btnQuit.addActionListener(this); setSize(500,500); setVisible(true); setResizable(false); setBounds(300,160,500,500); } publicvoidactionPerformed(ActionEvente) { if(e.getActionCommand().equals("1.修改客户资料")) { newReviseClientGUI("修改客户资料"); } elseif(e.getActionCommand().equals("2.添加客户资料")) { newAddClientGUI(); //a.setTitle("添加客户ahahahah"); } elseif(e.getActionCommand().equals("3.删除客户资料")) { newDeleteClient(); } elseif(e.getActionCommand().equals("4.查询客户资料")) { newInquiryClientGUI(); } elseif(e.getActionCommand().equals("5.下单")) { newDeliverGUI(); } elseif(e.getActionCommand().equals("6.取消下单")) { JOptionPane.showMessageDialog(null,"取消下单!"); } elseif(e.getActionCommand().equals("7.查询产品")) { newInquiryGoodsGUI(); } elseif(e.getActionCommand().equals("8.添加产品")) { newAddGoods("添加产品"); } elseif(e.getActionCommand().equals("9.删除产品")) { newDeleteGoods(); } elseif(e.getActionCommand().equals("10.修改产品")) { newReviseGoodsGUI(); } elseif(e.getActionCommand().equals("11.修改密码")) { newChangePsd(); } if(e.getActionCommand()=="退出") { dispose(); System.exit(0); } }}/*一个简单的销售系统设计示例版本:Ver2.0作者:李宏志时间:2010.4.25*//*销售系统销售人员图形界面类*/packageSalesSystem.lhz;importjava.awt.event.*;importjavax.swing.JOptionPane;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassSalesmanGUIextendsManagerGUI//继承了系统管理员的界面类大大简化了代码量优化了系统{ Useru; publicSalesmanGUI(Strings,Usertmp) { super(s); u=tmp; radResetData.setText("1.修改客户资料"); radAddData.setText("2.添加客户资料"); radOrder.setText("3.下单"); radCancelOrder.setText("4.取消下单"); radConsultProduct.setText("5.查询产品"); radResetPassword.setText("6.修改密码"); radResetData.setBounds(50,50,130,40); radAddData.setBounds(50,100,130,40); radOrder.setBounds(50,150,130,40); radCancelOrder.setBounds(180,50,130,40); radConsultProduct.setBounds(180,100,130,40); radResetPassword.setBounds(180,150,130,40); btnQuit.setBounds(130,200,70,40); lbltittle.setBounds(70,10,200,40); radDeleatData.removeActionListener(this); radPrintData.removeActionListener(this); radAddProduct.removeActionListener(this); radDeleteProduct.removeActionListener(this); radResetProduct.removeActionListener(this); lbltittle.setText("销售人员"); radPrintData.setVisible(false); radDeleatData.setVisible(false); radDeleteProduct.setVisible(false); radAddProduct.setVisible(false); radResetProduct.setVisible(false); setSize(350,300); setBounds(300,160,350,300); } publicvoidactionPerformed(ActionEvente) { if(e.getActionCommand().equals("1.修改客户资料")) newReviseClientGUI("修改客户资料"); elseif(e.getActionCommand().equals("2.添加客户资料")) newAddClientGUI(); elseif(e.getActionCommand().equals("3.下单")) newDeliverGUI(); elseif(e.getActionCommand().equals("4.取消下单")) JOptionPane.showMessageDialog(null,"取消下单!"); elseif(e.getActionCommand().equals("5.查询产品")) newInquiryGoodsGUI(); elseif(e.getActionCommand().equals("6.修改密码")) { try{ChangeSalesmanPsda=newChangeSalesmanPsd(u);} catch(NullPointerExceptionee){} } if(e.getActionCommand()=="退出") dispose(); }}/*一个简单的销售系统设计示例版本:Ver2.0作者:李宏志时间:2010.5.2*//*销售系统添加客户图形界面类*/packageSalesSystem.lhz;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassAddClientGUIextendsAddGoods//继承与AddGoods因为AddGoods与其界面比较相似{ Searchsearch=newSearch(); publicAddClientGUI() { super("添加客户"); lbID.setText("客户姓名"); lbGender.setText("客户性别"); lbTitle1.setText("添加客户"); lbGoodsamount1.setVisible(false); txtGoodsamount1.setVisible(false); btnOK.setBounds(30,130,80,40); btnQuit.setBounds(110,130,80,40); btnReset.setBounds(190,130,80,40); setSize(300,230); setBounds(300,160,300,230); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==btnQuit) dispose(); elseif(e.getSource()==btnOK) { Stringtmpname=txtGoodsname1.getText(); if(Search.isEmpty(tmpname))//是否输入文字 { try{ search.searchClient(tmpname); if(search.findClient!=null) {JOptionPane.showMessageDialog(null,"此客户已存在");} else { Init.init.client[Client.lth++]=newClient(tmpname,txtGoodsprice1.getText()); JOptionPane.showMessageDialog(null,"添加客户资料成功"); this.setVisible(false); } } catch(NullPointerExceptionee){} } } else { txtID.setText(""); txtGender.setText(""); } }}/*一个简单的销售系统设计示例版本:Ver2.0作者:李宏志时间:2010.5.2*//*销售系统添加产品图形界面类*/packageSalesSystem.lhz;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjavax.swing.JOptionPane;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassAddGoodsextendsReviseClientGUI//界面继承了ReviseClientGUI添加了异常处理若未输入弹出错误对话框{ publicJTextFieldtxtGoodsname1;//引用 publicJTextFieldtxtGoodsprice1; publicJTextFieldtxtGoodsamount1; publicJLabellbGoodsname1; publicJLabellbGoodsprice1; publicJLabellbGoodsamount1; SearchsGoods; publicAddGoods(Strings) { super(s); sGoods=newSearch(); txtGoodsname1=txtID; txtGoodsprice1=txtGender; txtGoodsamount1=txtGoodsname; lbGoodsname1=lbID; lbGoodsprice1=lbGender; lbGoodsamount1=lbGoodsname; lbTitle1.setText("添加产品"); lbGoodsname1.setText("产品名称"); lbGoodsprice1.setText("产品价格"); lbGoodsamount1.setText("产品总量"); btnOK.setBounds(30,170,80,40); btnQuit.setBounds(110,170,80,40); btnReset.setBounds(190,170,80,40); lbTitle1.setBounds(100,0,150,40); lbGoodsname1.setBounds(50,50,100,30); txtGoodsname1.setBounds(130,50,100,30); lbGoodsprice1.setBounds(50,90,100,30); txtGoodsprice1.setBounds(130,90,100,30); lbGoodsamount1.setBounds(50,130,100,30); txtGoodsamount1.setBounds(130,130,100,30); setSize(300,270); setBounds(300,160,300,270); lbGoodsprice.setVisible(false); txtGoodsprice.setVisible(false); lbGoodsamount.setVisible(false); txtGoodsamount.setVisible(false); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==btnQuit) dispose(); elseif(e.getSource()==btnOK) { Stringtmpname=txtGoodsname1.getText(); if(sGoods.isEmpty(tmpname)) { try{ sGoods.searchGoods(tmpname); if(sGoods.findGoods!=null) {JOptionPane.showMessageDialog(null,"此商品已存在");} else { try{ Init.init.goods[Goods.lth++]=newGoods(tmpname,Integer.parseInt(txtGoodsprice1.getText()),Integer.parseInt(txtGoodsamount1.getText()),Integer.parseInt(txtGoodsamount1.getText())); JOptionPane.showMessageDialog(null,"添加产品成功"); this.setVisible(false);} catch(NumberFormatExceptionee){JOptionPane.showMessageDialog(null,"请在价格、数量一栏输入数字字符","警告",JOptionPane.WARNING_MESSAGE);} } } catch(NullPointerExceptioneee){} } } else { txtGoodsname1.setText(""); txtGoodsprice1.setText(""); txtGoodsamount1.setText(""); } }}/*一个简单的销售系统设计示例版本:Ver2.0作者:强余彬时间:2010.5.1*//*销售系统系统管理员修改密码图形界面类*/packageSalesSystem.qyb;importjavax.swing.*;importjava.awt.event.*;importSalesSystem.lhz.*;importSalesSystem.xc.*;publicclassChangePsdextendsReviseClientGUI{ JLabellbTitle2; JLabellbPWD; JLabellbManagerPWD; JLabellbPWDAgain; JLabellbSalesmanID; JLabellbSalesmanPWD; JTextFieldtxtPWD;//原始密码 JPasswordFieldtxtManagerPWD; JPasswordFieldtxtPWDAgain; JTextFieldtxtSalesmanID; JPasswordFieldtxtSalesmanPWD; publicChangePsd() { super("修改密码"); lbPWD=lbID; lbManagerPWD=lbGender; lbPWDAgain=lbGoodsname; lbSalesmanID=lbGoodsprice; lbSalesmanPWD=lbGoodsamou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成鸭肫行业深度研究报告
- 2025年工程机械外盖制品项目可行性研究报告
- 聚乙烯燃气管行业深度研究报告
- 2025年中国举重鞋行业市场全景评估及发展战略研究报告
- 2024-2030年中国共享住宿行业发展潜力预测及投资战略研究报告
- 2025关于签劳动合同工资改变问题
- 2024-2030年中国青海省在线旅游行业市场调查研究及投资前景展望报告
- 2023-2029年中国抗凝血药行业市场发展现状及投资规划建议报告
- 2025年注塑塑胶制品项目可行性研究报告
- 2025年中国白坚木皮醇行业发展前景预测及投资规划建议报告
- 2024初中数学竞赛真题训练(学生版+解析版)(共6个)
- 江苏省南通市崇川区2023-2024学年八上期末数学试题(原卷版)
- 河南省郑州市2023-2024学年高二上学期期末考试历史试题(解析版)
- 辽宁省沈阳市沈河区2024-2025学年九年级上学期期末道德与法治试题(含答案)
- 江西省赣州市南康区2023-2024学年八年级上学期期末考试数学试卷(含答案)
- 《制造业成本核算》课件
- 【MOOC】数学建模与创新实践-西安科技大学 中国大学慕课MOOC答案
- 天冬化学成分
- 2024项目经理讲安全课
- 中国共产主义青年团团章
- 采购原材料年终总结
评论
0/150
提交评论