Project
JAVA - 제품 관리 프로그램
반응형
자바 제품 관리 프로그램
상속과 다형성을 이용하여
제품을 관리하는 소스 구현
비지니스 로직을 통해 제품의 판매 수량과 총 매출액 을 파악한다.
판매량은 누적 시키며, 판매한 제품의 단가와 그 판매 수량 및 총 가격등을 출력한다.
중요 포인트
제품에는 화장품, 가전제품, 사무용품이 있다.
화장품의 품명은 립스틱(2000), 비누(500), 샴프(1000)가 있고 가전제품에는 면도기(1000), 선풍기(50000), 전기담요(300000)가 있다.
사무용품에는 A4용지(10000), 노트(20000), 펜(500)이 있다.
원가는 ( ) 안에 가격이다. 판매가는 원가에다 화장품은 50% 추가 금액이고 가전제품은 원가에다 30%이고
가전제품은 원가에 20%로 책정하였다.
프로그램에서 처리할 수 없는 입력을 하게 되면 프로그램은 중지되지 않고 다시 입력하게 끔 유도하도록
예외처리를 하였다.
Main Class
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Manager m1 = new Manager();
int act;
while(true) {
try {
do {
System.out.println("-------------");
System.out.println("제품관리 프로그램");
System.out.println("-------------");
System.out.print("1.입력, 2.출력, 3.종료\n >");
act = sc.nextInt();
} while ( act > 3 || act < 1);
switch (act) {
case 1:
System.out.print("1.화장품 | 2. 가전제품 | 3. 사무용품 \n >");
act = sc.nextInt();
if(act == 1 ) {
System.out.print("1. Soap | 2. Shampoo | 3.Lipstick\n>");
act = sc.nextInt();
if(act == 1 ) {
m1.makeUpInput(new Soap());
break;
} else if ( act == 2 ) {
m1.makeUpInput(new Shampoo());
break;
} else if ( act == 3 ) {
m1.makeUpInput(new Lipstic());
break;
} else {continue;}
} else if ( act == 2 ) {
System.out.print("1. Shave | 2. Fan | 3. electronic Blanket\n >");
act = sc.nextInt();
if ( act == 1 ) {
m1.homeProduct(new Shave());
break;
} else if ( act == 2 ) {
m1.homeProduct(new Fan());
break;
} else if ( act == 3 ) {
m1.homeProduct(new Electronic());
break;
} else {continue;}
} else if (act == 3 ) {
System.out.print("1. A4 Paper | 2. Note | 3. Pen \n > ");
act = sc.nextInt();
if( act == 1 ) {
m1.officeProduct(new AfourPaper());
break;
} else if ( act == 2 ) {
m1.officeProduct(new Note());
break;
} else if ( act == 3 ) {
m1.officeProduct(new Pen());
break;
} else {continue;}
} else {}
case 2: continue;
case 3: System.out.println("\n\n\n시스템 종료!\n\n"); sc.close(); System.exit(0);
}
}catch (Exception e) {
System.out.println(e.toString());
}
}
// m1.showAll();
}
}
PRODUCT - MAKEUP CLASS
// 부모 class
public class MakeupProduct {
double price;
int mcnt = 0; // 개수
public MakeupProduct(){}
public MakeupProduct(double price) {this.price=((price+(price*0.5)));}
}
class Lipstic extends MakeupProduct{
public Lipstic() {super(2000);}
public String toString() {return "립스틱";}
}
class Soap extends MakeupProduct{
public Soap() {super(500);}
@Override
public String toString() {return "비누";}
}
class Shampoo extends MakeupProduct{
public Shampoo() {super(1000);}
@Override
public String toString() {return "샴푸";}
}
PRODUCT - OFFICE CLASS
public class OfficeProduct {
double price;
int ocnt = 0;
public OfficeProduct() {}
public OfficeProduct(double price){this.price=((price+(price*0.5)));}
}
class AfourPaper extends OfficeProduct{
AfourPaper(){super(10000);}
@Override
public String toString() {return "A4용지";}
}
class Note extends OfficeProduct{
public Note() {super(20000);}
@Override
public String toString() {return "노트";}
}
class Pen extends OfficeProduct{
public Pen() {super(500);}
@Override
public String toString() {return "펜";}
}
PRODUCT - HOME CLASS
// 부모 클래스
public class HomeProduct {
double price;
int hcnt; // 판매량을 기록할 카운트
public HomeProduct() {}
public HomeProduct(double price) {this.price=((price+(price*0.5)));}
}
class Shave extends HomeProduct{
public Shave() {super(1000);}
@Override
public String toString() {return "면도기";}
}
class Fan extends HomeProduct{
public Fan() {super(50000);}
@Override
public String toString() {return "선풍기";}
}
class Electronic extends HomeProduct{
public Electronic () {super(300000);}
@Override
public String toString() {return "전기담요";}
}
BUSINESS LOGIC - MANAGER CLASS
import java.net.MulticastSocket;
import java.util.Scanner;
// 매니저 관리
public class Manager {
double money; // 총 매출액
int allMcnt = 0, allHcnt=0, allOcnt=0;
int Mcnt = 0, Hcnt = 0, Ocnt = 0; // 판매량 누적 ?????
MakeupProduct[] mpa = new MakeupProduct[Mcnt];
HomeProduct[] hpa = new HomeProduct[Hcnt];
OfficeProduct[] opa = new OfficeProduct[Ocnt];
Scanner sc = new Scanner(System.in);
// 메이크업 관리 메소드
void makeUpInput(MakeupProduct p) {
// 판매 관리
System.out.print("몇 개 팔았는지 입력 >");
Mcnt = sc.nextInt();
mpa = new MakeupProduct[Mcnt]; // 총 판매 개수가 배열 크기
allMcnt += Mcnt;
// p.mcnt = cnt; // 이렇게 해도 되고
int pmoney = (int)(Mcnt*p.price);
money += (p.price*Mcnt); // 입력받은 개수만큼 * 가격 = 총 판매 누적금액
int Pprice = (int)p.price; // 형변환 출력용 변수 설정
// 가격만큼 내 주머니로 집어넣기
// mpa[Mcnt++] = p;
System.out.printf("\n| 제품명 : %s | 판매가 : $%,d | 매출액 : $%,d | 판매 수량 : %d\n",p,Pprice,pmoney,Mcnt);
System.out.printf("화장품 | 총 매출액 : $%,d | 총 판매 수량 : %d\n",(int)money,allMcnt);
}
void homeProduct(HomeProduct p) {
// 판매 관리
System.out.print("몇 개 팔았는지 입력 >");
Hcnt = sc.nextInt();
hpa = new HomeProduct[Hcnt]; // 총 판매 개수가 배열 크기
allHcnt += Hcnt;
money += (p.price*Hcnt); // 입력받은 개수만큼 * 가격 = 총 판매 누적금액
int kmoney = (int)(Hcnt*p.price);
int Pprice = (int)p.price;
// 형변환 출력용 변수 설정
System.out.printf("\n| 제품명 : %s | 판매가 : $%,d | 매출액 : $%,d | 판매 수량 : %d\n",p,Pprice,kmoney,Hcnt);
System.out.printf("가전제품 | 총 매출액 : $%,d | 총 판매 수량 : %d\n",(int)money,allHcnt);
}
void officeProduct(OfficeProduct p) {
// 판매 관리
System.out.print("몇 개 팔았는지 입력 >");
Ocnt = sc.nextInt();
opa = new OfficeProduct[Ocnt]; // 총 판매 개수가 배열 크기
// p.mcnt = cnt; // 이렇게 해도 되고
allOcnt += Ocnt;
money += (p.price*Ocnt); // 입력받은 개수만큼 * 가격 = 총 판매 누적금액
int Mmoney = (int)(p.price*Ocnt);
int Pprice = (int)p.price; // 형변환 출력용 변수 설정
System.out.printf("\n| 제품명 : %s | 판매가 : $%,d | 매출액 : $%,d | 판매 수량 : %d\n",p,Pprice,Mmoney,Ocnt);
System.out.printf("사무용품 | 총 매출액 : $%,d | 총 판매 수량 : %d\n",(int)money,allOcnt);
}
}
반응형
'Project' 카테고리의 다른 글
JAVA 자바 - 은행 관리 시스템 만들기 (2) | 2020.11.19 |
---|---|
JAVA(자바) - 휴대폰 매장 계약서 작성 시스템 만들기 (0) | 2020.11.19 |
JAVA - 학생 성적 관리 프로그램 / 장학금 여부 / 학점제 / 총합 평균 (0) | 2020.11.12 |
자바 - 오목 (0) | 2020.11.11 |
자바(JAVA) - 개인 프로젝트 : 구구단 게임 (0) | 2020.11.11 |
댓글