人员分工
任务 | 姓名 |
---|---|
前期调查与功能设计;Commodity、ShoppingCart、ShoppingMall;撰写报告 | 组长:lrui1 |
配置开发环境;idea与eclipse的兼容;Menu、Main; | 组员:梦尘 |
前期调查
顾客在商城(ShoppingMall)中浏览商品(Commidity),选中商品加入购物车(ShoppingCart),最后购物车结算,结束一次购物
系统功能结构图。
系统描述:一段用来描述系统功能与流程的文字,用红色字代表可能的对象(名词)或属性,用蓝色字代表可能的方法(动词)。
使用购物车的购物流程:顾客在商城中浏览商品,看到喜爱的商品后将商品加入购物车;顾客可以随时查看购物车内的商品情况和数量,随时增加或减少商品。最后在购物车确认无误后结算,完成一次购买。
类设计说明:类概述(有什么用)、类的属性与方法、类与类之间的关系。UML
类的大致说明
- Commodity 存放商品基本信息;查看或修改商品的属性等;public
- Main main方法,测试购物车的基本功能,public
- Menu showMenu()方法,展示菜单,public
- ShoppingCart 购物车,存放商品列表;增删改查等基本功能;public
- ShoppingMall 商城,存放所有的商品;增删改查等基本功能;public
UML
本系统哪里体现了面向对象的封装性?
1、在ShoppingCart
类,外部的类可以通过其提供的功能,来完成商品放入购物车等操作。外部的类是不能直接访问到ShoppingCart
类的items
。此举体现了封装性。
2、隐藏购物车和商城实现的细节,可以让Main测试类调用时用简洁明了的代码来实现许多复杂的功能
3、封装使得:购物车,商城,商品成为一个真正能够复用的对象
4、保护了购物车,商城,商品的实现细节,使得这三个类在整体的代码框架的功能是一致的
项目包结构(package的划分)与关键代码:项目的包结构(为什么要这样设计包结构),主要功能的关键代码。
1、商品,商城,购物车 功能比较简单,放在同一个包可以加快开发效率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohEf743U-1664289605521)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220927223138210.png)]
2、关键代码
(1)购物车新增商品
public class ShoppingCart {
private ArrayList<ArrayList<Commodity>> items = new ArrayList<>();//存放商品的容器
public void add(Commodity item) {
// 遍历
for(ArrayList<Commodity> k : items) {
if(k.get(0).equals(item)) {
k.add(item); // 旧商品
return;
}
}
// 新商品
ArrayList<Commodity> newItem = new ArrayList<>();
newItem.add(item);
items.add(newItem);
}
···
}
(2)1.0 菜单
public class Menu {
public static void showMenu(int menu) {
System.out.println("==================================================================");
System.out.println("请您选择如下命令进行操作:");
System.out.println("1.商城功能列表");
System.out.println("2.购物车功能列表");
System.out.println("==================================================================");
if(menu==1){ System.out.println("==================================================================");
System.out.println("1.打开商城 openmall");
System.out.println("2.加入商品到商城 addmall");
System.out.println("3.从商城删除商品 delmall");
System.out.println("4.查找商城商品 findmall");
System.out.println("5.显示商城商品列表 mallmenu");
System.out.println("6.结束程序 end");
System.out.println("==================================================================");
}
if(menu==2){
System.out.println("==================================================================");
System.out.println("1.添加商品到购物车 add");
System.out.println("2.查看购物车商品 query");
System.out.println("3.修改商品的数量 amend");
System.out.println("4.删除相应的商品 delete");
System.out.println("5.结算购物车商品金额 pay");
System.out.println("6.结束程序 end");
System.out.println("==================================================================");
}
}
}