고객의 이름과 포인트 점수를 관리하는 프로그램을 작성하시오.
고객의 이름과 추가할 포인트를 한 줄에 입력 받으시오. 기존의 고객이면 기존 점수에 합산하고, 기존의 고객이 아니면, 새롭게 추가하시오. 매번 입력을 처리한 다음에 전체 데이터를 출력하시오. 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);
}
}
}
'Language > JAVA' 카테고리의 다른 글
[Java] 객체 직렬화 (0) | 2021.11.18 |
---|---|
[Java] File 클래스를 이용해 ls 명령어 출력해보기 (0) | 2021.11.18 |
[Java] 6주차 수업 예제 13번, 14번, 15번 (0) | 2021.10.08 |
[Java] 5주차 수업 예제 8번, 14번 (0) | 2021.09.30 |
[Java] 3주차 수업 예제 10번 (0) | 2021.09.16 |