728x90
⚙ 본 프로그램은 명령 프롬프트를 열어 실행할 수 있도록 합니다.
였지만,, 한글 인코딩이 어떻게 해도 안돼서 포기 ,,
기능 설명
showMenu() : 선택할 메뉴를 보여준다.
selectMenu() : 번호를 입력 받아서 return한다.
- 이 때 1~6 외의 숫자가 들어오면 다시 선택하게 한다.
prod_input() : 등록할 상품명을 입력 받아서 List에 add
prod_remove() : 삭제할 상품명을 입력 받아서 isCorrect() 호출
- 상품명이 List에 존재하면 제거, 존재하지 않으면 다시 입력
prod_amount_add() : 입고할 상품명, 수량을 입력 받아서 isCorrect() 호출
- 상품명이 List에 존재하면 해당 상품의 수량 추가, 존재하지 않으면 다시 입력
prod_amount_decrease() : 출고할 상품명, 수량을 입력 받아서 isCorrect() 호출
- 이 때 상품명 불일치, 입력받은 수량이 출고할 상품 수량보다 크거나 0보다 작은 경우 다시 실행
prod_search() : 재고(상품명, 수량) 출력
추가가 필요한 기능
- 예외처리(메뉴 선택 시 int 외의 타입으로 들어올 경우)
- 생각 중
결과
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class MyStorage {
static String[] prodList = new String[10];
static int[] prodCount = new int[10];
static String name;
static int count;
// showMenu() 메서드가 호출되면 프로그램의 기능들을 보여줄 수 있도록 정의합니다.
static void showMenu(){
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("-".repeat(25));
}
// selectMenu() 메서드는 사용자가 프로그램의 기능을 선택할 수 있도록 합니다.
// 인자는 입력을 받기 위한 Scanner 클래스의 객체(s) 를 전달받습니다.
static int selectMenu(BufferedReader br) throws IOException{
int select;
System.out.print("[System] 원하는 기능의 번호를 입력하세요 : ");
select = Integer.parseInt(br.readLine());
return select;
}
//1. 물건 정보(제품명) 등록
static void prod_input(BufferedReader br) throws IOException{
System.out.print("[System] 등록을 원하는 제품명을 입력하세요 : ");
name = br.readLine();
System.out.println("[System] 등록이 완료됐습니다.");
for(int i=0; i<prodList.length; i++) {
if(prodList[i].equals("등록 가능")) {
prodList[i] = name;
break;
}
}
System.out.println("[System] 현재 등록된 제품 목록 ▼");
for(int i=0; i<prodList.length; i++) {
System.out.println("> "+prodList[i]);
}
System.out.println("-".repeat(25));
}
//2. 물건 정보(제품명) 등록 취소하기
static void prod_remove(BufferedReader br) throws IOException{
System.out.print("[System] 제품 등록 취소를 원하는 제품명을 입력하세요 : ");
name = br.readLine();
if(isCorrect(name)==false) prod_remove(br);
else {
for(int i=0; i<prodList.length; i++) {
if(prodList[i].equals(name)) {
for(int k=i+1; k<prodList.length; k++) {
prodList[k-1] = prodList[k];
prodCount[k-1] = prodCount[k];
}
if(prodList[prodList.length-1]==prodList[prodList.length-2]) {
prodList[prodList.length-1] = "등록 가능";
}
break;
}
}
}
System.out.println("[System] 제품 취소가 완료됐습니다.");
}
//3. 물건 넣기 (제품 입고)
static void prod_amout_add(BufferedReader br) throws IOException {
System.out.println("[System] 물건의 수량을 추가합니다. (입고)");
prod_search();
System.out.print("[System] 수량을 추가할 제품명을 입력하세요 : ");
name = br.readLine();
if(isCorrect(name)==false) prod_amout_add(br);
else {
System.out.print("[System] 추가할 수량을 입력해주세요 : ");
count = Integer.parseInt(br.readLine());
for(int i=0; i<prodList.length; i++) {
if(prodList[i].equals(name)) {
prodCount[i] += count;
}
}
System.out.println("[Clear] 정상적으로 제품의 수량 추가가 완료되었습니다.");
prod_search();
}
}
//4. 물건 빼기 (제품 출고)
static void prod_amount_decrease(BufferedReader br) throws IOException{
System.out.println("[System] 제품의 출고를 진행합니다.");
prod_search();
System.out.print("[System] 출고를 진행할 제품명을 입력하세요 : ");
name = br.readLine();
if(isCorrect(name)==false) prod_amount_decrease(br);
else {
System.out.print("[System] 원하는 출고량을 입력하세요 : ");
count = Integer.parseInt(br.readLine());
if(isCorrect(count)==false) prod_amount_decrease(br);
else {
for(int i=0; i<prodList.length; i++) {
if(prodList[i].equals(name)) {
prodCount[i] -= count;
}
}
System.out.println("[Clear] 출고가 완료되었습니다.");
prod_search();
}
}
}
//5. 재고 조회
static void prod_search() {
System.out.println("[System] 현재 등록된 제품 및 수량 ▼");
for(int i=0; i<prodList.length; i++) {
System.out.println("> "+prodList[i]+" : "+prodCount[i]+"개");
}
System.out.println("-".repeat(25));
}
//입력된 상품명, 수량이 올바른지 검사
static boolean isCorrect(String name) {
for(int i=0; i<prodList.length; i++) {
if(prodList[i].equals(name)) return true;
}
System.out.println("[System] 등록되지 않은 상품입니다.");
System.out.println("[System] 해당 메뉴를 다시 실행합니다.");
return false;
}
static boolean isCorrect(int count) {
for(int i=0; i<prodCount.length; i++) {
if(prodCount[i]>=count) return true;
if(prodCount[i]<0) {
System.out.println("[System] 상품 수량은 0보다 커야 합니다.");
System.out.println("[System] 해당 메뉴를 다시 실행합니다.");
return false;
}
}
System.out.println("[System] 상품 수량이 부족합니다.");
System.out.println("[System] 해당 메뉴를 다시 실행합니다.");
return false;
}
// main() 메서드는 점장님의 이름을 인자(args)로 전달 받습니다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Arrays.fill(prodList,"등록 가능");
Arrays.fill(prodCount,0);
// 해당 프로그램의 버전, 점장님의 이름, 프로그램의 기능을 출력합니다.
//TODO:
System.out.println("[Item_Stroage_V3]");
System.out.println("-".repeat(25));
System.out.println("[System] "+args+" 점장님 어서오세요.");
System.out.println("[system] 해당 프로그램의 기능입니다.");
program : while(true) {
showMenu();
switch(selectMenu(br)) {
case 1 : {
prod_input(br);
break;
}
case 2 : {
prod_remove(br);
break;
}
case 3 : {
prod_amout_add(br);
break;
}
case 4 : {
prod_amount_decrease(br);
break;
}
case 5 : {
prod_search();
break;
}
case 6 : {
System.out.println("[System] 프로그램을 종료합니다.");
System.out.println("[System] 감사합니다.");
break program;
}
default : {
System.out.println("[System] 없는 번호를 선택하셨습니다.");
System.out.println("[System] 프로그램이 다시 시작됩니다.");
br.close();
break;
}
}
}
}
}
[Item_Stroage_V3]
-------------------------
[System] [Ljava.lang.String;@7ef20235 점장님 어서오세요.
[system] 해당 프로그램의 기능입니다.
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 1
[System] 등록을 원하는 제품명을 입력하세요 : 사이다
[System] 등록이 완료됐습니다.
[System] 현재 등록된 제품 목록 ▼
> 사이다
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 1
[System] 등록을 원하는 제품명을 입력하세요 : 콜라
[System] 등록이 완료됐습니다.
[System] 현재 등록된 제품 목록 ▼
> 사이다
> 콜라
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 1
[System] 등록을 원하는 제품명을 입력하세요 : 커피
[System] 등록이 완료됐습니다.
[System] 현재 등록된 제품 목록 ▼
> 사이다
> 콜라
> 커피
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 1
[System] 등록을 원하는 제품명을 입력하세요 : 아이스크림
[System] 등록이 완료됐습니다.
[System] 현재 등록된 제품 목록 ▼
> 사이다
> 콜라
> 커피
> 아이스크림
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
> 등록 가능
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 3
[System] 물건의 수량을 추가합니다. (입고)
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 콜라 : 0개
> 커피 : 0개
> 아이스크림 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
[System] 수량을 추가할 제품명을 입력하세요 : 쥬스
[System] 등록되지 않은 상품입니다.
[System] 해당 메뉴를 다시 실행합니다.
[System] 물건의 수량을 추가합니다. (입고)
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 콜라 : 0개
> 커피 : 0개
> 아이스크림 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
[System] 수량을 추가할 제품명을 입력하세요 : 아이스크림
[System] 추가할 수량을 입력해주세요 : 50
[Clear] 정상적으로 제품의 수량 추가가 완료되었습니다.
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 콜라 : 0개
> 커피 : 0개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 3
[System] 물건의 수량을 추가합니다. (입고)
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 콜라 : 0개
> 커피 : 0개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
[System] 수량을 추가할 제품명을 입력하세요 : 커피
[System] 추가할 수량을 입력해주세요 : 64
[Clear] 정상적으로 제품의 수량 추가가 완료되었습니다.
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 콜라 : 0개
> 커피 : 64개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 2
[System] 제품 등록 취소를 원하는 제품명을 입력하세요 : 콜라
[System] 제품 취소가 완료됐습니다.
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 2
[System] 제품 등록 취소를 원하는 제품명을 입력하세요 : 쥬스
[System] 등록되지 않은 상품입니다.
[System] 해당 메뉴를 다시 실행합니다.
[System] 제품 등록 취소를 원하는 제품명을 입력하세요 : 등록 가능
[System] 제품 취소가 완료됐습니다.
[System] 제품 취소가 완료됐습니다.
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 5
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 커피 : 64개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 4
[System] 제품의 출고를 진행합니다.
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 커피 : 64개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
[System] 출고를 진행할 제품명을 입력하세요 : 커피
[System] 원하는 출고량을 입력하세요 : 80
[System] 상품 수량이 부족합니다.
[System] 해당 메뉴를 다시 실행합니다.
[System] 제품의 출고를 진행합니다.
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 커피 : 64개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
[System] 출고를 진행할 제품명을 입력하세요 : 커피
[System] 원하는 출고량을 입력하세요 : 30
[Clear] 출고가 완료되었습니다.
[System] 현재 등록된 제품 및 수량 ▼
> 사이다 : 0개
> 커피 : 34개
> 아이스크림 : 50개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
> 등록 가능 : 0개
-------------------------
1. 물건 정보(제품명) 등록하기
2. 물건 정보(제품명) 등록 취소하기
3. 물건 넣기 (제품 입고)
4. 물건 빼기 (제품 출고)
5. 재고 조회
6. 프로그램 종료
-------------------------
[System] 원하는 기능의 번호를 입력하세요 : 6
[System] 프로그램을 종료합니다.
[System] 감사합니다.
728x90
반응형
'CodeStates_BE_44 > 과제' 카테고리의 다른 글
텍스트 스타크래프트 프로그램 만들기 (0) | 2023.02.24 |
---|---|
피보나치 수열 프로그램 만들기 (0) | 2023.02.23 |
자막 순화 프로그램 만들기 (0) | 2023.02.22 |
구구단 프로그램 만들기 (0) | 2023.02.22 |
전기 요금 계산기 만들기 (0) | 2023.02.22 |