- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机作业-题目
题目:超级市场销售系统
需求:该系统有如下功能,系统中记录了每一种商品的编号、名称、单价等信息,收银员可通过该系统为顾客选购的商品计价、收费、打印清单。系统可支持会员制销售方式,对于会员,每次在超市中消费后,系统会根据其消费金额折算一定的积分并进行累加,会员进行消费时系统会按照其已有积分值再在所购商品的总金额的基础上进行一定优惠。销售商品事支持其他促销方式,如打折等。另外,超市管理人员可进行分析操作,如按照销售金额的高低顺序对销售清单进行查看,统计每天的销售总金额等。
分析过程:
首先发现对象 1)收银员(该对象模拟收银员这种活动者进行交互),可完成登陆,销售等行为;2)管理员(该对象模拟管理员这种活动者进行交互),可完成销售统计等行为;3)商品:这是系统中最明显的对象,每个对象实例表示一种商品,记录该商品的编号、名称、价格等信息;4)折扣商品:这是一类较特殊的商品,该类商品在制定的时间内按优惠价格销售,它有自己的特殊的属性。5)销售事件:顾客购买一组商品,只要是通过一次计价收款完成的,就称作一个销售事件,每个这样的事件都需要在系统中保存一段时间,以便管理人员进行分析或者进行账务管理等,而且由于该事件中涉及到较多的信息,所以单独设立一个“销售事件”对象来记录这些信息;6)销售事件列表:保存一系列的销售事件。7)顾客类:保存顾客的基本信息如顾客编号,姓名等信息,并模拟选购商品等行为。8)会员类:在一般顾客的基础上添加会员积分等特性,并享受一定得优惠。
2. UML 类层次图如下:
3. 详细类图如下:
在本系统中,大家首先分析出需要的各种类:要充分利用面向对象中的继承机制:继承是一种由已有的类创建新类的机制。利用继承,可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类自动拥有一般类的属性和行为,并根据需要可以增加新的属性和行为,或者改变父类的行为。
上图给出了7个类的具体声明。
4.注意事项:
1)DiscountedProduct类的实现主要注意在实现getPrice()方法时,要考虑好时间期限问题,来决定折扣商品的价格计算问题,当然要用到系统日期类,Calendar,通过这个类的getInstance()方法得到当前日期;
2)Employee类中的login方法中涉及到输入问题,输入收银员编号及密码,请用Scanner类,相对简单一些。
3)Operator类中有一个方法checkOut(),顾客结账方式,在进行实现的时候,具体算法流程如下:
首先要获得顾客所选购得商品信息列表,然后获得选购某种商品的数量,然后应该根据商品编号在商品信息列表中检索相应商品(目前还没有学习JDBC,暂不用数据库),然后获得价格,最后计算选购商品总价格。
5.商品列表类的实现:
为了便于收银员在结账时根据商品编号快速检索商品信息,我们需要设定一个“商品一览表”对象,它保持一个商品目录表,并提供对商品项的检索及增删等功能。为了提供这些功能,我们可以利用java.util包中的集合类HashMap作为商品列表类的父类,以便能够利用其功能。具体使用请大家参看帮助文档或上网查阅。下面给出此类的设计,请按照说明补充。
class ProductList extends HashMapString,Product{
public ProductList(){
此构造方法中生成若干个商品对象和折扣商品对象,注意折扣商品对象有时间期限。
}
}
6.商品选购信息类如下
class OrderInfo { //商品选购信息类
private String ID; //商品编号
private int num; //选购数量
public OrderInfo(String ID,int n){
//补充代码
}
public String getProductID(){ //获取商品编号
//补充代码
}
public int getNum(){ //获取该类商品的选购数量
//补充代码
}
}
7.销售事件列表类:
class sellEvents extends ArrayListsellEvent {//销售事件列表类
private static sellEvents events=null; //属性修饰能够保证销售事件列表的唯一性
private sellEvents(){
super();
}
//返回销售事件列表对象的唯一实例
public static sellEvents getInstance(){
if(events==null)
events=new sellEvents();
您可能关注的文档
最近下载
- 高级日语(三)第08課 携帯上司 8課内容理解1.ppt VIP
- 全麻术后导尿管相关膀胱刺激征的管理.pptx VIP
- 精选洗车场租赁协议2024年通用.docx VIP
- 国家中小学智慧教育平台的应用培训(OCR).pdf VIP
- 鲁宾逊漂流记:英汉对照版-英DanielDefoe.pdf VIP
- 伤口造口护理.pptx VIP
- UFDEV_PHASE_1_5_5_项目客户化开发推进计划.xls VIP
- 2024-2025学年高一数学必修一《第一章 集合与常用逻辑用语》测试卷附答案解析.pdf VIP
- 某电厂引风机拆除安装实施方案.doc VIP
- 口语交际--有趣的动物及口语交际《有趣的动物》教案.doc VIP
文档评论(0)