ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 18일 차 도서대여 프로그램 완벽한 저장
    삼성SDS_멀티캠퍼스/Java 2015. 10. 2. 13:29
    반응형

    http://sungwooki.tistory.com/135


    에서 사용했던 클래스들을 그대로 사용하겠다.



    다만, InputTest 만 내용을 변경하겠다.




    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.io.Serializable;

    import java.util.ArrayList;

    import java.util.Scanner;


    public class InputTest implements Serializable{

    static Scanner scan = new Scanner(System.in);

    static int num;


    public static void main(String[] args) {


    // ArrayList<Book> bookList = new ArrayList<Book>();


    ObjectInputStream in = null;

    ObjectOutputStream out = null;


    try {

    ArrayList<Book> readCarlist = null;


    try {

    in = new ObjectInputStream(new FileInputStream("data.txt"));

    readCarlist = (ArrayList<Book>) in.readObject();

    } catch (IOException e) {

    readCarlist = new ArrayList<Book>();

    }


    Book abbacha = null;


    Scanner scan = new Scanner(System.in);


    do {


    System.out.println("-----------------");

    System.out.println("번호를 입력하세요");

    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.종료          |");

    System.out.println("-----------------");


    num = scan.nextInt();

    scan.nextLine();


    switch (num) {


    case 1:


    System.out.println("id 입력");

    int id = scan.nextInt();

    scan.nextLine();


    System.out.println("책 이름 입력");

    String name = scan.nextLine();


    System.out.println("저자 입력");

    String author = scan.nextLine();


    System.out.println("1.소설책 2.과학책 3.시");

    int category = scan.nextInt();

    scan.nextLine();


    Book b;


    switch (category) {

    case 1:

    b = new Novel();

    b.setId(id);

    b.setName(name);

    b.setAuthor(author);

    readCarlist.add(b);

    break;


    case 2:

    b = new ScienceFiction();

    b.setId(id);

    b.setName(name);

    b.setAuthor(author);

    readCarlist.add(b);

    break;


    case 3:

    b = new Poet();

    b.setId(id);

    b.setName(name);

    b.setAuthor(author);

    readCarlist.add(b);

    break;

    }

    System.out.println("저장되었습니다");

    break;


    case 2:

    System.out.println("삭제할 책의 id를 입력하세요");

    int s = scan.nextInt();

    for (int i = 0; i < readCarlist.size(); i++) {

    if (s == readCarlist.get(i).getId())

    readCarlist.remove(i);

    }

    System.out.println("삭제 되었습니다.");


    break;


    case 3:

    for (Book bo : readCarlist)

    System.out.println(bo);

    break;


    case 4:

    System.out.println("대여할 책 아이디를 입력하세요");

    int q = scan.nextInt();

    scan.nextLine();

    boolean isExist = false;


    for (int i = 0; i < readCarlist.size(); i++) {

    if (q == readCarlist.get(i).getId())

    if (readCarlist.get(i).isRental()) {

    System.out.println("이미 대여중입니다");

    } else if ((!readCarlist.get(i).isRental())) {

    System.out.println("정상적으로 대여 되었습니다");

    readCarlist.get(i).setRental(true);

    }

    }

    break;


    case 5:

    System.out.println("반납할 책 아이디를 입력하세요");

    int w = scan.nextInt();

    scan.nextLine();

    boolean isExist2 = false;


    for (int i = 0; i < readCarlist.size(); i++) {

    if (w == readCarlist.get(i).getId())

    if (!readCarlist.get(i).isRental()) {

    System.out.println("대여중이 아닙니다");

    } else if (readCarlist.get(i).isRental()) {

    System.out.println("정상적으로 반납 되었습니다");

    readCarlist.get(i).setRental(false);

    System.out.println("연체료 :" + readCarlist.get(i).getLateFees(3));

    }


    }

    break;


    case 6:

    out = new ObjectOutputStream(new FileOutputStream("data.txt"));

    out.writeObject(readCarlist);

    out.flush();


    System.exit(0);

    break;

    }

    } while (num != 6);


    out = new ObjectOutputStream(new FileOutputStream("data.txt"));

    out.writeObject(readCarlist);

    out.flush();

    } catch (FileNotFoundException e) {

    System.out.println("파일이 존재하지 않습니다");

    } catch (IOException e) {

    // TODO Auto-generated catch block

    System.out.println("입출력에 문제가 생겼습니다");

    e.printStackTrace();

    } catch (ClassNotFoundException e) {

    // TODO Auto-generated catch block

    System.out.println("클래스가 존재하지 않습니다");

    } finally {


    try {

    if (out != null)

    out.close();

    if (in != null)

    in.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }


    }





    이대로 입력하면 되겠다.








    반응형
Designed by Tistory.