ImageVerifierCode 换一换
格式:DOCX , 页数:69 ,大小:1.37MB ,
资源ID:8937557      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8937557.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(面向对象程序设计 商品销售系统 Java深入面向对象编程.docx)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

面向对象程序设计 商品销售系统 Java深入面向对象编程.docx

1、 淮海工学院计算机工程学院 实验报告书 课程名:《面向对象程序设计》 实验名称: Java深入面向对象编程 商品销售系统 班 级: ^ ^ 组 长: 组 员: ^ ^ 评语: 成绩: 指导教师: 批阅时间: 年

2、月 日 一.实验目的 1.   掌握Java面向对象编程的初步知识,理解类的定义和使用,会正确运用Java的非访问控制符和访问控制符来实现面向对象的编程思想;掌握Java类的修饰符、访问控制符的使用; 2.   培养团队合作精神和沟通能力。 二.实验题目      以与大学生学习、生活、娱乐相关的信息服务为例,各团队自选题目,用面向对象的方法进行需求分析,划分功能模块,每位成员负责其中某些模块的设计与实现。   首先练习类的定义和使用,包括类、属性和方法的各种修饰符的使用、方法与构造函数的定义与使用,练习修饰符的使用。  三.要求 1.

3、  采用Application图形界面显示,请注意用户界面的友好性; 2.  源程序中必需对程序功能、方法、属性等加适当的注释; 3.  每个人一个包(即用英文命名的文件夹),所有类的命名都要用设计者姓名拼音缩写加若干能表达功能意义的字符组成; 4.  每组有一个组长,组长除完成本身任务外,还要负责设计作为程序入口的主类、系统总的说明文档;每位成员负责编写自己每次的说明文档; 5.  作业由组长以团队形式提交到教学平台上,压缩包名为三个成员汉语名字合成,第一个为组长。 6. 提交时间: 四、实验步骤与源程序 1. 选题与团队分工 u 选题: 商品销售系统 u 分工: 角

4、色 姓名 承担的具体任务 组长 强余彬 程序的主入口、客户类、修改产品、修改客户、下单及一些界面类 组员 李宏志 产品类、销添加删除客户、产品的类 组员 谢超 初始化数据类、、查询客户、产品类、用户类 2. 系统需求分析 u 系统功能描述 商品销售系统 系统管理员:添加客户资料、删除客户资料、修改客户资料、查询客户资料、添加商品、删除商品、修改商品、查询商品、下单、取消下单、修改密码(包括销售人员) 销售人员:添加客户资料、修改客户资料、查询客户资料、修改商品、下单、取消下单、修改密码 u 系统用例图 3. 系统类图设计 系统类图 (

5、强余彬) 搜查实体类 异常类 (李宏志) (谢超) 4. 源程序 五、测试数据与实验结果 登陆界面 输入错误 系统管理员主界面 修改客户(失败) 修改客户(成功) 下单 下单失败 添加产品 删除产品 修改产品 修改密码(输入密码错误) 未输入修改密码 输入密码不一致 修改成功 修改销售人员密码(账号错误)

6、 修改销售人员密码成功 李宏志: 谢超 六、结果分析与实验体会 (强余彬)本次实验对系统的功能没有做修改,主要是优化了系统的结构。首先是本次实验大量运用了继承,尤其是界面,大多数的界面继承的是ReviseClientGUI这个界面,重复利用了界面上的布局以及标签,大大简化了工作量以及代码的长度,有些界面是继承的一些相似的界面,例如删除客户继承了删除产品的界面,而删除产品又是继承于修改客户这个界面。其次,本次实验添加了一个自定义异常类,当创建新用户的时候密码低于三

7、位数会自动派出此异常。本次试验还添加了一个Search类,里面有一些常用函数,例如查找客户、查找产品、比较字符串、删除客户等方法,在其他界面中要用可以调用此嘞的一些方法,实现了类的封装。此外,本次实验还将以前在输入一些非法数据会产生的异常给补上了,例如有NullPointerException、NumberFormatException等等。有一些界面只需要 接收一个用户输入的数据,所以就是用了JOPtionPane类中的showInputDialog函数用来接收数据,大大简化了代码量,优化了系统性能。本次实验画了整体系统的类图之间的关系,大大加深了我对此系统的了解,形成了一个严密的框架,对于

