디시인사이드 갤러리

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

갤러리 본문 영역

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

울랄랄랄랄(112.163) 2011.11.06 18:08:26
조회 53 추천 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 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48833 65
2906630 러스트는 언어가 문제야 ㅎㅎ 나르시갤로그로 이동합니다. 19:13 4 0
2906629 센척하지만 나도 러스트 좁밥이다. [2] 프갤러(110.8) 19:07 11 0
2906628 c++로 1인개발 거의 안함? [1] 프갤러(175.197) 19:02 16 0
2906626 클라우드 플레어 이 새끼들 riir하다 터트린거 같은데 [1] 프갤러(221.149) 18:26 32 1
2906624 gitlab 먹통이네, ㅅㅂ [1] 프갤러(125.177) 18:08 34 0
2906623 클라우드플레어 또 터진건가요?? [5] 정신나간정상인갤로그로 이동합니다. 18:06 71 0
2906622 눈빛 좀 봐.. [1] ♥발라당냥덩♥갤로그로 이동합니다. 17:43 37 0
2906621 ai특징이 우덜들 절대 기계로 대체않함 ㅋㅋㅋ기상캐스터 등등 타이밍뒷.통수한방(1.213) 17:29 30 0
2906620 진지하게 언어 뭐로 정할까. 도와주셈 [1] 프갤러(175.197) 17:28 80 0
2906619 유재석 나락감?? 타이밍뒷.통수한방(1.213) 17:28 34 0
2906617 카드값 눈물난다 [2] ㅇㅇ(119.56) 17:08 32 0
2906616 크롬 localhost 접속문제 해결 가능하신분 [4] ㅇㅇ(221.158) 17:03 46 0
2906615 쿠팡 보이콧으로 네이버 쇼핑쓰는데 진짜 개느리구나 [3] 헬마스터갤로그로 이동합니다. 16:57 36 0
2906614 일본거주 11년차 외노자 일어 써봤습니다 [3] 프로외노자갤로그로 이동합니다. 16:26 44 0
2906613 37세 백엔드!! [1] 홍길동갤로그로 이동합니다. 15:43 51 0
2906612 저번달까지 현직자였는데 ai가 대체 못하는거 맞다. 프갤러(221.149) 15:38 66 0
2906611 아니 그록 뭐임 ㅋㅋ 프갤러(115.138) 15:20 43 0
2906610 속보 ) 2026년 윈도우12 출시예정-> 출시취소 타이밍뒷.통수한방(1.213) 15:10 30 0
2906609 쿠팡 해지함 (쿠팡이 망해야 한국경제가 산다) [4] 야옹아저씨갤로그로 이동합니다. 15:09 53 2
2906608 나이먹는거보다 저주인것 타이밍뒷.통수한방(1.213) 15:05 22 0
2906607 대통령보다 연봉높은 한국우주청 현실 ) 타이밍뒷.통수한방(1.213) 14:59 34 0
2906606 진지하게 고민중인데 봐줘라 [6] 야옹해갤로그로 이동합니다. 14:59 52 0
2906605 코딩을 오래하면 알게되는것 [2] 프갤러(118.235) 14:46 73 0
2906603 근 30년동안 엄청난 발전이됬지만 2100년될때 타이밍뒷.통수한방(1.213) 14:37 20 0
2906602 고졸인데 pccp 자격증 따면 좆소라도 취직가능? [2] ㅇㅇ갤로그로 이동합니다. 14:22 31 0
2906601 이런말 하는 사람 걸러라 [8] 프갤러(211.235) 14:18 118 0
2906600 인류는 진화하는게 절대 아님 타이밍뒷.통수한방(1.213) 14:15 19 0
2906598 C++ 인생 40 년 갈아 넣었습니다. 프갤러(59.16) 13:46 41 0
2906596 안랩 정류장 - 개인정보 넥도리아(223.38) 13:00 25 0
2906593 나노 바나나 프로 완전 정복: 성능 변화·업데이트 핵심 기능·무료 사용법 프갤러(1.234) 12:23 20 0
2906592 [애니뉴스] YxD Labs Client - 유튜브 프로그램 ㅇㅇ(121.172) 12:02 21 0
2906591 파이썬 현업자들. vscode vs pycharm 선택좀 [4] 프갤러(175.197) 11:56 43 0
2906590 오전부터 장애 대응 중.. cvs.갤로그로 이동합니다. 11:48 30 0
2906588 [애니뉴스] 이 멋진 세계에 축복을 3기 감상 [2] ㅇㅇ(121.172) 10:44 31 0
2906587 잔다 ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 09:44 33 0
2906586 어제 출근길..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:08 35 0
2906585 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:00 33 0
2906584 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:59 45 0
2906583 그래내가키라다 [4] 깃깃갤로그로 이동합니다. 08:39 65 0
2906582 AI 폼 미쳤다리.. [2] 프갤러(123.200) 08:09 68 0
2906581 님들 코딩테스트 필수인가요? [3] 프갤러(121.139) 06:33 86 0
2906580 인지과학조져라 손발이시립디다갤로그로 이동합니다. 06:14 53 0
2906579 ㄹㅇㄹㅇ 개춥 [2] ♥발라당냥덩♥갤로그로 이동합니다. 06:06 71 0
2906578 백준 실버는 원래 쉬운건가? [6] 프갤러(58.76) 05:39 76 0
2906575 쿠팡 자바스프링 쓴지 8년 넘었다 [1] 프갤러(61.75) 04:40 71 0
2906574 에휴.. [3] 프갤러(182.222) 04:15 65 0
2906572 ‘김예지 비하’ 고발당한 감동란, 국민의힘 입당 발명도둑잡기(118.216) 03:48 45 0
2906568 오늘의 영상 기획 실마리: 쇼미더머니 하세요 발명도둑잡기(118.216) 03:27 21 0
2906562 인공지능이 인간의 예술, 음식을 평가, 평론할 수 있을까요? 발명도둑잡기(118.216) 03:13 24 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2