初學java,還不太熟悉,技術有限,多多包涵,哈哈。
水果超市 包括以下功能:
1.添加水果2.顯示水果
3.根據編號查詢水果
4.刪除水果
5.添加購物車
6.查看購物車
7.根據編號修改水果
0.退出
下面是我的包及類的構造:
代碼展示:
package com.gem.fruit.entity;
public class Fruit {
private int fruitID;
private String name;
private double price;
private int count;
private String address;
public int getFruitID() {
return fruitID;
}
public void setFruitID(int fruitID) {
this.fruitID = fruitID;
}
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 int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Fruit() {
super();
// TODO Auto-generated constructor stub
}
public Fruit(int fruitID, String name, double price, int count, String address) {
super();
this.fruitID = fruitID;
this.name = name;
this.price = price;
this.count = count;
this.address = address;
}
@Override
public String toString() {
return "Fruit [fruitID=" + fruitID + ", name=" + name + ", price=" + price + ", count=" + count + ", address="
+ address + "]";
}
}
package com.gem.fruit.entity;
public class User {
private int userId;
private String userName;
private String userPassword;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public User(int userId,String userName, String userPassword) {
super();
this.userId=userId;
this.userName = userName;
this.userPassword = userPassword;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((userName == null) ? 0 : userName.hashCode());
result = prime * result + ((userPassword == null) ? 0 : userPassword.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (userName == null) {
if (other.userName != null)
return false;
} else if (!userName.equals(other.userName))
return false;
if (userPassword == null) {
if (other.userPassword != null)
return false;
} else if (!userPassword.equals(other.userPassword))
return false;
return true;
}
public User() {
super();
User user=new User(10001,"admin","123456");
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "User [userId="+userId+",userName="+userName+",userPassword="+userPassword+"]";
}
}
package com.gem.fruit.entity;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Cart {
private Map<Integer,Item> maps=new HashMap<>();
public void addCart(Item item) {
if(maps.size()>0) {
Set<Integer> ids=maps.keySet();
boolean b=false;
for(Integer i:ids) {
if(i.equals(item.getFruit().getFruitID())) {
Item it=maps.get(i);
it.setBuyCount(it.getBuyCount()+item.getBuyCount());
it.setAllPrice(it.getAllPrice()+item.getAllPrice());
maps.put(i, it);
b=true;
break;
}
}if(!b) {
maps.put(item.getFruit().getFruitID(), item);
}
}else {
maps.put(item.getFruit().getFruitID(), item);
}
}
public void showCart() {
if(maps.size()>0) {
double allPrice=0;
System.out.println("商品名稱\t"+"商品單價\t"+"購買數量\t"+"總價格\t");
Collection<Item> items=maps.values();
for(Item i:items) {
System.out.println(i.getFruit().getName()+"\t"+i.getFruit().getPrice()+"\t"+i.getBuyCount()+"\t"+i.getAllPrice());
allPrice+=i.getAllPrice();
}
System.out.println("\t\t總價格是:"+allPrice);
}else {
System.out.println("購物車沒有商品,趕緊去買買買買");
}
}
}
package com.gem.fruit.entity;
public class Item {
private Fruit fruit;
private int buyCount;
private double allPrice;
public Fruit getFruit() {
return fruit;
}
public void setFruit(Fruit fruit) {
this.fruit = fruit;
}
public int getBuyCount() {
return buyCount;
}
public void setBuyCount(int buyCount) {
this.buyCount = buyCount;
}
public double getAllPrice() {
return allPrice;
}
public void setAllPrice(double allPrice) {
this.allPrice = allPrice;
}
public Item() {
super();
// TODO Auto-generated constructor stub
}
public Item(Fruit fruit, int buyCount, double allPrice) {
super();
this.fruit = fruit;
this.buyCount = buyCount;
this.allPrice = allPrice;
}
}
package com.gem.fruit.dao;
import com.gem.fruit.entity.User;
public interface IUserDao {
boolean Login(User user);
void register(User user);
}
package com.gem.fruit.dao;
import com.gem.fruit.entity.User;
public class UserImpl implements IUserDao{
static User users []=new User[10];
static int index=0;
public UserImpl() {
User u=new User(101,"admin","123");
users[index++]=u;
}
@Override
public boolean Login(User user) {
if(user==null) {
return false;
}
for(int i=0;i<users.length;i++) {
if(user.equals(users[i])){
return true;
}
}
return false;
}
@Override
public void register(User user) {
if(index==users.length) {
User newArry[]=new User[users.length];
for(int i=0;i<users.length;i++) {
newArry[i]=users[i];
}
users=newArry;
users[index++]=user;
}else {
users[index++]=user;
}
}
}
package com.gem.fruit.dao;
import java.util.List;
import com.gem.fruit.entity.Fruit;
public interface IFruitDao {
public void add(Fruit fruit);
public List<Fruit> queryAllFruit();
public Fruit queryFruitById(int id);
public void removeFruit(int id);
public void modifyFruitByNum(Fruit fruit);
}
package com.gem.fruit.dao;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.gem.fruit.entity.Fruit;
public class FruitDaoImpl implements IFruitDao{
List<Fruit> fs=new ArrayList();
int index=0;
@Override
public void add(Fruit fruit) {
fs.add(fruit);
}
@Override
public List<Fruit> queryAllFruit() {
return fs;
}
@Override
public Fruit queryFruitById(int id) {
for(Fruit f:fs) {
if(f.getFruitID()==id) {
return f;
}
}
return null;
}
@Override
public void removeFruit(int id) {
for(Fruit f:fs) {
if(f.getFruitID()==id) {
fs.remove(f);
break;
}
}
}
public void modifyFruitByNum(Fruit fruit) {
for(Fruit f:fs) {
if(f.getFruitID()==fruit.getFruitID()) {
fs.remove(f);
break;
}
}
fs.add(fruit);
}
}
package com.gem.fruit.main;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.gem.fruit.dao.FruitDaoImpl;
import com.gem.fruit.dao.IFruitDao;
import com.gem.fruit.dao.IUserDao;
import com.gem.fruit.dao.UserImpl;
import com.gem.fruit.entity.Cart;
import com.gem.fruit.entity.Fruit;
import com.gem.fruit.entity.Item;
import com.gem.fruit.entity.User;
public class mainApp {
static IUserDao ud=new UserImpl();
static IFruitDao fd=new FruitDaoImpl();
static Scanner sc=new Scanner(System.in);
static mainApp ma=new mainApp();
Cart cart=new Cart();
int count;
public static void main(String[] args) {
System.out.println("請選擇操作:(登錄(L)註冊(R))");
String op=sc.next();
if("R".equals(op)) {
ma.register();
System.out.println("註冊成功,請登錄");
ma.loginCl();
ma.operator();
}else if("L".equals(op)){
ma.loginCl();
ma.operator();
}else {
System.out.println("輸入錯誤系統退出");
System.exit(0);
}
}
public void operator() {
Scanner sc=new Scanner(System.in);
while(true) {
showMenu();
System.out.println("請輸入您要進行的操作");
String op=sc.next();
switch (op) {
case "1":
ma.addFruit(sc);
ma.showFruit();
break;
case "2":
ma.showFruit();
break;
case "3":
System.out.println("請輸入水果編號");
String num=sc.next();
ma.showFruitByNum(num);
break;
case "4":
System.out.println("請輸入水果編號:");
String num2=sc.next();
ma.removeFruit(num2);
ma.showFruit();
break;
case "5":
ma.showFruit();
System.out.println("請輸入所要購買的水果的編號:");
num=sc.next();
System.out.println("請輸入購買數量:");
int count=sc.nextInt();
ma.addCart(Integer.parseInt(num), count);
break;
case "6":
cart.showCart();
break;
case "7":
ma.showFruit();
ma.modifyFruit();
ma.showFruit();
break;
case "0":
System.out.println("退出系統,歡迎下次再來,拜拜");
System.exit(0);
break;
default:
System.out.println("輸入錯誤,退出系統");
System.exit(0);
break;
}
}
}
public void register() {
System.out.println("請輸入id");
int id=sc.nextInt();
System.out.println("請輸入名字");
String name=sc.next();
System.out.println("請輸入密碼");
String password=sc.next();
User user=new User(id,name,password);
ud.register(user);
}
public boolean login() {
System.out.println("請輸入名字");
String name=sc.next();
System.out.println("請輸入密碼");
String password=sc.next();
User user=new User(0,name,password);
return ud.Login(user);
}
public void addFruit(Scanner sc) {
System.out.println("請輸入水果編號");
int fruitId=sc.nextInt();
System.out.println("請輸入水果名字");
String fruitName=sc.next();
System.out.println("請輸入水果價格");
double fruitPrice=sc.nextDouble();
System.out.println("請輸入水果庫存");
int fruitCount=sc.nextInt();
System.out.println("請輸入水果產地");
String fruitAddress=sc.next();
Fruit fruit=new Fruit(fruitId,fruitName,fruitPrice,fruitCount,fruitAddress);
fd.add(fruit);
}
public void showFruitByNum(String num) {
Fruit f = fd.queryFruitById(Integer.parseInt(num));
if(f != null) {
System.out.println("編號\t"+"名稱\t"+"價格\t"+"庫存\t"+"產地\t");
System.out.println(f.getFruitID()+"\t"+f.getName()+"\t"+f.getPrice()+"\t"+f.getCount()+"\t"+f.getAddress());
} else {
System.out.println("此水果不存在。。。。。。");
}
}
public void showFruit() {
List<Fruit> f=fd.queryAllFruit();
if(f.isEmpty()) {
System.out.println("超市裏沒有水果信息");
}else {
System.out.println("水果編號\t"+"水果名字\t"+"水果價格\t"+"水果庫存\t"+"水果產地\t");
for(Fruit fruit:f) {
System.out.println(fruit.getFruitID()+"\t"+fruit.getName()+"\t"+fruit.getPrice()+"\t"+fruit.getCount()+"\t"+fruit.getAddress());
}
}
}
public void removeFruit(String num) {
fd.removeFruit(Integer.parseInt(num));
}
public void showMenu() {
System.out.println("===============");
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("7.根據編號修改水果");
System.out.println("0.退出");
System.out.println("=================================");
}
public void addCart(int num,int count) {
Fruit f=fd.queryFruitById(num);
Item item=new Item();
item.setFruit(f);
item.setBuyCount(count);
item.setAllPrice(f.getPrice()*count);
cart.addCart(item);
}
public void modifyFruit() {
System.out.println("請輸入需要修改的水果的編號:");
String num3=sc.next();
Fruit f=fd.queryFruitById(Integer.parseInt(num3));
if(f==null) {
System.out.println("沒有此水果。。。");
}else {
System.out.println("請輸入要修改的信息");
System.out.println("請輸入水果名稱:");
String name=sc.next();
System.out.println("請輸入水果庫存:");
int count2=sc.nextInt();
System.out.println("請輸入水果價格:");
double price=sc.nextDouble();
System.out.println("請輸入水果產地:");
String address=sc.next();
f.setAddress(address);
f.setCount(count2);
f.setName(name);
f.setPrice(price);
fd.modifyFruitByNum(f);
}
}
public void loginCl() {
boolean f=ma.login();
while(!f) {
System.out.println("請重新登錄");
if(count==1) {
System.out.println("三次機會已用完,退出系統");
count=0;
System.exit(0);
}
f=ma.login();
count++;
}
}
}