#include <iostream>
#include <stdio.h>
#include <time.h> // 타임함수 설정
#include <windows.h> // 컬러설정 
#include <conio.h>
using namespace std;
void color(int number)
{
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),number);  // 컬러 설정함수
};
class ROAD  // 거리 정보 클래스
{
private:
 float road; //거리  맴버 생성 2개
 int h; // 할증 여부
 int z,x,m;
public:
 ROAD(float a,int b) 
  :road(a),h(b) //이니셜라이저
 {
 }
    void a(); // 
 void b();
 float Distance(); // 거리정보 리턴 
 int hal(); // 할증 정보 리턴 
};
void ROAD::b() // 거리 정보 입력 받는 함수 
{
 color(10);
 cout<<"이동 거리를 설정해 주세요(km) :";
 cin>>road; // 거리정보 입력 
 for(z=0; z<1; z++) // 딜레이 함수 
 {
  cout<<" 택시가 출발합니다. "<<endl;
  Sleep(500);
 }
 for(x=0; x<1; x++)
 {
  cout<<" 요금 계산중 입니다 ";
     Sleep(500);
 }
 for(m=0; m<10; m++)
 {
  cout<<" * ";
     Sleep(500);
 }
 [...]; // 화면 초기화
}
void ROAD::a() // 거리 정보 입력 받는 함수 
{
 color(10);
 cout<<"이동 거리를 설정해 주세요(km) :";
 cin>>road; // 거리정보 입력 
 cout<<"선택하세요 1.일반요금 , 2.할증요금 :";
 cin>>h; // 요금계산방식 입력
 for(z=0; z<1; z++)
 {
  cout<<" 택시가 출발합니다. "<<endl;
  Sleep(500);
 }
 for(x=0; x<1; x++)
 {
  cout<<" 요금 계산중 입니다 ";
     Sleep(500);
 }
 for(m=0; m<10; m++)
 {
  cout<<" * ";
     Sleep(500);
 }
 [...]; // 화면 초기화
}
float ROAD::Distance() // 거리 정보 리턴 
{
 return road; 
}
int ROAD::hal() 
{
 return h;// 할증여부 
}
/* ****************************대전지역 택시  요금 클래스********************* */
class taxi : public ROAD// 대전 지역 실제 택시 요금 
{
protected:
 float road; // 거리 정보 
    float BaseCharge;  // 기본요금 
 int Break,delay;  // 정차 , 지연시간 
 int s,e,t,total;  
 int a;
public:
 taxi( float a,float b,int c, int d,int e,int f,int g,int h,int j)
  : ROAD(a,j),BaseCharge(b),Break(c),delay(d),s(e),e(f),t(g),total(h)//생성자와 이니셜라이져 
 {
 }
 // 거리입력 함수 
 void show2(); // 택시요금 출력함수 
 void racing2(); // 택시 요금 계산 함수 
 void stop11(); // 택시 정차계산 함수 
    void stop2();
};
void taxi::stop11()
{
   Break=rand()%10; //랜덤함수이용 정차 랜덤  
      if(Break/3==0)
   { 
    e++;
     
    if(hal()==1) // 일반 요금
    {
     delay=rand()%170; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
     s=(delay/36); 
     total=s*100;   // 36초당 추가 요금  (정상 요금 시)
     t+=delay;  // 지연시간 총 합 
     BaseCharge+=total; 
    }
    if(hal()==2) // 할증 요금
    {
     delay=rand()%100; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
     s=(delay/36); 
     total=s*120;   // 할증 상황시 추가요금 
     t+=delay;  // 지연시간 총 합 
     BaseCharge+=total;
    }
   }
}
void taxi::stop2()
{
   
   Break=rand()%10; //랜덤함수이용 정차 랜덤
  
      if(Break%2==0)
   { 
    e++;
    delay=rand()%150; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
    s=(delay/20); // 20초당 추가요금 (불량 요금시) 
    if(hal()==1)
    {
     total=s*200;  
     t+=delay; 
     BaseCharge+=total;
    }
    if(hal()==2)
    {
     total=s*120; // 할증 상황시 추가 요금 
     t+=delay; 
     BaseCharge+=total;
    }
   }
}
void taxi::racing2()
{
 int seed = (int)time(NULL);
 srand(seed); //정차를 랜덤하게 하기위해 필요 
   
 float c=(Distance()-2); // 2km까진 기본요금 
    a=rand()%2;// 실제 택시 양심 , 양심 불량 나눔  
 if(hal()==1)
 {
  while(1)
  {
   c=c-0.153; // 미터당 거리계산 식 
   if(c<=0)
   {
    taxi::show2();
    break;
   }
   
   BaseCharge+=100;
  
   if(a==1) // 불량 택시 
   {
         taxi::stop2();
   }
   else // 양심 택시 
   {
      taxi::stop11();
   }
  }
 }
  
 if(hal()==2) // 할증 시 
 {
  BaseCharge+=460; // 할증 기본요금
  
  while(1)
  {
   c=c-0.153; // 미터당 거리계산 식 
   if(c<=0)
   {
    taxi::show2();
    break;
   }
   
   BaseCharge+=120; 
  
   if(a==1) // 불량 요금 택시 시 
   {
   
    taxi::stop2();
   }
   else
   {
    taxi::stop11();
   }
  }
 }
 
}
void taxi::show2()
{   
 cout<<"-------------------------------------------"<<endl;
 cout<<"실제 택시 요금  : "<<BaseCharge<<"원 입니다."<<endl; // 가상으로  실제 택시 요금 출력  
}
 
