ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 열혈 C++ 프로그래밍 (Chapter01 문제풀이)
    Language/C 2023. 8. 13. 22:01

    <문제 1>

    //실행 예 
    1번째 정수 입력 : 1
    2번째 정수 입력 : 2
    3번째 정수 입력 : 3
    4번째 정수 입력 : 4
    5번째 정수 입력 : 5
    합계 : 15
    #include <iostream>
    
    int main(void) {
    	int result = 0;
    
    	int a;
    	std::cout << "1번째 정수 입력 : ";
    	std::cin >> a;
    
    	int b;
    	std::cout << "2번째 정수 입력 : ";
    	std::cin >> b;
    
    	int c;
    	std::cout << "3번째 정수 입력 : ";
    	std::cin >> c;
    
    	int d;
    	std::cout << "4번째 정수 입력 : ";
    	std::cin >> d;
    
    	int e;
    	std::cout << "5번째 정수 입력 : ";
    	std::cin >> e;
    
    	result = a + b + c + d + e;
    
    	std::cout << "합계 : " << result << std::endl;
    }

     

    <문제 2>

    프로그램 사용자로부터 이름과 전화번호를 문자열의 형태로 입력 받아서, 입력 받은 데이터를 그대로 출력하는 프로그램을 작성해 보자.

    #include <iostream>
    
    int main(void) {
    
    	char name[100];
    	char num[100];
    
    	std::cout << "이름 : ";
    	std::cin >> name;
    
    	std::cout << "전화번호 : ";
    	std::cin >> num;
    
    	std::cout << "입력받은 이름 : " << name << std::endl;
    	std::cout << "입력받은 전화번호 : " << num << std::endl;
    	return 0;
    }

     

    <문제 3>

    숫자를 하나 입력 받아서 그 숫자에 해당하는 구구단을 출력하는 프로그램을 작성해 보자. 예를 들어서 사용자가 5를 입력한다면 구구단에서 5단을 출력해야 한다.

    #include <iostream>
    
    int main(void) {
    
    	int num;
    	std::cout << "숫자 입력 : ";
    	std::cin >> num;
    
    	for (int a = 1; a <= 9; a++) 
    		std::cout << num << "*" << a << "=" << num * a << std::endl;
    	
    	return 0;
    }

     

    <문제 4>
    판매원들의 급여 계산 프로그램을 작성해 보자. 이 회사는 모든 판매원에게 매달 50만원의 기본 급여와 물품 판매 가격의 12%에 해당하는 돈을 지급한다. 예를 들어서 민수라는 친구의 이번 달 물품 판매 금액이 100만원이라면, 50+100*0.12=62, 따라서 62만원을 급여로 지급 받는다. 단, 아래의 실행의 예에서 보이듯이 이러한 급여의 계산은 -1이 입력될 때까지 계속 되어야 한다.

    //실행 예 
     판매금액을 만원 단위로 입력(-1 to end): 100
     이번 달 급여: 62만원
     판매금액을 만원 단위로 입력(-1 to end): 200
     이번 달 급여: 74만원
     판매금액을 만원 단위로 입력(-1 to end): -1
     프로그램을 종료합니다.
    #include <iostream>
    
    int main(void) {
    	int a;
    	while (1) {
    		std::cout << "판매 금액을 만원 단위로 입력(-1 to end): ";
    		std::cin >> a;
    		if (a == -1) 
    			break;
    		std::cout << "이번 달 급여: " << 50 + a * 0.12;
    		
    	}
    	std::cout << "프로그램을 종료합니다.";
    
    	return 0;
    }
    //break는 if 밖의 while, for, do while을 기준으로 가장가까운 반복문을 탈출

     

    <01-6> OOP 단계별 프로젝트 01단계

    //프로그램 설명 
    '은행계좌 관리 프로그램' 
    기능 1. 계좌개설
    기능 2. 입 금
    기능 3. 출 금
    기능 4. 전체고객 잔액조회
    
    //프로그램을 간결하게 하기 위한 가정
    통장의 계좌번호는 중복되지 아니한다(중복검사 X).
    입금 및 출금액은 무조건 0보다 크다(입금 및 출금액의 오류검사 X).
    고객의 계좌정보는 계좌번호, 고객이름, 고객의 잔액, 이렇게 세가지만 저장 및 관리.
    둘 이상의 고객 정보 저장을 위해서 배열을 사용.
    계좌번호는 정수의 형태.
    
    //실행 예
    
    //계좌 개설과정의 실행 예
    -----Menu-----
    1. 계좌개설
    2. 입 금
    3. 출 금
    4. 계좌정보 전체 출력
    5. 프로그램 종료
    선택: 1 
    
    [계좌개설]
    계좌ID: 115
    이 름: 홍길동
    입금액: 15000
    
    //입금 및 정보 조회의 예
    -----Menu-----
    1. 계좌개설
    2. 입 금
    3. 출 금
    4. 계좌정보 전체 출력
    5. 프로그램 종료
    선택: 2
    
    [입 금]
    계좌ID: 115
    입금액: 70
    입금완료
    
    -----Menu-----
    1. 계좌개설
    2. 입 금
    3. 출 금
    4. 계좌정보 전체 출력
    5. 프로그램 종료
    선택: 4
    
    계좌ID: 115
    이 름: 홍길동
    잔 액: 15070
    #include <iostream>
    #include <cstring>
    
    const int userName = 20;
    using namespace std;
    
    void Menu(void);
    void createAccount(void);
    void inMoney(void);
    void outMoney(void);
    void infoAcc(void);
    
    enum {create=1, in, out, info, EXIT};
    
    //계좌 구조체
    typedef struct {
    	int userID;
    	int money;
    	char name[userName];
    }Account;
    
    Account accArr[100];
    int accCount = 0;
    
    //메인
    int main(void) {
    
    	int choice;
    
    	while (1) {
    		Menu();
    		cout << "선택: ";
    		cin >> choice;
    		cout << endl;
    
    		switch (choice) {
    		case create:
    			createAccount();
    			break;
    
    		case in:
    			inMoney();
    			break;
    
    		case out:
    			outMoney();
    			break;
    
    		case info:
    			infoAcc();
    			break;
    
    		case EXIT:
    			return 0;
    
    		default:
    			cout << "잘못된 번호" << endl;
    		}
    	}
    	return 0;
    }
    
    //메뉴
    void Menu(void) {
    	cout << "-----Menu-----" << endl;
    	cout << "1. 계좌개설" << endl;
    	cout << "2. 입 금" << endl;
    	cout << "3. 출 금" << endl;
    	cout << "4. 계좌정보 전체 출력" << endl;
    	cout << "5. 프로그램 종료" << endl;
    }
    
    //계좌개설
    void createAccount(void) {
    	int userID;
    	int money;
    	char name[userName];
    
    	cout << "[계좌개설]" << endl;
    	cout << "계좌ID: "; cin >> userID;
    	cout << "이 름: "; cin >> name;
    	cout << "입금액: "; cin >> money;
    	cout << endl;
    
    	accArr[accCount].userID = userID;
    	accArr[accCount].money = money;
    	strcpy_s(accArr[accCount].name, name);
    	accCount++;
    }
    
    //입 금
    void inMoney(void) {
    	int userID;
    	int money;
    
    	cout << "[입 금]" << endl;
    	cout << "계좌ID: "; cin >> userID;
    	cout << "입금액: "; cin >> money;
    
    	for (int i = 0; i < accCount; i++) {
    		if (accArr[i].userID == userID) {
    			accArr[i].money += money;
    			cout << "입금완료" << endl << endl;
    			return;
    		}
    	}
    	cout << "존재하지 않는 계좌입니다." << endl << endl;
    }
    
    //출 금
    void outMoney(void) {
    	int userID;
    	int money;
    
    	cout << "[출 금]" << endl;
    	cout << "계좌ID: "; cin >> userID;
    	cout << "출금액: "; cin >> money;
    
    	for (int i = 0; i < accCount; i++) {
    		if (accArr[i].userID == userID) {
    			if (accArr[i].money < money) {
    				cout << "잔액이 모자랍니다." << endl << endl;
    				return;
    			}
    			accArr[i].money -= money;
    			cout << "출금완료" << endl << endl;
    			return;
    		}
    	}
    	cout << "존재하지 않는 계좌입니다." << endl << endl;
    }
    
    //계좌정보 전체 출력
    void infoAcc(void) {
    	for (int i = 0; i < accCount; i++) {
    		cout << "계좌ID: " << accArr[i].userID << endl;
    		cout << "이 름: " << accArr[i].name << endl;
    		cout << "잔 액" << accArr[i].money << endl << endl;
    	}
    }
Designed by Tistory.