본문 바로가기
Algorithm/기본개념과 원리로 배우는C++

기본 개념과 핵심 원리로 배우는 C++ 프로그래밍 9장 프로그래밍 문제

by 준그래머 2023. 10. 31.
반응형

1.다음 로봇 명세를 보고 프로그램을 작성하시오.

이름 신장(m) 무게(T) 마력
태권브이 18 80 3000
마징가 17 70 2500
메칸더브이 20 90 3500
그랜다이져 22 100 5000

 

(1) 로봇을 나타내는 클래스 CRobot을 설계하시오. 명세를 입력할 수 있는 멤버 함수 Set과 명세를 출력하는 멤버 함수 Print가 있다.

 

(2)클래스 CRobot을 이용하여 모든 로봇의 명세를 출력하는 프로그램을 작성하시오.

#include <iostream>
#include <iomanip>
using namespace std;
int cnt = 0;
class CRobot{

public:
int m_height[4],m_weight[4],m_power[4]; 
void set(int x, int y, int z){
 m_height[cnt]=x;
 m_weight[cnt]=y;
 m_power[cnt]=z;
 
}
void print(int cnt){
 cout << m_name[cnt] << " " << m_height[cnt] << setw(4) << m_weight[cnt] << setw(4) << m_power[cnt] << endl;
}

char* m_name[4] = {"태권브이", "마징가" , "매칸더브이", "그랜다이져"};
};
   
int main(void){
 CRobot r;
 for(int i = 0; i < 4; i++){
  int height,weight,power;
  cout << r.m_name[cnt] << "의 신장, 무게 , 마력을 각각 입력하세요." << endl; 
  cin >> height >> weight >> power;
  r.set(height, weight, power); 
  cnt++;
 }
 cout << "이름 신장 무게 마력" << endl; 
 cnt = 0;
 while(cnt < 4){
  r.print(cnt);
  cnt++;
 }
}

 

(3) 타입 정적 멤버s_Value를 가지는 class CTest를 정의하고, s_Value에 1을 대입한 뒤에 출력하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
   
class CTest{
 public:
 static int s_Value;
};
int CTest :: s_Value = 1;
   
int main(void){
 CTest t1;
 cout << t1.s_Value;
}

 

(4) 다음 프로그램은 자정부터 지나간 포를 입력받은 후 시,분,초를 출력한다.

 

프로그램이 완성될 수 있도록 클래스 CTime을 작성하시오.

#include <iostream>
using namespace std;
   
class CTime{
public:
 void setElapsed(int t){
  m_h = t/3600;
  m_m = (t - (m_h*3600)) / 60;
  m_s = (t - (m_h*3600)) % 60;
 }
 void PrintTime(){
  cout << m_h << "시간 " << m_m << "분 " << m_s << "초 ";
 }
 int m_h,m_m,m_s;
};
   
   
int main(void){
 cout << "자정부터 지나간 초를 입력하세요" << endl;

 int Elapsed;
 cin >> Elapsed;

 CTime t;
 t.setElapsed(Elapsed);
 t.PrintTime(); 
}

설명은 생략하겠습니다~~