吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11315|回复: 21
收起左侧

[Java 转载] Java超市实例(一点小东西,写出来跟大家分享一下)

[复制链接]
poiugh岁月 发表于 2017-10-11 23:31
本帖最后由 poiugh岁月 于 2017-10-11 23:35 编辑

Java超市实例

在日常生活中,超市是我们经常出没的地方,以前也用C/C++写过一些通讯录,员工之类的管理小程序,现在学习了Java,也想利用Java语言来写一个小程序;分析如下:(有错误请回帖  谢谢)

先说一下大致有那几个类 :

1.商品类(Goods): 主要数据成员  商品名称GName  商品价格GPrice 在超市购买商品肯定有数目GCount  代码如下:
package Shop;

public class Goods         //商品类
{
        private String GName;             //商品名
        private int GCount;               //商品数量
        private double GPrice;        //商品价格
        Goods(String name,double price,int count)      //构造函数初始化
        {
                this.GName=name;
                this.GPrice=price;
                this.GCount=count;
        }
        public String getGName() {
                return GName;
        }
        public void setGName(String gName) {
                GName = gName;
        }
        public int getGCount() {
                return GCount;
        }
        public void setGCount(int gCount) {
                GCount = gCount;
        }
        public double getGPrice() {
                return GPrice;
        }
        public void setGPrice(double gPrice) {
                GPrice = gPrice;
        }
}

2.购物车类ShoppingCar   分析一下   购物车类肯定有货物   这里就不用数组写了新学了一个List<Goods> (还不知道具体用法  嘻嘻)  大致就是一个购物车类  然后可以向购物车加入或者拿出商品  最后再写一个求商品总价的代码吧  代码如下:
package Shop;

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

public class ShoppingCar       //购物车类
{
        public List<Goods> goods;
        public ShoppingCar()
        {
                this.goods=new ArrayList<Goods>();
        }
        public void addgoods(Goods gd)         //增加商品
        {
                this.goods.add(gd);
        }
        public void delgoods(Goods gd)         //拿出商品
        {
                this.goods.remove(gd);
        }
        public double gettotal()         //计算购物车中商品总价
        {
                double total=0;
                for(int i=0;i<this.goods.size();i++)
                {
                        Goods temp=goods.get(i);
                        total=total+temp.getGPrice()*temp.getGCount();
                }
                return total;
        }
}


3.顾客类(Customer)  顾客肯定有姓名,买东西肯定会带钱的   顾客当然也需要一辆购物车  当然顾客可以调用购物车来进行增加商品和减少商品   代码如下:
package Shop;

public class Customer {     //顾客类
        private String CName;       //顾客姓名
        private double CMoney;   //顾客带的购物的钱
        private ShoppingCar sc;   //顾客拥有的购物车
        Customer(String name,double money)      //构造函数初始化
        {
                this.CName=name;
                this.CMoney=money;
                sc=new ShoppingCar();                       //让这个购物车属于这个顾客
        }
        public String getCName() {               
                return CName;
        }
        public void setCName(String cName) {       //打印凭条时可以打印姓名
                CName = cName;
        }
        public double getCMoney() {
                return CMoney;
        }
        public void setCMoney(double cMoney) {
                CMoney = cMoney;
        }
        public void add(Goods good)           //顾客添加商品  就是购物车中添加商品   
        {
                sc.addgoods(good);
        }
        public void del(Goods good)                        //顾客减少商品
        {
                sc.delgoods(good);
        }
        public ShoppingCar getSc()
        {
                return sc;
        }
}


4.收银员类 (Cashier) 收银员最主要的功能就是收费打印凭条是吧   在这个过程当中  收银员本来柜台里有钱的,然后顾客消费  这个钱会增加(没有实现)代码如下:
package Shop;

