공간정보아카데미/java

java _ heeman _ 과제 모음

minjava 2025. 7. 15. 20:38

과제 1

업앤다운 게임입니다.
1부터 100사이의 임의 숫자를 생성해둡니다.
사용자로부터 숫자를 입력받습니다.
입력숫자가 임의숫자보다 크면 아래란 문자열 출력
작으면 위 라는 문자열 출력
그래서 몇번만에 맞췄는지를 출력해줍니다.
0아래이거나 100보다 크면 다시 입력하게 합니다.

옵션 : 그동안 입력한 숫자를 저장하여 출력합니다^^

package myjdbc;

import java.util.ArrayList;
import java.util.Scanner;

public class Ex01 {

	public static void main(String[] args) {
		
		ArrayList array1 = new ArrayList();
		
		// 업앤다운 게임		
		
	    // 1부터 100까지 임의 숫자 생성
		int random = (int)(Math.random() * 100) + 1; // 0에서 1 double
		System.out.println("1~100 사이 임의 숫자를 맞춰보세요.");
		
		// 사용자로부터 숫자 입력
		Scanner scan = new Scanner(System.in);
		int input = scan.nextInt();

		// System.out.printf("입력하신 숫자는 : %d\n", input);
		
		// 입력숫자가 임의숫자보다 크면 아래 라는 문자열 출력 -> if
		// 입력숫자가 임의숫자보다 작으면 위 라는 문자열 출력 -> if
		// 0 아래, 100 보다 크면 다시 입력하게 하기
		while ( input > 100 || input <= 0 ) {
				System.out.println("다시 입력하세요. -> 1과 100 사이 숫자만 입력하세요.");
				input = scan.nextInt();
		} System.out.println("게임을 시작합니다.");		
		  array1.add(input);
		
		// 숫자 맞추는 과정
		while ( input != random ) {					
			if ( input < random ) {
				System.out.println("위");
				input = scan.nextInt();
				array1.add(input);
			} else if ( input > random ) {
				System.out.println("아래");
				input = scan.nextInt();
				array1.add(input);
			} 
		} System.out.println("정답입니다.");
		
		System.out.println("총 " + array1.size() + "번 만에 맞추셨습니다. \n -> 지금까지 입력한 숫자 ");
		
		// 횟수 + 그동안 입력한 숫자 저장하여 출력
		for (int i = 0; i < array1.size(); i++) {
			System.out.println(array1.get(i));
		}
	}
}

과제 2

1부터 999까지의 100개의 임의의 수로 이루어진 배열을 생성하는 함수를
* 호출하여 배열을 생성한다.
- 2.인덱스가 홀수인 수들을 출력하는 함수
- 3.배열의 수들의 합을 반환하는 함수
- 4.가장 작은 수의 위치(인덱스)를 반환하는 함수
- 5.3의 배수만을 새로운 배열에 복사하여 리턴하는 함수
- option : 배열의 수들을 한 줄에 10개씩 출력하는 함수, 이때 각 수들은 줄이 맞춰져야 함
5번은 List Collection API를 사용하는 것이 더 적절한다.

package myjdbc;

import java.util.ArrayList;

public class Ex02 {
	
	public static void main(String[] args) {
	       
	       int[] list = makeArray();
	       oddNumber(list);
	       int total = add(list);
	       System.out.println("\n배열의 합 : " + total);
	       int number = smallNumber(list);
	       System.out.println("가장 작은 수의 위치 : " + number);
	       newArray(list);
	       System.out.println("3의 배수 배열 : " + newArray(list));
	       printArrayByTen(list);
	   }

	   // 함수 _ 1부터 1000까지 100개의 임의의 수로 이루어진 배열
	   private static int[] makeArray() {
	       int[] result = new int[100];
	       for(int i=0; i<100; i++) {
	           result[i] = (int)(Math.random()*1000) + 1;
	       }
	       return result;
	   }    
	   
	   // 함수 _ 인덱스가 홀수인 수들을 출력
	   private static void oddNumber(int[] list) {
	       System.out.print("인덱스가 홀수인 수 : ");
	       for(int i=0; i<list.length; i++) {
	           if(i%2==1) {
	               System.out.print(list[i] + " ");
	           }
	       }
	   }
	   
