제목 | C++ 5주차 강의자료 | |||||||
---|---|---|---|---|---|---|---|---|
글쓴이 | 정동인(1기) | 날짜 | 2019-11-12 (02:07) | |||||
첨부파일 | jy11120207499.txt | 조회수 | 667 | |||||
디버깅
1) #include <stdio.h> int main() { char a, b, c; a = 100; b = 300; c = a + b; printf("%d + %d = %d ", a, b, c); return 0; } 2) #include <iostream> int main() { int num1 = 0; int num2; char name[] = "Adrian"; double xx; num2 = num1 + 5; num2++; for (int i = -2; i <= 2; i++) { num1 = i; } name[0] = 'a'; std::cout << "Enter a real number: "; std::cin >> xx; std::cout << xx << std::endl; system("pause"); return 0; } 자료형 bool 1) true 와 false 값 #include <iostream> using namespace std; int main(void) { int num = 10; int i = 0; cout << "true: " << true << endl; cout << "false: " << false << endl; while(true) { cout << i++ << ' '; if(i > num) { break; } } cout << endl; cout << "size of 1: " << sizeof(1) << endl; cout << "size of 0: " << sizeof(0) << endl; cout << "size of true: " << sizeof(true) << endl; cout << "size of false: " << sizeof(false) << endl; system("pause"); // VC++ 에서만 필요 return 0; } 2) 자료형 bool #include <iostream> using namespace std; bool IsPositive(int num) { if(num <= 0) return false; else return true; } int main(void) { bool isPos; int num; cout << "Input number: "; cin >> num; isPos = IsPositive(num); if(isPos) { cout << "Positive number" << endl; } else { cout << "Negative number or zero" << endl; } system("pause"); // VC++ 에서만 필요 return 0; } 구조체 1) C++에서 구조체 변수 선언(typedef 불필요) #include <iostream> using namespace std; #define ID_LEN 20 #define MAX_SPD 200 #define FUEL_STEP 2 #define ACC_STEP 10 #define BRK_STEP 10 struct Car { char gamerID[ID_LEN]; int fuelGauge; int curSpeed; }; void ShowCarState(const Car& car) { cout << "소유자 ID: " << car.gamerID << endl; cout << "연료량: " << car.fuelGauge << "%" << endl; cout << "현재 속도: " << car.curSpeed << "km/h" << endl << endl; } void Accel(Car& car) { if (car.fuelGauge <= 0) return; else car.fuelGauge -= FUEL_STEP; if (car.curSpeed + ACC_STEP >= MAX_SPD) { car.curSpeed = MAX_SPD; return; } car.curSpeed += ACC_STEP; } void Break(Car& car) { if (car.curSpeed < BRK_STEP) { car.curSpeed = 0; return; } car.curSpeed -= BRK_STEP; } int main(void) { Car run99 = { "run99", 100, 0 }; Accel(run99); Accel(run99); ShowCarState(run99); Break(run99); ShowCarState(run99); Car sped77 = { "sped77", 100, 0 }; Accel(sped77); Break(sped77); ShowCarState(sped77); system("pause"); // VC++ 에서만 필요 return 0; } 2) 구조체 내부에 함수 삽입(inline으로 처리) #include <iostream> using namespace std; #define ID_LEN 20 #define MAX_SPD 200 #define FUEL_STEP 2 #define ACC_STEP 10 #define BRK_STEP 10 struct Car { char gamerID[ID_LEN]; int fuelGauge; int curSpeed; void ShowCarState() { cout << "소유자 ID: " << gamerID << endl; cout << "연료량: " << fuelGauge << "%" << endl; cout << "현재 속도: " << curSpeed << "km/h" << endl << endl; } void Accel() { if (fuelGauge <= 0) return; else fuelGauge -= FUEL_STEP; if (curSpeed + ACC_STEP >= MAX_SPD) { curSpeed = MAX_SPD; return; } curSpeed += ACC_STEP; } void Break() { if (curSpeed < BRK_STEP) { curSpeed = 0; return; } curSpeed -= BRK_STEP; } }; int main(void) { Car run99 = { "run99", 100, 0 }; run99.Accel(); // run99의 맴버 함수 run99.Accel(); run99.ShowCarState(); run99.Break(); run99.ShowCarState(); Car sped77 = { "sped77", 100, 0 }; sped77.Accel(); // sped77의 맴버 함수 sped77.Break(); sped77.ShowCarState(); system("pause"); // VC++ 에서만 필요 return 0; } 3) 구조체 안에 enum 상수의 선언 #include <iostream> using namespace std; struct Car { enum { ID_LEN = 20, MAX_SPD = 200, FUEL_STEP = 2, ACC_STEP = 10, BRK_STEP = 10 }; char gamerID[ID_LEN]; int fuelGauge; int curSpeed; void ShowCarState() { cout << "소유자 ID: " << gamerID << endl; cout << "연료량: " << fuelGauge << "%" << endl; cout << "현재 속도: " << curSpeed << "km/h" << endl << endl; } void Accel() { if (fuelGauge <= 0) return; else fuelGauge -= FUEL_STEP; if (curSpeed + ACC_STEP >= MAX_SPD) { curSpeed = MAX_SPD; return; } curSpeed += ACC_STEP; } void Break() { if (curSpeed < BRK_STEP) { curSpeed = 0; return; } curSpeed -= BRK_STEP; } }; int main(void) { Car run99 = { "run99", 100, 0 }; run99.Accel(); // run99의 맴버 함수 run99.Accel(); run99.ShowCarState(); run99.Break(); run99.ShowCarState(); Car sped77 = { "sped77", 100, 0 }; sped77.Accel(); // sped77의 맴버 함수 sped77.Break(); sped77.ShowCarState(); system("pause"); // VC++ 에서만 필요 return 0; } 4) 함수는 외부에서 정의 가능(inline으로 처리하지 않음) #include <iostream> using namespace std; struct Car { enum { ID_LEN = 20, MAX_SPD = 200, FUEL_STEP = 2, ACC_STEP = 10, BRK_STEP = 10 }; char gamerID[ID_LEN]; int fuelGauge; int curSpeed; void ShowCarState(); void Accel(); void Break(); }; void Car::ShowCarState() { cout << "소유자 ID: " << gamerID << endl; cout << "연료량: " << fuelGauge << "%" << endl; cout << "현재 속도: " << curSpeed << "km/h" << endl << endl; } void Car::Accel() { if (fuelGauge <= 0) return; else fuelGauge -= FUEL_STEP; if (curSpeed + ACC_STEP >= MAX_SPD) { curSpeed = MAX_SPD; return; } curSpeed += ACC_STEP; } void Car::Break() { if (curSpeed < BRK_STEP) { curSpeed = 0; return; } curSpeed -= BRK_STEP; } int main(void) { Car run99 = { "run99", 100, 0 }; run99.Accel(); // run99의 맴버 함수 run99.Accel(); run99.ShowCarState(); run99.Break(); run99.ShowCarState(); Car sped77 = { "sped77", 100, 0 }; sped77.Accel(); // sped77의 맴버 함수 sped77.Break(); sped77.ShowCarState(); system("pause"); // VC++ 에서만 필요 return 0; } 5) 명시적으로 inline 실행 #include <iostream> using namespace std; struct Car { enum { ID_LEN = 20, MAX_SPD = 200, FUEL_STEP = 2, ACC_STEP = 10, BRK_STEP = 10 }; char gamerID[ID_LEN]; int fuelGauge; int curSpeed; inline void ShowCarState(); inline void Accel(); inline void Break(); }; void Car::ShowCarState() { cout << "소유자 ID: " << gamerID << endl; cout << "연료량: " << fuelGauge << "%" << endl; cout << "현재 속도: " << curSpeed << "km/h" << endl << endl; } void Car::Accel() { if (fuelGauge <= 0) return; else fuelGauge -= FUEL_STEP; if (curSpeed + ACC_STEP >= MAX_SPD) { curSpeed = MAX_SPD; return; } curSpeed += ACC_STEP; } void Car::Break() { if (curSpeed < BRK_STEP) { curSpeed = 0; return; } curSpeed -= BRK_STEP; } int main(void) { Car run99 = { "run99", 100, 0 }; run99.Accel(); // run99의 맴버 함수 run99.Accel(); run99.ShowCarState(); run99.Break(); run99.ShowCarState(); Car sped77 = { "sped77", 100, 0 }; sped77.Accel(); // sped77의 맴버 함수 sped77.Break(); sped77.ShowCarState(); system("pause"); // VC++ 에서만 필요 return 0; } |
||||||||
댓글(0) |