728x90
package day16;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
//HashMap을 이용하여 학생 이름과 자바 점수를 기록하는
// 관리 프로그램을 작성하세요.
// 아래 프로그램 메뉴에서 각 번호로 서비스 선택하고,
// 6번을 입력받으면 프로그램 종료.
/*
** 자바 성적 관리 프로그램 **
1. 전체 조회
2. 등록
3. 수정
4. 삭제
5. 전체 평균
6. 프로그램 종료
*/
public class Test04Ex {
HashMap<String, Integer> data = new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
private void printAll() {
Set<String> keys = data.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String name = it.next();
int score = data.get(name);
System.out.println(name + " : " + score);
}
System.out.println("=====================================");
}
private void addData() {
System.out.print("이름>> ");
String name = sc.nextLine();
System.out.print("점수>> ");
// String name = sc.nextLine();
// int score = Integer.parseInt(name);
int score = Integer.parseInt(sc.nextLine());
// map안에 key값으로 이미 저장된 이름이 있는지 확인
Set<String> keys = data.keySet();
if(keys.contains(name)) { // key들중에 입력받은 name과 동일한 값이 있냐?
System.out.println("이미 존재하는 학생입니다. 이름을 다시 입력해주세요.");
//addData();
}else {
data.put(name, score); // map에 저장
System.out.println("저장 완료");
}
System.out.println("=====================================");
}
private void modifyData() {
System.out.print("수정할 학생 이름>> ");
String name = sc.nextLine();
Set<String> keys = data.keySet();
if(keys.contains(name)) {
// 점수 입력받아 수정
System.out.print("점수 >> ");
//String name = sc.nextLine();
//int score = integer.parseInt(name);
int score = Integer.parseInt(sc.nextLine());
data.put(name, score); // 수정 put(같은키값, 다른벨류값);
System.out.println("수정완료!");
}else {
System.out.println("존재하지 않는 학생입니다..");
}
System.out.println("=====================================");
}
private void deleteData() {
System.out.print("삭제할 학생 이름>> ");
String name = sc.nextLine();
Set<String> keys = data.keySet();
if(keys.contains(name)) {
data.remove(name); // 삭제
System.out.println("삭제완료!");
}else {
System.out.println("존재하지 않는 학생입니다..");
}
System.out.println("=====================================");
}
private void printAvg() {
Collection<Integer> col = data.values(); // map에서 값들만 뽑아
Iterator<Integer> it = col.iterator();
int sum = 0;
while(it.hasNext()) {
sum += it.next(); // 값하나씩 꺼내서 sum에 누적해 더하기
}
double avg = (double)sum / data.size();
System.out.println("평균 점수 : " + avg);
System.out.println("=====================================");
}
public void run() {
while(true) {
System.out.println("** 자바 성적 관리 프로그램 **\n"
+ "1. 전체 조회 \n"
+ "2. 등록\n"
+ "3. 수정\n"
+ "4. 삭제\n"
+ "5. 전체 평균\n"
+ "6. 프로그램 종료");
System.out.print("원하는 서비스 번호를 입력해주세요 >> ");
int sel = Integer.parseInt(sc.nextLine());
System.out.println("=====================================");
if(sel == 1) printAll();
else if(sel == 2) addData();
else if(sel == 3) modifyData();
else if(sel == 4) deleteData();
else if(sel == 5) printAvg();
else if(sel == 6) {
sc.close();
System.out.println("프로그램 종료!");
break;
}else {
System.out.println("잘못된 메뉴번호... 다시 입력해주세요.");
}
}
}
public static void main(String[] args) {
Test04Ex prg = new Test04Ex();
prg.run();
}
}
package day16;
import java.util.Scanner;
import java.util.Vector;
/*
Scanner 클래스로 -1이 입력될때까지 양의 정수를 입력받아 벡터에 저장하고,
벡터를 검색하여 가장 큰 수를 출력하는 프로그램을 작성하세요.
실행예시:
정수>> 10 6 22 6 88 77 -1
가장 큰 수는 88
*/
public class Test01Ex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Vector<Integer> v = new Vector<Integer>();
System.out.print("정수 >> ");
while(true) {
int n = sc.nextInt();
if(n == -1) { // -1인지 먼저 검사
break;
}
v.add(n); // 벡터에 추가
}
// 저장된것이 하나도 없을 경우 예외 처리
if(v.size() == 0) {
System.out.println("저장된 수가 하나도 없습니다.");
sc.close();
return; // main 메서드 강제 종료
}
// 가장 큰 수 찾아서 출력 (메서드로 작성해보자)
printBiggerNum(v); // v를 인자로 던져서 가장큰수 찾아 출력하라고 명령!
}
int max = vector.get(0);
for(int i = 0; i < vector.size(); i++) {
if(max < vector.get(i)) {
max = vector.get(i);
}
}
System.out.println("가장 큰 수는 : " + max);
}
package day16;
import java.util.ArrayList;
import java.util.Scanner;
/*
Scanner 클래스를 사용하여 6개 학점('A', 'B', 'C', 'D', 'F')을 문자로 입력받아
ArrayList에 저장하고, ArrayList를 검색하여 학점을 점수(A=4.0, B=3.0, C=2.0, D=1.0, F=0)로 변환하여
평균을 출력하는 프로그램을 작성하세요.
실행예시:
6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F)>> A C A B F D
2.3333333333333335
*/
public class Test02Ex {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("학점을 입력하세요 >> ");
/*
* System.out.println("6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F)>>");
for (int i = 0; i < 6; i++) {
Character grade = sc.next().charAt(0); //입력값 중 첫번째 문자 입력받기
list.add(grade); //어레이에 등급 추가
}
double sum = 0;
for (int i = 0; i < 6; i++) {
if(list.get(i).equals('A')) {sum += 4.0;}
else if(list.get(i).equals('B')) {sum += 3.0;}
else if(list.get(i).equals('C')) {sum += 2.0;}
else if(list.get(i).equals('D')) {sum += 1.0;}
else if(list.get(i).equals('F')) {sum += 0;}
}
System.out.println(sum/list.size());
sc.close();
*/
String grade = sc.nextLine();
String[] split = grade.split(" ");
for(String s: split){
list.add(s);
}
System.out.println(list);
System.out.println("학점을 입력하세요 >>");
double sum = 0;
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals("a")) {sum += 4.0;}
if(list.get(i).equals("b")) {sum += 3.0;}
if(list.get(i).equals("c")) {sum += 2.0;}
if(list.get(i).equals("d")) {sum += 1.0;}
if(list.get(i).equals("f")) {sum += 0.0;}
}
System.out.println(" 평균 " + sum/list.size());
}
}
package day16;
import java.util.HashMap;
import java.util.Scanner;
public class Test03Ex {
public static void main(String[] args) {
// 영한 사전 만들기
// : HashMap을 이용하여 10개의 단어를 영어,한글의 쌍으로 저장하고
// 영어로 한글을 검색하는 프로그램을 만들어보세요.
// 단, exit가 입력되면 프로그램 종료!
HashMap<String, String> dict = new HashMap<String, String>();
dict.put("apple", "사과");
dict.put("paper", "종이");
dict.put("book", "책");
dict.put("car", "자동차");
dict.put("pants", "바지");
dict.put("bottle", "병");
dict.put("chair", "의자");
dict.put("extend", "확장하다");
dict.put("implement", "실행하다");
dict.put("banana", "바나나");
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("찾고싶은 단어 >> ");
if(eng.equals("exit")) {
System.out.println("프로그램 종료!");
break;
}
String kor = dict.get(eng);
if(kor == null) {
System.out.println(eng + "는 사전에 없는 단어입니다.");
}else {
System.out.println(kor);
}
}
sc.close();
}
}
package day16;
import java.lang.ProcessHandle.Info;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
/*
id와 tel(전화번호)로 구성되는 Student클래스를 만들고, 이름을 key로 하고 Student객체를 값으로 하는 해쉬맵을 작성해보세요.
이름을 검색하면 id와 전화번호 출력되고, exit 입력하면 프로그램 종료.
*/
class Student{
private int id;
private String tel;
public Student(int id, String tel) {
this.id = id; this.tel =tel;
}
public int getId(){return id;}
public String getTel() {return tel;}
public static void run() {
HashMap<String, Student> map = new HashMap<String, Student>();
map.put("피카츄", new Student(1, "010-1111-2222"));
map.put("라이츄", new Student(2, "010-1234-5678"));
map.put("파이리", new Student(3, "010-9999-9999"));
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("이름을 입력하세요 ");
String name = sc.nextLine();
if(name.equals("exit")) {break;}
Student info = map.get(name);
if(info==null) { System.out.println("없는사람입니다 .");}
else {
System.out.println(name+ ":" + " id : " + info.getId() + " Tel :"+info.getTel() );
}
} System.out.println("프로그램 종료...");
sc.close();
}
}
public class Test05Ex {
public static void main(String[] args) {
Student.run();
}
}
package day16;
import java.util.HashMap;
import java.util.Scanner;
/*
"그만"이 입력될 때까지 나라이름과 인구를 입력받아 저장하고,
다시 나라이름을 입력받아 인구를 출력하는 프로그램을 작성하세요.
아래 해쉬맵을 이용하세요.
HashMap<String, Integer> nations = new HashMap<String, Integer>();
실행예시 :
나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구 >> Korea 5000
나라 이름, 인구 >> USA 1000000
나라 이름, 인구 >> Swiss 2000
나라 이름, 인구 >> France 3000
나라 이름, 인구 >> 그만
인구 검색 >> France
France의 인구는 3000
인구 검색 >> 스위스
스위스 나라는 없습니다.
인구 검색 >> 그만
프로그램 종료!
*/
public class Test06Ex {
public static void main(String[] args) {
HashMap<String, Integer> nations = new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
System.out.println("나라 이름과 인구를 입력하세요.(예: Korea 5000)");
// 나리이름, 인구 입력받아 저장 (그만이 break 포인트)
while(true) {
System.out.print("나라 이름, 인구 >> ");
String txt = sc.nextLine();
if(txt.equals("그만")) {
break;
}
String[] txtSplit = txt.split(" ");
nations.put(txtSplit[0], Integer.parseInt(txtSplit[1]));
}
// 나라이름 입력받아 인구 출력
while(true) {
System.out.print("인구 검색 >> ");
String n = sc.nextLine();
if(n.equals("그만")) {
break;
}
// map의 get(key값) 은 해당 키벨류가 없으면 null 리턴
Integer popul = nations.get(n); // 저장하는 변수를 Integer로 받은 이유 : null 체크하려고
if(popul == null) {
System.out.println(n + " 나라는 없습니다.");
}else {
System.out.println(n + "의 인구는 " + popul);
}
}
System.out.println("프로그램 종료! ");
sc.close();
}
}
package day16;
import java.util.Scanner;
import java.util.Vector;
/*
Vector 컬렉션을 이용하여 강수량의 평균을 유지 관리하는 프로그램을 작성하세요.
강수량을 입력하면 벡터에 추가하고 현재 입력된 모든 강수량과 평균을 출력한다.
실행 예시 :
강수량 입력 (0 입력시 종료)>> 5
5
현재 평균 5
강수량 입력 (0 입력시 종료)>> 80
5 80
현재 평균 42
강수량 입력 (0 입력시 종료)>> 53
5 80 53
현재 평균 46
강수량 입력 (0 입력시 종료)>> 22
5 80 53 22
현재 평균 40
강수량 입력 (0 입력시 종료)>> 0
프로그램 종료!
*/
public class Test07Ex {
public static void main(String[] args) {
Vector<Integer> data = new Vector<Integer>();
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("강수량 입력 (0 입력시 종료)>> ");
int amount = Integer.parseInt(sc.nextLine().trim());
if(amount == 0) {
break;
}
data.add(amount); // 강수량 저장
printVector(data); // 벡터에 저장된 모든 강수량 출력 메서드 호출~
printAvg(data); // 벡터에 저장된 강수량 평균 출력 메서드 호출~
System.out.println();
}//while
System.out.println("프로그램 종료!");
sc.close();
}//main
public static void printVector(Vector<Integer> vector) {
for(int i = 0; i < vector.size(); i++) {
System.out.print(vector.get(i) + " ");
}
System.out.println();
}
public static void printAvg(Vector<Integer> data) {
int sum = 0;
for(int i = 0; i < data.size(); i++) {
sum += data.get(i);
}
int avg = sum / data.size();
System.out.println("현재 평균 : " + avg);
}
}
package day16;
import java.util.ArrayList;
import java.util.Scanner;
/*
하나의 학생 정보를 나타내는 StudentClass에는
이름, 학과, 학번, 학점 평균을 저장하는 필드가 있다.
학생마다 StudentClass 객체를 생성하고 4명의 학생정보를
ArrayList<StudentClass> 컬렉션에 저장한 후에,
ArrayList<StudentClass>의 모든 학생(4명) 정보를 출력하고
학생 이름을 입력받아 해당 학생의 학점 평균을 출력하는 프로그램을 작성하세요.
실행예시:
학생이름, 학과, 학번, 학점평균 입력하세요.
>> 호크아이,모바일,1,4.1
>> 데드풀,안드로이드,2,3.9
>> 헐크,웹개발,3,3.5
>> 아이언맨,빅데이터,4,4.25
---------------------------
이름:호크아이
학과:모바일
학번:1
학점평균:4.1
---------------------------
이름:데드풀
학과:안드로이드
학번:2
학점평균:3.9
---------------------------
이름:헐크
학과:웹개발
학번:3
학점평균:3.5
---------------------------
이름:아이언맨
학과:빅데이터
학번:4
학점평균:4.25
---------------------------
학생 이름 >> 아이언맨
아이언맨, 빅데이터, 4, 4.25
학생 이름 >> 데드풀
데드풀, 안드로이드, 2, 3.9
학생 이름 >> 그만
프로그램 종료!
*/
class StudentClass {
private String name; // 이름
private String dept; // 학과
private String id; // 학번
private double grade; // 학점평균
StudentClass(String name, String dept, String id, double grade){
this.name = name; this.dept = dept; this.id = id; this.grade = grade;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getDept() { return dept; }
public void setDept(String dept) { this.dept = dept; }
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public double getGrade() { return grade; }
public void setGrade(double grade) { this.grade = grade; }
}
public class Test08Ex {
// 학생 정보 저장할 ArrayList 인스턴스로 만들어 모든 메서드에서 접근할 수 있게..
ArrayList<StudentClass> list = new ArrayList<StudentClass>();
Scanner sc = new Scanner(System.in);
// 학생정보 저장
void setList() {
System.out.println("학생이름, 학과, 학번, 학점평균 입력하세요.");
for(int i = 0; i < 4; i++) {
System.out.print(">> ");
String data = sc.nextLine(); // 호크아이,모바일,1,4.1
String[] splited = data.split(","); // 쉼표를 구분자로 분할하여 문자열배열로받기
String name = splited[0];
String dept = splited[1];
String id = splited[2];
double grade = Double.parseDouble(splited[3]); // 꺼내서 형변환
list.add(new StudentClass(name, dept, id, grade));
}
System.out.println("---------------------------");
}
// 학생정보 출력
void printAll() {
for(int i = 0; i < list.size(); i++) {
StudentClass stu = list.get(i);
System.out.println("이름:" + stu.getName());
System.out.println("학과:" + stu.getDept());
System.out.println("학번:" + stu.getId());
System.out.println("학점평균:" + stu.getGrade());
System.out.println("---------------------------");
}
}
// 학생 검색
void search() {
while(true) {
System.out.print("학생 이름 >> ");
String input = sc.nextLine();
if(input.equals("그만")) {
break;
}
// list에 저장된 정보에 모두 접근
for(int i = 0; i < list.size(); i++) {
StudentClass stu = list.get(i);
if(stu.getName().equals(input)) {
System.out.print(stu.getName() + ", " + stu.getDept() + ", ");
System.out.println(stu.getId() + ", " + stu.getGrade());
break; // 먼저 찾으면 for문 끝까지 돌릴필요없이 for문 종료
}
}
}
}
public void run() {
setList(); // 학생정보 입력받아 저장해라~
printAll(); // 전체 학생정보 출력해라~
search(); // 학생 검색 하는 기능 실행해라~
}
public static void main(String[] args) {
Test08Ex ex = new Test08Ex();
ex.run();
System.out.println("프로그램 종료!");
}
}
package day16;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
/*
Test08Ex문제를 ArrayList<StudentClass>대신
HashMap<String, StudentClass> 을 이용하여 다시 작성해보세요.
해쉬맵에서 키는 학생 이름으로 한다.
*/
public class Test09Ex {
// ArrayList<StudentClass> 컬렉션에 저장
// 학생 정보 저장할 HashMap 인스턴스로 만들어 모든 메서드에서 접근할 수 있게..
HashMap<String, StudentClass> map = new HashMap<String, StudentClass>();
Scanner sc = new Scanner(System.in);
// 학생정보 저장
void setList() {
System.out.println("학생이름, 학과, 학번, 학점평균 입력하세요.");
for(int i = 0; i < 4; i++) {
System.out.print(">> ");
String data = sc.nextLine(); // 호크아이,모바일,1,4.1
String[] splited = data.split(","); // 쉼표를 구분자로 분할하여 문자열배열로받기
String name = splited[0];
String dept = splited[1];
String id = splited[2];
double grade = Double.parseDouble(splited[3]); // 꺼내서 형변환
//list.add(new StudentClass(name, dept, id, grade));
map.put(name, new StudentClass(name, dept, id, grade));
}
System.out.println("---------------------------");
}
// 학생정보 출력
void printAll() {
//Set<String> keys = map.keySet();
//Iterator<String> it = keys.iterator(); // 키들만 뽑음 (이름들)
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()) {
String key = it.next(); // 키값(학생이름) 하나 뽑고
StudentClass stu = map.get(key); // 키값주고 벨류값 뽑음
System.out.println("이름:" + stu.getName());
System.out.println("학과:" + stu.getDept());
System.out.println("학번:" + stu.getId());
System.out.println("학점평균:" + stu.getGrade());
System.out.println("---------------------------");
}
}
// 학생 검색
void search() {
while(true) {
System.out.print("학생 이름 >> ");
String input = sc.nextLine();
if(input.equals("그만")) {
break;
}
StudentClass stu = map.get(input);
if(stu == null) {
System.out.println(input + " 학생은 없습니다.");
}else {
System.out.print(stu.getName() + ", ");
System.out.print(stu.getDept() + ", ");
System.out.print(stu.getId() + ", ");
System.out.println(stu.getGrade());
}
}//while
}// search()
public void run() {
setList(); // 학생정보 입력받아 저장해라~
printAll(); // 전체 학생정보 출력해라~
search(); // 학생 검색 하는 기능 실행해라~
}
public static void main(String[] args) {
Test09Ex ex = new Test09Ex();
ex.run();
}
}
package day16;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
/*
이름과 학점(4.5만점)을 5개 입력받아 해쉬맵에 저장하고,
장학생 선발 기준을 입력받아 장학생 명단을 출력하세요.
실해예시:
자바장학금관리시스템입니다.
이름과 학점 >> 호크아이 3.1
이름과 학점 >> 블랙위도우 3.6
이름과 학점 >> 토르 2.9
이름과 학점 >> 데드풀 3.7
이름과 학점 >> 아이언맨 4.3
장학생 선발 학점 기준 입력 >> 3.2
장학생 명단 : 블랙위도우 데드풀 아이언맨
*/
class Scholarship {
private String title;
private HashMap<String, Double> map = new HashMap<String, Double>();
private Scanner sc = new Scanner(System.in);
Scholarship(String title) {
this.title = title;
}
void insert() {
System.out.println(title + "관리시스템입니다.");
for(int i = 0; i < 5; i++) {
System.out.print("이름과 학점 >> ");
String[] txt = sc.nextLine().split(" ");
map.put(txt[0], Double.parseDouble(txt[1]));
}
}
void select() {
System.out.print("장학생 선발 학점 기준 입력 >> ");
double cutline = Double.parseDouble(sc.nextLine());
System.out.print("장학생 명단 : ");
Iterator<String> it = map.keySet().iterator(); // 키들만 뽑아서 반복자 얻어오기(키들 일렬로 나열)
while(it.hasNext()) {
String name = it.next(); // 키하나 나옴
double score = map.get(name);
if(score >= cutline) {
System.out.print(name + " ");
}
}
System.out.println();
}
}
public class Test10Ex {
public static void main(String[] args) {
Scholarship sship = new Scholarship("자바장학금");
sship.insert();
sship.select();
}
}
package day16;
import java.util.ArrayList;
import java.util.Scanner;
/*
나라와 수도 맞추기 게임을 만들어 보세요.
1) 나라이름(country)과 수도(capital)로 구성된 Nation클래스를 작성하고,
ArrayList<Nation> 컬렉션을 이용하여
아래 실행 예시와 같이 작동되도록 프로그램을 작성하세요.
실행예시:
** 수도 맞추기 게임을 시작합니다 **
입력:1, 퀴즈:2, 종료:3 >> 1 (사용자가 입력)
현재 8개의 나라와 수도가 입력되어 있습니다. (input())
나라와 수도 입력9>> 한국 서울
나라와 수도 입력10>> 그리스 아테네
그리스는 이미 있습니다!!
나라와 수도 입력10>> 호주 시드니
나라와 수도 입력11>> 이탈리아 로마
나라와 수도 입력12>> 그만
입력:1, 퀴즈:2, 종료:3 >> 2
호수의 수도는? 시드니 (quiz())
정답!!
독일의 수도는? 하얼빈
아닙니다!!
멕시코의 수도는? 하얼빈
아닙니다!!
이탈리아의 수도는? 로마
정답!!
한국의 수도는? 서울
정답!!
영국의 수도는? 그만
입력:1, 퀴즈:2, 종료:3 >> 3
게임을 종료합니다.
*/
class Nation {
private String country;
private String capital;
Nation(String country, String capital){
this.country = country; this.capital = capital;
}
public String getCountry() {
return country;
}
public String getCapital() {
return capital;
}
}
class CapitalGame {
Scanner sc; // 0 1 .....
ArrayList<Nation> list; // [N(멕시코, 멕시코시티), N(스페인, 마드리드)...]
CapitalGame() {
sc = new Scanner(System.in);
list = new ArrayList<Nation>();
// 나라 정보 초기값으로 미리 추가
list.add(new Nation("멕시코", "멕시코시티"));
list.add(new Nation("스페인", "마드리드"));
list.add(new Nation("프랑스", "파리"));
list.add(new Nation("영국", "런던"));
list.add(new Nation("이탈리아", "로마"));
list.add(new Nation("그리스", "아테네"));
list.add(new Nation("중국", "베이징"));
list.add(new Nation("우크라이나", "키이우"));
}// 생성자
void input() {
int n = list.size(); // 8
System.out.println("현재 "+ n +"개의 나라와 수도가 입력되어 있습니다.");
while(true) {
n++;
System.out.print("나라와 수도 입력" + n + ">> ");
String txt = sc.nextLine();
if(txt.equals("그만")) {
break; // while true 종료
}
String[] split = txt.split(" ");
String country = split[0]; // 나라이름
String capital = split[1]; // 수도
// 나라가 존재하는지 체크 -> 메서드
if(isExists(country)) { // true 리턴받았을 경우
// 있으면 예외 메세지
System.out.println(country + "는 이미 있습니다!");
n--;
}else { // false 리턴받았을 경우
// 없으면 list에 Nation으로 객체 만들어 추가
list.add(new Nation(country, capital));
}
}// while
}// input()
private boolean isExists(String country) {
boolean result = false; // 마지막에 리턴해줄 결과 변수 미리 선언
// 리스트 저장된 개수만큼 전체 돌면서 나라이름 같은지 결과 리턴
for(int i = 0; i < list.size(); i++) {
Nation nation = list.get(i);
String ctr = nation.getCountry(); // 이미 저장된 나라이름 하나 꺼냄
if(ctr.equals(country)) {
result = true;
break; // 한번 걸리면 나머지는 안돌아도 ok
}
}
return result; // 최종 boolean변수에 남은 결과 리턴
}
void quiz() {
// 반복해서 문제내고 (그만을 입력할때까지)
while(true) {
// 문제는 랜덤으로 뽑아서 내보자 (중복 문제는 무시)
// 문제를 내려면 list에서 나라하나 뽑아야되고 -> list.get(인덱스);
// => 인덱스 번호를 랜덤으로 하나 받아서
// 범위 : 0 ~ 마지막 방번호 (list.size()-1)
int index = (int)(Math.random() * list.size()); // 0 ~ 9 = 10 0 ~ 5 = 6
Nation nation = list.get(index); // country=나라이름, capital=수도
// ->나라 뽑은거에서 나라이름 검색해서 문제로 내고
String question = nation.getCountry();
String answer = nation.getCapital();
System.out.print(question + "의 수도는?"); // 문제 지문
String capAsw = sc.nextLine(); // 정답받기
// 그만을 입력했는지 먼저 체크
if(capAsw.equals("그만")) {
break; // while문 종료!
}
// ->나라 뽑은거와 수도이름이 같은지 체크
if(capAsw.equals(answer)) {
// 맞으면 정답!!
System.out.println("정답!!");
}else {
// 틀리면 틀렸다고 출력
System.out.println("아닙니다!!!!!");
}
}
}// quiz()
// main 대신 전체 프로그램을 돌려주는 메서드
void run() {
System.out.println("** 수도 맞추기 게임을 시작합니다 **");
while(true) {
System.out.print("입력:1, 퀴즈:2, 종료:3 >> ");
int menu = Integer.parseInt(sc.nextLine());
if(menu == 1) { // 입력
input();
}else if(menu == 2) { // 퀴즈
quiz();
}else if(menu == 3) {
System.out.println("게임을 종료합니다.");
sc.close();
break;
}else {
System.out.println("메뉴 번호 오류... 다시 입력해보세요.");
}
}//while
}//run()
}
public class Test11Ex {
public static void main(String[] args) {
CapitalGame game = new CapitalGame();
game.run();
}
}
package day16;
/*
나라와 수도 맞추기 게임을 만들어 보세요.
* Test11Ex문제를 HashMap<String, String>을 이용하여 작성하세요.
Key는 나라이름이고, Value는 수도입니다.
*/
public class Test12Ex {
public static void main(String[] args) {
/*
CapitalGame game = new CapitalGame();
game.run();
*/
int a = 10;
boolean b = false;
if ((b == false) || (++a == 10)) {
System.out.println("Equal " + a);
} else {
System.out.println("Not equal! " + a);
}
}
}
728x90
'P-Language > [Java]' 카테고리의 다른 글
[Java] 18 - Network (수정필요) 메모 추가할것 3- 네트워크구조 (0) | 2022.06.11 |
---|---|
[Java] 17 - 입출력 스트림(Input/Out Stream) (0) | 2022.06.11 |
[Java] 15 - 1 Calendar API (0) | 2022.06.04 |
[Java] 16 - 컬렉션 (해쉬맵, 어레이리스트) (0) | 2022.06.03 |
[Java] 15 - 패키지와 API (0) | 2022.06.03 |