目录
目录
0、人员分工
1、前期调查
2、系统功能结构图
3、系统描述
4、UML图
5、面向对象的封装性
6、程序介绍
7、项目包结构与关键代码
0、人员分工
任务 | 姓名 |
编码规范,功能设计,面向对象设计,购物车类,结算类,Main类 | 骆梦钒 |
博客制作,前期调查,面向对象设计,商品类,菜单类 | 姜芳华 |
1、前期调查
(1)、展示商品信息给用户推荐
(2)、进入京东首页面,具有输入商品名称可查询商品相关信息
(3)、进入具体商品页面,可展示商品属性,价格信息,并且具有可以加入购物车的功能
(4)、购物车具有计算所有商品的价格与数量的功能。
2、系统功能结构图
3、系统描述
菜单类:
菜单界面
商品类:
存储商品相关信息
购物车类:
增加商品到购物车;查询购物车列表;清空购物车;找到编号商品信息
结算类:
展示购物车信息,计算商品总价
4、UML图
5、面向对象的封装性
JAVA:面向对象的编程语言。在此购物车案例中,不同的执行对象有不同的操作要实行,因此,先将对象和方法先找出来一一对应,即将名词与动词找出来,再将名词与动词逐一对应相应的对象与方法来设计代码。这样针对不同对象设计不同的方法,更加的具有逻辑,条理更清楚,
而对于商品类,展示商品信息,搜索商品信息,商品列表这些方法,可以设置成public属性,供其他包调用这些方法,使功能更完善。
增加商品到购物车与获得购物车列表,设置成public属性
6、程序介绍
(1)显示商品,并选择
(2)商品查询
(3)商品购买
(4)查看购物车
(5)购物车结算
(6)退出
7、项目包结构与关键代码
商品类
package shopping;
import java.util.*;
public class Goods {//商品
private static int[] goodsID = new int[100];
private static String[] goodsName =new String[100];
private static double[] goodsPrice = new double[100];
public static void showGoods() {
System.out.println("商品编号 商品名 商品价格");
for(int i = 0;i < 10;i++) {
System.out.println(goodsID[i]+" "+goodsName[i]+" "+goodsPrice[i]);
}
}
public static void searchGoods() {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请输入商品编号:");
int Search = sc.nextInt();
for(int i = 0;i < 10;i++) {
if(Search == goodsID[i]) {
System.out.print("商品已找到 : \r\n");
System.out.println("商品编号 商品名 商品价格");
System.out.println(goodsID[i]+" "+goodsName[i]+" "+goodsPrice[i]);
return;//商品找到
}
}
System.out.println("商品没找到,请重新查找: \r\n");
}
}
public static void list() {
for(int i = 0;i<10;i++) {
goodsID[i] = i;
switch (i) {
case 0:
goodsName[i] = "无糖黑巧克力" ;
goodsPrice[i] = 58.60 ;
break;
case 1:
goodsName[i] = "新西兰原装进口牛奶" ;
goodsPrice[i] = 89.00 ;
break;
case 2:
goodsName[i] = "化妆镜" ;
goodsPrice[i] = 49.00 ;
break;
case 3:
goodsName[i] = "金九月饼" ;
goodsPrice[i] = 228.00 ;
break;
case 4:
goodsName[i] = "东北大米";
goodsPrice[i] = 12.00;
break;
case 5:
goodsName[i] = "新疆面粉";
goodsPrice[i] = 42.90;
break;
case 6:
goodsName[i] = "铁观音";
goodsPrice[i] = 119.00 ;
break;
case 7:
goodsName[i] = "大刀肉" ;
goodsPrice[i] = 15.60 ;
break;
case 8:
goodsName[i] = "夏威夷果";
goodsPrice[i] = 41.90 ;
break;
case 9:
goodsName[i] = "五香瓜子";
goodsPrice[i] = 23.80 ;
break;
}
}
}
public static int[] getGoodsID() {
return goodsID;
}
public static void setGoodsID(int[] goodsID) {
Goods.goodsID = goodsID;
}
public static String[] getGoodsName() {
return goodsName;
}
public static void setGoodsName(String[] goodsName) {
Goods.goodsName = goodsName;
}
public static double[] getGoodsPrice() {
return goodsPrice;
}
public static void setGoodsPrice(double[] goodsPrice) {
Goods.goodsPrice = goodsPrice;
}
}
Main类
package shopping;
import java.util.*;
public class Main {
public static void main(String[] args) {
Goods.list();//加载商品 商品清单
Scanner sc = new Scanner(System.in);
Goods.showGoods();//显示商品
while(true) {
Menu.main();
System.out.print("请输入选项:");
int num=sc.nextInt();
switch (num) {
case 1://商品查询
//if(Goods.searchGoods()==0)
Goods.searchGoods();
break;
case 2://商品购买
System.out.println();
System.out.println("请输入您需要的商品序号:");
int needGoods = sc.nextInt();
System.out.println("请输入您需要的商品数量:");
int needAddNum = sc.nextInt();
if(ShoppingCart.addGoods(needGoods, needAddNum)==1)
System.out.println("添加购物车成功");
else System.out.println("添加购物车失败");//判断输入参数是否有效
break;
case 3://查看购物车
ShoppingCart.showCart();
break;
case 4://购物车结算
Order.showPay();
break;
case 0:
break;
}
for(int i=0;i<3;i++)
System.out.println();
if(num == 0)
break;
}
Menu.end();
sc.close();
}
}
菜单类
package shopping;
public class Menu {
public static void main() {
System.out.println("请选择您要进行的操作编号:");
System.out.println("(1)商品查询");
System.out.println("(2)商品购买");
System.out.println("(3)查看购物车");
System.out.println("(4)购物车结算");
System.out.println("(0)退出");
}
public static void end() {
System.out.println(" -----------------------------------");
System.out.println(" 感谢您的使用,谢谢惠顾! ");
System.out.println(" -----------------------------------");
}
}
结算类
package shopping;
public class Order {//结算
public static void showPay() {//显示购物车中的商品
double willPay = 0;
System.out.println("");
System.out.println("----------------------------------");
System.out.println("商品编号"+" "+"商品名"+" "+"商品单价"+" * "+"购买数量");
System.out.println("----------------------------------");
for(int i = 0;i < 10;i++) {
if( ShoppingCart.payNum[i] != 0) {
System.out.println(Goods.getGoodsID()[i]+" "+Goods.getGoodsName()[i]+" "+Goods.getGoodsPrice()[i]+" 4 "+ShoppingCart.payNum[i]);
}
willPay = willPay + (ShoppingCart.payNum[i] * Goods.getGoodsPrice()[i]);
}
System.out.println("----------------------------------");
System.out.println(" 实 际 应 付 : "+String.format("%.2f", willPay));
System.out.println("----------------------------------");
}
}
购物车类
package shopping;
public class ShoppingCart {//查看购物车
public static int[] payNum = new int[100];//购买数量
public static int addGoods(int needGoods,int needAddNum) {//增加商品
for(int i = 0;i < 10;i++) {
if(i == needGoods) {
payNum[i] = needAddNum;
System.out.println("商品编号"+" "+"商品名"+" "+"商品单价"+" "+"购买数量");
System.out.println(Goods.getGoodsID()[i]+" "+Goods.getGoodsName()[i]+" "+Goods.getGoodsPrice()[i]+" * "+ShoppingCart.payNum[i]);
return 1;
}
}
return 0;
}
public static void showCart() {//显示购物车
double cartPay=0;//购物车商品总价
System.out.println("———————————— 您的购物车 ————————————");
System.out.print("商品编号"+" "+"商品名"+" "+"商品单价"+" "+"购买数量\r\n");
for(int i = 0;i < 10;i++) {
if( ShoppingCart.payNum[i] != 0) {
System.out.println(Goods.getGoodsID()[i]+" "+Goods.getGoodsName()[i]+" "+Goods.getGoodsPrice()[i]+" * "+ShoppingCart.payNum[i]);
}
cartPay = cartPay + (ShoppingCart.payNum[i] * Goods.getGoodsPrice()[i]);
}
System.out.println();
System.out.println("您的账单估算 : "+String.format("%.2f", cartPay));
}
}