1. Scanner 클래스로 -1이 입력될 때까지 양의 정수를 입력받아 벡터에 저장하고 벡터를 검색하면 가장 큰 수를 출력하는 프로그램을 작성하라.
[실행결과]
정수(-1이 입력될 때까지)>>10 6 22 6 88 77 -1
가장 큰수는? 88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package practice07_01;
import java.util.Vector;
import java.util.Scanner;
public class answer07_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 0;
int b = 0; Scanner sc = new Scanner(System.in);
Vector<Integer> v = new Vector<Integer>(); // 벡터 객체 생성
System.out.print("정수(-1이 입력될 때까지)>>");
while(a != -1) { //-1이 삽입되면 종료되는 while문
a = sc.nextInt();
v.add(a); //한번돌때마다 벡터에 저장됩니다.
}
for (int i = 0; i < v.size(); i++) {
if(b < v.elementAt(i)) //벡터 크기만큼 반복하여 가장 큰수가 있으면
b = v.elementAt(i); // b에 저장합니다.
}
System.out.print("가장 큰수는? ");
System.out.println(b);
}
}
|
cs |
|
|
2. 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 B F A D
2.3333333333333335
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package practice07_02;
import java.util.Scanner;
import java.util.*;
public class answer07_02 {
public static double Switch(String s) {
switch(s) { //문자를 입력받으면 점수로 바꿔주는 switch 함수를 정의해 줍니다.
case "A" :
return 4.0;
case "B" :
return 3.0;
case "C" :
return 2.0;
case "D" :
return 1.0;
case "F" :
return 0.0;
default :
return 0.0;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> score = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
String s;
int sum = 0;
System.out.print("6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F)");
for(int i = 0; i < 6; i++) {
s = sc.next();
score.add(s); //score 리스트에 저장합니다.
}
for(int i = 0; i < 6; i++) {
sum +=Switch(score.get(i)); //스코어안에 있는 값들을 합해줍니다.
}
System.out.println(sum/6.0); //평균을 출력합니다.
}
}
|
cs |
3."그만"이 입력될 때까지 나라 이름과 인구를 입력받아 저장하고, 다시 나라 이름을 입력받아 인구를 출력하는 프로그램을 작성하라. 다음 해시맵을 이용하라.
**없는 키를 입력했을 때 "없는키 나라는 없습니다."라는 문구가 나오는 것을 아직 넣지 못했습니다.
HashMap<String, Integer> nations = new HashMap<String, Integer>();
[실행결과]
나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구>> KOREA 5000
나라 이름, 인구>> USA 1000000
나라 이름, 인구>> SWISS 2000
나라 이름, 인구>> FRANCE 3000
나라 이름, 인구>> 그만
나라 이름>> FRANCE
FRANCE의 인구는 3000
나라 이름>> 그만
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package practice07_03;
import java.util.HashMap;
import java.util.Scanner;
public class answer07_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, Integer> nations = new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
System.out.println("나라 이름과 인구를 입력하세요.(예: Korea 5000)");
String name = "";
int popul = 0;
while(true) {
System.out.print("나라 이름, 인구>> ");
name = sc.next();
if (name.equals("그만"))
break;
popul = sc.nextInt();
nations.put(name, popul);
}
while(true) {
System.out.print("나라 이름>> ");
int n = 0;
String Name =sc.next();
if (Name.equals("그만"))
break;
n = nations.get(Name);
System.out.println(Name+"의 인구는 "+n);
}
}
}
|
cs |
4. 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package practice07_04;
import java.util.Vector;
import java.util.Scanner;
public class answer07_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector<Integer> v = new Vector<Integer>();
Scanner sc = new Scanner(System.in);
int cnt = 0;
while(true) {
cnt++;
int sum = 0;
System.out.print("강수량 입력(0 입력시 종료)>>");
int n = sc.nextInt();
if(n == 0)
break;
v.add(n);
for(int i = 0; i<v.size();i++) {
System.out.print(v.get(i)+" ");
sum += v.get(i);}
System.out.println();
System.out.println("현재평균"+(sum/cnt));
}
}
}
|
cs |
5. 하나의 학생 정보를 나타내는 Student 클래스에는 이름, 학과, 학번, 학점 평균을 저장하는 필드가 있다.
[실행결과]
학생 이름, 학과, 학번, 학점평균을 입력하세요.
>>황기태, 모바일, 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
학생 이름>>그만
(1) 학생마다 Student 객체를 생성하고 4명의 학생정보를 ArrayList<Student> 컬렉션에 저장한 후에, ArrayList<Student>의 모든 학생(4명) 정보를 출력하고 학생 이름을 입력받아 해당 학생의 학점 평균을 출력하는 프로그램을 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package practice07_05;
import java.util.*;
class Student{
private String name, major;
private String num;
private String score;
public Student(String name, String major, String num,String score) {
this.name = name;
this.major = major;
this.num = num;
this.score = score;
}
public String get_name() {
return name;
}
public String get_major() {
return major;
}
public String get_num() {
return num;
}
public String get_score() {
return score;
}
public void find_student(String name) {
if(name.equals(this.name))
System.out.println(name+","+major+","+num+","+score);
}
}
public class answer07_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Student> a = new ArrayList<Student>();
Scanner scanner = new Scanner(System.in);
Student[] stu = new Student[4];
System.out.println("학생 이름, 학과, 학번, 학점평균을 입력하세요.");
for(int i = 0; i < 4; i++) {
System.out.print(">>");
String text = scanner.nextLine();
StringTokenizer st = new StringTokenizer(text,",");
String name = st.nextToken().trim();
String major = st.nextToken().trim();
String num = st.nextToken().trim();
String score = st.nextToken().trim();
stu[i] = new Student(name, major, num,score);
a.add(stu[i]);
}
for(int i = 0; i < 4; i++) {
System.out.println("-----------------------------");
System.out.println("이름 : " + stu[i].get_name());
System.out.println("학과 : " + stu[i].get_major());
System.out.println("학번 : " + stu[i].get_num());
System.out.println("학점평균 : "+ stu[i].get_score());
System.out.println("-----------------------------");
}
while(true) {
System.out.print("학생 이름>>");
String name = scanner.next();
if(name.equals("그만"))
break;
for (int i = 0;i<4;i++) {
Student s = a.get(i);
s.find_student(name);
}
}
}
}
|
cs |
(2) ArrayList<Student> 대신, HashMap<String, Student> 해시맵을 이용하여 다시 작성하라. 해시맵에서 키는 학생이름으로 한다.
**Student 클래스는 그대로 놔두고 아래 메인 클래스만 다시 작성했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package practice07_05;
import java.util.*;
public class answer07_05_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String,Student> dic = new HashMap<String,Student>();
Scanner sc = new Scanner(System.in);
Student[] stu = new Student[4];
System.out.println("학생 이름, 학과, 학번, 학점평균을 입력하세요.");
for(int i = 0; i < 4; i++) {
System.out.print(">>");
String text = sc.nextLine();
StringTokenizer st = new StringTokenizer(text,",");
String name = st.nextToken().trim();
String major = st.nextToken().trim();
String num = st.nextToken().trim();
String score = st.nextToken().trim();
stu[i] = new Student(name, major, num,score);
dic.put(name,stu[i]);
}
for(int i = 0; i < 4; i++) {
System.out.println("-----------------------------");
System.out.println("이름 : " + stu[i].get_name());
System.out.println("학과 : " + stu[i].get_major());
System.out.println("학번 : " + stu[i].get_num());
System.out.println("학점평균 : "+ stu[i].get_score());
System.out.println("-----------------------------");
}
while(true) {
System.out.print("학생 이름>>");
String name = sc.next();
if(name.equals("그만"))
break;
Student s = dic.get(name);
s.find_student(name);
}
|
cs |
6. 도시 이름, 위도, 경도, 정보를 가진 Location 클래스를 작성하고, 도시 이름을 '키'로 하는 HashMap<String, Location> 컬렉션을 만들고, 사용자로부터 입력받아 4개의 도시를 저장하라. 그리고 도시 이름으로 검색하는 프로그램을 작성하라.
[실행결과]
도시,경도,위도를 입력하세요
>>서울, 37, 126
>>LA, 34, -118
>>파리, 2, 48
>>시드니, 151, -33
------------------------
서울 37 126
LA 34 -118
파리 2 48
시드니 151 -33
------------------------
도시이름피리
피리는 없습니다.
도시이름파리
파리 2 48
도시이름그만
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package practice007_06;
import java.util.*;
class Location{
String city, g, w;
Location(String city, String g, String w){
this.city = city;
this.g = g;
this.w = w;
}
public String get_city() {
return city;
}
public String get_g() {
return g;
}
public String get_w() {
return w;
}
public void find_city(String city) {
if(city.equals(this.city))
System.out.println(get_city()+" "+get_g()+" "+get_w());
}
}
public class practice07_06 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String,Location> map= new HashMap<String,Location>();
Scanner scanner = new Scanner(System.in);
Location[] loc = new Location[4];
System.out.println("도시,경도,위도를 입력하세요");
for(int i = 0; i<4; i++) {
System.out.print(">>");
String text = scanner.nextLine();
StringTokenizer st = new StringTokenizer(text,",");
String city = st.nextToken().trim();
String g = st.nextToken().trim();
String w = st.nextToken().trim();
loc[i] = new Location(city, g, w);
map.put(city,loc[i]);
}
System.out.println("------------------------");
for(int i = 0; i<4; i++)
System.out.println(loc[i].get_city()+" "+loc[i].get_g()+" "+loc[i].get_w());
System.out.println("------------------------");
String city = null;
while(true){
try {
System.out.print("도시이름");
city = scanner.next();
if(city.equals("그만"))
break;
Location l = map.get(city);
l.find_city(city);}
catch(java.lang.NullPointerException e) {
System.out.println(city+"는 없습니다.");
}
}
}}
|
cs |
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
<Java> swing 메뉴 클릭이 되지 않는 문제 해결하기 (0) | 2021.07.30 |
---|---|
<JAVA> 중복되지 않는 무작위 숫자 만들기 Math.random() (0) | 2021.07.24 |
<Java> 자바의 정석 9장 1~4,7번 (0) | 2021.07.14 |
<Java> 명품 Java programming 6장 9~11 (0) | 2021.07.14 |
<Java> 명품 Java Programming 실습문제 6장 1 - 8 (0) | 2021.07.13 |