= CPP_Study_2005_1/BasicBusSimulation/남상협 = * 작성자 : 01 남상협 * 일시 : 05.08.12 10:43 = 데이터 = {{{~cpp 100 20 30 25 50 30 24 50 }}} = Source = {{{~cpp //Simulation.cpp #include #include #include #include "BusSimulation.h" using namespace std; void main() { ifstream fin("data.txt"); BusSimulation busSimulation(fin); busSimulation.readBusData(); busSimulation.readTimeInput(cin,cout); busSimulation.printResult(cout); } }}} {{{~cpp //BusSimulation.h #ifndef _BUS_SIMULATION_H_ #define _BUS_SIMULATION_H_ #include #include #include #include "Bus.h" using namespace std; class BusSimulation { private: vector m_buses; ifstream &m_fin; double m_roundDistance; public: BusSimulation(ifstream &fin) : m_fin(fin) {} void readBusData(); istream& readTimeInput(istream &in, ostream &out); void increaseTime(int time); ostream& printResult(ostream &out); }; #endif }}} {{{~cpp //BusSimulation.cpp #include #include #include #include "BusSimulation.h" void BusSimulation::readBusData() { m_fin>>m_roundDistance; double velocity=0; while(m_fin>>velocity) { Bus bus(velocity,m_roundDistance); m_buses.push_back(bus); } } void BusSimulation::increaseTime(int time) { for(vector::iterator it=m_buses.begin(); it!=m_buses.end(); ++it) it->increaseTime(time); } ostream& BusSimulation::printResult(ostream &out) { for(vector::iterator it=m_buses.begin(); it!=m_buses.end(); ++it) out<< it->getPosition()<<"\n";; return out; } istream& BusSimulation::readTimeInput(istream &in, ostream &out) { int minute = 0; int hour = 0; out<<"몇시간 후의 버스 위치를 보시겠습니까?"<<"\n"<<"시간 : "; in>>hour; out<<"분 : "; in>>minute; increaseTime(hour*3600 + minute*60); return in; } }}} {{{~cpp //Bus.h #ifndef _BUS_H_ #define _BUS_H_ class Bus { private: int m_velocity; // Km/h double m_position; // Killo meter int m_roundDistance; // Killo meter int m_time; // second public: Bus(int velocity, int roundDistance) : m_velocity(velocity), m_roundDistance(roundDistance) {m_time=0; m_position=0;} void increaseTime(int time) {m_time+=time; m_position+=(time*m_velocity/3600)%m_roundDistance;} double getPosition(){return m_position;} }; #endif }}} = 결과 = http://zerowiki.dnip.net/~namsangboy/basicBus.GIF = thread = * 쩝.