创建一个超市生鲜价格变动的系统
变更的规则
西红柿,沙坪坝,3.00,vegetable
油麦菜,永川,1.50,vegetable
黄瓜,奉节,2.00,vegetablep
蒜薹,江津,2.20,vegetable
西红柿,云阳,3.00,vegetable
黄瓜,云阳,2.00,vegetable
油麦菜,云阳,1.50,vegetable
猪肉,山区放养,20.00,meat
猪肉,工厂饲养,10.00,meat
牛肉,山区放养,50.50,meat
牛肉,工厂饲养,35.8,meat
苹果,江津,3.50,fruit
香蕉,广东,2.50,fruit
香梨,库尔勒,3.30,fruit
芭蕉,江津,3.00,fruit
苹果,三门峡,3.30,fruit
苹果,陕西,3.50,fruit
创建生鲜类
public class Fresh {
private String name;
private String place;
private double price;
private String var;
public Fresh() {
}
public Fresh(String name, String place, double price, String var) {
this.name = name;
this.place = place;
this.price = price;
this.var = var;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getVar() {
return var;
}
public void setVar(String var) {
this.var = var;
}
}
创建超市类
public class SuperMarket {
public static void main(String[] args) {
ArrayList<Fresh> freshes = marketFreshTable(new ArrayList<>());
updateVegetable(freshes);
writeToFile(freshes);
}
读取菜单,并且创建菜品列表
public static ArrayList<Fresh> marketFreshTable(ArrayList<Fresh> freshes){
try{
BufferedReader read = new BufferedReader(new FileReader("D:\\学习资料\\超市生鲜.txt"));
String str = null;
while((str = read.readLine()) != null) {
if(!str.equals("")){
String[] line = str.split(",");
Fresh fresh = new Fresh();
fresh.setName(line[0]);
fresh.setPlace(line[1]);
fresh.setPrice(Double.parseDouble(line[2]));
fresh.setVar(line[3]);
freshes.add(fresh);
}
}
}
catch (Exception e){
System.out.println(e);
}
return freshes;
}
定义属于重庆地区的enum
public enum ChongQin{
江津,云阳,永州,奉节,沙坪坝;
}
更新菜单,按照要求
public static ArrayList<Fresh> updateVegetable(ArrayList<Fresh> freshes){
for (int i = 0; i < freshes.size(); i++) {
Fresh fresh = freshes.get(i);
switch (fresh.getVar()){
case "vegetable":
if(fresh.getPlace().equals("江津")){
fresh.setPrice(fresh.getPrice() + 1.2);
}
else {
fresh.setPrice(fresh.getPrice() + 0.5);
}
break;
case "meat":
if(fresh.getPlace().equals("山区放养")){
fresh.setPrice(fresh.getPrice() + 5.88);
}
else {
fresh.setPrice(fresh.getPrice() + 2);
}
break;
case "fruit":
boolean flag = false;
for (ChongQin place:ChongQin.values()) {
if(fresh.getPlace().equals(place)){
flag =true;
}
}
if(flag){
fresh.setPrice(fresh.getPrice() + 1.08);
} else {
fresh.setPrice(fresh.getPrice() + 2.88);
}
break;
}
}
return freshes;
}
把更新的菜单写入到源文件中
public static void writeToFile(ArrayList<Fresh> freshes) {
try{
FileWriter fw = new FileWriter("D:\\学习资料\\超市生鲜.txt",true);
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("----------------------------------------------\n");
for (int i = 0; i < freshes.size(); i++) {
Fresh fresh = freshes.get(i);
String str = fresh.getName()+","+fresh.getPlace()+","+fresh.getPrice()+","+fresh.getVar()+"\n";
bufw.write(str);
}
bufw.close();
}catch (Exception e){
System.out.println(e);
}
}