class charge : public taxi // 대전 지역 택시 요금
{
private:
 float road; // 거리 정보 
    float BaseCharge;  // 기본요금 
 int Break,delay; 
 int s,e,t,total;
public:
 charge(float a,float b,int c,int d,int e,int f,int g,int h,int j)
  : taxi(a,b,c,d,e,f,g,h,j),BaseCharge(b),Break(c),delay(d),s(e),e(f),t(g),total(h) // 생성자와 이니셜라이져 
 {
 }
    // 거리입력 함수 
 void show(); // 택시요금 출력함수 
 void racing(); // 택시 요금 계산 함수 
 void stop(); // 택시 정차계산 함수 
    void aaa(); // 비교 출력함수 
};
void charge::aaa()
{
 if(BaseCharge>=taxi::BaseCharge) // 실제요금이 낮을때 
 {
  color(11);
  cout<<" 정상 요금 택시 입니다 .(약간의 오차 있음) "<<endl;
 }
 else if((BaseCharge+=500)<taxi::BaseCharge) // 실제요금이 높을때 
 {
  color(12); 
  cout<<" 불량 요금 택시 입니다 .(약간의 오차 있음) "<<endl;
 }
 else
 {
  color(11);  
  cout<<" 정상 요금  택시 입니다 .(약간의 오차 있음) "<<endl;
 }
}
void charge::stop()
{
 Break=rand()%10; // 랜덤함수이용 정차 랜덤  
 if(Break/3==0)
 { 
  e++; // 정차 회수 알려주는 거 
  delay=rand()%150; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
        s=(delay/36);// 20초당 추가요금 (불량 요금시) 
  if(hal()==1)
  {
   total=s*100;  
   t+=delay; 
   BaseCharge+=total;
  }
  if(hal()==2)
  {
   total=s*120;  
   t+=delay; 
   BaseCharge+=total;
  }
 }
}
void charge::racing()
{
 int seed = (int)time(NULL);
 srand(seed); //정차를 랜덤하게 하기위해 필요 
 
 float c=(Distance()-2); // 2km까진 기본요금 
  
 if(hal()==1)
 {
  while(1)
  {
   c=c-0.153; // 미터당 거리계산 식 
   if(c<=0)
   {
    charge::show();
   
    break;
   }
   
   BaseCharge+=100;
 
   charge::stop();
  }
 }
 if(hal()==2)
 {
  BaseCharge+=460;
    
  while(1)
  {
   c=c-0.153; // 미터당 거리계산 식 
   
   if(c<=0)
   {
    charge::show();
    break;
   }
  
   BaseCharge+=100;
   charge::stop();
  }
    }
 
}
 
