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());
}
}
}
异常类没有传上去,没改,跟之前一样。输入、输出流是一条通道程序,将源中的字节程序送到目的地。