public class Cashier {                //收银员类
        private String Name;        //收银员姓名
        private double Money;     //收银员柜台里的钱
        Cashier(String name,double money)
        {
                this.Name=name;
                this.Money=Money;
        }
        public void print(Customer cs)
        {
                ShoppingCar sc=cs.getSc();
                System.out.println("打印凭条:");
                System.out.println("顾客姓名:"+cs.getCName());
                System.out.println("收银员姓名:"+this.Name);
                System.out.println("商品名称"+"     "+"商品价格"+"       "+"商品数量");
                for(int i=0;i<sc.goods.size();i++)
                {
                        Goods temp=sc.goods.get(i);
                        System.out.println("   "+temp.getGName()+"            "+temp.getGPrice()+"              "+temp.getGCount());
                }
                if((cs.getCMoney()-sc.gettotal())>0)
                {
                    System.out.println("应付:"+sc.gettotal());
                    System.out.println("实付:"+cs.getCMoney());
                    System.out.println("找零:"+(cs.getCMoney()-sc.gettotal()));
                    System.out.println("欢迎下次光临");
                }
                else
                {
                        System.out.println("您的钱不够哦QAQ");
                }
        }
        public String getName() {
                return Name;
        }
        public void setName(String name) {
                Name = name;
        }
        public double getMoney() {
                return Money;
        }
        public void setMoney(double money) {
                Money = money;
        }
}

5.测试代码:
public class Test {
        public static void main(String[] args) {
                Customer cs=new Customer("张三",1000);
                Cashier sc=new Cashier("李四",2000);
                cs.add(new Goods("铅笔",2,10));
                cs.add(new Goods("课本",10,4));
                cs.add(new Goods("电扇",50,1));
                cs.add(new Goods("鼠标",100,1));
                cs.add(new Goods("耳机",200,1));
                sc.print(cs);
        }
}

运行结果如下:
打印凭条:
顾客姓名:张三
收银员姓名:李四
商品名称     商品价格       商品数量
   铅笔            2.0              10
   课本            10.0              4
   电扇            50.0              1
   鼠标            100.0              1
   耳机            200.0              1
应付:410.0
实付:1000.0
找零:590.0
欢迎下次光临

图片上传不下来   不好意思  我打包下
1.png

Java超市实例.zip

9.24 KB, 下载次数: 53, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 8吾爱币 +10 热心值 +7 收起 理由
j296849823 + 1 我很赞同!
笨小孩~ + 1 + 1 我很赞同!
不给力老师 + 1 + 1 用心讨论,共获提升!
tanghengvip + 1 + 1 用心讨论,共获提升!
Eternity-Myth + 1 + 1 用心讨论,共获提升!
War-Horse + 1 + 1 用心讨论,共获提升!
JusonR + 3 + 1 用心讨论,共获提升!
tang588 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

瓜子吧3 发表于 2017-10-12 00:16
在学易语言,感觉易比较简单吧~~~前来支持下
别人都叫我老木 发表于 2017-10-13 14:22
瓜子吧3 发表于 2017-10-12 00:16
在学易语言,感觉易比较简单吧~~~前来支持下

易语言这种东西吧,还是用来做个小程序比较实在,如果你想入行或者工作的话,还是选择一门工作常用的变成,比如说JAVA、C、c++、PHP、什么的,虽然可能前期单词的问题比较困难,但是用开了也就是那几个单词。
tang588 发表于 2017-10-11 23:42
herui 发表于 2017-10-12 05:04 来自手机
这不是学java的时候必做的吗
新手小弟 发表于 2017-10-12 07:18
学习了,感谢LZ
巨无霸 发表于 2017-10-12 08:27
java初级部分,现在java开发都是用的框架!
尕柒月 发表于 2017-10-12 08:29
好无聊啊
hlh2518 发表于 2017-10-12 08:34
支持楼主!
我是萌萌哒提莫 发表于 2017-10-12 08:49
瓜子吧3 发表于 2017-10-12 00:16
在学易语言,感觉易比较简单吧~~~前来支持下

six  six  six
TCY 发表于 2017-10-12 09:07
javase基础,加油兄弟
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表