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로 현재 배터리 잔량을 출력함.
결과
'숙제' 카테고리의 다른 글
C++ 숙제 (핸드폰 정보 출력 프로그램 구현하기) (2) | 2025.08.14 |
---|---|
C++ 숙제(다형성을 활용한 게임 스킬 사용 프로그램 구현하기) (2) | 2025.08.14 |
C++ 숙제(포인터 변수를 활용한 변수값 변경, 레퍼런스 변수를 활용한 변수값 변경) (0) | 2025.08.13 |
본캠프 3일차 (숙제 : 텍스트 슈팅 게임) (0) | 2025.08.06 |
본 캠프 3일차 (숙제 : 게임을 더 재미있게 만들어보기) (0) | 2025.08.06 |