一个商城包括多个商品、多个用户。拥有销售商品、展示商品和查找商品功能。
2)    一个用户拥有一个购物车,购物车具有结算功能。
3)    商城具有名称,静态字符串类型
4)    用户类是抽象类,两个子类,售货员和顾客。购买商品作为抽象方法,售货员购买享八折优惠。
5)    商品和用户不再用二维数组,而是用类集来表示。

package tang;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import javax.xml.soap.SAAJResult;

/*

*         基于上一个实验,建立商品类、购物车类、用户类、商城类,实现同样的功能。
1)        一个商城包括多个商品、多个用户。拥有销售商品、展示商品和查找商品功能。
2)        一个用户拥有一个购物车,购物车具有结算功能。
3)        商城具有名称,静态字符串类型
4)        用户类是抽象类,两个子类,售货员和顾客。购买商品作为抽象方法,售货员购买享八折优惠。
5)        商品和用户不再用二维数组,而是用类集来表示。
* */

public class work {

public static void main(String[] args) {
                // TODO Auto-generated method stub
                Scanner input = new Scanner(System.in);
                shangping sp1 = new shangping(1001, "巧克力", 120, 5, "食品");
                shangping sp2 = new shangping(1002, "牛奶", 100, 3, "食品");
                shangping sp3 = new shangping(1003, "火腿肠", 500, 2, "食品");
                shangping sp4 = new shangping(1004, "毛衣", 10, 1000, "衣服");
                shangping sp5 = new shangping(1005, "裤子", 20, 999, "衣服");
                shangping sp6 = new shangping(1006, "鞋子", 999, 200, "衣服");
                gouwuche gu1 = new gouwuche(sp1, 2);
                gouwuche gu2 = new gouwuche(sp2, 4);
                gouwuche gu3 = new gouwuche(sp3, 2);
                
                // 购物车
                List<gouwuche> gous1 = new ArrayList<gouwuche>();
                gous1.add(gu1);
                gous1.add(gu2);
                List<gouwuche> gous2 = new ArrayList<gouwuche>();
                gous2.add(gu3);
                gous2.add(gu2);
                // 商品列表
                List<shangping> shangpings1 = new ArrayList<shangping>();
                shangpings1.add(sp1);
                shangpings1.add(sp2);
                shangpings1.add(sp6);
                // 用户
                guke g1 = new guke("xiaohua", "123456", 0, gous1);
                guke g2 = new guke("laowang", "123456", 0, gous2);
                List<yonghu> yonghus = new ArrayList<yonghu>();
                yonghus.add(g1);
                yonghus.add(g2);
                // 商城
                shangcheng sc = new shangcheng(yonghus, shangpings1);
                System.out.println("请输入用户名");
                String name = input.next();
                System.out.println("请输入密码");
                String mima = input.next();
                boolean user = userhave(name, mima, sc);

// 1-加入购物车,2-查询商品,3-结算,4-退出”

if (user) {
                        System.out.println("登录成功");
                        while (true) {

System.out.println("1-查看购物车" + "\t" + "2-查询商品" + "\n" + "3-结算" + "\t" + "4-退出");
                                int a = input.nextInt();
                                yonghu loginuser = getuser(name, sc);
                                if (a == 1) {
                                        showgou(loginuser);

} else if (a == 2) {
                                        System.out.println("请输入查询商品信息:");
                                        String searchname = input.next();
                                        int i = chaxun(searchname, sc);
                                        if (i == -1) {
                                                System.out.println("没有此商品");
                                        } else {
                                                System.out.println("是否加入购物车         是/否");
                                                String jiagou = input.next();
                                                if (jiagou.equals("是")) {
                                                        jiagou(loginuser, i, sc);
                                                } else {
                                                        continue;
                                                }
                                        }

} else if (a == 3) {
                                        showgou(loginuser);
                                        System.out.println();

System.out.println(jiesuan(loginuser));

} else {
                                        break;
                                }
                        }
                } else {
                        System.out.println("登录失败");
                }

}

private static void jiagou(yonghu loginuser, int i, shangcheng sc) {
                // TODO Auto-generated method stub

gouwuche gou = new gouwuche(sc.getShangpings().get(i), 1);
                sc.getShangpings().get(i).setShuliang(sc.getShangpings().get(i).getShuliang() - 1);

loginuser.getGouwuches().add(gou);
        }

private static int chaxun(String searchname, shangcheng sc) {
                // TODO Auto-generated method stub
                int s = -1;
                for (int i = 0; i < sc.getShangpings().size(); i++) {
                        if (sc.getShangpings().get(i).getName().equals(searchname)) {
                                System.out.println("编号:" + sc.getShangpings().get(i).getBianhao());
                                System.out.println("名称:" + sc.getShangpings().get(i).getName());
                                System.out.println("价格:" + sc.getShangpings().get(i).getJiage());
                                System.out.println("库存:" + sc.getShangpings().get(i).getShuliang());
                                System.out.println("类别:" + sc.getShangpings().get(i).getLeibie());
                                s = i;
                        }

}
                return s;
        }

private static double jiesuan(yonghu loginuser) {
                // TODO Auto-generated method stub
                double sum = 0;
                for (int i = 0; i < loginuser.getGouwuches().size(); i++) {
                        sum += loginuser.getGouwuches().get(i).getShuliang()
                                        * loginuser.getGouwuches().get(i).getShangping().getJiage();
                }
                return sum;

}

private static void showgou(yonghu loginuser) {
                // TODO Auto-generated method stub
                System.out.println("商品编号" + "    " + "商品名称" + "     " + "商品价格" + "    " + "商品数量");

for (int i = 0; i < loginuser.getGouwuches().size(); i++) {
                        System.out.print(loginuser.getGouwuches().get(i).getShangping().getBianhao() + "   ");
                        System.out.print(loginuser.getGouwuches().get(i).getShangping().getName() + "   ");
                        System.out.print(loginuser.getGouwuches().get(i).getShangping().getJiage() + "   ");
                        System.out.print(loginuser.getGouwuches().get(i).getShuliang() + "   ");
                        System.out.println();
                }
                System.out.println();
        }

private static yonghu getuser(String name, shangcheng sc) {
                // TODO Auto-generated method stub
                for (int i = 0; i < sc.getYonghus().size(); i++) {
                        if (sc.getYonghus().get(i).getUsername().equals(name)) {

return sc.getYonghus().get(i);
                        }
                }
                return null;
        }

private static boolean userhave(String name, String mima, shangcheng sc) {
                // TODO Auto-generated method stub
                for (int i = 0; i < sc.getYonghus().size(); i++) {
                        if (sc.getYonghus().get(i).getUsername().equals(name)) {
                                if (sc.getYonghus().get(i).getPassword().equals(mima))
                                        return true;
                        }
                }
                return false;
        }

}

