본문 바로가기

C++ 프로그래밍 (1학년 2학기)

231005 C++ 프로그래밍 4주차

1. 다음 코드가 오류가 나는 이유 ?

  • main() 함수는 하나만 사용 가능하기 때문에
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}
int main()
{
    std::cout << "Hello World!\n";
}

해당 코드를 바르게 고치는 방법

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}
void main1()
{
    std::cout << "Hello World!\n";
}

2. 매개변수, 인자(argument), 리턴값

3. 함수의 입력과 출력

  • 전광판, 뻥튀기, 덧셈기, 자판기
  • 입력
    • 매개변수(parameter), 인자
  • 출력
    • 반환값(return value), 리턴값
    • 함수가 돌려주는 결과 값
  • void
    • 리턴값이 없으면 리턴형 쓰는 자리에 void
    • 매개변수가 없으면 매개변수 쓰는 자리에 void
    • 이 경우는 생략 가능

4. 1부터 6까지 랜덤으로 나오는 c++ 소스

#include <iostream>
#include <cstdlib> // 난수 생성을 위한 헤더 파일
#include <ctime>   // 시간을 기반으로 난수를 초기화하기 위한 헤더 파일

int main() {
    // 시간을 기반으로 난수 생성기 초기화
    std::srand(static_cast<unsigned int>(std::time(nullptr)));

    // 1부터 6까지의 난수 생성 및 출력
    int randomNumber = std::rand() % 6 + 1;
    std::cout << "랜덤 숫자: " << randomNumber << std::endl;

    return 0;
}

5. 함수 정의, 호출, 선언

  • 함수 정의
    • 함수 만들기
    • 이름, 매개변수, 리턴형, 기능
  • 함수 호출
    • 함수 사용하기
    • 이름, 매개변수
  • 함수 선언
    • 함수의 사용법
    • 이름, 매개변수, 리턴형
    • 컴파일러에게 함수에 대한 정보를 미리 줌

6. 함수 정의, 선언, 호출하는 방법

#include <iostream>

void display();
void display1(); // 함수 선언
int main()
{
    std::cout << "Hello World!\n";
    display(); // 호출
    display1(); // 호출
}
void display1() //정의 
{
    std::cout << "Lee\n";
}
void display() //정의  
{
    std::cout << "Lee\n";
}

7. return문

  • 결과 값을 호출한 함수로 반환
  • return문을 만나면 함수의 나머지 부분에 상관없이 함수의 실행을 종료하고 호출한 함수로 넘어감
  • return(수식이나 값);
  • return 다음에 괄호는 생략해도 됨
  •  return 1;
  • return x;
  • return (x*2);
  • return (x+y); 

8. 두배의 결과를 리턴하는 함수

#include <iostream>

void display(); // 함수 선언
void doubleInt(int x);
int doubleIntReturn(int x);
int main()
{
    int x;
    std::cout << "Hello World!\n";
    display(); // 호출
    doubleInt(3);
    std::cout << doubleIntReturn(2);
    x = doubleIntReturn(4);
    std::cout << x;
}
int doubleIntReturn(int x)
{
    return x * 2;
}
void doubleInt(int x)
{
    std::cout << x * 2;
}
void display() //정의  
{
    std::cout << "Lee\n";
}

9. 두 수를 더해서 리턴하는 함수

#include <iostream>

int add(int x, int y);
int main()
{
	std::cout << add(3, 6);
}
int add(int x, int y)
{
	return (x + y);
}

10. 문자, 문자열 리턴 자판기 함수

#include <iostream>

char vending(int x);
const char* vending1(int x);
std::string vending2(int x);
int main()
{
	std::cout << vending(1);
	std::cout << vending1(1);
	std::cout << vending2(1);
}
std::string vending2(int x)
{
	if (x == 1) return "커피";
	else return "유자차";
}
const char* vending1(int x)
{
	if (x == 1) return "커피";
	else return "유자차";
}
char vending(int x)
{
	if (x == 1) return 'A';
	else return 'B';
}

11. 나누기 함수

#include <iostream>

double divide(int x, int y);
int main()
{
	std::cout << divide(10, 4);
}
double divide(int x, int y)
{
	return (double)x / y;
}

12. 구조체 변수를 활용한 함수

#include <iostream>

struct Man {
	int age;
	double weight;
	std::string name;
};
int main()
{
	Man han = {10, 20.5, "cpp"};
	Man kim;
	std::cout << han.name << "은(는) " << han.age << "살이고, 몸무게는 " << han.weight << "kg입니다.\n";
	han.age = 1; han.weight = 3.5; han.name = "SmileHan";

	kim = han;
	std::cout << kim.name << "은(는) " << kim.age << "살이고, 몸무게는 " << kim.weight << "kg입니다.\n";
	std::cout << han.name << "은(는) " << han.age << "살이고, 몸무게는 " << han.weight << "kg입니다.\n";
}

13. C struct vs C++ class

C구조체(변수의모임) &rarr; C++클래스(변수+함수의모임)

14. 구조체 : C vs C++ (C언어와 C++ 언어의 가장 다른 점)

  • C
    • 변수의 모임
  • C++
    • 변수와 함수의 모임
    • 그럼 클래스와 같나요?
      • 아니요. 한가지가 다릅니다.
      • 접근제어 속성을 생략하면 struct은 public, class는 private이 기본입니다.

15. 구조체를 활용한 간단한 게임

#include <iostream>
#include <string>

// 플레이어 정보를 담는 구조체
struct Player {
    std::string name; // 플레이어 이름
    int level;        // 플레이어 레벨
    int health;       // 플레이어 체력
};

int main() {
    Player player1; // 플레이어 객체 생성

    // 플레이어 정보 입력 받기
    std::cout << "플레이어 이름: ";
    std::getline(std::cin, player1.name);

    std::cout << "플레이어 레벨: ";
    std::cin >> player1.level;

    std::cout << "플레이어 체력: ";
    std::cin >> player1.health;

    // 입력 받은 정보 출력하기
    std::cout << "\n입력된 정보:\n";
    std::cout << "플레이어 이름: " << player1.name << "\n";
    std::cout << "플레이어 레벨: " << player1.level << "\n";
    std::cout << "플레이어 체력: " << player1.health << "\n";

    return 0;
}

 

참고자료 : 한성현 교수님 수업자료

댓글