디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

자바 코딩중 오류좀 봐주세요 (전체소스로 수정)

울랄랄랄랄(112.163) 2011.11.06 18:08:26
조회 52 추천 0 댓글 3

import java.util.Scanner;

class UserInfo {
 String year, month,date;
 String money;
 String contents;
 int number[] = new int[100];

 public UserInfo(String year, String month, String date, String money, String contents) {
  this.year = year;
  this.month = month;
  this.date = date;
  this.money = money;
  this.contents = contents;
 }

 public void showUserInfo() {  
  System.out.print("날짜 : " + year+month+date + "  ");
  System.out.print("금액 : " + money + "  ");
  if (contents != null)
   System.out.print("내용 : " + contents + "  ");
  System.out.println();
 }
}

class inputData {
 static final int MAX_CNT = 100;
 static UserInfo[] user1 = new UserInfo[MAX_CNT]; // 배열 선언
 static int curCnt = 0;
 public void inputData()
 {
  System.out.println("데이터 입력을 시작합니다..");
  System.out.print("년 : ");
  String year=MenuViewer.keyboard.nextLine();
  System.out.print("월 : ");
  String month=MenuViewer.keyboard.nextLine();
  System.out.print("일 : ");
  String name=MenuViewer.keyboard.nextLine();
  System.out.print("금액 : ");
  String phone=MenuViewer.keyboard.nextLine();
  System.out.print("내용 : ");
  String birth=MenuViewer.keyboard.nextLine();
  
  user1[curCnt++]=new UserInfo(year, month, name, phone, birth);
  System.out.println("데이터 입력이 완료되었습니다. \\n");  
 }
}

class Change extends inputData {
 static final int MAX_CNT = 100;
 static UserInfo[] user1 = new UserInfo[MAX_CNT]; // 배열 선언
 
 public void searchData() {
  System.out.println("데이터 검색을 시작합니다..");

  System.out.print("년: ");
  String year = MenuViewer.keyboard.nextLine();
  System.out.print("월: ");
  String month = MenuViewer.keyboard.nextLine();
  System.out.print("일: ");
  String date = MenuViewer.keyboard.nextLine();

  int dataIdx = search(year, month, date);
  if (dataIdx < 0) {
   System.out.println("해당하는 데이터가 존재하지 않습니다. \\n");
  } else {
   for (int i = 0; i < curCnt; i++) {
    UserInfo curInfo = user1[i];
    if (date.compareTo(curInfo.date) == 0) {
     user1[i].showUserInfo();
    }
   }
   System.out.println("데이터 검색이 완료되었습니다. \\n");
  }
 }

 public void printData() {
  for (int dataIdx = 0; dataIdx < curCnt; dataIdx++) {
   user1[dataIdx].showUserInfo();
  }
  System.out.println("데이터 출력이 완료되었습니다. \\n");
 }

 public void deleteData() {
  System.out.println("데이터 삭제를 시작합니다..");

  System.out.print("년 : ");
  String year = MenuViewer.keyboard.nextLine();
  System.out.print("월 : ");
  String month = MenuViewer.keyboard.nextLine();
  System.out.print("일 : ");
  String date = MenuViewer.keyboard.nextLine();
  int dataIdx = search(year, month, date);
  if (dataIdx < 0) {
   System.out.println("해당하는 데이터가 존재하지 않습니다. \\n");
  } else {
   for (int idx = dataIdx; idx < (curCnt - 1); idx++)
    user1[idx] = user1[idx + 1];

   curCnt--;
   System.out.println("데이터 삭제가 완료되었습니다. \\n");
  }
 }

 private int search(String year, String month,String date) {
  for (int idx = 0; idx < curCnt; idx++) {
   UserInfo curInfo = user1[idx];
   if (year.compareTo(curInfo.year)==0)
    return idx;
  }
  return -1;
 }
}

class MenuViewer {
 public static Scanner keyboard = new Scanner(System.in);

 public static void showMenu() {
  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.print("선택: ");
 }
}

