상품을 등록하고, 삭제하며, 수정할 수 있는 기능(키오스크 처럼)
package day05;
public class Product {
private int num;
private String name;
private int price;
private static int idx = 0;
public Product() {}
public Product(String name, int price) {
this.name = name;
this.price = price;
idx++;
this.num = idx;
}
public void insertProduct(String name, int price) {
this.name = name;
this.price = price;
idx++;
this.num = idx;
}
@Override
public String toString() {
return num + "." + name + ":" + price;
}
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;
}
}
상품의 정보를 저장. 상품의 번호, 이름, 가격을 멤버변수로 가지고 있으며, 번호는 정적(static) 멤버변수로로 관리.(자동증가)
package day05;
import java.util.Scanner;
public class ProductController {
private Product menu[] = new Product[2];
private int cnt;
public void printProduct() {
if (cnt == 0) {
System.out.println("등록된 상품이 없습니다.");
return;
}
System.out.println("-- 등록된 상품 리스트 --");
for (int i = 0; i < cnt; i++) {
System.out.print(menu[i].toString() + " ");
}
System.out.println();
}
public void insertProduct(Scanner scan) {
if (cnt == menu.length) {
Product[] tmp = new Product[menu.length + 5];
System.arraycopy(menu, 0, tmp, 0, cnt);
menu = tmp;
}
System.out.println("상품명 >");
String name = scan.next();
System.out.println("가격>");
int price = scan.nextInt();
Product p = new Product();
p.insertProduct(name, price);
menu[cnt] = p;
cnt++;
}
public void deleteProduct(Scanner scan) {
System.out.println("삭제할 상품명>");
String deleteName = scan.next();
int index = -1;
for (int i = 0; i < cnt; i++) {
if (menu[i].getName().equals(deleteName)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("찾는 상품이 없습니다.");
return;
}
int copyCnt = menu.length - index - 1;
System.arraycopy(menu, index + 1, menu, index, copyCnt);
menu[cnt - 1] = null;
cnt--;
printProduct();
}
public void modifyProduct(Scanner scan) {
System.out.println("수정할 상품명>");
String searchName = scan.next();
for (int i = 0; i < cnt; i++) {
if (menu[i].getName().equals(searchName)) {
System.out.println("수정금액>");
int price = scan.nextInt();
menu[i].setPrice(price);
return;
}
}
System.out.println("찾는 상품이 없습니다.");
}
public void setMenu(Product[] menu) {
this.menu = menu;
}
public Product[] getMenu() {
return menu;
}
}
상품을 등록, 삭제, 수정하고 전체 리스트를 출력하는 컨트롤러
package day05;
import java.util.Scanner;
public class ProductMain {
public static void main(String[] args) {
ProductController productController = new ProductController();
Scanner scan = new Scanner(System.in);
int menu = 0;
do {
System.out.println("1.전체 상품리스트 | 2.상품등록 | 3.상품삭제 | 4.상품수정 | 5.종료 ");
System.out.print("menu > ");
menu = scan.nextInt();
switch(menu) {
case 1: productController.printProduct(); break;
case 2: productController.insertProduct(scan); break;
case 3: productController.deleteProduct(scan); break;
case 4: productController.modifyProduct(scan); break;
case 5: System.out.println("키오스크 종료!!"); break;
default: System.out.println("잘못된 메뉴입니다.");
}
} while(menu != 5);
scan.close();
}
}
메뉴를 통해 상품 리스트를 출력, 등록, 삭제, 수정하는 기능을 호출
'백엔드 > Java' 카테고리의 다른 글
| Java로 로또 추첨기 만들기 (1) | 2024.10.12 |
|---|---|
| Java 인터페이스 (0) | 2024.10.11 |
| Java로 상품 관리 시스템 구현(1) (0) | 2024.10.08 |
| Java 추상 클래스(abstract) (0) | 2024.10.08 |
| Java 상속(Extends) (2) | 2024.10.07 |