JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라. 작성된메소드들을사용하여주어진직사각형모양의땅의둘레, 면적과대각선의길이를구하는프로그램을작성하라 모범출력 힌트 1. 각메소드는 double형의두개의매개변수들을입력값으로받고 double형의결과값을되돌려주어야한다. 메소드는클래스메소드이어야하므로메소드머리부 (header) 앞에 static 이나와야한다. 2. 직사각형의대각선길이를계산하기위해 Math 클래스의 sqrt 메소드를사용하라. 예를들면, 를계산하기위해 Math.sqrt(3.2) 라고작성한다. 3. 프로그램의결과가맞는지를확인하기위해여러개의다른입력값들을사용하여프로그램을철저하게시험하라. 골격프로그램 // 실습 1) 클래스명 : CalRectangle // 직사각형의둘레, 면적과대각선의길이를계산한다. // 사용자가키보드에입력하는데이터를읽기위해서 Scanner 클래스를사용한다. import java.util.scanner; public class CalRectangle { // 직사각형의둘레를계산한다. // @ 입력매개변수들 : // length - 직사각형의가로길이 // width - 직사각형의세로길이 // @ 되돌려주는값 : 직사각형의둘레 (2*( 가로 + 세로 ))
static double calculateperimeter(double length, double width){ return (2 * (length + width)); // 직사각형의면적을계산한다.(calculateArea) // @ 입력매개변수들 : // length - 직사각형의가로길이 // width - 직사각형의세로길이 // @ 되돌려주는값 : 직사각형의면적 ( 가로 * 세로 ) // 직사각형의대각선길이를계산한다.(calculateDiagonal) // @ 입력매개변수들 // length - 직사각형의가로길이 // width - 직사각형의세로길이 // @ 되돌려주는값 : 직사각형의대각선길이 // ( 대각선길이 = ) => Math.sqrt() 사용 public static void main(string[] args) { // 직사각형의가로길이와세로길이를저장하는변수들을선언한다. double length, width; // 직사각형의둘레, 면적과대각선의길이를저장하는변수들을선언한다. double perimeter, area, diagonal; // 키보드로부터입력하는데이터를읽기위한 Scanner 객체를만든다. Scanner scan = new Scanner(System.in); // 사용자로부터값들을입력하라고요청한다.( 가로길이 / 세로길이 ) // 그리고그값들을적절한변수들에읽어드린다. System.out.print(" 직사각형의가로길이를입력하세요 :\t"); length = scan.nextdouble(); scna.close(); // 직사각형의둘레, 면적과대각선의길이를대응하는메소드호출함으로써계산한다. perimeter = calculateperimeter(length, width); // 결과값들을출력한다. System.out.println(" 둘레는 " + perimeter + " 이다.");
실습 2) 최대값최소값구하기실습목표 - 배열개념이해하기 - 배열선언, 초기화이해하기 - for문사용하기 문제 - 크기가 5 인배열을생성하여키보드로부터숫자를입력받아배열의요소에저장하고, 최대 값과최소값을출력하는프로그램이다. for 문을사용해서출력한다. 모범출력 힌트 1. 사용자로부터배열요소로저장할숫자를입력받는다. 2. 사용자가입력한정수를 Scanner 클래스의 nextint 메소드를이용하여대응하는배열의요소에저장한다. 3. 입력받은숫자들의최대값과최소값을구하고출력한다. 4. 프로그램의결과가맞는지를확인하기위해여러개의다른입력값들을사용하여프로그램을철저하게시험하라.
화면캡쳐 // 실습 2) 클래스명 : MaxMinArray // 사용자로부터배열요소에들어갈정수를입력받은후, 최대값과최소값을출력한다. // 사용자가키보드에입력하는데이터를읽기위해서 Scanner 클래스를사용한다. import java.util.scanner; public class MaxMinArray { public static void main(string[] args) { // 크기가 5 인배열생성 int intarray[] = // 스캐너클래스의객체생성 Scanner scan = // 사용자로부터 intarray[0] 부터배열의크기까지정수를입력하라고요청한다. // 그리고입력된값을읽는다. for() { System.out.print("intArray[" + i +"] 의값을입력 : "); scan.close(); // 최대값과최소값변수를선언한후초기화한다. int max = intarray[0]; int min = intarray[0]; // 최대값과최소값을구한다. for() {
//intarray 배열의요소를출력한다. for(int arr:intarray) System.out.print(arr + "\t"); System.out.println(); // 최대값과최소값을출력한다. System.out.println(" 최대값 : " + max); System.out.println(" 최소값 : " + min);
실습 3) 3년매출총액과평균구하기실습목표 - 2차원배열개념이해하기 - 2차원배열에서 length 필드이해하기 - for문사용하기 문제 - 한회사의지난 3 년간분기별매출의총액과연평균매출을구하는프로그램을작성하라. 이때, 2 차원배열을생성한후, 반복문에서 length 필드를사용하여합계와평균을구한다. 모범출력 힌트 1. 3년간분기별매출액이선언이되며, 합계는소숫점이하의자리까지나타나도록한다. 2. 분기별매출액의합계를구하기위해서 length 필드를사용하여배열의길이만큼 for문을사용하여배열요소의합계를넣는다. 3. 평균은 합계 / 배열명.lenfgth 으로구한다. 4. 프로그램의결과가맞는지를확인하기위해여러개의다른입력값들을사용하여프로그램을철저하게시험하라. 화면캡쳐 // 실습 3) 클래스명 : SalesRevenue // 3년간분기별매출액의총액과평균을구한다. // 2차원배열과배열의크기를구하는 length 필드를사용한다. public class SalesRevenue { public static void main (String[] args) { //2차원배열생성및선언 int intarray[][] = { {90, 90, 110, 110, //1차연도매출 {120, 110, 100, 110, //2차연도매출 {120, 140, 130, 150 ; //3차연도매출 double sum = 0;
// 연도에대한반복 ( 배열의크기는 length 필드를사용한다 ) for () // 분기에대한반복 ( 배열의크기는 length 필드를사용한다 ) // 분기별매출의합계를구한다. for () // 결과출력 )