Electronic Engineering/C++

C++ 실습 과제 3

해시브라우니 2022. 7. 5. 18:58

#include <iostream>
using namespace std;

int small(int a, int b); // 함수 원형 선언
int small(int a, int b, int c);

int small(int a, int b) {//매개변수 2개 함수 선언
	int num = a < b ? a : b;//정수형 num 은 a와 b중 작은 값 저장
	if (num < 0) { //만약 0보다 작으면
		num = 0; //num = 0
	}
	return num; //num 반환
}
int small(int a, int b, int c) { // 매개변수 3개 함수 선언
	int num = a < b ? a : b; // 정수형 num 은 a와 b중 작은 값 저장
	int num2 = num > c ? num : c; // 정수형 num2는 a 와 b 중 작은 값과 c 비교해서 큰값
	return num2; // num2 반환
}

int main() {
	int x = small(3, 5); // 3과 5중 작은 값 3은 최소값 0보다 크므로 3 리턴
	int y = small(123, -30); // 123과 -30중 작은 값 -30은 최솟값 0 보다 작으므로 0 리턴
	int z = small(30, 70, 50); // 30과 70 중 작은 값 30이 최솟값 50 보다 작으므로 50 리턴
	cout << x << ' ' << y << ' ' << z << endl; // 출력
}

#include <iostream>
using namespace std;

int big(int a, int b, int c = 10); //함수 원형 선언

int big(int a, int  b, int c) { //매개변수 3개인 함수 선언, c 는 default 값이 10
	int num = a > b ? a : b; // 최댓값을 구하는 함수 . 정수형 num에 저장
	int num2 = num < c ? num : c; // num과 c 중 최솟값을 구하는 함수. num2 에 저장
	return num2; // num2 에 반환
}

int main() {
	int x = big(3, 5); // 3과 5중 큰 값 5는 최대값 10보다 작으므로, 5 리턴
	int y = big(20, 8); // 20과 8 중 큰 값 20은 최대값 10보다 크므로 , 10리턴
	int z = big(300, 55, 100); // 3--과 55 중 큰 값 300이 최대값 100보다 크므로, 100리턴
	cout << x << ' ' << y << ' ' << z << endl; // 출력
}

#include <iostream>
using namespace std;

class Book { //  Book클래스 선언
	string name; //이름, 가격 , 페이지 선언
	int price, pg;
public:
	Book(string name, int price = 0, int pg = 0) {//생성자 함수 선언, 정의
		this->name = name;
		this->price = price;
		this->pg = pg;
	}
	Book operator += (int a);//연산자 함수 선언
	Book operator -= (int a);
	void show();//출력 함수 선언
};

void Book::show() { // 출력해주는 함수 정의
	cout << name << ' ' << price << "원 " << pg << ' ' << "페이지" << endl;//출력할 내용
}

Book Book::operator+=(int a) {//연산자 함수 정의 , 가격은 정수형 변수에 따라 더해짐.
	price = price + a;
	return *this;//객체 반환
}
Book Book::operator -=(int a) {//연산자 함수 정의, 가격은 정수형 변수에 따라 빼어짐.
	price = price - a;
	return *this;//객체 반환
}

int main() {
	Book a("청춘", 20000, 300), b("미래", 30000, 500);//생성자 함수에 맞게 객체 생성
	a += 500;//연산자함수 사용하여 가격에 500원 더함
	b -= 500;// 연산자함수 사용하여 가격에 500원 뺌
	a.show();//출력
	b.show();
}

#include <iostream>
using namespace std;

class Book;//클래스가 선언되기 전에 먼저 참조되는 컴파일 오류를 막기 위한 선언문
Book operator += (Book& a, int b);//외부함수 선언 , 참조매개변수 사용.
Book operator -= (Book& a, int b);

class Book { // 클래스 선언
	string name; // private 변수 선언
	int price, pg;
public:
	Book(string name = " ", int price = 0, int pg = 0) { // 생성자 함수 선언, 정의
		this->name = name;
		this->price = price;
		this->pg = pg;
	}
	friend Book operator += (Book& a, int b); // friend를 사용한 연산자함수(더하기) 선언 , 참조매개변수 사용
	friend Book operator -= (Book& a, int b); // friend를 사용한 연산자함수(빼기) 선언, 참조 매개변수 사용
	void show(); // 출력함수 선언
};
void Book::show() { // 출력 함수 정의
	cout << name << ' ' << price << "원 " << pg << ' ' << "페이지" << endl;//출력할 내용
}
Book operator +=(Book& a, int b) {// 연산자 함수(더하기) 정의, 참조매개변수를 통한 반환값 전달
	a.price = a.price + b;; // 가격에 정수형 변수 더하기
	return a; //객체 반환
}
Book operator -= (Book& a, int b) {//연산자 함수(빼기)정의, 참조매개변수를 통한 반환값 전달
	a.price = a.price - b; //가격에 정수형 변수 빼기
	return a;//객체 반환
}
int main() {
	Book a("청춘", 20000, 300), b("미래", 30000, 500);//생성자 함수에 맞게 객체 생성
	a += 500;//연산자함수 사용하여 가격에 500원 더함
	b -= 500;// 연산자함수 사용하여 가격에 500원 뺌
	a.show();//출력
	b.show();
}

'Electronic Engineering > C++' 카테고리의 다른 글

C++ SFML 과제  (0) 2022.07.05
C++ 실습 과제 마지막  (0) 2022.07.05
C++ 실습 과제 2  (0) 2022.07.05
C++ 실습 과제  (0) 2022.07.05
C언어 Level Test  (0) 2022.07.05