介绍
刚学完java 集合和IO流,想做了一个简单的小项目来练手,于是我就运用一些基础知识做了这个水果摊。水果摊的主要功能有:
- 进货
- 查看水果列表
- 购买水果
- 查看购物车
- 结账
- 退出
都是一些简单的功能,下面就来展示代码;
代码
主菜单
public class MyList {public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException, IOException {System.out.println("欢迎来到水果摊");Scanner scanner =new Scanner(System.in);int f=0;while(true) {System.out.println("请选择业务类型:");System.out.println("0.进货,1.查看列表,2.购买水果,3.查看购物车,4.结账,5"+ "退出");int m =scanner.nextInt();switch(m) {case 0:Stock.Stock();break;case 1:Kind.Kind(); break;case 2:Buy.Buy();break;case 3:Shoppings.Shoppings();break;case 4:Pay.Pay();break;case 5:System.out.println("感谢惠顾!");f=1;break;default:System.out.println("输入错误,请重新输入");break; }if(f==1)break;}}}
进货
package com.vector.units;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.vector.dao.Fruit;
import com.vector.service.FileOutput;public class Stock {static List<Fruit> list;public static void Stock() throws FileNotFoundException {List<Fruit> list = new ArrayList<>();Scanner scanner = new Scanner(System.in);String name;double price;int i = 1;while (true) {System.out.println("请输入第" + i + "种水果的种类:");name = scanner.next();System.out.println("请输入第" + i + "种水果的价格:");price = scanner.nextInt();Fruit sg = new Fruit(name, price);list.add(sg);setList(list);System.out.println("输入0继续,输入1结束进货");i++;int f = scanner.nextInt();if (f == 1) {break;}}FileOutput.FileOutput();}public static List<Fruit> getList() {return list;}public static void setList(List<Fruit> list) {Stock.list = list;}
}
查看水果列表
package com.vector.units;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.List;
import com.vector.dao.Fruit;
import com.vector.service.FileInput;
import com.vector.service.FileOutput;public class Kind {static List<Fruit> list = new ArrayList<Fruit>();static Object ob;public static void Kind() throws ClassNotFoundException, FileNotFoundException, IOException {FileInput fileInput = new FileInput();list = (List<Fruit>) fileInput.FileInput().readObject();Kind.setList(list);System.out.println("总共有" + list.size() + "种水果,分别为:");for (Fruit s : list) {System.out.println(s);}}public static List<Fruit> getList() {return list;}public static void setList(List<Fruit> list) {Kind.list = list;}public static Object getOb() {return ob;}public static void setOb(Object ob) {Kind.ob = ob;}
}
购买水果
package com.vector.units;import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;import com.vector.dao.Fruit;
import com.vector.service.Mapp;public class Buy {static String name;static List<Integer> M;static Map<String, Double> fruit3;public static void Buy() throws FileNotFoundException {Map<String, Fruit> fruit = Mapp.Mapp();Map<String, Double> fruit2 = Mapp.Mapp1();Map<String, Double> fruit3 = Mapp.Mapp2();String name;int m;List<Integer> M = new ArrayList<>();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请输入你要购买的水果名称:");name = scanner.next();Buy.setName(name);if (fruit.get(name) == null) {System.out.println("输入错误,请重新选择输入!");break;}System.out.println(fruit.get(name));int f1 = 0;Set ss1 = fruit3.entrySet();Iterator it = ss1.iterator();int t = 0;int n = 0;while (it.hasNext()) {Object obj = it.next();Map.Entry entry = (Map.Entry) obj;if (entry.getKey().equals(name)) {t = 1;break;}n++;}int m1;int m2;if (t == 1) {System.out.println("请输入购买的斤数:");m1 = scanner.nextInt();m2 = m1 + M.get(n);M.set(n, m2);} else {fruit3.put(name, fruit2.get(name));// System.out.println(fruit3.get(name));System.out.println("请输入购买的斤数:");m = scanner.nextInt();M.add(m);}Buy.setFruit3(fruit3);System.out.println("输入0继续,输入1结束");int f = scanner.nextInt();if (f == 1) {break;}}Buy.setM(M);}public static String getName() {return name;}public static void setName(String name) {Buy.name = name;}public static Map<String, Double> getFruit3() {return fruit3;}public static List<Integer> getM() {return M;}public static void setM(List<Integer> m) {M = m;}public static void setFruit3(Map<String, Double> fruit3) {Buy.fruit3 = fruit3;}}
购物车
package com.vector.units;import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;
import com.vector.units.Buy;
import com.vector.service.Mapp;public class Shoppings {static double Total;public static void Shoppings() throws FileNotFoundException {Map<String, Double> fruit = Buy.getFruit3();double n = 0;List<Integer> M = Buy.getM();int m = 0;for (String key : fruit.keySet()) {System.out.println("水果名称: " + key + ",水果的价格:" + fruit.get(key) + "/斤" + "水果的数量" + M.get(m) + "斤");n += M.get(m) * fruit.get(key);m++;}Shoppings.setTotal(n);}public static double getTotal() {return Total;}public static void setTotal(double total) {Total = total;}}
结账
package com.vector.units;public class Pay {public static void Pay() {double inTotal = Shoppings.getTotal();System.out.println("请付钱"+inTotal+"元"); }
}
下面的类都是一些用于实现功能的其他类
水果信息
package com.vector.dao;import java.io.Serializable;public class Fruit implements Serializable {String name;double price;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;}public Fruit(String name, double price) {super();this.name = name;this.price = price;}@Overridepublic String toString() {return "水果名称:" + name + ",价格" + price + "/斤";}
}
写出文件
public class FileOutput {public static FileOutputStream FileOutput() throws FileNotFoundException {File file =new File ("D:\\eclip\\Fruit\\list1.txt");FileOutputStream fileOut = new FileOutputStream(file);try {ObjectOutputStream objectOut =new ObjectOutputStream(fileOut);objectOut.writeObject(Kind.getList());objectOut.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return fileOut;}
}
读入
package com.vector.service;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;public class FileInput {public ObjectInputStream FileInput() throws FileNotFoundException, IOException {ObjectInputStream in=new ObjectInputStream(new FileInputStream(new File("D:\\eclip\\Fruit\\list1.txt")));return in;
}
}
Map工具类
package com.vector.service;import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.vector.dao.Fruit;
import com.vector.units.Kind;
import com.vector.units.Stock;public class Mapp {public static Map<String, Fruit> Mapp() throws FileNotFoundException {List<Fruit> list = Kind.getList();Map<String, Fruit> fruit = new HashMap<String, Fruit>();for (Fruit list1 : list) {fruit.put(list1.getName(), list1);}return fruit;}public static Map<String, Double> Mapp1() throws FileNotFoundException {List<Fruit> list = Kind.getList();Map<String, Double> fruit2 = new HashMap<String, Double>();for (Fruit list2 : list) {fruit2.put(list2.getName(), list2.getPrice());}return fruit2;}public static Map<String, Double> Mapp2() throws FileNotFoundException {Map<String, Double> fruit3 = new HashMap<String, Double>();return fruit3;}
}
总结
由于是用来练习的小项目,代码写的有些粗糙,还望大家见谅。
.
.
.
.
看都看完了,还不三连鼓励一下吗
.
.
.
.