淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计》实验名称:Java深入面向对象编程商品销售系统班级:^^组长:组员:^^评语:成绩:指导教师:批阅时间:年月日《面向对象程序设计》实验报告-1-一.实验目的1.掌握Java面向对象编程的初步知识,理解类的定义和使用,会正确运用Java的非访问控制符和访问控制符来实现面向对象的编程思想;掌握Java类的修饰符、访问控制符的使用;2.培养团队合作精神和沟通能力。二.实验题目以与大学生学习、生活、娱乐相关的信息服务为例,各团队自选题目,用面向对象的方法进行需求分析,划分功能模块,每位成员负责其中某些模块的设计与实现。首先练习类的定义和使用,包括类、属性和方法的各种修饰符的使用、方法与构造函数的定义与使用,练习修饰符的使用。三.要求1.采用Application图形界面显示,请注意用户界面的友好性;2.源程序中必需对程序功能、方法、属性等加适当的注释;3.每个人一个包(即用英文命名的文件夹),所有类的命名都要用设计者姓名拼音缩写加若干能表达功能意义的字符组成;4.每组有一个组长,组长除完成本身任务外,还要负责设计作为程序入口的主类、系统总的说明文档;每位成员负责编写自己每次的说明文档;5.作业由组长以团队形式提交到教学平台上,压缩包名为三个成员汉语名字合成,第一个为组长。6.提交时间:四、实验步骤与源程序1.选题与团队分工选题:商品销售系统分工:角色姓名承担的具体任务组长强余彬程序的主入口、客户类、修改产品、修改客户、下单及一些界面类组员李宏志产品类、销添加删除客户、产品的类组员谢超初始化数据类、、查询客户、产品类、用户类《面向对象程序设计》实验报告-2-2.系统需求分析系统功能描述商品销售系统系统管理员:添加客户资料、删除客户资料、修改客户资料、查询客户资料、添加商品、删除商品、修改商品、查询商品、下单、取消下单、修改密码(包括销售人员)销售人员:添加客户资料、修改客户资料、查询客户资料、修改商品、下单、取消下单、修改密码系统用例图《面向对象程序设计》实验报告-3-系统管理员统计销售情况查询客户资料修改客户资料删除客户资料下单取消下单查询产品添加产品修改密码删除产品修改产品销售人员SalesSystem添加客户资料《面向对象程序设计》实验报告-4-3.系统类图设计系统类图AddClientGUIChangePsdChangeSalesmanPsdClientDeleteClientDeleteGoodsDeliverGUIFrameListenerGoodsGUIInitInquiryClientGUIInquiryGoodsGUIMainManagerGUIReviseClientGUIReviseGoodsGUISalesmanGUIUserSearchUnexceptedCreateJFrameextendsWindowAdapterextendsFrameextendsextendsextends+actionPerformed(ine):voidinterfaceActionListener+itemStateChanged(ine):voidinterfaceItemListenerinterfaceExceptionextendsAddGoodsextendsextendsextendsextendsextendsextendsextendsextendsextends(强余彬)+Client(inid:string)+Client(inid:string,insex:string)+buyGoods(ingoods:string,inprice:int,inamount:int):void+alterGoodslth(intmp:int):void+alterGender(ingender:string):void+getGoodslth():int+getGender():string+printGoods():string+printAmount():string-Gender:string-Goods[]:string-Price[]:int-Amount[]:int-goodslth:intqyb::Client搜查实体类《面向对象程序设计》实验报告-5-+Search()+searchClient(intmp:string):Client+searchGoods(intmp:string):Goods+deleteClient(intmp:string):void+deleteGoods(intmp:string):void+isEmpty(intmp:string):bool+clientflag:int+goodsflag:int+findClient:Client+findGoods:Goodsqyb::Search异常类+UnexpectedCreat(intmp:User,inpsd:string)+toString():string+user:User+IllegalPsd:stringqyb::UnexpectedCreat+ChangePsd()+actionPerformed(ine:object):void+judge(intmp:string,inpsd:string):bool-user:Userqyb::ChangePsd《面向对象程序设计》实验报告-6-+GUI()+actionPerformed(ine:object):void+itemStateChanged(ine:object):void-u:Userqyb::GUI+ManagerGUI(ins:string)+actionPerformed(ine:object):void-u:User-fListener:FrameListenerqyb::ManagerGUI+ReviseClientGUI(ins:string)+eactionPerformed(ine:object):void-client:Clientqyb::ReviseClientGUI+ReviseGoodsGUI()+eactionPerformed(ine:object):void-client:Client-search:Searchqyb::ReviseGoodsGUI+DeliverGUI()+actionPerformed(ine:object):void-client:Clientqyb::DeliverGUI(李宏志)+Goods(inname:string,inprice:int,intotal:int,inleft:int)+Goods(inname:string,inprice:int,intotal:int)+getName():string+alterName(intmp:string):string+getPrice():int+alterPrice(intmp:int):void+getTotalAmount():int+alterTotalAmount(intmp:int):void+getLeft():int+alterLeft(intmp:int):void-Name:string-Price:int-TotalAmount:int-Left:int+lth:intlhz::Goods《面向对象程序设计》实验报告-7-+AddGoods()+actionPerformed():void-goods:string-Search:Searchlhz::AddGoods+actionPerformed():void+AddClientGUI()-salesmanGUI:AddClientGUI-client:string-search:Searchlhz::AddClientGUI+DeleteClient()+actionPerformed():void-tmpname:string-search:Searchlhz::DeleteClient+DeleteGoods()+actionPerformed():void-search:Goods-tmpname:stringlhz::DeleteGoods+ChangeSalesmanPsd()+actionPerformed():void+judge(inpsd:string,intmp:string):bool-u:Userlhz::ChangeSalesmanPsd+SalesmanGUI(ins:string,intmp)+actionPerformed():void-u:Userlhz::SalesmanGUI(谢超)《面向对象程序设计》实验报告-8-+user(inid:string)+user(inid,psd:string)+user(inid,psd,type:string)+getId():string+alterId(inid:string):void+getPassword():string+alterPassword(intmp:string):void+getusertype():string+alterusertype(intmp:string):void+usertypejudge(inSname,pwd,type:string):bool+userpsdjudge(inStrname,pwd:string):bool+tostring():string-lth:int-Id:string-Password:string-Usertype:stringxc::User+Init()-user1:User-user2:User-user3:User-client-goodsxc::Init+InquiryClientGUI()+actionPerformed(inActionEvente):void-init-clientxc::InquiryClientGUI+InquiryGoodsGUI()+actionPerformed(inActionEvente):void-init-goodsxc::InquiryGoodsGUI+windowClosing(inWindowEvente):voidxc::FrameListener4.源程序《面向对象程序设计》实验报告-9-五、测试数据与实验结果登陆界面输入错误《面向对象程序设计》实验报告-10-系统管理员主界面修改客户(失败)修改客户(成功)《面向对象程序设计》实验报告-11-下单下单失败添加产品《面向对象程序设计》实验报告-12-删除产品修改产品修改密码(输入密码错误)未输入修改密码《面向对象程序设计》实验报告-13-输入密码不一致修改成功修改销售人员密码(账号错误)修改销售人员密码成功《面向对象程序设计》实验报告-14-李宏志:《面向对象程序设计》实验报告-15-《面向对象程序设计》实验报告-16-《面向对象程序设计》实验报告-17-《面向对象程序设计》实验报告-18-《面向对象程序设计》实验报告-19-谢超《面向对象程序设计》实验报告-20-《面向对象程序设计》实验报告-21-六、结果分析与实验体会《面向对象程序设计》实验报告-22-(强余彬)本次实验对系统的功能没有做修改,主要是优化了系统的结构。首先是本次实验大量运用了继承,尤其是界面,大多数的界面继承的是ReviseClientGUI这个界面,重复利用了界面上的布局以及标签,大大简化了工作量以及代码的长度,有些界面是继承的一些相似的界面,例如删除客户继承了删除产品的界面,而删除产品又是继承于修改客户这个界面。其次,本次实验添加了一个自定义异常类,当创建新用户的时候密码低于三位数会自动派出此异常。本次试验