[C++] 특정한 값을 출력하는 구조체를 만들어보자

2022. 6. 2. 18:55코딩 1막 <C++개념편>/코딩 1막 <C++응용편>

728x90

1. <몬스터 구조체를 만들고 특정값 출력해보기>

#include <iostream>
#include <string>

using namespace std;

// 구조체 변수 선언
struct Monster
{
	string name;
	int lv;
	int hp;
	int damage;
};

struct Computer
{
	string name;
	int price;
};

// 구조체의 멤버변수들을 출력하는 함수
void PrintInfo(Monster target)
{
	cout << "이름 : " << target.name << endl;
	cout << "레벨 : " << target.lv << endl;
	cout << "체력 : " << target.hp << endl;
	cout << "데미지 : " << target.damage << endl;
}

// 구조체의 멤버변수들의 값을 셋팅하는 함수
void SetInfo(Monster* target, string newName, int newLv, int newHp, int newDamage)
{
		target->name = newName;
		target->lv = newLv;
		target->hp = newHp;
		target->damage = newDamage;
}

void PrintInfo(Computer target)
{
	cout << "이름 : " << target.name << endl;
	cout << "가격 : " << target.price << endl;
}

Computer* GetMaxPrice(Computer arr[], string name)
{
	for (int i = 0; i < 2; i++)
	{
		if (arr[i].name == name)
		{
			return &arr[i];
		}
	}
}

void main()
{
	Monster monsters[] = 
	{
		{ "골렘", 100, 500000, 30000 },
		{ "다크나이트", 50, 30000, 1000 },
		{ "위자드", 15, 1500, 100 },
		{ "슬라임", 5, 500, 50 },
		{ "리본돼지", 10, 1000, 80 }
	};

	PrintInfo(monsters[0]);
	SetInfo(&monsters[0], "발락", 120, 900000, 80000);
	PrintInfo(monsters[0]);

	Computer computers[] =
	{
		{"A", 1000},
		{"B", 2000}
	};

	cout << "특정값을 서칭하는 함수" << endl;
	GetMaxPrice(computers, "B");
	PrintInfo(computers[1]);
}

출력 결과

2. <넷플릭스 구조체를 만들고 특정값 출력해보기>

#include <iostream>
#include <string>

using namespace std;

// 과제_ 구조체 변수를 선언
struct Netflix
{
	string movie;
	string drama;
	int people;
};

// 과제_ 구조체 변수를 매개변수로 쓰는 PrintInfo함수 선언 (구조체 멤버변수들을 출력하는 함수)
void PrintInfo(Netflix target)
{
	cout << "영화 이름 : " << target.movie << endl;
	cout << "드라마 이름 : " << target.drama << endl;
	cout << "이용자 수 : " << target.people << endl;
}

// 과제_ 구조체의 포인터변수를 매개변수로 쓰는 SelfInfo함수 선언 (구조체 멤버변수들의 값을 셋팅하는 함수)
void SetInfo(Netflix* target, string newMovie, string newDrama, int newPeople)
{
	target->movie = newMovie;
	target->drama = newDrama;
	target->people = newPeople;
}

// 실습_ 특정한 값을 찾는 함수만들기
Netflix* FindInfo(Netflix netflixs[], string setMovie)
{
	for (int i = 0; i < 4; i++)
	{
		if (netflixs[i].movie == setMovie)
		{
			return &netflixs[i];
		}
	}
}

void main()
{
	// 실습_ 구조체 변수들을 배열에 담으시오
	Netflix netflixs[] =
	{
		{ "기묘한이야기", "스위트홈", 20 },
		{ "블랙미러", "D*P", 50},
		{ "오징어게임", "돈룩업", 60 }
	};

	PrintInfo(netflixs[0]);
	SetInfo(&netflixs[0], "지옥", "썸바디", 10);

	PrintInfo(netflixs[0]);

	cout << endl;
	// 실습_ 구조체 배열에 반복문을 사용하여 특정한 값을 찾으시오
	FindInfo(netflixs, "오징어게임");
	PrintInfo(netflixs[2]);
}

출력 결과

 

728x90