아하
생활

생활꿀팁

도덕적인가젤89
도덕적인가젤89

자바프로그래밍 질문좀 할게요 코드좀 알려주세용

설명

고객의 이름과 포인트 점수를 관리하는 프로그램을해시맵을이용하여 작성하라.

프로그램은 고객의 이름과 포인트를 함께 저장 관리 하는데,포인트는 추가될 때마다 누적하여 저장된다.


입력

ex)

포인트 관리 프로그램입니다

이름과 포인트 입력>> 이재문 40

이름과 포인트 입력>> 황기태 50

이름과 포인트 입력>> 황기태 60

이름과 포인트 입력>> 김남윤 30

이름과 포인트 입력>> 이재문 20

이름과 포인트 입력>> 그만

출력

ex)

(이재문, 40)

(이재문, 40) (황기태, 50)

(이재문, 40) (황기태, 110)

(이재문, 40) (김남윤, 30) (황기태, 110)

(이재문, 60) (김남윤, 30) (황기태, 110)

예시 입력 1

** 포인트 관리 프로그램입니다 ** 이름과 포인트 입력>> 이재문 40 이름과 포인트 입력>> 황기태 50 이름과 포인트 입력>> 황기태 60 이름과 포인트 입력>> 김남윤 30 이름과 포인트 입력>> 이재문 20 이름과 포인트 입력>> 그만

예시 출력 1

(이재문, 40) (이재문, 40)(황기태, 50) (이재문, 40)(황기태, 110) (이재문, 40)(김남윤, 30)(황기태, 110) (이재문, 60)(김남윤, 30)(황기태, 110)

55글자 더 채워주세요.
3개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자

    안녕하세요.

    샘플 소스 입니다.

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("** 포인트 관리 프로그램입니다 **"); Map<String, Integer> map = new HashMap<>(); while (true) { System.out.print("이름과 포인트 입력>> "); String txt = scanner.nextLine(); if ("그만".equals(txt)) { break; } String[] txtArr = txt.split("\s"); if (txtArr.length != 2) { continue; } String name = txtArr[0]; int score = 0; try { score = Integer.parseInt(txtArr[1]); } catch (Exception e) { continue; } if (map.containsKey(name)) { int totalScore = map.get(name); map.put(name, totalScore + score); } else { map.put(name, score); } Iterator<Entry<String, Integer>> iter = map.entrySet().iterator(); StringBuffer sb = new StringBuffer(); while (iter.hasNext()) { Entry<String, Integer> entry = iter.next(); sb.append("(") .append(entry.getKey()) .append(", ") .append(entry.getValue()) .append(") "); } System.out.println(sb.toString()); } } }

  • <소스>

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class test { public static void main(String[] args) { Map<String, Integer> pointMap = new HashMap<String, Integer>(); Scanner scan = new Scanner(System.in); String result = null; // 그만이 나올때까지 지속적으로 이름과 포인트 입력 while (true) { System.out.print("이름과 포인트 입력>> "); String string = (String) scan.nextLine(); // 그만이 나오면 데이터 출력 if ("그만".equals(string)) { break; } // 입력받은 데이터를 " " 기준으로 이름과 포인트로 분리 String[] strArr = string.split(" "); // 데이터가 잘못되었을 경우 다시 데이터 받음 if (strArr.length != 2) { System.out.println("이름과 포인트를 정확하게 입력해주세요"); continue; } else { try { // 맵에서 이름을 가지고 있으면 기존값과 입력값 합 String name = strArr[0]; String pointStr = strArr[1]; Integer inputPoint = Integer.parseInt(pointStr); if (pointMap.containsKey(name)) { Integer hasPoint = pointMap.get(name); pointMap.put(name, hasPoint + inputPoint); } else { pointMap.put(name, inputPoint); } } // 포인트가 숫자가 아닐경우 다시 데이터 받음 catch (NumberFormatException e) { System.out.println("이름과 포인트를 정확하게 입력해주세요"); continue; } } // 출력 데이터 구성 String tempResult = null; for (Map.Entry<String, Integer> map : pointMap.entrySet()) { String template = "(" + map.getKey() + ", " + map.getValue() + ")"; tempResult = tempResult == null ? template : tempResult + template; } result = result == null ? tempResult : result + "\n" + tempResult; } System.out.println(result); } }

    <출력>

    이름과 포인트 입력>> 이재문 40 이름과 포인트 입력>> 황기태 50 이름과 포인트 입력>> 황기태 60 이름과 포인트 입력>> 김남윤 30 이름과 포인트 입력>> 이재문 20 이름과 포인트 입력>> 그만 (이재문, 40) (이재문, 40)(황기태, 50) (이재문, 40)(황기태, 110) (이재문, 40)(김남윤, 30)(황기태, 110) (이재문, 60)(김남윤, 30)(황기태, 110)

  • import java.util.HashMap;

    import java.util.Scanner;

    import java.util.Set;

    public class ExampleScanner {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    HashMap<String, Integer> userPoint = new HashMap<String, Integer>();

    String line = null;

    System.out.print("이름과 포인트 입력>>");

    while((line = scanner.nextLine()) != null) {

    line = line.trim();

    if(line.equals("그만")) {

    System.exit(0);

    }

    try {

    String spStr[] = line.split(" ", 2);

    String name = spStr[0];

    int point = Integer.parseInt(spStr[1]);

    if(userPoint.containsKey(name)) {

    int prePoint = userPoint.get(name);

    userPoint.replace(name, prePoint+point);

    }else {

    userPoint.put(name, point);

    }

    Set<String> keys = userPoint.keySet();

    String print = "";

    for (String key : keys) {

    print += "("+key+","+userPoint.get(key)+")";

    }

    System.out.println(print);

    }catch(Exception e) {

    System.out.println("잘못 입력하셨습니다.");

    }

    System.out.print("이름과 포인트 입력>>");

    }

    }

    }