Java大作业 —— 面向对象设计(购物车)

人员分工

姓名 分工
冯仁樟 前期调查与功能设计、博客制作
陈文杰 面向对象设计、代码编写

一、前期调查

首先对于商品需要有一个描述,提供商品信息,商品编号及价格,方便用户挑选,用户对于商品可进行加入购物车操作。购物车界面展示所选商品编号,名称,价格及商品数量,还可以进行预结算以及对所选商品进行操作。

二、系统功能结构图

三、系统描述

首先,进入系统的界面,界面上有系统的各种功能。接着创建一个货架,并对每一个商品进行初始化,每个商品都有名称,编号,价格。对于货架,有几个方法,首先是展示货架的商品,其次可以进行商品的搜索,通过商品的编号或者名称进行搜索。最后需要创建一个购物车,购物车中包含用户挑选的商品,其中也有方法:添加商品:用户可以挑选自己喜欢的商品,删除商品:用户可以删除商品,展示购物车:展示购物车的所有商品与总价,清空购物车:清除购物车的所有商品。

四、UML类图

(一).类的属性表示方式

1.商品类(Commodity)

2.货架类(Shelves)

3.购物车类(Car)

4.界面类(UI)

(二 )类与类之间的关系

五、面向对象封装性的体现

商品类中个每个对象属性都是设置为private,外部无法直接访问,只能通过getters函数进行访问,这就是封装性的体现。

六、项目包结构与关键代码

1.项目包结构

2.关键代码

购物车类(Car):

package shopping2;public class Car {
public static int[] payNumber = new int[100];public static int[] getPayNumber() {return payNumber;
}public static void setPayNumber(int[] payNumber) {Car.payNumber = payNumber;
}public static int addGoods(int goodsId, int goodsAddNumber) {// 增加购物车商品for (int i = 0; i < Shelves.a; i++) {if (i == goodsId) {payNumber[i] += goodsAddNumber;return 1;}}return 0;
}public static int  subGoods(int goodsId, int goodsSubNumber) {// 减少购物车商品for (int i = 0; i < Shelves.a; i++) {if (i == goodsId) {payNumber[i] = payNumber[i] - goodsSubNumber;if (payNumber[i] < 0)payNumber[i] = 0;// 保证数字不小于0return 1;}}return 0;
}public static void showCart() {// 显示购物车中的商品double countCartPay = 0;System.out.println("———————————— 您的购物车 ————————————");System.out.println("商品ID" + "  " + "商品名" + " " + "商品单价" + "  " + "购买数量");System.out.println();Shelves sc = new Shelves();for (int i = 0; i < Shelves.a; i++) {if (payNumber[i] != 0) {System.out.println(sc.s[i].getId() + " " + sc.s[i].getName() + "   " + sc.s[i].getPrice() + "  *      " + payNumber[i]);}countCartPay = countCartPay + (payNumber[i] * sc.s[i].getPrice());}System.out.println();System.out.println(" 您的账单估算 :  " + String.format("%.2f", countCartPay));
}public static void showCart0()
{System.out.println("———————————— 您的购物车 ————————————");System.out.println("商品ID" + "  " + "商品名" + " " + "商品单价" + "  " + "购买数量");System.out.println();Shelves sc = new Shelves();for (int i = 0; i < Shelves.a; i++) {if (payNumber[i] != 0) {System.out.println(sc.s[i].getId() + " " + sc.s[i].getName() + "   " + sc.s[i].getPrice() + "  *      " + payNumber[i]);}}
}public static void cleanGoods() {// 清空购物车商品for (int i = 0; i < Shelves.a; i++) {payNumber[i] = 0;// 保证数字不小于0}
}

商品类(Commodity):

package shopping2;public class Commodity {private int id;private String name;private int 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;}public Commodity(int id, String name, int price){this.id = id;this.name = name;this.price = price;}
}

七、总结

在此次的购物车程序的面向对象的设计中,对于private修饰符有了一个更好的了解,同时对于面向对象的分装性有了一定的认识与体验,同时在编程中通过查找JDK文档的方法也使编程的过程更加的方便与快速。