void charge::show()
{
 cout<<"*************************************************************"<<endl;
 racing2(); // 실행함수 호출 
 cout<<"계산된 택시 요금  : "<<BaseCharge<<"원 입니다. "<<endl;// 도착시 요금 출력 및 종료  (계산 식 택시요금 )
    aaa(); // 비교 함수 호출 
 color(10);
 cout<<"총 정차 횟수 : "<<e<<"번 입니다."<<endl; // 정차 횟수 변수 출력
 cout<<"정차로 인한 지연시간 : "<<t/3600<<"시간 "<<(t%3600)/60;
    cout<<"분 "<<t%60<<"초"<<endl; // 시간 변형
 cout<<"*************************************************************"<<endl;
 cout<<endl<<endl;
 cout<<"메뉴얼로 돌아가시려면 1을 눌러주세요 :";
 while(1)
 {
  int j;
  cin>>j;
    
  if(j==1)
  break;
   }
 
}
/* ****************************메뉴얼 및 광역시 기본요금 정보********************* */
class manual 
{
public: //전부 참조 가능 
 void show(); //출력함수 
    void location(); // 위치 재설정 함수 
 void Talocation();
 void metropolitancity(); // 광역시 별 요금 함수 
};
void manual::show(void) // 메뉴 출력함수 
{
 cout<<"********************************"<<endl;
 cout<<"       1. 택시   출발           "<<endl; 
        cout<<"       2. 현 위치 재설정         "<<endl;
 cout<<"       3. 타 지역 이동시         "<<endl;
 cout<<"       4. 광역시 별 기본요금     "<<endl;
 cout<<"       5. 종          료         "<<endl;
 cout<<"********************************"<<endl;
}
void manual::location() // 위치 재설정 
{
 int j;
    cout<<" 현재는 대전 지역밖에 설정 하실수 없습니다 ."<<endl<<endl;;
 cout<<"메뉴얼로 돌아가시려면 1을 눌러주세요 :";
 while(1)
   {
  cin>>j;
  if(j==1)
   break;
   }
 [...]; // 화면 초기화
}
void manual::Talocation()
{
 int j;
 cout<<"죄송합니다. 현재 이서비스는 지원 예정입니다. "<<endl;
 cout<<"메뉴얼로 돌아가시려면 1을 눌러주세요 :";
 while(1)
   {
  cin>>j;
  if(j==1)
   break;
   }
 [...]; // 화면 초기화
}
 
