栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java大作业-第1次任务-面向对象设计(购物车)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java大作业-第1次任务-面向对象设计(购物车)

Java购物车大作业

目录笠
  • 0.人员分工
  • 1.前期调查
  • 2.系统功能结构图
  • 3.系统描述
  • 4.UML类图
  • 5.本系统哪里体现了面向对象的封装性。
  • 6.项目包结构与关键代码:项目的包结构(为什么要这样设计包结构),主要功能(如往购物车添加、删除商品)的流程图与关键代码。
      • 项目的包结构:
      • 1.往购物车添加商品
      • 2.往购物车删除商品
      • 3.结算订单:

  • 学会使用讲故事的方式找到系统中可能包含的类与属性
    进入京东界面,可以根据需要进行搜索商品,比如我想买螺蛳粉,通过搜索螺蛳粉关键词,就会出现了很多商品供我选择,点进去其中一个可以看到该商品的一些基本属性,比如价格商品编号等。假设我就想买这种螺蛳粉,就把它添加购物车,点击进入购物车,就可以看到商品的相关订单条目信息,我们还可以修改该商品的数量减少或者增加),对应的价格也会发生相应的变化,我们还可以进行清空购物车操作、全选购物车里所有的商品进行结算或者选择部分的商品进行结算。
0.人员分工
任务姓名
前期调查 、博客制作吴慧敏
面向对象设计、功能设计骆念念
1.前期调查
  1. 搜索商品:


  2. 加入购物车

  3. 操作购物车

  4. 展示所有的商品信息给用户,供用户选择(因为商品搜索还没解决,所以采用创建一些商品对象来供用户选择,用户只能在这些商品中选择要购买的)

2.系统功能结构图






3.系统描述

提供搜索引擎目前有点还没解决。索性我们就只创建一些商品对象,只有这些商品可供用户选择。
系统打印展示出所有可选择的商品信息(商品名、单价、商品编号、商品类型)以及菜单界面(各种功能的选择),然后根据现有的商品的ID,可以将对应ID的商品加入到我的购物车里,也可以删除(减少)商品。可以显示购物车里的商品信息,即查看购物车,能清空购物车里的所有商品;能结算购物车里的所有商品,也能结算我所选择的部分商品,并且在结算完后清除相应的信息,算出最终的要支付的价格

4.UML类图


5.本系统哪里体现了面向对象的封装性。

  • pubilc、private体现了面向对象的封装性:
    我们需要避免用户再次使用“对象.属性”的方式对属性进行赋值,则需要将商品属性声明为私有的(private),此时,针对于属性就体现了封装性。
    提供公共的(public)方法来获取(getXXX)和设置(setXXX)此属性的值。比如展示商品信息,搜索商品信息这些方法,可以设置成public属性,供其他包调用这些方法,使功能更完善。对于购物车这一对象,添加、删除商品与获得购物车订单条目类,清空、修改购物车内的商品,获得商品ID,生成订单等方法设置成public属性,这些都可以体现面向对象的封装性。
6.项目包结构与关键代码:项目的包结构(为什么要这样设计包结构),主要功能(如往购物车添加、删除商品)的流程图与关键代码。 项目的包结构:


设计原因:这样设计包结构,可以方便后期功能增添与修改,能让我们的项目更好管理,让程序具有更高的可读性。

1.往购物车添加商品
  • 流程图:
  • 关键代码:
// 寻找商品
	public int FinditemId(Integer id) {
		for (int i = 0; i < itemList.size(); i++) {
			if (itemList.get(i).getItem().getId().equals(id))
				return i;
		}
		return -1;
	}

	// 添加商品
	public void add(Commodity item) {
		if (item == null)
			return;
		int index = FinditemId(item.getId());
		if (index == -1) {

			itemList.add(new ItemEntry(item));
		}

		else {
			itemList.get(index).increase();
		}
	}
2.往购物车删除商品
  • 流程图:

  • 主要代码;

// 删除商品
	public boolean remove(Integer id) {
		if (itemList.size() == 0) {
			System.out.println("购物车为空哦!");
			return false;
		}
		if (id == null)
			return false;
		int index = FinditemId(id);
		if (index == -1)// 没有找到
			return false;
		else {
			if (itemList.get(index).getQuantity() <= 1)
				itemList.remove(index);
			else {
				itemList.get(index).decrease();
			}
		}
		return true;
	}
3.结算订单:
  • 流程图:
  • 主要代码:
//生成订单
    public void Generateorder() {
		System.out.println("请输入你要结算的订单数");
		Scanner sc=new Scanner(System.in);
		int number=sc.nextInt();
		double sum=0;
		int[] entry=new int[number];
		System.out.println("您要结算的订单为:");
		for(int i=0;i=itemList.size()) {
				System.out.println("你要结算的订单不在购物车哦!");
				return;
			}
			else {
				System.out.println(itemList.get(entry[j]));
				sum+=itemList.get(entry[j]).SumPrice;
			}
			}
		System.out.println("您需要支付"+sum);
		for (int i = 0; i < number; i++) {
			//System.out.println("1");
			itemList.remove(entry[i]-i);
		}
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号