好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 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
欢迎下次光临
图片上传不下来 不好意思 我打包下 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|