void manual::metropolitancity() // 광역시별 기본요금 
{
 int n;
 cout<<"****광역시 별 요금관련 정보*** "<<endl;
 cout<<"**원하시는 광역시를 선택하세요***"<<endl;
 cout<<" 1.서울  2.대전  3.대구  4.부산  5.울산"<<endl;
 cout<<" 6.광주  7.인천  8.경기  9.강원  10.충북"<<endl;
 cout<<" 11.충남 12.전북 13.전남 14.경북 15.경남 16.제주 : "; 
 cin>>n;
 cout<<" "<<endl;
 if(n==1)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************서  울******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,400원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 144m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 35초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==2)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************대  전******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,300원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 153m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 36초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==3)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************대  구******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 150m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 36초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==4)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************부  산******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 143m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 34초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==5)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************울  산******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 141m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 34초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==6)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************광  주******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 150m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 36초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==7)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************인  천******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,400원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 148m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 37초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==8)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************경  기******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,300원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 144m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 35초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==9)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************강  원******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 165m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 40초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==10)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************충  북******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 150m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 36초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==11)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************충  남******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,300원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 163m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 39초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==12)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************전  북******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 150m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 26초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==13)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************전  남******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,300원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 164m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 39초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==14)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************경  북******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 145m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 35초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==15)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************경  남******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 143m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 34초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 else if(n==16)
 {
  cout<<"-2011년 03월 기준-"<<endl;
  cout<<" ********************제  주******************** "<<endl<<endl;
  cout<<" -기본요금 : 2,200원(2km까지) "<<endl<<endl;
  cout<<" -주행요금 : 146m당 (+100원) "<<endl<<endl;
  cout<<" -시간요금 : 38초당 (15km/h이하 주행시 +100원) "<<endl<<endl;
  cout<<" -심야  및 사업구역외 운행 : 20% 할증 "<<endl<<endl;
 }
 
 else
 {
  cout<<"숫자를 잘못 입력하셨습니다. 다시 입력하시기 바랍니다."<<endl<<endl;
 }
 cout<<"*본 자료는 전국택시운송사업조합연합회의 자료를 토대로 작성하였습니다.*"<<endl<<endl;
 cout<<"*본 요금은 각 시도별 중형택시 요금만을 표기했습니다."<<endl<<endl;
 cout<<"메뉴얼로 돌아가시려면 1을 눌러주세요 ,다시하려면 2번 입력  : "; 
    while(1)
    {
     int j;
     cin>>j;
     if(j==1)
     
      break;
     else if(j==2)
     {
        [...];
      metropolitancity();
     }
    }
 
 [...];
}
/* ****************************대전지역에서 타지역 나갈 때  요금 클래스********************* */
class taxi2 : public ROAD // 타 지역 나갈 때  실제 택시 요금 
{
protected:
 float road; // 거리 정보 
    float BaseCharge;  // 기본요금 
 int Break,delay;  // 정차 , 지연시간 
 int s,e,t,total;  
 int a;
public:
 taxi2( float a,float b,int c, int d,int e,int f,int g,int h,int j)
  : ROAD(a,j),BaseCharge(b),Break(c),delay(d),s(e),e(f),t(g),total(h)//생성자와 이니셜라이져 
 {
 }
 // 거리입력 함수 
 void show22(); // 택시요금 출력함수 
 void racing22(); // 택시 요금 계산 함수 
 void stop112(); // 택시 정차계산 함수 
    void stop22();
 void stop1122();
};
void taxi2::stop112()
{
   Break=rand()%100; //랜덤함수이용 정차 랜덤  
      if(Break/3==0)
   { 
    e++;
     
   
     delay=rand()%170; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
     s=(delay/36); 
     total=s*100;   // 36초당 추가 요금  (정상 요금 시)
     t+=delay;  // 지연시간 총 합 
     BaseCharge+=total; 
   
   }
}
void taxi2::stop1122()
{
   Break=rand()%10; //랜덤함수이용 정차 랜덤  
      if(Break/3==0)
   { 
    e++;
     
   
     delay=rand()%170; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
     s=(delay/36); 
     total=s*120;   // 36초당 추가 요금  (정상 요금 시)
     t+=delay;  // 지연시간 총 합 
     BaseCharge+=total; 
   
   }
}
void taxi2::stop22()
{
   Break=rand()%10; //랜덤함수이용 정차 랜덤  
      if(Break%2==0)
   { 
    e++;
    delay=rand()%150; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
    s=(delay/20); // 20초당 추가요금 (불량 요금시) 
    
     total=s*220;  
     t+=delay; 
     BaseCharge+=total;
   
 
   }
}
void taxi2::racing22()
{
 int seed = (int)time(NULL);
 srand(seed); //정차를 랜덤하게 하기위해 필요 
   
 float c=(Distance()-2); // 2km까진 기본요금 
 float d=0;
    a=rand()%3; // 실제 택시 양심 , 양심 불량 나눔  
 
 
  while(1)
  {
   c=c-0.153; // 미터당 거리계산 식 
            d=d+0.153;
   if(c<=0)
   {
    taxi2::show22();
    break;
   }
         if(d<3)
   BaseCharge+=100;
         else
            BaseCharge+=120;
   if(a==1) // 불량 택시 
   {
         taxi2::stop22();
   }
   else // 양심 택시 
   {
    if(d<3)
      taxi2::stop112();
    else
    taxi2::stop1122();
   }
  }
 
  
 
}
void taxi2::show22()
{   
 cout<<"-------------------------------------------"<<endl;
 cout<<"실제 택시 요금  : "<<BaseCharge<<"원 입니다."<<endl; // 가상으로  실제 택시 요금 출력  
}
class charge2 : public taxi2// 대전 지역 택시 요금
{
private:
 float road; // 거리 정보 
    float BaseCharge;  // 기본요금 
 int Break,delay; 
 int s,e,t,total;
public:
 charge2(float a,float b,int c,int d,int e,int f,int g,int h,int j)
  : taxi2(a,b,c,d,e,f,g,h,j),BaseCharge(b),Break(c),delay(d),s(e),e(f),t(g),total(h) // 생성자와 이니셜라이져 
 {
 }
    // 거리입력 함수 
 void show3(); // 택시요금 출력함수 
 void racing3(); // 택시 요금 계산 함수 
 void stop3(); // 택시 정차계산 함수 
    void aaa3(); // 비교 출력함수 
 void stop4();
};
void charge2::aaa3()
{
 if(BaseCharge>=taxi2::BaseCharge) // 실제요금이 낮을때 
 {
  color(11);
  cout<<" 정상 요금 택시 입니다 .(약간의 오차 있음) "<<endl;
 }
 else if((BaseCharge+=500)<taxi2::BaseCharge) // 실제요금이 높을때 
 {
  color(12); 
  cout<<" 불량 요금 택시 입니다 .(약간의 오차 있음) "<<endl;
 }
 else
 {
  color(11);  
  cout<<" 정상 요금  택시 입니다 .(약간의 오차 있음) "<<endl;
 }
}
 