class MoneyManage2 {
 public static void main(String[] args) {
  Change change = new Change();
  inputData inputdata = new inputData();
  int choice;

  while (true) {
   MenuViewer.showMenu();
   choice = MenuViewer.keyboard.nextInt();
   MenuViewer.keyboard.nextLine();

   switch (choice) {
   case 1:
    change.inputData();
    break;
   case 2:
    change.searchData();
    break;
   case 3:
    change.printData();// 출력
    break;
   case 4:
//    change.changeData();
    break;
   case 5:
    change.deleteData();
    break;
   case 6:
    System.out.println("프로그램을 종료합니다");
    return;
   }
  }
 }
}

데이터를 11 11 11 이렇게 입력하고
검색하려고하는데요 11 11 11 이렇게 입력받으면
Exception in thread "main" java.lang.NullPointerException
 at Change.search(MoneyManager2.java:168)
 at Change.searchData(MoneyManager2.java:123)
 at MoneyManage2.main(MoneyManager2.java:206)
이렇게 오류가납니다 168번째문에 123번도 오류가 나는거 같은데 if문을 저렇게 비교 하면 안되나요....?
-----------------------------------------------------------------------------------------
전체 소스입니다.... 완성해야 하는 목표는 출납부 형식으로 만드는건데요
조회, 수정 가능 해야 해서 지금 수정중인데 막히는 부분이 많네요...
지금 제생각은 입력받을때 년 월 일을 따로 따로 입력받아서 저장하고 그거에 대해서 수입,지출 확인하는 방법으로 하고 있는데...
여기저기서 막히네요 ㅎㅎ;;

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
287068 MFC좀 도와주세요 ㅁㄵㅇ(118.42) 11.11.09 115 0
287065 우리나라는 뭐 만드는 직업은 잘되는게 하나 없나봐 Aven갤로그로 이동합니다. 11.11.09 42 0
287064 다독여준 형들 고마워 Dawnwalkre갤로그로 이동합니다. 11.11.09 36 0
287062 한국 SW 진흥방법.txt (211.222) 11.11.09 82 0
287060 정말 궁금한건데... 에필로스갤로그로 이동합니다. 11.11.09 31 0
287059 아직 안자고 있는 형들 [17] Dawnwalkre갤로그로 이동합니다. 11.11.09 135 0
287057 오르가즘!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [2] McHello갤로그로 이동합니다. 11.11.09 148 0
287054 이 바닥에서 제일 돈 많이 주는데가 어디임? [2] MS똥꼬빨이(121.150) 11.11.09 85 0
287053 님들 우리 다 망했음 [6] daasz(121.172) 11.11.09 225 0
287052 국내에서 값싼개발자쓰면... 三didas갤로그로 이동합니다. 11.11.09 90 0
287051 여자들 화장 무섭다 이모군(175.114) 11.11.09 66 0
287050 프로그래머가 많이 홀대받음? ㅈㅈㅈㅈ(118.47) 11.11.09 62 0
287048 애플 아이디 삽니다. [8] 애플꾼(221.146) 11.11.08 90 0
287047 브라우저에서 웹 페이지 볼 때 큰 그림 파일이 있으면 느려지는 이유가? [25] 마법사게이맨(218.235) 11.11.08 150 0
287046 Cㄱㅣ본중 기본 질문 [2] ㆍ엘마갤로그로 이동합니다. 11.11.08 57 0
287045 형들 ㅜㅜ 자바 질문있어!! 도와줘... [5] 게루밥갤로그로 이동합니다. 11.11.08 70 0
287043 프로그래머 현실 ㅈ같은데도 하는 이유가 머냐? [5] ㅅㅅ(125.181) 11.11.08 250 0
287042 퇴갤요 증인닉고갤로그로 이동합니다. 11.11.08 26 0
287041 자바에서 메소드를 C의 함수로 이해해도 되는거지? [3] ㅇㅇ(59.30) 11.11.08 73 0
287040 아 진짜 씨쁠 개같아서 못해먹겠다 기초를 모르니깐 넘어갈수가없네 [1] asd(121.137) 11.11.08 70 0
287039 C만 하던 사람이 C++ 습득하는데 걸리는 시간은? [2] fdsf(211.58) 11.11.08 106 0
287036 갑자기 속도올랐다ㅋㅋ [1] 증인닉고갤로그로 이동합니다. 11.11.08 56 0
287035 아직도 프로그래머 될려는 바보들 있냐? [2] 마이티가이갤로그로 이동합니다. 11.11.08 143 0
287033 저거 다 받을순있겠지?.... [1] 증인닉고갤로그로 이동합니다. 11.11.08 70 0
287032 짤짤짤]횽들아 정말 오브젝트씨만 하면됨?!?!?! [3] 독학남(222.107) 11.11.08 117 0
287031 C와 C++의 가장 큰 차이점이 뭘까요? [3] fdsf(211.58) 11.11.08 100 0
287030 만약에 안철수 대통령선거 나오면 뽑음? [2] ㅅㅅ(125.181) 11.11.08 89 0
287029 와나 진짜 미치겠네 [3] 증인닉고갤로그로 이동합니다. 11.11.08 117 0
287028 중국이 항공 우주 관련 테크 올릴 때, 한국은 대체 뭐 했냐? .jpg [1] ㅇㅇ(121.133) 11.11.08 81 0
287027 안드로이드 자체는 잘 만든 OS가 아니지... [7] -ㅂ-(183.102) 11.11.08 133 0
287026 치킨집도 이제 저물겠구만, 옛날에 내 사수가 치킨 자주 사줬는데 [1] PoRO갤로그로 이동합니다. 11.11.08 40 0
287025 중국본토 개발자들이 한국 좆바르지 않냐?? [1] 시불라미갤로그로 이동합니다. 11.11.08 63 0
287023 코드짜다 막히는거 있으면 인근 치킨집 사장님한테 물어보면 진짜 알려줌? ㅇㅎㅎ(125.181) 11.11.08 46 0
287020 짱개들 컴퓨터 잘하냐?? [5] ㅇㅅㄴ(125.181) 11.11.08 90 0
287019 어짜피 개념때문에 C++배우는 거라면, 문법은 쌩까도되?! [3] 독학남(222.107) 11.11.08 88 0
287018 ㅈ 봐라, 병신아 이렇게 코딩하면 되잖아 [5] PoRO갤로그로 이동합니다. 11.11.08 50 0
287017 프겔이랑 상관없는 이야기인데 색드립도 문학으로 인정해줘야 한다. [3] ㅇㅇ(119.149) 11.11.08 52 0
287016 ㅇㄲ.jpg [3] 정수정•‿•갤로그로 이동합니다. 11.11.08 86 0
287015 아 씨발 쿨해져야 하는데 [1] ㅇㅇ(119.149) 11.11.08 39 0
287013 미친 놈들아 니들이 얕잡아 보이는 건 겉모습이 개발자 답지 않아서다 [3] PoRO갤로그로 이동합니다. 11.11.08 79 0
287012 모든 라인당 주석처리 하라는 교수 땜에 빡친다는애.... [9] (219.255) 11.11.08 108 0
287011 블루스크린때문에 돌겠따 진짜 ㅠㅠ [3] 식충불알잡이갤로그로 이동합니다. 11.11.08 66 0
287009 곧 퇴근 [3] Dawnwalkre갤로그로 이동합니다. 11.11.08 71 0
287008 동국대 그거 아님? [1] 나리링갤로그로 이동합니다. 11.11.08 78 0
287005 오늘 중국애들이 it쪽 들어온다는 이야기가 있었잖아 [8] ㅇㅇ(119.149) 11.11.08 138 0
287003 안드로이드 입문서 추천좀 해주세여 (115.21) 11.11.08 37 0
287002 횽들 17일 벤처기업 취업 박람회 나가는 사람 있음? ㅇㅇㅁㅇㄻㅁ갤로그로 이동합니다. 11.11.08 45 0
287001 C++왜케 어렵지..너무 많다.. 독학남(222.107) 11.11.08 52 0
286999 남자가 돈 못 벌면 당하게 되는 일.jpg [3] ㅇㅇ(121.133) 11.11.08 155 0
286998 11월 11일은 나리링갤로그로 이동합니다. 11.11.08 23 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2