8、今后的学习会有很大的帮助。 老师的代码对于我们的学习是有很大的帮助的,学习是一件长期的事,实践着“痛并快乐着……”的感觉是非常好的,我会继续坚持下去的。 (李宏志)本次实验主要运用了属性以及函数的继承,隐藏,重载等操作。通过遮羞方法的运用,能够明显简化代码的复杂度,尤其是继承的运用,通过继承其他属性函数的操作,从而简化程序的复杂度,此外还需要运用文本域的隐藏操作,对于新的操作需要重新定义标签和文本域,另外在继承操作时需要注意继承的对象公共和私有,来避免错误。在编程时会出现一些异常,对于异常的处理,可以通过public void p(int x){ try{ } catch(E

9、xception e){ } finally{ } }语句来捕获异常,如果在try语句中出现异常,则会被抛出。对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。本次实验还练习了通过visio软件画系统类图和用例图,包括实体类、界面类,特性与操作的参数的输入,顶层包的加载等等。 (谢超)第三次试验是在第二次的基础上的拓展,在这次试验中我完成了我所有的包中的文件的测试,以及完成了相应的文件的类图的画图。在类图的画画过程中还是有一些不懂得地方,对于系统中的集体的操作和特性有的区分的不是很清楚,在画类图的时候参考了老师的类图的画法,还有同学的帮助。这次

10、试验掌握了类图的画法,和对继承的一些了解。 源代码 /* 一个简单的校园卡系统设计示例 版本:Ver 2.0 作者:强余彬 时间:2010.5.1 */ /*对用户商品进行查找操作的业务类*/ package SalesSystem.qyb; // 定义系统所属包名 import SalesSystem.xc.*; //引入实体类所在包 import SalesSystem.lhz.*; import java.util.*; import javax.swing.JOptionPane;

11、 public class Search //定义一个业务类,实现查找操作 { //Client client; public int clientflag; public int goodsflag; public Client findClient; public Goods findGoods; public Search() { clientflag=0; goodsflag=0; } public Client searchClient(String name) { for(int i=0;i

12、th;i++) { try{if(Init.init.client[i].getId().equals(name)) findClient= Init.init.client[i]; clientflag=1; } catch(NullPointerException ee){} } if(clientflag==0)findClient= null; return findClient; } public Goods searchGoods(String tmp) { for(int i=

13、0;i

14、 { int flag=0; for(int i=0;i

15、alog(null,"删除成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此顾客,无法删除","警告",JOptionPane.WARNING_MESSAGE); JOptionPane.showInputDialog(null ,"输入客户的名字","删除客户",JOptionPane.PLAIN_MESSAGE); } } public void deleteGoods(String

16、tmp) { int flag=0; for(int i=0;i

17、[j]=null; Goods.lth--; JOptionPane.showMessageDialog(null,"删除商品成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此商品,无法删除"); tmp=JOptionPane.showInputDialog(null

18、"输入产品的名字","删除产品",JOptionPane.PLAIN_MESSAGE); } } public static boolean isEmpty(String tmp) { try{ if(tmp.length()==0) { JOptionPane.showMessageDialog(null,"您未输入任何字符","错误",JOptionPane.ERROR_MESSAGE); return false; } else return true; }catch(NullP

19、ointerException ee){} return false; } } /* 一个简单的销售系统设计示例 版本:Ver 2.0 作者:强余彬 时间:2010.4.25 */ /* 销售系统客户实体类 */ package SalesSystem.qyb; import SalesSystem.xc.*; public class Client extends User //继承了user实体类 { private String Gender; public String Goods[]=new String[15];

20、//购买的商品名称 public int Price[]=new int[15];//相应的价格 public int Amount[]=new int[15];//买的数量 private int goodslth; static { lth=0; } public Client(String id) { super(id); Id=id; Gender="男"; UserType="客户"; lth++; goodslth=0; } public Client(String id, String s

21、ex) //构造用户1,默认身份为销售人员 { super(); Id=id; Gender=sex; UserType="客户"; lth++; goodslth=0; } public int getGoodslth() { return goodslth; } public void alterGoodslth(int tmp) { goodslth=tmp; } public String getGender() { return Gender; } pub

