회원리스트
package kr.or.ddit.study13.map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class MapExample02 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
MapExample02 obj = new MapExample02();
obj.process();
}
List<Map<String, String>> memberList = new ArrayList();
public void process() {
while (true) {
// 이름 나이 전화번호
System.out.println("1. 회원 리스트 조회");
System.out.println("2. 회원 가입");
System.out.println("3. 회원 탈퇴");
System.out.println("4. 회원정보 수정");
int sel = sc.nextInt();
if(sel==1) printList();
if(sel==2) sign();
if(sel==3) remove();
if(sel==4) update();
}
}
public void sign() {
Map<String,String> member = new HashMap();
System.out.print("이름 : ");
String name = sc.next();
System.out.print("나이 : ");
String age = sc.next();
System.out.print("전화번호 : ");
String phone = sc.next();
member.put("name",name);
member.put("age",age);
member.put("phone",phone);
memberList.add(member);
}
public void printList() {
int i = 0;
System.out.println("\t이름\t나이\t전화번호");
for(Map map : memberList) {
System.out.println(i+++"\t"+map.get("name")+"\t"+map.get("age")+"\t"+map.get("phone"));
}
}
public void remove() {
printList();
System.out.println("삭제할 회원번호 입력");
int num = sc.nextInt();
memberList.remove(num);
printList();
}
public void update() {
printList();
System.out.println("수정할 회원번호 입력");
int num = sc.nextInt();
Map<String, String> member = memberList.get(num); // 인덱스값으로 map을 불러옴
System.out.print("이름 : ");
String name = sc.next();
System.out.print("나이 : ");
String age = sc.next();
System.out.print("전화번호 : ");
String phone = sc.next();
member.put("name",name);
member.put("age",age);
member.put("phone",phone);
}
}
주차관리
고객에게 차량번호를 받아 주차요금 정산
package kr.or.ddit.study13.map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class MapExample03 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
MapExample03 obj = new MapExample03();
obj.process();
}
List<Map<String,String>> list;
public void process() {
//주차요금 계산
list = dataInput();
String carNum=sc.next();
// 주차 시간 총합 구하기
int min = getMin(carNum);
System.out.println("주차 총합 : "+min+"분");
// 주차 요금 계산하기
int pay = pay(min);
System.out.println("주차 요금 : "+pay+"원");
}
public int pay(int min) {
// 기본 요금 5000, 기본시간 180
// 단위 시간 10분, 단위 요금 600
int pay = 5000;
if(min>180) {
pay+=600*(min-180)/10;
}
return pay;
}
// carNum와 같은 차량번호를 찾아서 입차시 값을 저장하고 출차시 값을 빼서 총합하는 메소드
public int getMin(String carNum) {
int sum = 0;
int temp = 0;
for(Map<String,String> map : list) {
String cn = map.get("차량번호");
String time = map.get("시각");
String inout = map.get("내역");
// 차량번호가 다르면 처음으로 돌아가 다시 검색
if(!carNum.equals(cn)) continue;
System.out.println(map);
if(inout.equals("입차")) {
temp = time2Int(time);
}
if(inout.equals("출차")) {
int park = time2Int(time)-temp;
sum+=park;
}
}
return sum;
}
//split로 시간과 분을 쪼개서 분으로 반환하는 메소드
public int time2Int(String time) {
String[] tokens = time.split(":");
int hour = Integer.parseInt(tokens[0]);
int min = Integer.parseInt(tokens[1]);
return hour*60+min;
}
public List<Map<String,String>> dataInput(){
List<Map<String,String>> list = new ArrayList();
// 시각 차량번호 내역
// 05:34 5961 입차
// 06:00 0000 입차
// 06:34 0000 출차
// 07:59 5961 출차
// 07:59 0148 입차
// 18:59 0000 입차
// 19:09 0148 출차
// 22:59 5961 입차
// 23:00 5961 출차
// 23:00 0000 출차
Map<String,String> m1 = new HashMap();
m1.put("시각", "05:34");
m1.put("차량번호", "5961");
m1.put("내역", "입차");
list.add(m1);
Map<String,String> m2 = new HashMap();
m2.put("시각", "06:00");
m2.put("차량번호", "0000");
m2.put("내역", "입차");
list.add(m2);
Map<String,String> m3 = new HashMap();
m3.put("시각", "06:34");
m3.put("차량번호", "0000");
m3.put("내역", "출차");
list.add(m3);
Map<String,String> m4 = new HashMap();
m4.put("시각", "07:59");
m4.put("차량번호", "5961");
m4.put("내역", "출차");
list.add(m4);
Map<String,String> m5 = new HashMap();
m5.put("시각", "07:59");
m5.put("차량번호", "0148");
m5.put("내역", "입차");
list.add(m5);
Map<String,String> m6 = new HashMap();
m6.put("시각", "18:59");
m6.put("차량번호", "0000");
m6.put("내역", "입차");
list.add(m6);
Map<String,String> m7 = new HashMap();
m7.put("시각", "19:09");
m7.put("차량번호", "0148");
m7.put("내역", "출차");
list.add(m7);
Map<String,String> m8 = new HashMap();
m8.put("시각", "22:59");
m8.put("차량번호", "5961");
m8.put("내역", "입차");
list.add(m8);
Map<String,String> m9 = new HashMap();
m9.put("시각", "23:00");
m9.put("차량번호", "5961");
m9.put("내역", "출차");
list.add(m9);
Map<String,String> m10 = new HashMap();
m10.put("시각", "23:00");
m10.put("차량번호", "0000");
m10.put("내역", "출차");
list.add(m10);
return list;
}
}
관리자 전체 요금 정산
package kr.or.ddit.study13.map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapExample04 {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
MapExample04 obj = new MapExample04();
obj.process();
}
List<Map<String, String>> list;
public void process() {
// 주차요금 계산
list = dataInput();
// 주차요금 전체 정산
allPay(list);
// 풀이 2 생성자로 set
Map<String, Integer> car = new HashMap();
for (Map<String, String> map : list) {
String carNum = map.get("차량번호");
car.put(carNum, 0);
}
Set keySet = car.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
String carNo = it.next();
System.out.println(carNo + " : " + result(carNo) + "원");
}
}
// 방법 2 차량번호 > 주차요금 리턴 메소드로 만들어 저장
public int result(String carNum) {
int min = getMin(carNum);
return pay(min);
}
// 전체 정산 메소드
public Map<String, Integer> allPay(List<Map<String, String>> list) {
Map<String, Integer> car = new HashMap();
for (Map<String, String> map : list) {
String carNum = map.get("차량번호");
car.put(carNum, pay(getMin(carNum)));
// car.put(carNum, result(carNum));
}
System.out.println(car);
return car;
}
public int pay(int min) {
// 기본 요금 5000, 기본시간 180
// 단위 시간 10분, 단위 요금 600
int pay = 5000;
if (min > 180) {
pay += 600 * (min - 180) / 10;
}
return pay;
}
// carNum와 같은 차량번호를 찾아서 입차시 값을 저장하고 출차시 값을 빼서 총합하는 메소드
public int getMin(String carNum) {
int sum = 0;
int temp = 0;
for (Map<String, String> map : list) {
String cn = map.get("차량번호");
String time = map.get("시각");
String inout = map.get("내역");
// 차량번호가 다르면 처음으로 돌아가 다시 검색
if (!carNum.equals(cn))
continue;
// System.out.println(map);
if (inout.equals("입차")) {
temp = time2Int(time);
}
if (inout.equals("출차")) {
int park = time2Int(time) - temp;
sum += park;
}
}
return sum;
}
// split로 시간과 분을 쪼개서 분으로 반환하는 메소드
public int time2Int(String time) {
String[] tokens = time.split(":");
int hour = Integer.parseInt(tokens[0]);
int min = Integer.parseInt(tokens[1]);
return hour * 60 + min;
}
public List<Map<String, String>> dataInput() {
List<Map<String, String>> list = new ArrayList();
// 시각 차량번호 내역
// 05:34 5961 입차
// 06:00 0000 입차
// 06:34 0000 출차
// 07:59 5961 출차
// 07:59 0148 입차
// 18:59 0000 입차
// 19:09 0148 출차
// 22:59 5961 입차
// 23:00 5961 출차
// 23:00 0000 출차
Map<String, String> m1 = new HashMap();
m1.put("시각", "05:34");
m1.put("차량번호", "5961");
m1.put("내역", "입차");
list.add(m1);
Map<String, String> m2 = new HashMap();
m2.put("시각", "06:00");
m2.put("차량번호", "0000");
m2.put("내역", "입차");
list.add(m2);
Map<String, String> m3 = new HashMap();
m3.put("시각", "06:34");
m3.put("차량번호", "0000");
m3.put("내역", "출차");
list.add(m3);
Map<String, String> m4 = new HashMap();
m4.put("시각", "07:59");
m4.put("차량번호", "5961");
m4.put("내역", "출차");
list.add(m4);
Map<String, String> m5 = new HashMap();
m5.put("시각", "07:59");
m5.put("차량번호", "0148");
m5.put("내역", "입차");
list.add(m5);
Map<String, String> m6 = new HashMap();
m6.put("시각", "18:59");
m6.put("차량번호", "0000");
m6.put("내역", "입차");
list.add(m6);
Map<String, String> m7 = new HashMap();
m7.put("시각", "19:09");
m7.put("차량번호", "0148");
m7.put("내역", "출차");
list.add(m7);
Map<String, String> m8 = new HashMap();
m8.put("시각", "22:59");
m8.put("차량번호", "5961");
m8.put("내역", "입차");
list.add(m8);
Map<String, String> m9 = new HashMap();
m9.put("시각", "23:00");
m9.put("차량번호", "5961");
m9.put("내역", "출차");
list.add(m9);
Map<String, String> m10 = new HashMap();
m10.put("시각", "23:00");
m10.put("차량번호", "0000");
m10.put("내역", "출차");
list.add(m10);
return list;
}
}
'JAVA > JAVA BASIC' 카테고리의 다른 글
[JAVA] 예외 (0) | 2024.04.01 |
---|---|
3/29 Homework (0) | 2024.03.29 |
3/28 Homework (0) | 2024.03.28 |
[JAVA] Collection Framework (1) | 2024.03.28 |
3/27 Homework 달력만들기 (0) | 2024.03.27 |