문제 1.
한 학생의 평점에 따라 장학금의 종류를 출력하는 프로그램을 설계한 후 작성하라.
평점에 따른 장학금의 종류는 다음과 같다.
- 평점이 4.3 이상이면 전액 장학금이다.
- 평점이 4.0 이상이고 4.3 미만이면 반액 장학금이다.
- 평점이 3.7 이상이고 4.0 미만이면 모범 장학금이다.
- 평점이 3.7 미만이면 장학금을 받을 수 없다.
학생의 평점은 키보드로부터 입력 받아야 한다.
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float avg;
String schol;
// java 에서는 string 유형을 선언을 해줘야 사용이 가능하다.
System.out.print("평점을 입력해 주세요: ");
avg = sc.nextFloat();
if(avg >=4.3) {
schol = "전액장학금";
}else if(avg >= 4.0) {
schol = "반액장학금";
}else if(avg >= 3.7) {
schol = "모범장학금";
}else {
schol = "장학금을 받을수 없습니다.";
// 모두 아닐경우 schol 값으로 리턴
}
System.out.println(schol);
sc.close();
}
}
실행결과
| 평점 4.1 입력시 |
| 평점을 입력해 주세요: 4.1 반액장학금 |
문제2.
입력 받은 양의 정수가 3의 배수, 5의 배수 혹은 8의 배수인지를 알려주는 프로그램을 설계하고 작성하라.
양의 정수가 3의 배수이면 '3의 배수이다'를,
5의 배수이면 '5의 배수이다'를 출력하며 8의 배수이면 '8의 배수이다'를,
그 외의 경우이면 '어느 배수도 아니다'를 출력하라.
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int integer;
System.out.print("정수를 입력 하십시오 : ");
integer = sc.nextInt();
if( integer % 3 == 0) {
System.out.print("3의 배수이다.");
}else if( integer % 5 == 0) {
System.out.print("5의 배수이다.");
}else if( integer % 8 == 0) {
System.out.print("8의 배수이다.");
}
else {
System.out.println("어느 배수도 아니다.");
}
sc.close();
}
}
| 실행결과 : 정수값 20일때 |
| 정수를 입력 하십시오 : 20 5의 배수이다. |
문제3.
할인점에서 고객에게 청구 금액을 계산하는 프로그램을 설계하고 작성하라.
고객이 30만원이상 구매하면 3만원을 할인해 주어야 하고
30만원 미만 10만원 이상을 구매하면 5,000원을 할인해 주어야 하며 10만원 미만을 구매하면 할인이 없어야 한다.
키보드로 부터 구매 금액을 입력 받아야 한다. 구매 금액과 청구 금액을 출력해야 한다.
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int purchase, discount;
System.out.print("구매금액을 입력해주세요 : ");
purchase = sc.nextInt();
if( purchase >= 300000) {
discount = 30000;
}else if( purchase >= 100000 ) {
discount = 5000;
}else {
discount = 0;
}
System.out.println("구매금액 : " + purchase);
System.out.println("할인금액 : " + discount);
System.out.println("청구금액 : " + (purchase - discount));
sc.close();
}
}
| 실행결과: 구매금액 350000 |
| 구매금액을 입력해주세요 : 370000 구매금액 : 370000 할인금액 : 30000 청구금액 : 340000 |
문제4.
한 직장인의 연간 근로소득에 대한 소득세를 계산하는 프로그램을 설계하고 작성하라.
근로소득에 대한 소득세는 다음과 같다.
- 근로소득이 2,000만원 이하이면 근로소득의 5%이다.
- 근로소득이 2,000만원을 초과하고, 4,000만원 이하이면 근로소득의 15%이다.
- 근로소득이 4,000만원을 초과하고, 8,000만원 이하이면 근로소득의 25%이다.
- 근로소득이 8,000만원을 초과하면 근로소득의 40%이다.
연간 근로소득을 입력 받아야 한다.
코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int earnedIncome;
double tex;
double sum;
System.out.print("근로소득을 입력해 주십시오(만원단위): ");
earnedIncome = sc.nextInt();
if(earnedIncome > 8000) {
tex = 0.4;
}else if( earnedIncome > 4000 ) {
tex = 0.25;
}else if( earnedIncome > 2000 ) {
tex = 0.15;
}else {
tex = 0.05;
}
sum = earnedIncome * tex;
System.out.println("소득세는 " + (int)sum + "만원 입니다.");
// int 으로 sum의 소숫점을 버린다.
sc.close();
}
}
| 실행결과 : 2500 기입 |
| 근로소득을 입력해 주십시오(만원단위): 2500 소득세는 375만원 입니다. |
문제5.
할인점에서 가격이 100,000원인 한 제품을 판매한다.
그 제품을 10개 이상 사는 고객에게 10%를 할인해 준다.
고객이 구입한 그 제품의 수량을 입력하면 총 가격을 계산하는 프로그램을 설계하고 작성하라.
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int prod = 100000;
int quant;
double discount;
System.out.print("구매할 수량을 입력 하십시오 : ");
quant = sc.nextInt();
int sum = prod * (int)quant;
if( quant >= 10) {
discount = sum * 0.1;
}else {
discount = 0;
}
System.out.println("할인된 금액은 " + (int)discount );
System.out.println("총 금액은 " + (sum - (int)discount));
sc.close();
}
}
| 실행 결과 : 25개 기입 |
| 구매할 수량을 입력 하십시오 : 25 할인된 금액은 250000 총 금액은 2250000 |
문제6.
영화관에서 상영중인 영화에 대해 고객 나이가 19세 이상이면 "영화를 볼 수 있습니다"를 출력하고
나이가 19세 미만이고 15세 이상이면 "성인이 동반한 경우에만 영화를 볼 수 있습니다"를 출력하고
나이가 15세 미만이면 "영화를 볼 수 없습니다"를 출력하는 프로그램을 설계하고 작성하라.
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int age;
System.out.print("나이를 입력 하십시오 : ");
age = sc.nextInt();
if (age > 19) {
System.out.println("영화를 볼 수 있습니다.");
} else if( age >= 15) {
System.out.println("성인이 동반된 경우에만 영화를 볼 수 있습니다.");
} else {
System.out.println("영화를 볼 수 없습니다.");
}
sc.close();
}
}
| 실행결과 : 18 기입 |
| 나이를 입력 하십시오 : 18 성인이 동반된 경우에만 영화를 볼 수 있습니다. |
문제7.
리조트에서 아래와 같이 날씨에 따라 손님들에게 적절한 활동들은 제안하는 프로그램을 설계하고 작성하라.
- 온도가 25도 이상이면 수영
- 온도가 15도 이상이고 25도 미만이면 테니스
- 온도가 5도 이상이고 15도 미만이면 골프
- 온도가 5도 미만이면 스키
프로그램은 사용자로부터 온도를 입력 받아 그 온도에 적절한 활동을 출력한다. 온도는 정수 값이라고 가정한다. 다음은 모범 출력이다.
힌트 : 중첩 조건문을 사용하라. 조건문의 조건들은 필요한 것보다 더 복잡하지 않도록 유의하라.
| 출력예시 |
| 온도를 입력하세요: 23 테니스(을)를 하기에 적절한 날씨 입니다. |
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int degree;
String sports;
System.out.print("온도를 입력하세요: ");
degree = sc.nextInt();
if(degree >=25) {
sports = "수영";
}else if(degree >=15) {
sports = "테니스";
}else if(degree >= 5) {
sports = "골프";
}
else {
sports = "스키";
}
System.out.println(sports + "(을)를 하기에 적절한 날씨 입니다.");
}
}
| 실행결과 : 3 입력시 |
| 온도를 입력하세요: 3 스키(을)를 하기에 적절한 날씨 입니다. |
문제8.
직원의 연봉과 근무평가등급을 입력 받아
연봉 인상금액과 새 연봉을 계산하여 출력하는 프로그램을 설계하고 작성하라.
직원의 근무평가등급은 우수, 보통과 불량 중 하나이다.
1(우수) 등급을 받은 직원은 연봉이 6% 인상되고
2(보통) 등급을 받은 직원은 연봉이 4% 인상되며
3(불량) 등급을 받은 직원은 연봉이 2% 인상된다.
다음은 프로그램의 모범 출력이다.
| [출력예시] |
| 현 연봉을 입력하세요: 2400 근무 평가등급을 입력하세요: 1 연봉 인상액: 144.0 새 연봉: 2544.0 |
해당 코드는 다음과 같습니다.
package java1207;
import java.util.Scanner;
public class java1207_8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int earnedIncome, grade;
double offer, sum;
System.out.print("현 연봉을 입력하세요: ");
earnedIncome = sc.nextInt();
System.out.print("근무 평가등급을 입력하세요(1~3까지의 정수): ");
grade = sc.nextInt();
if (grade == 1) {
offer = earnedIncome * 0.06;
}else if (grade == 2) {
offer = earnedIncome * 0.04;
}else {
offer = earnedIncome * 0.02;
}
sum = earnedIncome + offer;
System.out.println("연봉 인상액: " + offer);
System.out.println("새 연봉 : " + sum);
}
}
| 실행결과 : 연봉 2500, 2등급 기입 |
| 현 연봉을 입력하세요: 2500 근무 평가등급을 입력하세요(1~3까지의 정수): 2 연봉 인상액: 100.0 새 연봉 : 2600.0 |
문제 9.
남성들과 여성들의 이상적인 체중을 계산하는 프로그램을 설계하고 작성하라.
한 연구에 따르면 여성의 이상적인 체중은 다음과 같이 계산된다.
- 신장이 150cm를 초과하다면 (37.8 + 0.75 * (신장 - 150))kg 이다.
- 신장이 150cm 이하라면 37.8 kg 이다.
예를 들면 신장이 158cm인 여성의 이상적인 체중은 37.8 + 0.75 * 8 = 43.8kg이다.
남성의 이상적인 체중은 다음과 같이 계산된다.
- 신장이 150cm를 초과하다면 (40 + 0.89 * (신장 - 150))kg 이다.
- 신장이 150cm 이하라면 40 kg 이다.
예를 들면 신장이 175cm인 남성의 이상적인 체중은 40 + 0.89 * 25 = 62.25kg이다.
프로그램은 사용자로부터 한 여성의 신장과 한 남성의 신장을 각각 입력받아야 한다.
그 다음에 그 여성의 이상적인 체중과 그 남성의 이상적인 체중을 계산한 후 출력해야 한다.
프로그램을 작성하기에 앞서 설계를 하라.
다음은 프로그램의 모범출력이다.
| 출력 |
| 여성의 신장을 입력하세요: 158 남성의 신장을 입력하세요: 175 여성의 이상적인 체중은 43.8이다. 남성의 이상적인 체중은 62.25이다. |
해당 코드는 다음과 같다.
import java.util.Scanner;
public class java1207_8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int maleTall, femaleTall;
double optiMale, optiFemale;
System.out.print("여성의 신장을 입력하세요: ");
femaleTall = sc.nextInt();
System.out.print("남성의 신장을 입력하세요: ");
maleTall = sc.nextInt();
if(femaleTall>150) {
optiFemale = (37.8 + 0.75 * (femaleTall - 150));
}else {
optiFemale = 37.8;
}
if(maleTall>150) {
optiMale = (40 + 0.89 * (maleTall - 150));
}else {
optiMale = 40;
}
System.out.println("여성의 이상적인 체중은 " + optiFemale + "이다.");
System.out.println("남성의 이상적인 체중은 " + optiMale + "이다.");
sc.close();
}
}
| 결과출력 : 여자신장 158, 남자신장 175입력 |
| 여성의 신장을 입력하세요: 158 남성의 신장을 입력하세요: 175 여성의 이상적인 체중은 43.8이다. 남성의 이상적인 체중은 62.25이다. |
문제 10.
주어진 연도가 윤년인지 아닌지를 출력하는 프로그램을 설계하고 작성하라.
한 연도가 4로 나누어지고 100으로 나누어지지 않으면 그 연도는 윤년이다.
예를 들면 1796년은 1796이 4로 나누어지고 100으로 나누어지지 않으므로 윤년이다.
또한 한 연도가 4로 나누어지고 100으로 나누어질 뿐만 아니라 400으로도 나누어지면 그 연도는 윤년이다.
예를 들면 2000년은 윤년이나 1800년은 윤년이 아니다.
프로그램은 '연도를 입력하세요.' 라는 메시지를 출력한 후 연도를 입력 받아야 한다.
그리고 연도가 윤년이면 'xxxx년은 윤년입니다'를 출력하고
아니면 'xxxx년은 윤년이 아닙니다'를 출력해야 한다. 여기서 xxxx는 입력 받은 연도이다.
해당 코드는 다음과 같습니다.
import java.util.Scanner;
public class java1207_10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year;
String yoonYear;
System.out.print("연도를 입력하세요: ");
year = sc.nextInt();
if(year % 4 == 0) {
if(year % 100 !=0) {
yoonYear = "년은 윤년입니다.";
}
else if( year % 400 == 0) {
yoonYear ="년은 윤년입니다.";
} else {
yoonYear ="년은 윤년이 아닙니다.";
}
}else {
yoonYear = "년은 윤년이 아닙니다.";
}
System.out.println(year + yoonYear);
sc.close();
}
}
| 실행결과 : 연도기입 1800 |
| 연도를 입력하세요: 1800 1800년은 윤년이 아닙니다. |
문제 11.
신용카드 회사의 고객에게 매월 보내지는 카드 이용대금 명세서를 작성하는 프로그램을 설계하고 작성하라.
프로그램은 이전 잔고(미결제금액)과 당월 사용금액을 입력으로 받아야 한다.
그 다음으로 연체이자, 새 잔고(입금해야 할 총 금액)과 최소 입금액을 계산해야 한다.
이전 잔고가 0보다 크다면 연체이자는 이전 잔고와 당월 사용금액의 합의 2%이다.
최소 입금액은 다음과 같이 계산된다.
- 새 잔고가 100,000원보다 작으면 최소 입금액은 새 잔고이다.
- 새 잔고가 100,000원보다 크거나 같고 300,000원보다 작거나 같으면 최소 입금액은 100,000원이다.
- 새 잔고가 300,000원보다 크다면 최소 입금액은 새 잔고의 20%이다.
예를 들면 새 잔고가 58,000원이라면 고객은 58,000원 전부를 입금해야 한다.
새 잔고가 172,000원이라면 최소 입금액은 100,000원이다.
새 잔고가 649,000원 이라면 최소 입금액은 649,000원 * 0.2 = 129,800원이다.
프로그램은 다음과 같은 포맷으로 당월 카드 이용대금 명세서를 출력해야 한다.
| 당월 카드 이용 대금 명세서 |
| 미결제금액: xxxx원 당월 사용금액: xxxxxx원 연체이자: xxx원 입금해야 할 총금액: xxxxxx원 최소입금액: xxxx원 |
해당 코드는 다음과 같습니다.
import java.util.Scanner;
public class java1207_11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int overdue, thisMonth, inteRest, totMon, minMon;
System.out.print("미결제금액: ");
overdue = sc.nextInt();
System.out.print("당월 사용금액: ");
thisMonth = sc.nextInt();
if(overdue>0) {
inteRest = (overdue + thisMonth) * 2/100;
}
else {
inteRest = 0;
}
totMon = inteRest + overdue + thisMonth;
if( totMon > 300000) {
minMon = totMon * 1/5;
} else if( totMon >= 100000) {
minMon = 100000;
} else {
minMon = totMon;
}
System.out.println("연체이자: " + inteRest + "원\n");
System.out.println("입금 해야할 총 금액: " + totMon + "원" );
System.out.println("최소입금액: " + minMon + "원");
sc.close();
}
}
| 실행결과 : 미결제금액 20000, 당월 사용금액 649000 입력 |
| 미결제금액: 20000 당월 사용금액: 649000 연체이자: 13380원 입금 해야할 총 금액: 682380원 최소입금액: 136476원 |
이상입니다~
수학을 잘해야겠다!
'JAVA > 연습장!' 카테고리의 다른 글
| 클래스 , class 연습문제! (0) | 2022.12.13 |
|---|---|
| 메소드, 연습 - java (0) | 2022.12.12 |
| Array, 배열 문제 (0) | 2022.12.09 |
| while문, if, for문 연습장 (0) | 2022.12.09 |
| while문 연습장! (2) | 2022.12.08 |