📌 쇼핑몰 코드 짜기 전 설계도

📌 관리자 메뉴 클래스
package project;
import java.util.Scanner;
public class Manager {
Scanner sc = new Scanner(System.in);
private boolean start = true;
final private String PASSWORD = "8520";
public boolean isStart() {
return start;
}
public void setStart(boolean start) {
this.start = start;
}
public void ManagerShop(){
while(isStart()) {
System.out.println("비밀번호를 입력해주세요 : ");
String num = sc.nextLine();
if(num.equals(PASSWORD)) {
System.out.println("비밀번호가 일치합니다");
System.out.println("준비된 수량이 마감되어 오늘 하루 주문을 마감하겠습니다.");
break;
}else {
System.out.println("비밀번호가 불일치합니다 다시 입력바랍니다.");
}
}
}
}
📌 주문하기 메뉴 클래스
package project;
import java.util.Random;
import java.util.Scanner;
public class Order extends Manager {
Scanner sc = new Scanner(System.in);
Random r = new Random();
private int jeanCnt = 0;
private int outerCnt = 0;
private int neatCnt = 0;
private int skirtCnt = 0;
public void OrderShop(){
jeanCnt = 0;
outerCnt = 0;
neatCnt = 0;
skirtCnt = 0;
while(isStart()) {
System.out.println("원하시는 상품번호를 입력하시면 장바구니에 추가 됩니다");
System.out.println("1. 청바지 : 15000원");
System.out.println("2. 가디건 : 25000원");
System.out.println("3. 니트 : 20000원");
System.out.println("4. 치마 : 10000원");
System.out.println("5. 결제하기");
System.out.println("6. 장바구니 비우기");
System.out.print("번호 입력 : ");
int choice = Integer.parseInt(sc.nextLine());
if(choice == 1) {
jeanCnt++;
System.out.println("청바지 한개가 추가되었습니다.");
}else if(choice == 2) {
outerCnt++;
System.out.println("가디건 한개가 추가되었습니다.");
}else if(choice == 3) {
neatCnt++;
System.out.println("니트 한개가 추가되었습니다.");
}else if(choice == 4) {
skirtCnt++;
System.out.println("치마 한개가 추가되었습니다.");
}else if(choice == 5) {
int totalCost = jeanCnt*15000 + outerCnt*25000
+ neatCnt*20000 + skirtCnt*10000;
System.out.println("총 금액은 " + totalCost + "원 입니다");
System.out.println("결제를 시작하시겠습니까 ? ");
System.out.println("1. YES // 2. NO");
int money = Integer.parseInt(sc.nextLine());
while(isStart()) {
if(money == 1) {
System.out.println("카드결제 하시려면 카드를 입력하시고, 무통장입금은 무통장입금을 입력해주세요");
String input = sc.nextLine();
if(input.equals("카드")) {
System.out.println("주소를 입력해 주세요 : ");
String home = sc.nextLine();
System.out.printf("주문번호는 " + "%06d번 입니다\n", r.nextInt(999999)+1);
System.out.println(home + "으로 배달 예정입니다 주문해주셔서 감사합니다.");
return;
}else if(input.equals("무통장입금")) {
System.out.println("주소를 입력해 주세요 : ");
String home = sc.nextLine();
System.out.printf("주문번호는 " + "%06d번 입니다\n", r.nextInt(999999)+1);
System.out.println("3333-12-123-1234로 " + totalCost + "원 입금부탁드리겠습니다");
System.out.println(home + "으로 배달 예정입니다 주문해주셔서 감사합니다.");
System.out.println("-----------------------------------------------------");
return;
}else {
System.out.println("정확하게 다시 입력해주세요");
}
}if(money == 2){
System.out.println("다시 주문화면으로 돌아갑니다");
break;
}
}
}else if(choice == 6) {
System.out.println("장바구니를 비우겠습니까?");
System.out.println("1. YES || 2. NO");
int el = Integer.parseInt(sc.nextLine());
switch(el) {
case 1:
jeanCnt = 0;
outerCnt = 0;
neatCnt = 0;
skirtCnt = 0;
default:
}
}else {
System.out.println("다시 입력해주세요.");
}
System.out.println("---------------------------------------");
System.out.println("==고객님의 장바구니==");
System.out.println("청바지 : " + jeanCnt + "개 = 총 " + jeanCnt*15000 + "원");
System.out.println("가디건 : " + outerCnt + "개 = 총 " + outerCnt*25000 + "원");
System.out.println("니트 : " + neatCnt + "개 = 총 " + neatCnt*20000 + "원");
System.out.println("치마 : " + skirtCnt + "개 = 총 " + skirtCnt*10000 + "원");
System.out.println("총 금액 : " + (jeanCnt*15000 +
outerCnt*25000 + neatCnt*20000 + skirtCnt*10000 + "원 입니다"));
System.out.println("---------------------------------------");
}
}
}
📌 메인메뉴 클래스
package project;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Order or = new Order();
Manager ma = new Manager();
while(true) {
System.out.println("===== 메인화면 =====");
System.out.println("1. 주문하기");
System.out.println("2. 관리자모드");
System.out.print("원하시는 번호를 입력하세요 : ");
int choice = Integer.parseInt(sc.nextLine());
if(choice == 1) {
or.OrderShop();
}else if(choice == 2) {
ma.ManagerShop();
break;
}else {
System.out.println("번호를 잘못입력하셧습니다.");
System.out.println("다시 입력 바랍니다.");
}
}
}
}
📌 출력 값
👉 주문하기 출력해보기
장바구니에 담고싶은 물건의 각 번호(1~4)를 입력 -> 자동으로 장바구니에 담깁니다. 장바구니를 비우고 싶을땐 6번을 입력 -> 장바구니안에 있는 모든 상품들이 초기화됩니다. 결제하기 5번 입력 -> 카드/무통장입금 중 결제할 수단을 입력 후 주소를 입력하면 자동으로 랜덤 주문번호, 주소, 계좌번호(무통장입금만 해당)이 출력된 후 다시 메인메뉴로 돌아갑니다.


👉 관리자메뉴 출력해보기
미리 설정한 비밀번호인 "8520" 이외의 번호를 입력하였을 때에는비밀번호가 불일치합니다 다시 입력바랍니다 출력 후 , 다시 비밀번호 입력칸으로 돌아가게끔 코드작성을 해보았습니다**
