首页 > 其他 > 详细

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

时间:2020-11-13 09:20:37      阅读:29      评论:0      收藏:0      [点我收藏+]

一、目标

  • 学会使用讲故事的方式找到系统中可能包含的类与属性
  • 理解封装

二、前期调查

网购,被称作是中国“新四大发明”之一,作为一个中国的大学生,网购已然变成我们日常生活的一个重要部分,而中国的网购平台更是数不胜数

技术分享图片

在网购之中,有一个非常人性化的功能,那就是购物车。看购物过程中看到心仪的商品,可以先加入购物车,等到购物结束时再一起付款结账

技术分享图片

当我们使用购物车时,只需要用鼠标轻轻一点就可以享受到它所带来的便利,不过,作为计算机学院的学生,我们要去利用所学的知识,来分析背后的原理,并运用已经学到的知识,来尝试实现购物车功能。其大致流程如下:

  • 顾客浏览商城,添加心仪的商品进购物车
  • 购物车存储商品信息(数量、总价等)
  • 顾客对商品信息进行更改
  • 顾客结算购物车

三、代码展示

import java.util.Scanner;

class goods {
	private int id;
	private String name;
	private int price;

	public void init(int id, String name, int price) {
		this.id = id;
		this.name = name;
		this.price = price;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	@Override
	public String toString() {
		return "goods [id=" + id + ", name=" + name + ", price=" + price + "]";
	}
}

public class Main {
	public static void showMenu() {
		System.out.println("#----请输入您需要的选项:#");
		System.out.println("#----[1]展示商品菜单---------#");
		System.out.println("#----[2]购买商品---------------#");
		System.out.println("#----[3]撤销商品---------------#");
		System.out.println("#----[4]展示购物车------------#");
		System.out.println("#----[5]结算---------------------#");
		System.out.println("#----[任意键]退出---------------------#");
	}

	public static void showCart(int[][] cart, goods[] jd) {
		for (int i = 0; i < 10; i++) {
			if (cart[0][i] != -1) {
				for (int j = 0; j < 10; j++) {
					if (jd[j].getId() == cart[0][i]) {
						System.out.println(jd[j].toString());
					}
				}
			}
		}
	}

	public static void main(String[] args) {
		showMenu();// 展示菜单系统
		int temp;
		int Cart[][] = new int[2][10];

		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);

		goods jd[] = new goods[10];
		@SuppressWarnings("unused")
		goods cart[] = new goods[10];

		jd[0].init(0, "机械键盘", 400);
		jd[1].init(1, "无线鼠标", 800);
		jd[2].init(2, "降噪耳机", 1200);
		jd[3].init(3, "电竞显示器", 3000);
		jd[4].init(4, "电竞椅", 2500);
		jd[5].init(5, "RTX3080", 12000);
		jd[6].init(6, "i7-10700k", 2799);
		jd[7].init(7, "iphone12", 9197);
		jd[8].init(8, "格力空调", 2499);
		jd[9].init(9, "数码相机", 4498);

		int choice;

		choice = input.nextInt();
		switch (choice) {
		case 1: {
			for (int i = 0; i < 10; i++) {
				System.out.println(jd[i].toString());
			}
		}
			break;
		case 2: {
			for (int i = 0; i < 10; i++) {
				Cart[0][i] = -1;
				Cart[1][i] = 0;
			}
			for (int i = 0; i < 10; i++) {
				if (Cart[0][i] != -1) {
					System.out.println("请输入商品编号:");
					Cart[0][i] = input.nextInt();
					System.out.println("请输入商品数量:");
					Cart[1][i] = input.nextInt();
					break;
				}
			}
		}
			break;
		case 3: {
			System.out.println("请输入所要删减的商品编号:");
			temp = input.nextInt();
			for (int i = 0; i < 10; i++) {
				if (Cart[0][i] == temp) {
					System.out.println("请输入所要删减的数量:");
					temp = input.nextInt();
					if (temp >= Cart[1][i])
						Cart[0][i] = -1;
					else {
						Cart[1][i] -= temp;
					}
					System.out.println("删减成功!");
					break;
				} else {
					System.out.println("删除失败");
					break;
				}
			}

		}
			break;
		case 4: {
			showCart(Cart, jd);
		}
			break;
		case 5: {
			temp = 0;
			for (int i = 0; i < 10; i++) {
				if (Cart[0][i] != -1) {
					temp += jd[Cart[0][i]].getPrice() * Cart[1][i];
				}
			}
			System.out.print("总价为:");
			System.out.println(temp);
		}
			break;
		default: {
			System.out.println("错误输入!!!");
		}

		}
	}
}

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

原文:https://www.cnblogs.com/Guangyang/p/13967234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!