//分别有商品编号、商品名称、商品数量、商品价格和商品类别。
class shangping {
        private long bianhao;
        private String name;
        private int shuliang;
        private double jiage;
        private String leibie;

public long getBianhao() {
                return bianhao;
        }

public void setBianhao(long bianhao) {
                this.bianhao = bianhao;
        }

public String getName() {
                return name;
        }

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

public int getShuliang() {
                return shuliang;
        }

public void setShuliang(int shuliang) {
                this.shuliang = shuliang;
        }

public double getJiage() {
                return jiage;
        }

public void setJiage(double jiage) {
                this.jiage = jiage;
        }

public String getLeibie() {
                return leibie;
        }

public void setLeibie(String leibie) {
                this.leibie = leibie;
        }

@Override
        public String toString() {
                return "shangping [bianhao=" + bianhao + ", name=" + name + ", shuliang=" + shuliang + ", jiage=" + jiage
                                + ", leibie=" + leibie + "]";
        }

public shangping(long bianhao, String name, int shuliang, double jiage, String leibie) {
                super();
                this.bianhao = bianhao;
                this.name = name;
                this.shuliang = shuliang;
                this.jiage = jiage;
                this.leibie = leibie;
        }

}

class gouwuche {
        private shangping shangping;
        private int shuliang;

public shangping getShangping() {
                return shangping;
        }

public void setShangping(shangping shangping) {
                this.shangping = shangping;
        }

public int getShuliang() {
                return shuliang;
        }

public void setShuliang(int shuliang) {
                this.shuliang = shuliang;
        }

public gouwuche(tang.shangping shangping, int shuliang) {
                super();
                this.shangping = shangping;
                this.shuliang = shuliang;
        }

//        List thinglist= new ArrayList<>();

//        public List<shangping> getShangpings() {
//                return shangpings;
//        }

//        public gouwuche(List<shangping> shangpings) {
//                super();
//                this.shangpings = shangpings;
//        }

//        public void setShangpings(List<shangping> shangpings) {
//                this.shangpings = shangpings;
//        }
//
//
//        public double jiesuan(List<shangping> shangpings) {
//                double sum=0;
//                for(int i=0;i<shangpings.size();i++) {
//                        sum+=shangpings.get(i).getJiage();
//                }
//                return sum;
//                
//        }

}

