반응형

1. Scanner를 사용하여 5개의 실수 값을 사용자로부터 입력받아 벡터에 저장하라. 그러고 나서 벡터를 검색하여 가장 큰 수를 출력하는 프로그램을 작성하라.

코드

package chapter7;

import java.util.*;

public class VectorBig {

public static void main(String[] args) {

Vector<Double> v = new Vector<Double>();

Scanner scanner = new Scanner(System.in);

for (int i = 0; i < 5; i++) {

double d = scanner.nextDouble();

v.add(d);

}

double max = v.get(0);

for(int i=0;i<5;i++){

if(max < v.get(i)) max = v.get(i);

}

System.out.println("가장 큰 수는 " + max);

}

}

실행결과


2. Scanner를 이용하여 학점(‘’, ‘’, ‘’, ‘’, ‘’)을 5개만 8자로 입력받아 ArrayList에 저장하라. 그리고 나서 다시 ArrayList를 검색하여 5개의 학점을 점수로 변환하여 출력하는 프로그램을 작성하라.

코드

package chapter7;

import java.util.*;

public class ArrayListCode {

public static void main(String[] args) {

ArrayList<String> al = new ArrayList<String>();

Scanner scanner = new Scanner(System.in);

System.out.print("빈 칸으로 분리하여 5개의 학점을 입력(A/B/C/D/F)>>");

for (int i = 0; i < 5; i++) {

String s = scanner.next();

al.add(s);

switch (s) {

case "A":

System.out.print("4.0" + " ");

break;

case "B":

System.out.print("3.0" + " ");

break;

case "C":

System.out.print("2.0" + " ");

break;

case "D":

System.out.print("1.0" + " ");

break;

case "F" :

System.out.print("0.0" + " ");

break;

}

}

}

}

실행결과


3. 5개의 나라 이름과 인구를 입력받아 해시맵에 저장하고, 가장 인구가 많은 나라를 검색하여 출력하는 프로그램을 작성하라. 이때 다음 해시맵을 이용하라.

코드

package chapter7;

import java.util.*;

public class HashMapNation {

public static void main(String[] args){

System.out.println("나라 이름과 인구를 5개 입력하세요(예 : Korea 5000)");

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

Scanner scanner = new Scanner(System.in);

for(int i=0;i<5;i++){

System.out.print("나라 이름, 인구 >>");

String nation = scanner.next();

int population = scanner.nextInt();

h.put(nation,population);

}

int max = 0;

String nation = "";

Set<String> names = h.keySet();

Iterator<String> it = names.iterator();

while(it.hasNext()){

String name = it.next();

int n = h.get(name);

if(max < n){

max = n;

nation = name;

}

}

System.out.println("제일 인구가 많은 나라는 (" + nation +"," + max +")");

}

}

실행결과



4. 한 어린이의 키를 2000년부터 209년 사이에 1년 단위로 입력받아 벡터에 저장하라. 그리고 가장 키가 많이 자란 연도를 출력하라.

코드

package chapter7;

import java.util.*;

public class TallManager {

public static void main(String[] args){

Vector<Integer> v = new Vector<Integer>();

Scanner scanner = new Scanner(System.in);

System.out.println("2000 ~ 2009년 까지 1년단위로 키(cm)를 입력>>");

for(int i = 0; i <10;i++)

v.add(scanner.nextInt());

int max = v.get(1) - v.get(0);

int year = 0;

for(int i=0;i<9;i++){

int x = v.get(i+1) - v.get(i);

if(max<x){

max = x;

year = 2000 +i;

}

}

System.out.println("가장 키가 많이 자란 년도는 " + year + "년 " + max +"cm");

}

}

실행결과



5. Location 클래스는 2차원 평면에서 하나의 위치(x,y)를 표현한다. Location 객체로 쥐가 이동한 각 위치를 저장하고 이들로부터 총 이동 거리를 구하고자 한다. ArrayList 컬렉션에 쥐의 위치(Location 객체)를 5개 입력받아 삽입한 후 총 8이를 구하라. 시작위치는 (0,0)이며, (0,0)위치로 돌아온다.

코드

package chapter7;

import java.util.*;

class Location {

private int x, y;

public Location() {}

public Location(int x, int y) {this.x = x; this.y = y;}

public int getX() {return x;}

public int getY() {return y;}

}

public class TravelManager {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

ArrayList<Location> al = new ArrayList<Location>();

System.out.println("쥐가 이동한 위치(x,y)를 5개 입력하라.");

al.add(new Location(0, 0));

for (int i = 0; i < 5; i++) {

System.out.print(">>");

al.add(new Location(scanner.nextInt(), scanner.nextInt()));

}

al.add(new Location(0, 0));

double sum, tz = 0;

for (int i = 1; i < al.size(); i++) {

Location p = al.get(i - 1);// 이전 위치

double x = p.getX();

double y = p.getY();


Location p2 = al.get(i);// 현재 위치

double x2 = p2.getX();

double y2 = p2.getY();


double tx = x2 - x;

double ty = y2 - y;


sum = (tx * tx) + (ty * ty); // 피타고라스 정리

tz = tz + Math.sqrt(sum); // 제곱근, 이동거리 누적

}

System.out.println("총 이동 거리는 " + tz);

}

}

실행결과


6.  고객의 이름과 포인트 점수를 관리하는 프로그램을 해시맵을 이용하여 작성하라. 이 프로그램은 고객의 이름과 포인트를 누적하여 관리한다. 한 고개의 입력이 끝나면 현재까지의 모든 고객의 포인트 점수를 출력한다.

코드

package chapter7;

import java.util.*;

public class CustomManager {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

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

System.out.println("** 포인트 관리 프로그램입니다 **");

while (true) {

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

String name = scanner.next();

int point = scanner.nextInt();

if (h.containsKey(name)) { 

h.put(name, h.get(name) + point);

} else {

h.put(name, point);

}

Set<String> key = h.keySet();

Iterator<String> it = key.iterator();

while (it.hasNext()) {

String n = it.next();

int p = h.get(n);

System.out.print("(" + n + "," + p + ")");

}

System.out.println();

}

}

}

실행결과


반응형

+ Recent posts