22、lic void alterGender(String sex) { Gender=sex; } public void buyGoods(String goods,int price,int amount) { Goods[goodslth]=goods; Price[goodslth]=price; Amount[goodslth]=amount; goodslth++; } public String printGoods() { String tmp="产品:"; for(int i=0;i

23、odslth();i++) { tmp+=Goods[i]+"、"; } return tmp; } public String printAmount() { String tmp="数量:"; for(int i=0;i

24、 */ /* 销售系统产品实体类 */ package SalesSystem.lhz; import SalesSystem.qyb.*; import SalesSystem.xc.*; public class Goods { private String Name; private int Price; private int TotalAmount; private int Left; public static int lth; static { lth=0; } public Goods(String nam

25、e,int price,int total,int left) { Name=name; Price=price; TotalAmount=total; Left=left; lth++; } public Goods(String name,int price,int total)//初始化余量等于总量 { Name=name; Price=price; TotalAmount=total; Left=total; lth++; } public String getName() {

26、 return Name; } public void alterName(String tmp) { Name=tmp; } public int getPrice() { return Price; } public void alterPrice(int tmp) { Price=tmp; } public int getTotalAmount() { return TotalAmount; } public void alterTotalAmount(int tmp) {

27、TotalAmount=tmp; } public int getLeft() { return Left; } public void alterLeft(int tmp) { Left=tmp; } public String tostring() { String s; s="商品名:"+getName()+"\t价格:"+getPrice()+"\t总量:"+getTotalAmount()+"\t余量:"+getLeft(); return s; } } /* 一个简单的销售系统设计示例

28、 版本:Ver 1.0 作者:谢超 时间:2010.4.7 */ /* 销售系统初始化客户、商品信息类 */ package SalesSystem.xc; import SalesSystem.lhz.*; import SalesSystem.qyb.*; public class Init { public User user1; public User user2;public User user4; public User user3; public Client client[]=new Client[20];

29、 public Goods goods[]=new Goods[20]; public static Init init=new Init(); public Init() { try{ user1=new User("强余彬","0000","系统管理员"); user2=new User("谢超","0000","销售人员"); user3=new User("李宏志","0000","销售人员"); } catch(UnexpectedCreat ee){System.out.println(ee.toStrin

30、g());} client[0]=new Client("张三","男"); client[0].buyGoods("铅笔",1,50); client[0].buyGoods("文具盒",10,2); client[1]=new Client("李四","男"); client[1].buyGoods("铅笔",1,10); client[1].buyGoods("本子",2,3); client[2]=new Client("王五","男"); client[2].buyGoods("钢

31、笔",9,8); client[2].buyGoods("文具盒",10,3); client[3]=new Client("小红","女"); client[3].buyGoods("钢笔",9,8); client[3].buyGoods("文具盒",10,3); client[4]=new Client("小明","男"); client[4].buyGoods("本子",2,10); client[4].buyGoods("铅笔",1,20); client[4].buyGoods("钢笔",9,2);

32、 goods[0]=new Goods("铅笔",1,1000,800); goods[1]=new Goods("钢笔",9,300,280); goods[2]=new Goods("本子",2,600,590); goods[3]=new Goods("文具盒",10,200,195); goods[4]=new Goods("橡皮",1,200,200); } } /* 一个简单的销售系统设计示例 版本:Ver 2.0 作者:强余彬 时间:2010.5.1 */ /* 系统管理员图形界面类 */

33、 //自定义异常类,当创建新用户密码过短时产生 package SalesSystem.qyb; import SalesSystem.xc.*; public class UnexpectedCreat extends Exception { private User user; //产生当前错误的User对象的引用 private String IllegalPsd; //产生当前错误的非法的密码 public UnexpectedCreat(User tmp,String psd) //构造函数 { super("不合法的

34、初始充值数额");//调用父类Exception的构造函数 user=tmp; //初始化两个属性 IllegalPsd=psd; } public String toString() //重载父类的方法,给出详细的错误信息 { String s; s="创建用户时出错:"+user.getId() +" 该、用户的密码" +IllegalPsd +"不合规定"; return s; }

35、} /* 一个简单的销售系统设计示例 版本:Ver 2.0 作者:谢超 时间:2010.5.1 */ /* 销售系统用户实体类 */ package SalesSystem.xc; import SalesSystem.lhz.*; import SalesSystem.qyb.*; import javax.swing.*; public class User { public static int lth;//存的个数 protected String Id; private String Password; protecte

36、d String UserType;//用户类型 管理员、普通用户 static { lth=0; } public User() { } public User(String id)//构造用户,默认身份为销售人员,默认密码为0000 { Id=id; Password="0000"; UserType="销售人员"; lth++; } public User(String id, String psd)throws UnexpectedCreat//构造用户,默认身份为销售人员 {

37、 //根据用户名和密码,声明了抛出异常 this(id); if(psd.length()<4) throw (new UnexpectedCreat(this,psd)); Password=psd; UserType="销售人员"; lth++; } public User(String id,String psd,String type) throws UnexpectedCreat//构造用户 { this(id,psd); //Id=id; //Password=psd

38、 UserType=type; lth++; } public String getId() { return Id; } public void alterId(String id) { Id=id; } public String getPassword() { return Password; } public boolean alterPassword(String tmp)//密码新添了判断是否为空和限定密码长度不能太短的功能 { if(tmp.length()==0)

39、{ JOptionPane.showMessageDialog(null,"您未输入任何字符","错误",JOptionPane.ERROR_MESSAGE); return false; } else if(tmp.length()<=3) { JOptionPane.showMessageDialog(null,"您输入的密码过短","警告",JOptionPane.WARNING_MESSAGE); return false; } else { Password=tmp; JOptionPane.showMe

40、ssageDialog(null,"成功修改密码!"); return true; } } public String getUserType() { return UserType; } public void alterUserType(String tmp) { UserType=tmp; } public boolean userTypeJudge(String name,String pwd,String type) { if(Id.equals(name) && Passwor

41、d.equals(pwd) && UserType.equals(type)) return true; else return false; } public boolean userPsdJudge(String tmp,String pwd) { if(tmp.equals(pwd)) return true; else return false; }