abstract class yonghu {
        private String username;
        private String password;
        private double yue;
        private List<gouwuche> gouwuches;

public List<gouwuche> getGouwuches() {
                return gouwuches;
        }

public void setGouwuches(List<gouwuche> gouwuches) {
                this.gouwuches = gouwuches;
        }

public void goumai() {

}

public double getYue() {
                return yue;
        }

public void setYue(double yue) {
                this.yue = yue;
        }

public String getUsername() {
                return username;
        }

public void setUsername(String username) {
                this.username = username;
        }

public String getPassword() {
                return password;
        }

public void setPassword(String password) {
                this.password = password;
        }

@Override
        public String toString() {
                return "yonghu [username=" + username + ", password=" + password + ", yue=" + yue + ", gouwuches=" + gouwuches
                                + "]";
        }

public yonghu(String username, String password, double yue, List<gouwuche> gouwuches) {
                super();
                this.username = username;
                this.password = password;
                this.yue = yue;
                this.gouwuches = gouwuches;
        }

//        public double jiesuan() {
//                double sum=0;
//                for (int i = 0; i < gouwuches.size(); i++) {
//                        sum+=gouwuches.get(i).getShangping().getJiage();
//                        
//                }
//                return sum;
//        }

}

class guke extends yonghu {

public guke(String username, String password, double yue, List<gouwuche> gouwuches) {
                super(username, password, yue, gouwuches);
                // TODO Auto-generated constructor stub
        }

}

class xiaoshou extends yonghu {

public xiaoshou(String username, String password, double yue, List<gouwuche> gouwuches) {
                super(username, password, yue, gouwuches);
                // TODO Auto-generated constructor stub
        }

}

class shangcheng {
        private static String name;
        List<yonghu> yonghus = new ArrayList<yonghu>();
        List<shangping> shangpings = new ArrayList<shangping>();

public shangcheng(List<yonghu> yonghus, List<shangping> shangpings) {
                super();
                this.yonghus = yonghus;
                this.shangpings = shangpings;
        }

public static String getName() {
                return name;
        }

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

public List<yonghu> getYonghus() {
                return yonghus;
        }

public void setYonghus(List<yonghu> yonghus) {
                this.yonghus = yonghus;
        }

public List<shangping> getShangpings() {
                return shangpings;
        }

public void setShangpings(List<shangping> shangpings) {
                this.shangpings = shangpings;
        }

}

更多java学习资料可关注:itheimaGZ获取(公冢号)

