boolean run = true;
int keyCode = 0;
String title = null;
String writer = null;
int num = 0;
while (run) {
Scanner sc = new Scanner(System.in);
if (keyCode != 13 && keyCode != 10) {
System.out.println("---------------------");
System.out.println("1.도서 추가(수정) 2.도서 검색 3.도서 삭제 4.도서 출력 5.종료");
System.out.println("---------------------");
System.out.println("선택 >");
}
keyCode = sc.nextInt();
switch (keyCode) {
case 1: // 1을 읽었을 경우
System.out.println("1.도서추가를 선택하셨네요");
System.out.print("제목 : ");
title = sc.next();
System.out.print("저자: ");
writer = sc.next();
System.out.print("도서번호: ");
num = sc.nextInt();
break;
case 2: // 2를 읽었을 경우
System.out.println("2.도서 검색을 입력하셨네요");
System.out.println("책 번호를 입력해주세요");
int what = sc.nextInt();
if (what == num) {
System.out.println("제목 : " + title);
System.out.println("저자 : " + writer);
break;
} else {
System.out.println("잘못 입력한거 같아요");
}
case 3:
System.out.println("3.도서 삭제를 입력하셨네요");
title = null;
writer = null;
num = 0;
break;
case 4:
System.out.println("5.도서 출력 합니다");
System.out.println("제목 : " + title);
System.out.println("저자 : " + writer);
System.out.println("도서번호: " + num);
break;
case 5:
System.out.println("6. 종료합니다");
run = false;
}
}
import java.util.Scanner;
// 요구사항
// 1. 배열
// 2. 동작 : 입력, 출력, 조회, 수정, 삭제, 종료
// 읽은도서 기록 프로그램
// 본인 이름 입력받기, 읽은 도서들 배열로 입력받기, 이름과 도서 리스트 출력하기, 도서 리스트 수정하기, 도서 리스트 삭제하기, 종료
public class Book {
public static void main(String[] args) {
boolean run = true;
String name = null;
String book[] = null;
int num = 0;
Scanner sc = new Scanner(System.in);
while(run) {
System.out.println("------------------------------------------------------------------");
System.out.println("1.이름과 권 수 | 2.읽은 도서기록 | 3.출력 | 4.도서리스트수정 | 5.도서리스트 삭제 | 6.종료");
System.out.println("------------------------------------------------------------------");
System.out.print("번호 선택 >>");
int select = sc.nextInt();
switch(select) {
// 본인 이름과 권수 입력받기
case 1:
System.out.println("이름을 입력해주세요");
System.out.print(">>");
name = sc.next();
System.out.println("입력 권 수를 입력해주세요");
System.out.print(">>");
num = sc.nextInt();
break;
// 읽은 도서 배열로 입력받기
case 2:
System.out.println("책 제목을 입력해주세요");
book = new String[num];
for (int i = 0; i < book.length; i++) {
System.out.print((i + 1) + " 권의 이름 : ");
book[i] = sc.next();
}
break;
// 이름과 도서 리스트 출력
case 3:
System.out.println("정보를 확인하겠습니다");
System.out.println(name + " 님의 독서 기록입니다");
for (int i = 0; i < book.length; i++) {
System.out.println((i + 1) + " : " + book[i]);
}
break;
// 도서 리스트 수정
case 4:
System.out.println("수정하시겠습니까?");
System.out.println("수정하겠습니다 : y" + "\t" + "아니요 : n");
System.out.print(">>");
String click = sc.next();
if(click.equals("n")) {
System.out.println("메인 메뉴로 돌아갑니다");
break;
} else if(click.equals("y")) {
System.out.println("수정할 책 넘버를 입력해주세요");
System.out.print(">>");
int number = sc.nextInt();
System.out.println("책 이름을 수정해주세요");
for (int i = 0; i < book.length; i++) {
if(i == number-1) {
System.out.print(">>");
book[i] = sc.next();
}
}
break;
} else {
System.out.println("잘못 입력하신거 같아요");
break;
}
// 정보 삭제
case 5:
System.out.println("삭제하시겠습니까?");
System.out.println("예 : y" + "\t" + "아니요 : n");
System.out.print(">>");
String click1 = sc.next();
if(click1.equals("n")) {
System.out.println("메인 메뉴로 돌아갑니다");
break;
} else if(click1.equals("y")) {
System.out.println("삭제되었습니다");
name = null;
for (int i = 0; i < book.length; i++) {
book[i] = null;
}
break;
} else {
System.out.println("잘못 입력하신거 같아요");
break;
}
// 프로그램 종료
case 6:
System.out.println("종료를 선택하셨습니다");
run = false;
break;
default :
System.out.println("잘못 입력하셨습니다");
}
}
}
}
입력되는 것이 여러개 : 도서 이름, 정가, 주문수량, 판매처 (서점 or 인터넷 ), 구입 방법 (카드 or 현금)
가격 계산(구매 방법에 따라 다른 할인율 계산)
1) 할인율 : 서점은 정가의 10%, 인터넷은 15%, 현금 10%, 카드는 5%입니다.
만약 서점에서 현금이면 할인율 = 10%+10%
2) 판매금액 = 정가 * (100% - (10%+10%)
판매금액 = 정가 * 80%
3-1. Sale
package book_sale;
import java.util.*;
public class Sale {
static ArrayList<Account> list = new ArrayList();
// ArrayList는 저장할 객체 유형을 <> 안에 집어넣어 선언
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
boolean run = true;
while (run) {
System.out.println("--------------");
System.out.println("1.도서 구매 | 2.확인 | 3.종료");
System.out.println("--------------");
System.out.print("번호 선택 >>");
int selectNo = sc.nextInt();
if(selectNo == 1) {
// 도서 구매
bookList();
} else if(selectNo == 2){
// 판매 모두 출력
outPut();
} else {
run = false;
}
}
System.out.println("프로그램 종료");
}
// 구매할 도서 & 결제
private static void bookList() {
System.out.print("도서 이름: ");
String bookName = sc.next();
System.out.print("정가: ");
int price = sc.nextInt();
System.out.print("주문수량: ");
int orderNum = sc.nextInt();
System.out.print("판매처 (서점 or 인터넷 ): ");
String bookStore = sc.next();
System.out.print("구입 방법 (카드 or 현금): ");
String howBuy = sc.next();
Account book = new Account(bookName, price, orderNum, bookStore, howBuy);
list.add(book);
}
private static void outPut() {
Iterator<Account> it = list.iterator();
//Iterator를 활용해서 list의 모든 값을 불러온다.
System.out.println("도서명 \t 정가 \t 할인율 \t 주문수량 \t 판매금액 \t 판매처 \t 구입방법");
// hasNext메서드는 Iterator의 메서드
// it변수의 다음데이터가 남아 있을 때 까지 실행
while (it.hasNext()) {
Account result = it.next();
result.print();
System.out.println();
}
}
}
3-2 Account
package book_sale;
import java.util.*;
public class Account {
private String bookName; // 도서명
private String bookStore; // 판매점
private String howBuy; // 구입 방법
private int price; // 정가
private int orderNum; // 주문 수량
private double cut1; // 서점 인터넷
private double cut2; // 카드 현금
private double pp; // 할인금액
// private int pay; // 할인율
private int finPrice;
public Account(String bookName, int price, int orderNum, String bookStore, String howBuy) {
this.bookName = bookName;
this.price = price;
this.orderNum = orderNum;
setBookStore(bookStore);
setHowBuy(howBuy);
}
public double getCut1() { return cut1; }
public void setCut1(double cut1) { this.cut1 = cut1; }
public double getCut2() { return cut2; }
public void setCut2(double cut2) { this.cut2 = cut2; }
public String getBookStore() { return bookStore; }
public void setBookStore(String bookStore) {
if (bookStore.equals("서점")) {
setCut1(0.1);
} else {
setCut1(0.15);
}
this.bookStore = bookStore;
}
public String getHowBuy() { return howBuy; }
public void setHowBuy(String howBuy) {
if (howBuy.equals("카드")) {
setCut2(0.05);
} else {
setCut2(0.1);
}
this.howBuy = howBuy;
}
public void print() {
// System.out.println("도서명 \t 정가 \t 할인율 \t 주문수량 \t 판매금액 \t 판매처 \t 구입방법");
System.out.print(bookName + "\t");
System.out.print(price + "\t");
System.out.print(((cut1 + cut2)*100) + "% \t");
System.out.print(orderNum + "\t");
finPrice = price - (int) (price * (cut1 + cut2));
System.out.print(finPrice + "\t");
System.out.print(bookStore + "\t");
System.out.print(howBuy);
}
}