#include <stdio.h>
#define CASH_USD_BUY 1253.50
#define CASH_EURO_BUY 1224.60
#define CASH_YEN_BUY 1006.87
#define CASH_CNW_BUY 156.29
#define CASH_USD_SELL 1210.44
#define CASH_EURO_SELL 1176.82
#define CASH_YEN_SELL 1006.87
#define CASH_CNW_SELL 135.46
#define CHECK_USD_BUY 1244.32
#define CHECK_EURO_BUY 1218.72
#define CHECK_YEN_BUY 999.55
#define CHECK_USD_SELL 1220.00
#define CHECK_EURO_SELL 1186.96
#define CHECK_YEN_SELL 979.38
#define USD 1
#define EURO 2
#define YEN 3
#define CNW 4
#define CASH 1
#define CHECK 2
#define BUY 1
#define SELL 2
main()
{
int normal_condition;
int flag;
int kind_of_foreign_money;
int cash_or_check;
int buy_or_sell;
double money;
double exchange_rate;
double exchange_money;
/* 프로그램
설명 */
printf("환전
프로그램입니다.\n");
/*
환율표 출력 */
/*
사용자 입력 */
normal_condition
= 1;
printf("외화
종류는 ? (미국 달러는 1, 유로화는 2, 엔화는 3, 중국원화는 4) : ");
flag
= scanf("%d", &kind_of_foreign_money);
while
((1== flag) && ((kind_of_foreign_money < 1) ||
(kind_of_foreign_money > 4))) {
printf("외화
번호는 1 ~ 4입니다. 다시 입력 : ");
flag
= scanf("%d", &kind_of_foreign_money);
}
if (1
!= flag) {
normal_condition
= 0;
}
if
(normal_condition) {
printf("현금과
여행자 수표를 선택하세요.(현금은 1, 여행자 수표는 2) : ");
flag
= scanf("%d", &cash_or_check);
while ((1 == flag)
&& (cash_or_check != CASH) && (cash_or_check != CHECK)) {
printf("1
또는 2를 선택하세요. 다시 입력 : ");
flag
= scanf("%d", &cash_or_check);
}
if
(1 != flag) {
normal_condition
= 0;
}
}
if
(normal_condition) {
printf("사는
경우입니까 파는 경우입니까 ? ( 살때 1, 팔때 2) : ");
flag
= scanf("%d", &buy_or_sell);
while
((1 == flag) && (buy_or_sell != BUY) && (buy_or_sell != SELL))
{
printf("1
또는 2를 선택하세요. 다시 입력 : ");
flag
= scanf("%d", &buy_or_sell);
}
if
(1 != flag) {
normal_condition
= 0;
}
}
if
(normal_condition) {
printf("금액을
입력하세요 : ");
flag
= scanf("%lf", &money);
while
((1 == flag) && (money < 0)) {
printf("금액은
0 이상이어야 합니다.\n");
flag
= scanf("%lf", &money);
}
if
(1 != flag) {
normal_condition
= 0;
}
}
if
(normal_condition) {
/*
적용할 환율 선택 */
if
(CASH == cash_or_check) {
if
(USD == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CASH_USD_BUY;
}
else
{
exchange_rate
= CASH_USD_SELL;
}
}
else
if (EURO == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CASH_EURO_BUY;
}
else
{
exchange_rate
= CASH_EURO_SELL;
}
}
else
if (YEN == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CASH_YEN_BUY;
}
else
{
exchange_rate
= CASH_YEN_SELL;
}
}
else
{ /* China Won */
if
(BUY == buy_or_sell) {
exchange_rate
= CASH_CNW_BUY;
}
else
{
exchange_rate
= CASH_CNW_SELL;
}
}
}
else
{ /* CHECK */
if
(USD == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CHECK_USD_BUY;
}
else
{
exchange_rate
= CHECK_USD_SELL;
}
}
else
if (EURO == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CHECK_EURO_BUY;
}
else
{
exchange_rate
= CHECK_EURO_SELL;
}
}
else
if (YEN == kind_of_foreign_money) {
if
(BUY == buy_or_sell) {
exchange_rate
= CHECK_YEN_BUY;
}
else
{
exchange_rate
= CHECK_YEN_SELL;
}
}
else
{ /* China Won */
exchange_rate
= 0.0;
}
}
/*
환전 */
if
(exchange_rate > 0) {
exchange_money
= money * exchange_rate;
printf("환전
결과 : %.2f\n", exchange_money);
}
else
{
printf("중국에서는
여행자 수표가 통용되지 않습니다.\n");
}
}
else
{ /* 입력 오류 */
printf("입력
오류입니다.\n");
}
}