Javaコード簡単シミュレーションショッピングモールカート
65910 ワード
純Javaコードシミュレーション単純ショッピングカート機能
1.Productクラス
2.ShoppingCar類
3.Testクラス
1.Productクラス
import java.util.Objects;
public class Product implements Comparable{
private Integer id;
private String name;
private double price;
public Product() {
}
public Product(Integer id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Product product = (Product) o;
return Double.compare(product.price, price) == 0 &&
Objects.equals(id, product.id) &&
Objects.equals(name, product.name);
}
@Override
public int hashCode() {
return this.id/10;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "{" +
" :" + id +
", :" + name + '\'' +
", :" + price +
'}'+"
";
}
@Override
public int compareTo(Object o) {
Product product = (Product)o;
int this_id = this.id;
int p_id = product.getId();
return this_id > p_id?1:-1;
}
}
2.ShoppingCar類
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class ShoppingCar {
private Map<Product,Integer> cars;
private double totalPrice;
public ShoppingCar(){
cars = new HashMap<>();
}
//
public void addProducts(Product p,Integer num){
if (num<=0){
System.out.println(" 1!");
return;
}
if (cars.containsKey(p)){
//
int productcount_before = cars.get(p);
int productcount_after = productcount_before + num;
cars.put(p,productcount_after);
System.out.println(" !");
}else {
//
cars.put(p,num);
System.out.println(" !");
}
double price = (p.getPrice())*num;
totalPrice = totalPrice + price;
}
//
public void addProducts(Product product){
addProducts(product,1);
System.out.println(" !");
}
// ( )
public void removeProducts(Product product,Integer deletenum){
if (!cars.containsKey(product)){
System.out.println(" !");
return;
}
//
int productNum = cars.get(product);
if (deletenum>productNum){
System.out.println(" !");
return;
}
//
//key value
int afterDelete = productNum - deletenum;
//
if (productNum == deletenum){
cars.remove(product);
System.out.println(" !");
}else {
cars.put(product,afterDelete);
System.out.println(" !");
}
//
double price = (product.getPrice()) * deletenum;
totalPrice = totalPrice - price;
}
//
public void deleteClassProduct(Product product){
if (!cars.containsKey(product)){
System.out.println(" !");
return;
}
cars.remove(product);
System.out.println(" !");
}
//
public void deleteAproduct(Product product){
this.removeProducts(product,1);
}
//
public void clearShoppingCar(){
if (cars.size()<=0){
System.out.println(" ~"+"
");
return;
}
cars.clear();
totalPrice = 0.0;
System.out.println(" !");
}
//
public void checkOut() throws Exception{
if (cars.size()<=0){
System.out.println(" ~"+"
");
return;
}else {
System.out.println(" ··········");
Thread.sleep(3000);
StringBuilder sb = new StringBuilder();
sb.append("\t\t :"+"
");
sb.append("へへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへ
");
for (Map.Entry<Product,Integer> me : cars.entrySet()){
int num = me.getValue();
Product product = me.getKey();
int pid = product.getId();
String pname = product.getName();
double price = product.getPrice();
sb.append("\t\t :"+pid+"\t :"+pname+"\t :"+price+"\t :"+num+"
");
}
sb.append("
");
sb.append("\t\t\t\t\t :"+totalPrice+"
");
sb.append("\t\t , !");
System.out.println(sb.toString());
clearShoppingCar();
}
}
//
public void lookCars(){
if (cars.size()<=0){
System.out.println(" ~"+"
");
return;
}else {
StringBuilder sb = new StringBuilder();
sb.append("\t\t ↓ ↓ ↓ ↓ ↓:"+"
");
for (Map.Entry<Product,Integer> me : cars.entrySet()){
int num = me.getValue();
Product product = me.getKey();
int pid = product.getId();
String pname = product.getName();
double price = product.getPrice();
sb.append("\t\t :"+pid+"\t :"+pname+"\t :"+price+"\t :"+num+"
");
}
System.out.println(sb.toString());
}
}
public Map<Product, Integer> getCars() {
return cars;
}
public void setCars(Map<Product, Integer> cars) {
this.cars = cars;
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
@Override
public String toString() {
return "Shoppcar{" +
"cars=" + cars +
", totalPrice=" + totalPrice +
'}';
}
}
3.Testクラス
import java.util.Scanner;
public class Test {
static {
}
public static void main(String[] args)throws Exception{
Product[] products = new Product[4];
Product p1 = new Product(100," ",5.6);
Product p2 = new Product(200," ",7.8);
Product p3 = new Product(300," ",3.2);
Product p4 = new Product(400," ",3.2);
products[0] = p1;
products[1] = p2;
products[2] = p3;
products[3] = p4;
Scanner scanner = new Scanner(System.in);
System.out.println(" ?(Y/N)");
String confirm = scanner.nextLine();
if (confirm.equals("Y") || confirm.equals("y")){
ShoppingCar shoppcar = new ShoppingCar();
System.out.println("\t\t :");
show();
while (true){
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: ");
int choose = scanner.nextInt();
if (choose == 1){
System.out.println(" ");
int productNum = scanner.nextInt();
Product p = getProduct(productNum,products);
if (p != null){
System.out.println(" ");
int addCount = scanner.nextInt();
shoppcar.addProducts(p,addCount);
}else {
System.out.println(" !");
}
}
if (choose == 2){
System.out.println(" ");
int productNum = scanner.nextInt();
Product p = getProduct(productNum,products);
if (p != null){
System.out.println(" ");
int delCount = scanner.nextInt();
shoppcar.removeProducts(p,delCount);
}else {
System.out.println(" !");
}
}
if (choose == 3){
shoppcar.clearShoppingCar();
}if (choose == 4){
shoppcar.lookCars();
}
if (choose == 5){
shoppcar.checkOut();
}if (choose == 6){
System.out.println(" , !");
break;
}
}
}
else {
System.exit(0);
}
}
public static void show(){
Product p1 = new Product(100," ",5.6);
Product p2 = new Product(200," ",7.8);
Product p3 = new Product(300," ",3.2);
Product p4 = new Product(400," ",3.2);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(p4);
}
//
public static Product getProduct(int num,Product[] products){
for (int i=0 ;i<products.length;i++){
int id = products[i].getId();
if (id == num){
return products[i];
}
}
return null;
}
}