-
열혈 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; } }
'Language > C' 카테고리의 다른 글
열혈 C++ 프로그래밍 (클래스 기본) (0) 2023.08.15 열혈 C++ 프로그래밍 (참조자 이해하기) (0) 2023.08.14 C 재귀호출 (하노이탑) (0) 2023.07.30 백준 10809번 : 알파벳 찾기 (0) 2021.06.10 백준 2562번 : 최댓값 (포인터 풀이) (0) 2021.06.10