profile image

L o a d i n g . . .

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

고객의 이름과 추가할 포인트를 한 줄에 입력 받으시오.
기존의 고객이면 기존 점수에 합산하고,
기존의 고객이 아니면, 새롭게 추가하시오.
매번 입력을 처리한 다음에 전체 데이터를 출력하시오.
Vector 컬렉션을 사용하시오.
실행 예)
이름과 포인트 입력> 홍길동 30
[홍길동 30]
이름과 포인트 입력> 임꺽정 20
[임꺽정 20] [홍길동 30]
이름과 포인트 입력> 홍길동 -10
[입꺽정 20] [홍길동 20]

 

import java.util.Scanner;
import java.util.Vector;
import java.util.StringTokenizer;

class CustomerClass{
	String name;
	int point;
	public CustomerClass(String name, int point){
		this.name = name;
		this.point = point;
	}
	public void pointSum(int point) {
		this.point = this.point+point;
	}
	
	@Override
	public String toString() {
		
		return "["+name+" "+point+"]";
	}
	
	@Override
	public boolean equals(Object obj) {
		CustomerClass c = (CustomerClass)obj;
		if (name.equals(c.name)) {
			return true;
		} else {
			return false;
		}
	}
}

public class Customer {

	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Vector<CustomerClass> v = new Vector<CustomerClass>();
		
		String name;
		int point;
		String print = "";

		while(true) {
			System.out.println("이름과 포인트 입력> ");
			String input = sc.nextLine();
			
			//exit 입력 시 종료
			if(input.equals("exit")) {
				break;
			}
			StringTokenizer st = new StringTokenizer(input);
			
			// input이 2개가 아니면 종료
			if(!(st.countTokens()==2)){
				System.out.println("잘못된 입력");
				break;
			}
			name = st.nextToken();
			point = Integer.parseInt(st.nextToken());
			
			if (!(v.contains(new CustomerClass(name, point)))) { 
				// 벡터 v 안에 name이 없다면
				v.add(new CustomerClass(name, point));
			} else {
				// v안에 name이 있다면
				for(int i=0; i<v.size(); i++) {
					//해당 벡터 삭제 후 point값이 추가된 벡터 추가
					if (v.get(i).name.equals(name)) {
						String tmpName = v.get(i).name;
						int tmpPoint = v.get(i).point;
						v.remove(i);
						v.add(i, new CustomerClass(tmpName, tmpPoint+point));
					}
				}
			}
			
			// 출력
			for (int i=0; i<v.size(); i++) {
				CustomerClass c = v.get(i);
				print = print.concat(c.toString());
			}
			System.out.println(print);
			print = "";
			
		}

		for (int i=0; i<v.size(); i++) {
			CustomerClass c = v.get(i);
			System.out.println(c);
		}
	}

}
복사했습니다!