Programming/C++

열혈c++ Chapter01 프로젝트 1단계 정답 (윤성우의 열혈c++ Chapter01 )

fishersheep 2021. 8. 15. 23:57
반응형

프로젝트 1단계 정답

#include <iostream>
#include <cstring>

using namespace std;
const int NAME_LEN = 20;

void ShowMenu(void); // 메뉴출력
void MakeAccount(void); //계좌개설을 위한 함수
void DepositMoney(void); //입금
void WithdrawMoney(void); //출금
void ShowAllAccInfo(void); //잔액조회

enum {MAKE=1,DEPOSIT,WITHDRAW,INQUIRE,EXIT};

typedef struct
{
	int accID; //계좌번호
	int balance; //잔액
	char cusName[NAME_LEN]; //고객이름
}Account;

Account accArr[100]; // Account 저장을 위한 배열
int accNum = 0; // 저장된 Account 수

int main()
{
	int choice;

	while (1)
	{
		ShowMenu();
		cout << "선택:";
		cin >> choice;
		cout << endl;

		switch (choice)
		{
		case MAKE:
			MakeAccount();
			break;
		case DEPOSIT:
			DepositMoney();
			break;
		case WITHDRAW:
			WithdrawMoney();
			break;
		case INQUIRE:
			ShowAllAccInfo();
			break;
		case EXIT:
			return 0;
		default:
			cout << "illegal selection.." << endl;
		}
	}
	return 0;
}
void ShowMenu(void)
{
	cout << "- - - - Menu - - - -" << endl;
	cout << "1. 계좌계설" << endl;
	cout << "2. 입금" << endl;
	cout << "3. 출금" << endl;
	cout << "4. 계좌정보 전체 출력" << endl;
	cout << "5. 프로그램 종료" << endl;
}

void MakeAccount(void)
{
	int id;
	char name[NAME_LEN];
	int balance;

	cout << "[계좌개설]" << endl;
	cout << "계좌ID: "; cin >> id;
	cout << "이름: "; cin >> name;
	cout << "입금액: "; cin >> balance;
	cout << endl;

	accArr[accNum].accID = id;
	accArr[accNum].balance = balance;
	strcpy_s(accArr[accNum].cusName, name);
	accNum++;
}

void DepositMoney(void)
{
	int money;
	int id;
	cout << "[입금]" << endl;
	cout << "계좌ID: "; cin >> id;
	cout << "입금액:"; cin >> money;

	for (int i = 0; i < accNum; i++)
	{
		if (accArr[i].accID == id)
		{
			accArr[i].balance += money;
			cout << "입금완료" << endl << endl;
			return;
		}
	}
	cout << "유효하지 않은 ID 입니다." << endl << endl;
}

void WithdrawMoney(void)
{
	int money;
	int id;
	cout << "[출금]" << endl;
	cout << "계좌ID: "; cin >> id;
	cout << "출금액: "; cin >> money;

	for (int i = 0; i < accNum; i++)
	{
		if (accArr[i].accID == id)
		{
			if (accArr[i].balance < money)
			{
				cout << "잔액부족" << endl << endl;
				return;
			}
			accArr[i].balance -= money;
			cout << "출금완료" << endl << endl;
			return;
		}
	}
	cout << "유효하지 않은 ID입니다." << endl << endl;
}
void ShowAllAccInfo(void)
{
	for (int i = 0; i < accNum; i++)
	{
		cout << "계좌ID: " << accArr[i].accID << endl;
		cout << "이름: " << accArr[i].cusName << endl;
		cout << "잔액: " << accArr[i].balance <<endl<< endl;
	}
}

문제01

#include <iostream>

int main()
{
	int arr[5];
	int result = 0;

	for (int i = 0; i < 5; i++)
	{
		std::cout << i+1 << "번째정수입력:";
		std::cin >> arr[i];
		result += arr[i];
	}

	std::cout << "합계:" << result;

	return 0;
}

문제2

#include <iostream>
int main()
{	
	char name[100];
	char num[100];

	std::cout << "이름을 입력: ";
	std::cin >> name;

	std::cout << "전화번호를 입력:";
	std::cin >> num;

	std::cout << "당신의 이름은" <<' '<< name<<"입니다."<<std::endl;
	std::cout << "당신의 번호는" <<' '<< num << "입니다.";

	return 0;
}

문제3

#include <iostream>
int main()
{
	int num;
	std::cout << "숫자를 입력:";
	std::cin >> num;
	std::cout << num << "단\n";
	
	for (int i = 1; i < 10; i++)
	{	
		std::cout << num << ' ' << "X" << ' ' << i << "=" << num * i << std::endl;
	}

	return 0;
}

문제4

#include <iostream>
int main()
{
	int x=0;
	float result=0;

	while (1)
	{
		std::cout << "판매금액을 만원 단위로 입력(-1 to end):";
		std::cin >> x;

		result = 50 + x * 0.12;
		std::cout << "이번달 급여:" << result<<"만원"<<"\n";

		if (x == -1)
			break;
	}

	return 0;
}

문제01-2

#include <iostream>

void swap(int* x, int* y)
{
	int temp = 0;
	temp = *y;
	*y = *x;
	*x = temp;
}

void swap(char* x, char* y)
{
	char temp;
	temp = *y;
	*y = *x;
	*x = temp;
}

void swap(double* x, double* y)
{
	double temp;
	temp = *y;
	*y = *x;
	*x = temp;
}


int main()
{
	int num1 = 20, num2 = 30;
	swap(&num1, &num2);
	std::cout << num1 << ' ' << num2 << std::endl;

	char ch1 = 'A', ch2 = 'Z';
	swap(&ch1, &ch2);
	std::cout << ch1 << ' ' << ch2 << std::endl;

	double dbl1 = 1.111, dbl2 = 5.555;
	swap(&dbl1, &dbl2);
	std::cout << dbl1 << ' ' << dbl2 << std::endl;

	return 0;
}

문제01-3

#include <iostream>

int boxvolume(int x, int y, int z)
{
	return x * y * z;
}

int boxvolume(int x, int y)
{
	return x * y * 1;
}

int boxvolume(int x)
{
	return x * 1 * 1;
}


int main()
{
	std::cout << "[3,3,3] :" << boxvolume(3, 3, 3) << std::endl;
	std::cout << "[5,5,D] :" << boxvolume(5,5) << std::endl;
	std::cout << "[7,D,D] :" << boxvolume(7) << std::endl;

	return 0;
}
반응형