Java基础小项目shopping

java练习小项目

题目如下:
1. 商店中,进货员进货(列出能够进货的食品,进货员选择进货的食品,确定进货的数量),进货结束后, 列出进货的食品清单
2. 商店中,售货员售货,顾客来购买食品(列出能够购买的食品,顾客选择购买的食品,确定购买食品的数量),购买结束后,列出顾客的购物清单
3. 顾客吃食品(列出能够吃的食品,顾客选择吃的食品,确定吃食品的数量),吃完后,把剩余的食品列出
要求:处理异常,程序要正常执行,分包明确
设计:
Shop类:有食品数组Food[],进货员Stocker,售货员Saler
进货员类(Stocker):进货方法
食品类(Food):食品名称、食品数量
以下食品至少有两种
梨(Pear extends Food):

苹果(Apple extends Food):
售货员类(Saler):售货方法
父亲(顾客Father):Food[]属性,吃的方法
儿子(Son extends Father):吃的方法

**模块及项目包图片:在这里插入图片描述
**
Apple:

package no1.customer.goods;

public class Apple extends no1.goods.Foods
{

    public Apple()
    {
        super();
    }

    public Apple(String name, int num)
    {
        super(name, num);
    }




}

Foods:

package no1.goods;

public class Foods
{
    String name;
    int num;


    public Foods() {
        super();
    }
    public Foods(String name, int num) {
        super();
        this.name = name;
        this.num = num;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }

    public void add(int amount)
    {
        this.num+=amount;
    }
    public void min(int amount)
    {
        this.num-=amount;
    }

}

Newshop:

package no1.customer.goods;

import java.util.Scanner;
import no1.customer.*;

public class Newshop
{
    no1.goods.Foods[] food= {new no1.goods.Foods("红富士",0), new no1.goods.Foods("雪梨",0)};

    public void stock()
    {
        while (true)
        {
            System.out.println("商店现存货有" + "1.Apple" + food[0].getName() + ":" + food[0].getNum() + "," + "2.Pear"+ food[1].getName() + ":" + food[1].getNum() + "退出请输入:3.Exit");
            Scanner scan = new Scanner(System.in);
            String name = scan.next();
            try
            {
                if ("1".equals(name) || "Apple".equalsIgnoreCase(name)) {
                    System.out.println("请输入要进货的数量");
                    String num = scan.next();
                    int amount = Integer.parseInt(num);
                    food[0].add(amount);
                } else if ("2".equals(name) || "Pear".equalsIgnoreCase(name)) {
                    System.out.println("请输入要进货的数量");
                    String num = scan.next();
                    int amount = Integer.parseInt(num);
                    food[1].add(amount);
                } else if ("3".equals(name) || "Exit".equalsIgnoreCase(name)) {
                    break;
                }

            }
            catch (NumberFormatException e)
            {
                System.out.println("输入不匹配,请重新输入");
            }
        }
    }

    public void sell(Father fa)
    {
		/*Foods[] f=new Foods[2];
		fa.setFood(f);*/
        no1.goods.Foods[] f=fa.getFood();
        while (true) {
            System.out.println("您好,欢迎光临小店");
            System.out.println("商店现存货有" + "1.Apple" + food[0].getName() + ":" + food[0].getNum() + "," + "2.Pear"+food[1].getName() + ":" + food[1].getNum() + "退出请输入:3.Exit");
            Scanner scan = new Scanner(System.in);
            String name = scan.next();

            try {
                if ("1".equals(name) || "Apple".equalsIgnoreCase(name)) {
                    System.out.println("请输入要买的数量");
                    String num = scan.next();
                    int amount = Integer.parseInt(num);
                    if(amount>food[0].getNum())
                    {
                        System.out.println("超出我们的库存,请重新输入");
                        continue;
                    }
                    food[0].min(amount);
                    f[0].add(amount);
                } else if ("2".equals(name) || "Pear".equalsIgnoreCase(name)) {
                    System.out.println("请输入要买的数量");
                    String num = scan.next();
                    int amount = Integer.parseInt(num);
                    if(amount>food[1].getNum())
                    {
                        System.out.println("超出我们的库存,请重新输入");
                        continue;
                    }
                    food[1].min(amount);
                    f[1].add(amount);
                } else if ("3".equals(name) || "Exit".equalsIgnoreCase(name)) {
                    break;
                }

            } catch (NumberFormatException e) {
                System.out.println("输入不匹配,请重新输入");
            }
        }
    }

}

Pear:

package no1.customer.goods;
import java.util.Scanner;

import no1.customer.*;
import no1.goods.Foods;

public class Shop
{
    private static int appleNum=0;
    private static int pearNum=0;


