| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- g검정
- ObjectOutputStream
- HTML
- 미디어쿼리
- html 기초
- Codility
- 예제
- FlowLayout
- BorderLayout
- inline
- Database
- FileWriter
- FFT
- 상속
- 파이썬
- 반응형웹
- rnn
- 메서드
- GridLayout
- css 기초
- iframe 태그
- Position
- oracle
- CSS
- java
- 반응형 웹 프로젝트
- 퍼셉트론
- 푸리에 변환
- html 프로젝트
- 사전학습
- Today
- Total
도라에몽주머니
[Java/Eclipse] Java 19 - 21일차 본문

예제
전체 20개 품목의 상품을 관리하려고 한다.
품명, 수량, 단가, 총액에 대하여 함수를 만들어서 처리하시오.
[처리조건]
1. main함수
public static void main(String args[]) {
// 필요한 변수와 1차원 배열 만들기
// menu()함수를 호출하여, 번호를 입력 받으시오.
// in_goods()함수를 호출하여, 품명, 수량, 단가를 입력 받으시오
// out_goods()함수를 호출하여, 품명, 수량을 입력 받으시오
// compute()함수를 호출하여 총액을 저장하시오
// output_list() 함수를 호출하여 결과를 아래와 같이 출력하시오
}
2. compute()함수에서 계산된 결과를 저장하시오
(계산방법 : 총액 = 수량 * 단가)
3. 한번 입고한 품명은 다시 입고하지 않는다. (간단히 연습하기 위해서)
<실행 결과>
상품 관리 프로그램
**************
1. 입고
2. 출고
3. 목록
4. 종료
**************
메뉴 :
-- 1번인 경우
품명 : 사과
수량 : 10
단가 : 1200
-- 2번인 경우
품명 : 사과
수량 : 5
-- 3번인 경우
품명 수량 단가(원) 총액(원)
사과 5 1200 6000
바나나 5 5000 25000
배 20 3000 60000
import java.util.Scanner;
public class Prac9 {
static int menu() {
Scanner sc = new Scanner(System.in);
int menu_num = 0;
System.out.println("상품 관리 프로그램");
System.out.println("*************");
System.out.println("1. 입고");
System.out.println("2. 출고");
System.out.println("3. 목록");
System.out.println("4. 종료");
System.out.println("*************");
System.out.print("메뉴 : ");
menu_num = sc.nextInt();
return menu_num;
}
// 입고
static int in_goods(int cnt, String[] goods_name, int[] num, int[] price) {
Scanner sc = new Scanner(System.in);
if (cnt < 20) {
System.out.print("품명 : ");
goods_name[cnt] = sc.next();
System.out.print("수량 : ");
num[cnt] = sc.nextInt();
System.out.print("단가 : ");
price[cnt] = sc.nextInt();
cnt++; // 품목 갯수 1증가
} else {
System.out.println("품목은 20개까지만 저장할 수 있습니다.");
}
return cnt;
}
// 출고
static void out_goods(int cnt, String[] goods_name, int[] num) {
Scanner sc = new Scanner(System.in);
String name = " ";
int amount = 0;
int flag = 0; // 플래그 변수 : 현재 상태를 저장하는 용도
// 0 : 없음, 1: 있음
System.out.print("품명 : ");
name = sc.next();
System.out.print("수량 : ");
amount = sc.nextInt();
// 저장되어있는 품목인 지 검사
for (int i = 0; i < cnt; i++) {
if (name.equals(goods_name[i])) {
if ((num[i] - amount) >= 0) {
num[i] = num[i] - amount;
} else {
System.out.println("재고량이 부족합니다.");
}
flag = 1;
}
}
if (flag == 0) {
System.out.println("품명이 존재하지 않습니다.");
}
}
// 총액 = 수량 * 단가
static void compute(int cnt, int[] num, int[] price, int[] sum) {
for (int i = 0; i < cnt; i++) {
sum[i] = num[i] * price[i];
}
}
static void output_list(int cnt, String[] goods_name, int[] num,
int[] price, int[] sum) {
System.out.println("품명\t수량\t단가(원)\t총액(원) ");
for (int i = 0; i < cnt; i++) {
System.out.printf("%s\t%s\t%s\t%s\n",
goods_name[i], num[i], price[i], sum[i]);
}
System.out.println();
}
public static void main(String[] args) {
// 선언
String[] goods_name = new String[20]; // 품명
int[] num = new int[20]; // 수량
int[] price = new int[20]; // 단가
int[] sum = new int[20]; // 총액
int menu_num = 0; // 메뉴 번호
int cnt = 0; // 입고된 품목의 갯수 저장
while (true) {
menu_num = menu();
System.out.println();
switch (menu_num) {
case 1: // 입고
cnt = in_goods(cnt, goods_name, num, price);
compute(cnt, num, price, sum);
break;
case 2: // 출고
out_goods(cnt, goods_name, num);
compute(cnt, num, price, sum);
break;
case 3: // 목록
output_list(cnt, goods_name, num, price, sum);
break;
case 4: // 종료
System.out.println("프로그램 종료");
System.exit(0);
}
System.out.println();
}
}
}
클래스(Class)
: 객체를 정의하는 틀, 설계도. 객체의 모든 속성과 기능이 정의되어 있다.
예제
Java 12일차에서의 Prac10.java 코드를 활용해 PlusGame 클래스를 작성하시오.
import java.util.Scanner;
class PlusGame {
int min=10, max=99, score, count, result, num1, num2;
String con="";
void setRandNum() {
num1 = (int)(Math.random()*(max - min + 1) + min);
num2 = (int)(Math.random()*(max - min + 1) + min);
}
void question(int i) {
Scanner sc = new Scanner(System.in);
System.out.printf("[%d] %d + %d = ", i, num1, num2);
result = sc.nextInt();
}
void check(int i) {
if(result == num1+num2) {
System.out.println("딩동뎅");
score += 20;
count++;
}
else {
System.out.println("틀렷따..");
question(i);
if(result == num1+num2) {
System.out.println("딩동뎅");
score += 20;
count++;
} else System.out.println("틀렷따.. 정답 : " + (num1+num2));
}
}
void output() {
System.out.printf("당신은 총 %d문제를 맞추셔서 %d점입니다.\n", count, score);
}
void stop() {
Scanner sc = new Scanner(System.in);
do {
System.out.print("continue(y/n) : ");
con = sc.next();
} while (!(con.equals("y") || con.equals("n")));
if (con.equals("n")) {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
}
void setResult(int c, int s) {
count = c;
score = s;
}
}
public class Prac4 {
public static void main(String[] args) {
PlusGame game = new PlusGame();
while(true) {
game.setResult(0, 0);
for(int i=1; i<=5; i++) {
game.setRandNum();
game.question(i);
game.check(i);
}
System.out.println();
game.output();
System.out.println();
game.stop();
}
}
}'Study > Java' 카테고리의 다른 글
| [Java/Eclipse] Java 23일차 (0) | 2022.10.18 |
|---|---|
| [Java/Eclipse] Java 22일차 (0) | 2022.10.17 |
| [Java/Eclipse] Java 18일차 (0) | 2022.10.11 |
| [Java/Eclipse] Java 17일차 (0) | 2022.10.07 |
| [Java/Eclipse] Java 15, 16일차 (0) | 2022.10.06 |