본문 바로가기

숙제

C++ 숙제(배터리 관리 클래스 만들기)

C++로 간단한 배터리 관리 클래스를 만들어 보세요.

세부적인 요구사항은 아래와 같습니다.


[배터리 관리 클래스 시나리오]
1. 프로그램 시작 시, 초기 배터리 잔량은 100%로 설정됩니다.
2. 배터리를 두 번 사용하여 각 사용 시 5%씩 잔량이 감소합니다.
   - 첫 번째 사용 후 잔량: 95%
   - 두 번째 사용 후 잔량: 90%
3. 배터리를 한 번 충전하여 7% 잔량이 증가합니다.
   - 충전 후 잔량: 97%
4. 다시 배터리를 한 번 사용하여 잔량이 5% 감소합니다.
   - 사용 후 잔량: 92%
5. 각 단계에서 배터리 잔량의 변화가 출력됩니다.

위 시나리오대로 실행했을 때 출력 값은 아래와 같습니다.

Initial charge: 100%
Battery used. Current charge: 95%
Battery used. Current charge: 90%
Battery charged. Current charge: 97%
Battery used. Current charge: 92%


Battery.h

#pragma once

class Battery
{
public:

	int battery;

	Battery()
	{
		battery = 100;
	}

	int charge();
	int use();
	int base();
};

1. 초기 배터리 값을 넣을 battery 정수형 변수를 선언하고 생성자 함수에 battery에 값 100을 넣는다.

2. 배터리 충전 시 함수, 사용 시, 현재 배터리 잔량을 표시할 함수 3가지를 선언 한다.

Battery.cpp

#include "Battery.h"

int Battery::charge()
{
	return(battery += 7);
}

int Battery::use()
{
	return(battery -= 5);
}

int Battery::base()
{
	return battery;
}

1. Battery.h를 include함

2. charge 함수에 battery 변수에 7을 더한 값을 battery에 대입하는 것을 구현

3. use 함수에 battery 변수에 5를 뺀 값을 battery에 대입하는 것을 구현

4. base 함수에 battery 값을 반환하도록 구현

main.cpp

#include <iostream>
#include "Battery.h"

using namespace std;

int main()
{
	Battery life;

	int bat=0;

	cout << "기초 배터리 : " << life.base() << "%" << endl << "1.충전 2.사용" << endl;

	while (bat < 3)
	{
		cin >> bat;

		if (bat == 1)
		{
			life.charge();
			cout << "충전 됐습니다." << endl;
		}
		if (bat == 2)
		{
			life.use();
			cout << "사용 됐습니다." << endl;
		}
		cout << "현재 배터리 : " << life.base() << "%" << endl;
	}

	return 0;

}

1. Battery.h를 include함.

2. Battery 생성자 변수 life 선언했음.

3. 사용자 입력 받을 bat 변수 선언과 초기화 했음.

4. 기초 배터리값 출력되도록 cout에 life.base() 작성함.

5. while문을 사용하여 사용자 입력 값을 계속 받도록 구현함.

6. while문 안에서 사용자 입력을 받고 if문을 이용하여 입력이 1이면 충전, 2면 사용이 되어 각 상황에 맞는 함수가 호출되도록 함.

7. if문의 코드가 진행된 후 life.base로 현재 배터리 잔량을 출력함.

결과