超市商品管理系统(继承,多态的运用)

attribute包

package attribute;

public class Goodsinfor{
    private int num;
    private String name;
    private double price;
    public Goodsinfor(){
    }
    public Goodsinfor(int num,String name){
        this.num=num;
        this.name=name;
    }
    public int getNum(){
        return num;
    }
    public void setNum(int num){
        this.num=num;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public double getPrice(){
        int price=getNum();
        switch (price){
            case 1:price=8;
                break;
            case 2:price=6;
                break;
            case 3:price=4;
                break;
            case 4:price=5;
                break;
            default:price=2;
        }
        return price;
    }
}
package attribute;

public class Goodsinfor1 extends Goodsinfor{
    private int num;
    private String name;
    private double price;
    public Goodsinfor1(){

    }
    public Goodsinfor1(int num,String name,double price){
        this.num=num;
        this.name=name;
        this.price=price;
    }
    public int getNum(){
        return num;
    }
    public void setNum(int num){
        this.num=num;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public double getPrice(){
        return price;
    }
    public void setPrice(double price){this.price=price;}
}

mainclass包

package mainclass;

import javax.swing.*;

public class Person {
    public void use(){
        String m;
        int md=0;
        while (md<=0)
        {
            m = JOptionPane.showInputDialog(null, "请输入密码");
            switch (m)
            {
                case "1":
                    md = 1;
                    break;
                default:
                    md=0;
                    System.out.println("密码错误,请重新输入");
            }
        }
    }
}
package mainclass;

import attribute.Goodsinfor;
import operate.*;

import javax.swing.*;
import java.util.Scanner;

public class Salesperson extends Person {
    public void use()
    {
        String m,m1,m2;
        int md=0,md1=0,md2=0;
        Goodsinfor g1 = new Goodsinfor(1, "可口可乐");
        Goodsinfor g2 = new Goodsinfor(2, "雪碧");
        Goodsinfor g3 = new Goodsinfor(3, "冰红茶");
        Goodsinfor g4 = new Goodsinfor(4, "牛奶");
        Goodsinfor g5 = new Goodsinfor(5, "零食");
        while (md<=0)
        {
            m = JOptionPane.showInputDialog(null, "请输入密码");
            switch (m)
            {
                case "1":
                    md = 1;
                    break;
                default:
                    md=0;
                    System.out.println("密码错误,请重新输入");
            }
        }
        do {
            System.out.println("1.展示商品");
            System.out.println("2.购买商品");
            System.out.println("3.查询商品");
            System.out.println("4.增加商品");
            System.out.println("5.删除商品");
            System.out.println("6.更改商品");
            System.out.println("0.退出");
            m1 = JOptionPane.showInputDialog(null, "请输入命令");
            switch (m1) {
                case "0":
                    System.exit(0);
                    break;
                case "1":
                    md1 = 1;
                    break;
                case "2":
                    md1 = 2;
                    break;
                case "3":
                    md1=3;
                    break;
                case "4":
                    md1=4;
                    break;
                case "5":
                    md1=5;
                    break;
                case "6":
                    md1=6;
                    break;
            }
            if (md1 == 1) {
                Show s=new Show();
                s.show(g1);
                s.show(g2);
                s.show(g3);
                s.show(g4);
                s.show(g5);
            }
            if (md1 == 2) {
                Buy buy = new Buy();
                System.out.println("请输入编号,名称");
                Scanner in = new Scanner(System.in);
                int num = in.nextInt();
                String name = in.nextLine();
                System.out.println("请输入数量");
                int nums = in.nextInt();
                Goodsinfor g = new Goodsinfor(num, name);
                buy.sellMoney(g, nums);
                double counmoney = buy.getMoney();
                System.out.println("总价是:" + counmoney);
            }
            if(md1==3){
                Find f=new Find();
                f.find();
            }
            if(md1==4){
                Increase in=new Increase();
                in.increase();
            }
            if(md1==5){
                Delete d=new Delete();
                d.delete();
            }
            if(md1==6){
                Change c=new Change();
                c.change();
            }
            m2= JOptionPane.showInputDialog(null,"输入y继续,n退出");
            switch (m2){
                case "y":
                    md2=1;
                    break;
                case "n":
                    md2=-1;
                    break;
            }
        }while (md2>0);
        System.exit(0);
    }
}
package mainclass;
import operate.*;
import attribute.Goodsinfor;

import javax.swing.*;
import java.util.Scanner;

public class Goods {
    public static void main(String[] args) {
        System.out.println("#################");
        System.out.println("欢迎来到**超市");
        System.out.println("################");
       Person person=new Salesperson();
       person.use();
    }
}

operate包

package operate;

import attribute.Goodsinfor;

public class Show {
    public void show(Goodsinfor g){
        System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
    }
}
import attribute.Goodsinfor;
import attribute.Goodsinfor1;

import java.util.Scanner;

public class Increase {
    public void increase()
    {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入编号和名称");
        int num=in.nextInt();
        String name=in.nextLine();
        System.out.println("请输入价格");
        double price=in.nextInt();
        Goodsinfor g=new Goodsinfor1(num,name,price);
        System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
    }
}
import attribute.Goodsinfor;

import java.util.Scanner;

public class Delete {
    public void delete(){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入编号");
        int num=in.nextInt();
        String name=null;
        Goodsinfor g=new Goodsinfor(num,name);
        if(g.getName()==null)
        {
            System.out.println("商品已删除");
        }
        else
        {
            System.out.println("Goods num=" + g.getNum() + ",name=" + g.getName() + ",price=" + g.getPrice());
        }
    }
}
package operate;

import attribute.Goodsinfor;
import attribute.Goodsinfor1;

import java.util.Scanner;

public class Change {
    public void change(){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入编号及名称");
        int num=in.nextInt();
        String name=in.nextLine();
        System.out.println("请输入价格");
        double price=in.nextInt();
        Goodsinfor g=new Goodsinfor1(num,name,price);
        System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
    }
}
package operate;

import attribute.Goodsinfor;

import java.util.Scanner;

public class Find {
    public void find() {
        String a[] = {"", "可口可乐", "雪碧", "冰红茶", "牛奶", "零食"};
        System.out.println("请输入编号");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        Goodsinfor g = new Goodsinfor(num, a[num]);
        System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
    }
}
package operate;

import attribute.Goodsinfor;

public class Buy{
    private double money=0;
    public double sellMoney(Goodsinfor num, int nums){
        double price=num.getPrice()*nums;
        return money=money+price;
    }
    public double getMoney(){
        return money;
    }
}

运行结果:

 继承是一种由已知类创建新类的机制,而多态是运行时多态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值