void charge2::stop3()
{
 Break=rand()%10; // 랜덤함수이용 정차 랜덤  
 if(Break/3==0)
 { 
  e++; // 정차 회수 알려주는 거 
  delay=rand()%150; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
        s=(delay/36);//
  
   total=s*100;  
   t+=delay; 
   BaseCharge+=total;
 }
}
void charge2::stop4()
{
 Break=rand()%10; // 랜덤함수이용 정차 랜덤  
 if(Break/3==0)
 { 
  e++; // 정차 회수 알려주는 거 
  delay=rand()%150; // 대기시간 랜덤하게 지정 최대 약 2분 정도 
        s=(delay/36);// 20초당 추가요금 (불량 요금시) 
  
   total=s*120;  
   t+=delay; 
   BaseCharge+=total;
 }
}
void charge2::racing3()
{
 int seed = (int)time(NULL);
 srand(seed); //정차를 랜덤하게 하기위해 필요 
 
 float c=(Distance()-2); // 2km까진 기본요금 
    float d=0;
  while(1)
  {
   
   c=c-0.153; // 미터당 거리계산 식
   d=d+0.153;
   if(c<=0)
   {
    charge2::show3();
   
    break;
   }
         if(d<3)
   {
   BaseCharge+=100;
   charge2::stop3();
   }
         else
   {
      BaseCharge+=120;
   charge2::stop4();
   }
   
  }
 
 
}
 
void charge2::show3()
{
 cout<<"*************************************************************"<<endl;
 racing22(); // 실행함수 호출 
 cout<<"계산된 택시 요금  : "<<BaseCharge<<"원 입니다. "<<endl;// 도착시 요금 출력 및 종료  (계산 식 택시요금 )
    aaa3(); // 비교 함수 호출 
 color(10);
 cout<<"총 정차 횟수 : "<<e<<"번 입니다."<<endl; // 정차 횟수 변수 출력
 cout<<"정차로 인한 지연시간 : "<<t/3600<<"시간 "<<(t%3600)/60;
    cout<<"분 "<<t%60<<"초"<<endl; // 시간 변형 
 cout<<"*************************************************************"<<endl;
 cout<<endl<<endl;
 cout<<"메뉴얼로 돌아가시려면 1을 눌러주세요 :";
 while(1)
 {
  int j;
  cin>>j;
    
  if(j==1)
  break;
   }
 
} 
/* ****************************메인 함수 ********************* */     
int main()
{
    color(10);
    int a;
 manual k;
 while(1)
 {
  k.show();
  cout<<"1부터 5까지 원하시는 메뉴를 선택하세요: ";
  cin>>a;
  [...];
  
  if(a==1)
  {
   charge * aaa=new charge(0,2300,0,0,0,0,0,0,0);
   ROAD * kk= aaa;
   kk->a();
   aaa->racing();
   [...]; // 화면 초기화
   delete aaa;
  }
  else if(a==2)
   k.location();
  else if(a==3)
  {
          charge2 * aaa=new charge2(0,2300,0,0,0,0,0,0,0);
    ROAD * kk= aaa;
    kk->b();
    aaa->racing3();
    [...]; // 화면 초기화
   delete aaa;
  }
  else if(a==4)
   k.metropolitancity();
  else if(a==5)
   break;
  else
   cout<<"다시 입력하시오 "<<endl;
     
 }
  
 return 0;
}
대충이정도는짤수있음 
택시요금 gps 가정하에 
택시 출발시 눌렀을때 택시요금 계산하는 프로그램 짜봣어 
실제택시요금 역시 가상으로 랜덤함수로 돌린거  ㅇㅇ
이정도 실력이면 개 발톱 수준이지만 
암튼 요점은 뭐냐면 이정도 수준에서 어케공부해야되냥?  
때려쳐야됨?
							
							 
																					
																					
														
														
						
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.