java 面向对象 购物车的更多相关文章

  1. Java面向对象课程设计——购物车

    Java面向对象课程设计——购物车 小组成员:余景胜.刘格铭.陈国雄.达瓦次仁 一.前期调查 流程 客人(Buyer)先在商城(Mall)中浏览商品(Commidity),将浏览的商品加入购物车(Sh ...

  2. JAVA面向对象

    JAVA面向对象 对象   我们生活中能看到能摸到的一切事物都是对象.在程序中模拟出生活中的所有东西万物皆对象   只要是对象--属性和行为(方法)   属性   对象有什么   例如:学生有姓名.学 ...

  3. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  4. Java实现购物车功能:方式一:存放在session中.方式二:存储在数据库中

    //将购物车产品加入到cookie中,方式同浏览记录.Java实现购物车,方式一(简易版):存储在session中.这种方式实现还不严谨,大家看的时候看思路即可.(1). JSP页面中,选择某一款产品 ...

  5. Java面向对象㈠ -- 封装

    Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...

  6. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  7. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  8. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  9. java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final

    一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...

随机推荐

  1. YouTube推出慈善组合工具,能引国内视频网站跟风吗?

    互联网的出现不仅仅让大众的工作和生活更便利,更深度改变着传统事物的形态,让其被更多人广泛地认知并接触到.如,原本在线下通过彩页.手册.横幅等进行宣传.募捐的慈善,就通过互联网展现出更为强大的影响力.而 ...

  2. Linux 基本操作学习

    Linux 学习 虚拟机 (Virtual Machine) 指通过软件模拟的具有完整硬件系统功能的,运行再一个完全隔离环境中的完整计算机系统 常用 Linux 命令 命令 对应英文 作用 ls li ...

  3. LA 6621 /ZOJ 3736 Pocket Cube 打表+暴力

    这道题是长沙区域赛的一道简单题,当时题目在ZOJ重现的时候就做了一次,但是做的好复杂,用的BFS暴力,而且还没打表,最后还是莫名其妙的爆栈错误,所以就一直没弄出来,昨天做到大白书上例题05年东京区域赛 ...

  4. Linux 系统查看服务器SN序列号以及服务器型号

    1.单独查看服务器的序列号 [root@localhost ~]# dmidecode -t system | grep 'Serial Number' Serial Number: 2102310Y ...

  5. h3c 瘦ap无法上线解决办法(WA4320i-ACN)

    瘦ap无法上线的原因主要有两个:1.无法获取IP地址 2 .版本 胖ap转瘦ap: 1.使用网线+web对ap进行管理,默认IP地址为:192.168.0.50,用户名:admin 密码:h3capa ...

  6. 吴裕雄--天生自然TensorFlow高层封装:Estimator-DNNClassifier

    # 1. 模型定义. import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist impor ...

  7. python import xx和from xx import x 中的坑

    先回顾一下理解程度 什么是不可变类型和可变类型? 可变类型是,修改变量后 引用的内存地址不变,引用的内存中的内容发生变化(是针对变量名的引用来理解). # 在a.py中定义了一个test属性 test ...

  8. python爬虫破解带有CryptoJS的aes加密的反爬机制

    发现问题 在一次偶然中,在爬取某个公开网站(非商业型网站)时,老方法,打开调试工具查看请求方式,请求拦截,是否是异步加载,不亦乐乎,当我以为这个网站非常简单的时候,发现二级网页的地址和源码不对应 Aj ...

  9. PyTorch基础——使用卷积神经网络识别手写数字

    一.介绍 实验内容 内容包括用 PyTorch 来实现一个卷积神经网络,从而实现手写数字识别任务. 除此之外,还对卷积神经网络的卷积核.特征图等进行了分析,引出了过滤器的概念,并简单示了卷积神经网络的 ...

  10. Mac电脑没声音了怎么办?苹果电脑没声音的解决方法

    在使用Mac电脑的过程中,偶尔会出现电脑没声音?发出奇怪的声音?连接外部音频设备出问题等音频故障,遇到这种情况该怎么办呢?小编有妙招! 检查音量 首先检查Mac是否被静音,按住F12快捷键或滑动菜单栏 ...