	   // 함수 _ 배열의 수들의 합을 반환
	   private static int add(int[] list) {
	       int sum = 0;
	       for(int i=0; i<list.length; i++) {
	           sum += list[i];
	       }
	       return sum;
	   }
	   
	   // 함수 _ 가장 작은 수의 위치(인덱스)를 반환
	   private static int smallNumber(int[] list) {
	       int small = 0;
	       for(int i=0; i<list.length; i++) {
	           if(list[i] < list[small]) {
	               small = i;
	           }
	       }
	       
	       return small;
	   }
	   
	   // 함수 _ 3의 배수만을 새로운 배열에 복사하여 리턴 (List Collection API를 사용)
	   private static ArrayList<Integer> newArray(int[] list) {
	       ArrayList<Integer> result = new ArrayList<>();
	       for(int i=0; i<list.length; i++) {
	           if(list[i]%3 == 0) {
	               result.add(i);
	           }
	       }
	       return result;
	   }
	   
	   // 함수 _ 배열의 수들을 한 줄에 10개씩 출력 (이때 각 수들은 줄이 맞춰져야 함)
	   private static void printArrayByTen(int[] list) {
	       for(int i=0; i<list.length; i++) {
	           System.out.print(list[i] + " ");
	           if((i+1)%10==0) {
	               System.out.println();
	           }
	       }
	   }
	   
	}

과제 3

 

package myjdbc;

public class CarTest {
	
	public static void main(String[] args) {
		
		new Car();
		
		// car 객체 생성
		Car car1 = new Car();
		Car car2 = new Car();
		Car car3 = new Car();
		Car car4 = new Car();
		
		// 이름
		car1.setName("LightningMcqueen");
		car2.setName("Mater");
		car3.setName("DocHudson");
		car4.setName("SallyCarrera");
		
		// 스피드
		car1.setSpeed(300);
		car2.setSpeed(80);
		car3.setSpeed(300);
		car4.setSpeed(200);
		
		// 출력
		System.out.println(car1.name + "의 스피드 : " + car1.getSpeed());
		System.out.println(car2.name + "의 스피드 : " + car2.getSpeed());
		System.out.println(car3.name + "의 스피드 : " + car3.getSpeed());
		System.out.println(car4.name + "의 스피드 : " + car4.getSpeed());
}

}

class Car{
	
	Car[] list = new Car[4];
	
	Car() {
		
	}
	
	String name;
	int speed;
	
	public void setName(String name) {
		this.name = name;
	}
	
	public void setSpeed(int speed) {
		this.speed = speed;
	}
	
	public int getSpeed() {
		return speed;
	}	
	
}

과제 4

package myjdbc;

import java.util.ArrayList;

public class PersonTest {
	
	public static void main(String[] args) {
		
		new Person();
		
		Person person1 = new Person(20, "홍길동1");
		Person person2 = new Person(21, "홍길동2");
		Person person3 = new Person(23, "홍길동3");
		
		person1.selfIntroduce();
		System.out.println("전체 인구수 : " + Person.numberOfPersons);
	}

}

class Person {
	
	int age;
	String name;
	static int numberOfPersons = 0;
	
	Person() {
		this.name = "Anonymous";
		this.age = 12;
		numberOfPersons ++; 
	}
	
	Person(int age, String name) {
		this.age = age;
		this.name = name;
		numberOfPersons ++;
	}
	
	void selfIntroduce() {
		System.out.println("내 이름은 " + name + "이며, 나이는 " + age + "살 입니다.");
	}
	
	static int getPopulation() {
		return numberOfPersons;
	}
	
}

'공간정보아카데미 > java' 카테고리의 다른 글

java _ heeman _ 1,2,3  (0) 2025.07.15
java _ heeman _ 1  (1) 2025.07.15
자바에서 배열을 그냥 출력하면?  (0) 2025.07.14
상속, 호출, 생성자  (0) 2025.07.12
get, set  (1) 2025.07.12