Java大作业——购物车相关推荐

  1. JAVA大作业-购物车 (持续更新)

    文章目录 前言 前期调查 效果展示 系统功能设计 类的结构 改进方向 前言 团队成员:连剑彬 环境:Eclipse IDE 介绍:这是第一次大作业,主要目标是用JAVA语言实现最基本的购物车系统 前期 ...

  2. java大作业1--电话簿

    java大作业1–电话簿 一.题目 Java程序设计实用教程p402 12-13 二.预览 三.题解 一.Friend类 首先明确这个电话簿存入的信息为一个个Friend,每一个Friend需要具有姓 ...

  3. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  4. JAVA大作业 | 学生成绩信息管理系统

    > * *JAVA大作业 | 学生成绩管理系统(含有用户界面)*** ----- ps :多个包写在一起---– package test; import java.awt.*; import ...

  5. Java大作业-考试管理系统(GUI)无数据库-Java课程设计

    Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...

  6. JAVA大作业 - 五道三星题

    写在前面: 看了一下我的博客,发现距离上一篇博文的发表已经快一年了,深感自己的颓废,所以打算重新写博客(其实是记录= =),于是从上学期的JAVA大作业开始慢慢整理一下,就是这样! ·问题描述 五道三 ...

  7. JavaFx/Java 大作业 五子棋 实验报告

    Java大作业五子棋实验报告 实验目的 通过此次实验,对这一学期学习的内容尤其是界面开发部分做了一个很好的回顾,看似简单的五子棋程序,设计好也确实费了我一点功夫 功能模块简介和系统结构图 ChessG ...

  8. java大作业国际比赛奖牌榜,java大作业之词频统计

    [实例简介] 开发工具idea,统计方式为java8的stream方式,不是传统的字节流统计方式,内含答辩PPT以及统计单词的文本,配置好后可直接使用 [实例截图] [核心代码] java大作业之词频 ...

  9. java大作业网络聊天室

    这个项目是我大一的java期末大作业,学习了一个学期的成果,编程能力不够,做的并不够好,写在这里记录一下自己的成长,也欢迎大家给出宝贵意见! 第一次写博客哟,请多多支持! 该篇博客写一个基于java的 ...

  10. java大作业设计_Java程序设计_大作业.doc

    Java程序设计_大作业.doc Java程序设计_大作业 专业:计算机科学与技术专业 学号:1245713131 姓名: 2014年12月10日 目录 作业内容:2 1.IPublisherDao接 ...

最新文章

  1. 年轻群体当道,哈弗F7如何赢得芳心?
  2. Tensorflow学习笔记:多项式拟合
  3. Jmeter入门6 参数化—CSV Data Set Config 通过文件导入数据
  4. leetcode python3 简单题190. Reverse Bits
  5. VS2005发送电子邮件(转)
  6. opengl大作业c语言,openGL-计算机图形大作业中出现的几个错误及解决
  7. 天涯明月刀服务器维护,天涯明月刀手游维护时间表一览,维护什么时候结束?[多图]...
  8. jdk 各版本官网下载
  9. php能不能用super,supersu怎么用
  10. android 自定义图片合集(自定义控件)
  11. 人生就是游戏,你如何遵守游戏规则?
  12. 【MySQL】创建高性能的索引
  13. ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示
  14. 计算机网络中的OSI模型和TCP/IP模型
  15. 爱普生Epson SureColor T5480 打印机驱动
  16. C++ Socket网络编程
  17. vue中已声明XX,但从未读取其值 解决方法
  18. 请求的资源不可用html,Eclipse请求的资源不可用。
  19. 2.古体诗的换韵和重韵
  20. 26款JAVA毕设项目合集【java课设】

热门文章

  1. SDUT最短路径问题 1867————最短路
  2. DELL服务器 一般内存模块安装原则
  3. 基于Spark的电商用户行为分析系统的设计与实现
  4. 架构师之路-秒杀系统优化思路
  5. Android使用VAD检测是否说话
  6. MacBook使用HHKB键盘设置
  7. 4237. 【五校联考5day1】Melancholy (Standard IO)
  8. MatlabR2012a 显示使用过期的注册文件破解(.lic)
  9. 星巴克急了,瑞幸就稳了?
  10. Python期末考试题库