    no1.goods.Foods[] food= {new no1.goods.Foods("红富士",0), new no1.goods.Foods("雪梨",0)};

    public void stock()
    {

        System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum()+"        "+"退出请输入:exit");

        while(true)
        {
            Scanner scan=new Scanner(System.in);
            String s=scan.nextLine();
            switch(s)
            {
                case "1":
                    System.out.println("请输入你要进货的红富士的数量");
                    int num1=scan.nextInt();
                    food[0].setNum(appleNum+=num1);
                    System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum());
                    break;

                case "2":
                    System.out.println("请输入你要进货的雪梨的数量");
                    int num2=scan.nextInt();
                    food[1].setNum(pearNum+=num2);
                    System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum());
                    break;
                case "exit":
                    return;

            }

        }

    }

    public void sell(Father fa)
    {
        Foods[] e = fa.getFood();
        System.out.println("您好,欢迎光临小店!");
        System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum()+"        "+"退出请输入:exit");
        int num1=0;
        int num2=0;
        while(true)
        {
            Scanner scan=new Scanner(System.in);
            String s=scan.nextLine();
            switch(s)
            {
                case"1":
                    System.out.println("请输入你要买的红富士的数量");
                    num1=scan.nextInt();
                    if (num1>food[0].getNum())
                    {
                        System.out.println("超出我们的库存");
                        break;
                    }
                    food[0].setNum(appleNum-=num1);
                    e[0].setNum(num1);
                    System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum()+"        "+"退出请输入:exit");
                    break;

                case"2":
                    System.out.println("请输入你要买的红富士的数量");
                    num2=scan.nextInt();
                    if (num2>food[1].getNum())
                    {
                        System.out.println("超出我们的库存");
                        break;
                    }
                    food[0].setNum(pearNum-=num2);
                    e[1].setNum(num2);
                    System.out.println("商店现存货有"+"1"+food[0].getName()+":"+food[0].getNum()+","+"2"+food[1].getName()+":"+food[1].getNum()+"        "+"退出请输入:exit");
                    break;

                case "exit":
                    System.out.println("您买的商品:");
                    System.out.println("Apple:"+num1+",Pear:"+num2);
                    return;
            }
        }
    }

}

Test:

package no1.customer.test;

import no1.customer.*;
import no1.customer.goods.Newshop;


public class Test
{
    public static void main(String[] args)
    {

        Newshop s=new Newshop();
        Father fa=new Father();
        s.stock();
        s.sell(fa);
        fa.eat();
        Son son=new Son();
        son.setFood(fa.getFood());
        System.out.println("儿子准备吃东西");
        son.eat();
        son.surplus();
    }

}

Father:

package no1.customer;


import no1.goods.Foods;

import java.util.Scanner;

public class Father
{
    no1.goods.Foods[] food= {new no1.goods.Foods("红富士",0), new no1.goods.Foods("雪梨",0)};

    public Foods[] getFood() {
        return food;
    }

    public void setFood(Foods[] food) {
        this.food = food;
    }



    public void eat()
    {

        int num1=food[0].getNum();
        int num2=food[1].getNum();
        while (true) {
            System.out.println("现在手上有1.Apple红富士:" + food[0].getNum() + "     2.Pear雪梨:" + food[1].getNum());
            System.out.println("吃什么呢?1.apple     2.pear      不吃3.full");
            Scanner scan = new Scanner(System.in);
            String name = scan.next();
            try
            {
                if ("1".equals(name) || "apple".equalsIgnoreCase(name))
                {
                    System.out.println("要吃多少苹果呢");
                    String num = scan.next();
                    int amount = Integer.parseInt(num);
                    if (amount > food[0].getNum())
                    {
                        System.out.println("没有这么多苹果");
                        continue;
                    }
                    food[0].setNum(num1-=amount);
                }
                if("2".equals(name)||"pear".equals(name))
                {
                    System.out.println("要吃多少梨子呢");
                    String num=scan.next();
                    int amount=Integer.parseInt(num);
                    if (amount > food[1].getNum())
                    {
                        System.out.println("没有这么多梨子");
                        continue;
                    }
                    food[1].setNum(num2-=amount);
                }
                else if("3".equals(name)||"full".equals(name))
                {
                    break;
                }
            }
            catch(NumberFormatException e)
            {
                System.out.println("输入不匹配,请重新输入");
            }
        }

    }

}

Son:

package no1.customer;

public class Son extends Father
{
    public void surplus()
    {
        System.out.println("爸爸手上还剩余苹果:"+food[0].getNum()+"     梨子:"+food[1].getNum());
    }

}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值