超市商品管理系统(输入、输出流的使用)

attrbute包

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 int 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 int price;
    public Goodsinfor1(){

    }
    public Goodsinfor1(int num,String name,int 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 int getPrice(){
        return price;
    }
    public void setPrice(int price){this.price=price;}
}

mainclass包

package mainclass;

import javax.swing.*;

public class Person {
    public void use(){
        Person p=new Person();
        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.io.*;
import java.util.Scanner;

public class Salesperson extends Person implements InterF{
    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, "零食");
        String content[]={"1.展示商品","2.购买商品","3.查询商品","4.增加商品","5.删除商品","6.更改商品","0.退出"};
        while (md<=0)
        {
            m = JOptionPane.showInputDialog(null, "请输入密码");
            switch (m)
            {
                case "1":
                    md = 1;
                    break;
                default:
                    md=0;
                    System.out.println("密码错误,请重新输入");
            }
        }
        File file=new File("D:/function.txt");
        try{
            FileWriter fw=new FileWriter(file);
            BufferedWriter bw=new BufferedWriter(fw);
            for(int j=0;j<content.length;j++){
                bw.write(content[j]);
                bw.newLine();
            }
            bw.close();
            bw.close();
        }catch (IOException e){
            e.printStackTrace();
        }
        do {
            try{
                FileReader fr=new FileReader(file);
                BufferedReader br=new BufferedReader(fr);
                String tmp=null;
                int i=1;
                while ((tmp=br.readLine())!=null){
                    System.out.println(tmp);
                    i++;
                }
                br.close();
                br.close();
            }catch (IOException e){
                e.printStackTrace();
            }
            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) {
                InterShow show=(Goodsinfor g)->{
                    System.out.println("Goods num="+g.getNum()+",name="+g.getName()+",price="+g.getPrice());
                };
                show.show(g1);
                show.show(g2);
                show.show(g3);
                show.show(g4);
                show.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;

public class LandException extends Exception{
    public LandException(){
        super();
    }
    public LandException(String msg){
        super(msg);
    }
    public Throwable fillInStacKTrace(){
        return this;
    }
}
package mainclass;


import java.util.Scanner;

public class Goods {
    public void land(int num) throws LandException {
        if (num != 1)
            throw new LandException("密码错误,不合理,请重新输入");
        else
            System.out.println("密码正确,再次确认");
    }
    public static void main(String[] args)  {
        System.out.println("#################");
        System.out.println("欢迎来到**超市");
        System.out.println("################");
        Goods s=new Goods();
        Salesperson person=new Salesperson();
        Scanner scn=new Scanner(System.in);
        System.out.println("请输入密码:");
        int num=scn.nextInt();
        try{
            s.land(num);
        }catch(LandException e){
            e.printStackTrace();
        }
        person.use();
    }
}

operate包

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;
    }
}
package operate;

import attribute.Goodsinfor1;

import java.util.Arrays;
import java.util.Scanner;

public class Change implements InterC{
    public void change(){
        String arr[]=new String[]{"可口可乐","雪碧","冰红茶","牛奶","零食"};
        int arr1[]=new int[]{8,6,4,5,2};
        Scanner in=new Scanner(System.in);
        int i;
        System.out.println("请输入编号:");
        int num=in.nextInt();
        System.out.println("请选择更改信息,1.名称,2.价格:");
        int num1=in.nextInt();
        if(num1==1) {
            System.out.println("请输入名称");
            String name = in.nextLine();
            Arrays.fill(arr, num - 1, num, name);
        }
        else if(num1==2) {
            System.out.println("请输入价格:");
            int price = in.nextInt();
            Arrays.fill(arr1, num - 1, num, price);
        }
        for(i=0;i<arr.length;i++) {
            Goodsinfor1 g = new Goodsinfor1(i+1,arr[i] ,arr1[i] );
            System.out.println("Goods num=" + g.getNum() + ",name=" + g.getName() + ",price=" + g.getPrice());
        }
    }
}
package operate;

import attribute.Goodsinfor;

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

public class Delete implements InterB{
    public void delete()
    {
        ArrayList<String> list=new ArrayList<String>();
        list.add("可口可乐");
        list.add("雪碧");
        list.add("冰红茶");
        list.add("牛奶");
        list.add("零食");
        Scanner in=new Scanner(System.in);
        int i;
        System.out.println("请输入编号:");
        int num=in.nextInt();
        list.remove(num-1);
        for(i=0;i<list.size();i++) {
            Goodsinfor g = new Goodsinfor(i+1, list.get(i));
            System.out.println("Goods num=" + g.getNum() + ",name=" + g.getName() + ",price=" + g.getPrice());
        }
    }
}
package operate;

import attribute.Goodsinfor;

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

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

import attribute.Goodsinfor;
import attribute.Goodsinfor1;

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

public class Increase implements InterA{
    public void increase()
    {
        ArrayList<String> list=new ArrayList<String>();
        list.add("可口可乐");
        list.add("雪碧");
        list.add("冰红茶");
        list.add("牛奶");
        list.add("零食");
        ArrayList<Integer> list1=new ArrayList<Integer>();
        list1.add(8);
        list1.add(6);
        list1.add(4);
        list1.add(5);
        list1.add(2);
        Scanner in=new Scanner(System.in);
        int i;
        System.out.println("请输入名称:");
        String name=in.nextLine();
        System.out.println("请输入价格:");
        int price=in.nextInt();
        list.add(name);
        list1.add(price);
        for(i=0;i<list.size();i++) {
            Goodsinfor g = new Goodsinfor1(i+1,list.get(i) ,list1.get(i) );
            System.out.println("Goods num=" + g.getNum() + ",name=" + g.getName() + ",price=" + g.getPrice());
        }
    }
}

异常类没有传上去,没改,跟之前一样。输入、输出流是一条通道程序,将源中的字节程序送到目的地。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值