hyndb
명품 JAVA 7장 실습문제 본문
prac 7_1 Vector
public class Practice {
public static void main(String[] args) {
Vector<Integer> v = new Vector<>();
Scanner scanner = new Scanner(System.in);
System.out.print("정수(-1이 입력될때까지)>> ");
while(true) {
int n = scanner.nextInt();
if( n == -1)
break;
else
v.add(n);
}
int max = v.get(0); //맨 처음 인덱스를 최댓값으로
for(int i = 1; i<v.size(); i++) {
if (max < v.get(i)) {
max = v.get(i);
}
}
System.out.println("가장 큰 수는: " + max);
scanner.close();
}
}
prac 7_2 ArrayList
public class Practice {
public static void main(String[] args) {
ArrayList<Character> st = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.print("6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F)>> ");
for (int i = 0; i < 6; i++) {
char c = scanner.next().charAt(0);
st.add(c);
}
double sum = 0;
for (int i = 0; i < st.size(); i++) {
char c = st.get(i);
switch (c) {
case 'A':
sum += 4;
break;
case 'B':
sum += 3;
break;
case 'C':
sum += 2;
break;
case 'D':
sum += 1;
break;
case 'F':
sum += 0;
break;
}
}
System.out.println(sum / st.size());
scanner.close();
}
}
prac 7_3 HashMap
public class Practice {
public static void main(String[] args) {
HashMap<String, Integer> nations = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("나라 이름과 인구를 입력하세요. (예: korea 5000) ");
while(true) {
System.out.print("나라 이름, 인구 >> ");
String nation = scanner.next(); //입력받은 나라
if(nation.equals( "그만"))
break;
int population = scanner.nextInt(); //입력받은 인구 수
nations.put(nation, population); //나라, 인구 수 hashmap nations에 put
}
while(true) { //인구 검색
System.out.print("인구 검색 >> ");
String nation = scanner.next();
if(nation.equals("그만"))
break;
Integer n = nations.get(nation); //해시맵에서 키nations의 값 nation 검색
if (n == null)
System.out.println(nation + "나라는 없습니다.");
else
System.out.println(nation + "의 인구는 " + n);
}
scanner.close();
}
}
prac 7_4 Vector
public class Practice {
public static void main(String[] args) {
Vector<Integer> v = new Vector<>();
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.print("강수량 입력 (0 입력시 종료)>> ");
int n = scanner.nextInt(); //입력받은 강수량
if(n == 0)
break;
v.add(n);
int sum = 0;
for(int i = 0; i<v.size(); i++) { //평균 구하기 위해 합 구하기
System.out.print(v.get(i) + " ");
sum += v.get(i);
}
System.out.println("\n현재 평균 " + sum/v.size());
}
scanner.close();
}
}
prac 7_5_1 ArrayList
class Student {
private String name, department, id;
private double grade;
public Student(String name, String department, String id, double grade) {
this.name = name;
this.department = department;
this.id = id;
this.grade = grade;
}
public String getName() {
return name;
}
public String getDepartment() {
return department;
}
public String getId() {
return id;
}
public double getGrade() {
return grade;
}
}
public class Practice {
public static void main(String[] args) {
ArrayList<Student> arr = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println("학생 이름, 학과, 학번, 학점평균을 입력하세요.");
for (int i = 0; i < 4; i++) { // 학생 정보 입력, arraylist에 저장
System.out.print(">> ");
String s = scanner.nextLine();
StringTokenizer st = new StringTokenizer(s, ","); // 입력받은 s를 콤마 단위로 토큰을 나누기
String name = st.nextToken().trim();
String department = st.nextToken().trim();
String id = st.nextToken().trim();
double grade = Double.parseDouble(st.nextToken().trim()); // string 타입이 아닌 int, double 은 parseint, parsedouble
arr.add(new Student(name, department, id, grade)); // ArrayList arr에 student 객체 추가
}
System.out.println("-------------");
for (int i = 0; i < 4; i++) { // arraylist arr 모든 정보 출력
System.out.println("이름: " + arr.get(i).getName());
System.out.println("학과: " + arr.get(i).getDepartment());
System.out.println("학번: " + arr.get(i).getId());
System.out.println("학점 평균: " + arr.get(i).getGrade());
System.out.println("---------------");
}
while (true) { // 학생 이름 입력받고 학생 정보 출력
System.out.print("학생 이름 >> ");
String name = scanner.nextLine();
if (name.equals("그만"))
break;
for (int i = 0; i < 4; i++) {
Student student = arr.get(i);
if (student.getName().equals(name)) {
System.out.println(student.getName() + "," + student.getDepartment() + "," + student.getId() + ","
+ student.getGrade());
break;
}
}
}
scanner.close();
}
}
prac 7_5_2 HashMap
class Student {
private String name, department, id;
private double grade;
public Student(String name, String department, String id, double grade) {
this.name = name;
this.department = department;
this.id = id;
this.grade = grade;
}
public String getName() {
return name;
}
public String getDepartment() {
return department;
}
public String getId() {
return id;
}
public double getGrade() {
return grade;
}
}
public class Practice {
public static void main(String[] args) {
HashMap<String, Student> h = new HashMap<>(); //HashMap 객체 h 생성
Scanner scanner = new Scanner(System.in);
System.out.println("학생 이름, 학과, 학번, 학점평균을 입력하세요.");
for (int i = 0; i < 4; i++) { // 학생 정보 입력, arraylist에 저장
System.out.print(">> ");
String s = scanner.nextLine();
StringTokenizer st = new StringTokenizer(s, ","); // 입력받은 s를 콤마 단위로 토큰을 나누기
String name = st.nextToken().trim();
String department = st.nextToken().trim();
String id = st.nextToken().trim();
double grade = Double.parseDouble(st.nextToken().trim()); // string 타입이 아닌 int, double 은 parseint,
// parsedouble
Student student = new Student(name, department, id, grade);
h.put(name, student); // HashMap h에 student 객체 추가
}
System.out.println("-------------");
Set<String> key = h.keySet(); //객체 정보 읽는 iterator 생성
Iterator<String> it = key.iterator();
while (it.hasNext()) {
for (int i = 0; i < 4; i++) { // arraylist arr 모든 정보 출력
String name = it.next();
Student student = h.get(name);
System.out.println("이름: " + student.getName());
System.out.println("학과: " + student.getDepartment());
System.out.println("학번: " + student.getId());
System.out.println("학점 평균: " + student.getGrade());
System.out.println("---------------");
}
}
while (true) { // 학생 이름 입력받고 학생 정보 출력
System.out.print("학생 이름 >> ");
String name = scanner.nextLine();
if (name.equals("그만"))
break;
for (int i = 0; i < 4; i++) {
Student student = h.get(name);
if (student.getName().equals(name)) {
System.out.println(student.getName() + "," + student.getDepartment() + "," + student.getId() + ","
+ student.getGrade());
break;
}
}
}
scanner.close();
}
}
prac 7_6 HashMap
class Location {
private String name;
private int latitude, longitude;
public Location(String name, int latitude, int longitude) {
this.name = name;
this.latitude = latitude;
this.longitude= longitude;
}
public void show() {
System.out.println(name + " " + latitude + " " + longitude);
}
}
public class Practice {
public static void main(String[] args) {
HashMap<String, Location> h = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("도시, 경도, 위도를 입력하세요. ");
for(int i = 0; i< 4; i++) {
System.out.print(">> "); //4개의 도시 입력받기
String text = scanner.nextLine();
StringTokenizer st = new StringTokenizer(text, ","); //stringtokenizer ,로 문자열 구분
String name = st.nextToken();
int latitude = Integer.parseInt(st.nextToken().trim());
int longitude = Integer.parseInt(st.nextToken().trim());
h.put(name , new Location(name, latitude, longitude)); //4개 도시 해시맵에 저장
}
Set<String> keys = h.keySet();
Iterator<String> it = keys.iterator();
System.out.println("-----------");
while(it.hasNext()) { //해시맵 모든 정보 출력
String name = it.next();
Location s = h.get(name);
s.show();
System.out.println("-----------");
}
while(true) {
System.out.print("도시 이름 >> ");
String n = scanner.nextLine();
if(n.equals("그만"))
break;
if(h.get(n) != null ) //해시맵에 있으면
h.get(n).show();
else
System.out.println(n + "는 없습니다.");
}
scanner.close();
}
}
prac 7_7 HashMap
public class Practice {
public static void main(String[] args) {
HashMap<String, Double> h = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("미래장학금 관리 시스템입니다.");
for(int i = 0; i<5; i++) {
System.out.print("이름과 학점 >> ");
String name = scanner.next();
double score = scanner.nextDouble();
h.put(name, score);
}
System.out.print("장학금 선발 학점 기준 입력>> ");
double fixScore = scanner.nextDouble();
System.out.print("장학생 명단: ");
Set<String> keys = h.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) { //해시맵 if에 해당하는 정보만 출력
String name = it.next();
double score = h.get(name);
if(score > fixScore)
System.out.print(name+ " ");
}
scanner.close();
}
}
prac 7_8 HashMap
public class Practice {
public static void main(String[] args) {
HashMap<String, Integer> h = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("** 포인트 관리 프로그램입니다. **");
while (true) {
System.out.print("이름과 포인트 입력>> ");
String name = scanner.next();
if (name.equals("그만"))
break;
int point = scanner.nextInt();
if (h.get(name) == null) //입력 내용이 h에 없으면 추가
h.put(name, point);
else //있으면 h 값 반환
h.put(name, point + h.get(name));
Set<String> keys = h.keySet();
Iterator<String> it = keys.iterator();
while (it.hasNext()) { // 해시맵 if에 해당하는 정보만 출력
String st = it.next();
System.out.print("(" + st + "," + h.get(st) + ")");
}
System.out.println();
}
scanner.close();
}
}
prac 7_9 Stack
interface IStack<T> {
T pop();
boolean push(T ob);
}
class MyStack<T> implements IStack<T> {
private Vector<T> v;
private int size;
public MyStack () {
v =new Vector<>();
size = -1;
}
public T pop() { //interface 오버라이딩
if(size == -1) return null;
return v.get(size--);
}
public boolean push(T ob) {
v.add(ob);
size++;
return true;
}
}
public class Practice {
public static void main(String[] args) {
IStack<Integer> stack = new MyStack<Integer>();
for (int i = 0; i< 10; i++) stack.push(i);
while(true) {
Integer n = stack.pop();
if(n == null) break;
System.out.print(n + " ");
}
}
}
prac 7_10 Vector
abstract class Shape {
private Shape next;
public Shape() {
next = null;
}
public void setNext(Shape obj) {
next = obj;
}
public Shape getNext() {
return next;
}
public abstract void draw();
}
class Line extends Shape {
public void draw() {
System.out.println("Line");
}
}
class Rect extends Shape {
public void draw() {
System.out.println("Rect");
}
}
class Circle extends Shape {
public void draw() {
System.out.println("Circle");
}
}
public class Practice {
public static void main(String[] args) {
System.out.println("그래픽 에디터 beauty를 실행합니다.");
Vector<Shape> v = new Vector<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("삽입(1), 삭제(2), 모두 보기(3), 종료(4)>>");
int n = scanner.nextInt();
switch (n) {
case 1:
System.out.print("Line(1), Rect(2), Circle(3)>>");
int choice = scanner.nextInt();
switch (choice) {
case 1:
v.add(new Line());
break;
case 2:
v.add(new Rect());
break;
case 3:
v.add(new Circle());
break;
}
continue;
case 2:
System.out.print("삭제할 도형의 위치 >>");
int index = scanner.nextInt();
if ( v.size() <= index)
System.out.println("삭제할 수 없습니다.");
else
v.remove(index);
break;
case 3:
for (int i = 0; i < v.size(); i++)
v.get(i).draw();
break;
case 4:
System.out.println("beauty를 종료합니다.");
scanner.close();
return;
}
}
}
}
prac 7_11_1
f*ck
'JAVA > 명품 JAVA 실습문제' 카테고리의 다른 글
명품 JAVA 2장 실습문제 (0) | 2023.07.25 |
---|---|
명품 JAVA 9장 실습문제 (0) | 2023.07.09 |
명품 JAVA 8장 실습문제 (0) | 2023.06.10 |
명품 JAVA 6장 실습문제 (0) | 2023.06.06 |
명품 JAVA 5장 실습문제 (0) | 2023.06.06 |