42、 public String tostring() { String s; s="用户名:"+getId()+" 密码:"+getPassword()+" 用户类型:"+getUserType(); return s; } } /* 一个简单的销售系统设计示例 版本:Ver 1.0 作者:强余彬 时间:2010.4.7 */ /* 销售系统主入口类 */ package SalesSystem; import java.io.*; import SalesSystem.xc.*; public class Main {

43、 public static void main (String args[]) { 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].tostri

44、ng()); System.out.println(Init.init.goods[2].tostring()); System.out.println(Init.init.goods[3].tostring()); System.out.println(Init.init.goods[4].tostring()); new GUI(); //构造一个新窗体对 } } /* 一个简单的销售系统设计示例 版本:Ver 1.0 作者:强余彬 时间:2010.4.7 */ /* 销售系统主登陆窗口图形界面类 */ packa

45、ge SalesSystem; import java.awt.*; import java.awt.event.*; import javax.swing.*; import SalesSystem.lhz.*; import SalesSystem.xc.*; import SalesSystem.qyb.*; public class GUI extends Frame implements ActionListener,ItemListener { TextField txId; //一定一个宽度为10个字符的文本框,用于答案输入 TextFiel

46、d txPassword; Label lbTitle; Label lbId; Label lbPassword; Button btOk; Button btCancel; Button btReset; Label type; Choice typeChoice; Font myFont; String chtype; public User u; GUI() //构造函数,用来初始化 { super("主登陆界面"); //调用父类构造函数 btOk=new Button(

47、"确定"); btCancel=new Button("退出"); btReset=new Button("重置"); chtype="销售人员"; typeChoice=new Choice(); type=new Label("身份:"); lbTitle=new Label("商品销售系统 "); lbTitle.setFont(myFont); lbId=new Label("用户账号 "); txId=new TextField(10); lbPassword=new Label("用户密码 "); txPasswo

48、rd=new TextField(10); txPassword.setEchoChar('*'); myFont=new Font("黑体",Font.BOLD,20); //定义字体为黑体、加粗、字号18 GridBagLayout gbl=new GridBagLayout(); GridBagConstraints gbc=new GridBagConstraints(); setLayout(gbl ); // 设置标题控件的位置 gbc.anchor=GridBagConstraints.NORTH;

49、 //让标题顶部居中 gbc.gridwidth=GridBagConstraints.REMAINDER; //让标题成为所在行最后(也是唯一)一个组件 add(lbTitle,gbc); //设置姓名控件的位置 gbc.anchor=GridBagConstraints.WEST; //让ID标签位于左侧 gbc.gridwidth=1; //占一个单元格 add(lbId,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER; //让ID输入框成为所在行最后一个

50、组件 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("系统管理员"); gb

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服