모든 입력에는 오류가 없다고 가정하기에

에러처리는 하지 않는다.


[code]

/*

p.50~

은행계좌 관리 프로그램

기능1 계좌개설

기능2 입금

기능3 출금

기능4 전체고객 잔액조회

*/

#include <iostream>

#include <cstring>

using namespace std;


typedef struct account {

char accountNum[20];

char name[10];

int balance;

}account;


account bank[100];//계좌 목록

int bankCount=0;//계좌 수 카운트


void createAccount() {

cout << "계좌번호: ";

cin >> bank[bankCount].accountNum;

cout << "이름: ";

cin >> bank[bankCount].name;

cout << "입금액: ";

cin >> bank[bankCount++].balance;


cout << "계좌 개설 완료!" << endl;

cout << "개설 계좌 정보" << endl;

cout << "계좌번호: " << bank[bankCount - 1].accountNum << endl;

cout << "이름: " << bank[bankCount - 1].name << endl;

cout << "잔액: " << bank[bankCount - 1].balance<< endl;

}

void deposit() {

int num = 0;

char accountNum[100];

cout << "입금 계좌번호: ";

cin >> accountNum;

cout << "입금 금액: ";

cin >> num;

for (int i = 0; i < bankCount; i++) {

if (strcpy(accountNum, bank[i].accountNum))

{

bank[i].balance += num;

cout << "입금 완료"<<endl;

cout << "잔액: " << bank[i].balance << endl;

break;

}

}

}

void withdrawal() {

int num = 0;

char accountNum[100];

cout << "출금 계좌번호: ";

cin >> accountNum;

cout << "출금 금액: ";

cin >> num;

for (int i = 0; i < bankCount; i++) {

if (strcpy(accountNum, bank[i].accountNum))

{

bank[i].balance -= num;

cout << "출금 완료" << endl;

cout << "잔액: " << bank[i].balance << endl;

break;

}

}

}

void accountPrint() {

for (int i = 0; i < bankCount; i++) {

cout << "계좌번호: " << bank[i].accountNum << endl;

cout << "이름: " << bank[i].name << endl;

cout << "잔액: " << bank[i].balance << endl;

}

}

int main(void) {

int num = 0;

while (true) {

cout << "-----Menu-----" << endl;

cout << "1. 계좌개설" << endl;

cout << "2. 입 금" << endl;

cout << "3. 출 금" << endl;

cout << "4. 계좌정보 전체 출력" << endl;

cout << "5. 프로그램 종료" << endl;

cout << "선택: ";

cin >> num;

switch (num) {

case 1:

createAccount();

break;

case 2:

deposit();

break;

case 3:

withdrawal();

break;

case 4:

accountPrint();

break;

case 5:

return 0;

break;

default:

cout << "잘못된 입력입니다" << endl;

break;

}

}

return 0;

}

[/code]

'코딩,문제풀이 > cpp' 카테고리의 다른 글

namespace 별칭  (0) 2017.01.01
열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01

namespace ABC=AAA::BBB::CCC


AAA::BBB::CCC로 접근해야하는 네임스페이스를 ABC로 간단하게 접근 가능


예제

[code]

#include <iostream>

using namespace std;


namespace AAA {

namespace BBB {

namespace CCC {

int num1;

int num2;

}

}

}


int main(void) {

AAA::BBB::CCC::num1 = 20;

AAA::BBB::CCC::num2 = 30;


namespace ABC = AAA::BBB::CCC;

cout << ABC::num1 << endl;

cout << ABC::num2 << endl;


return 0;

}

[/code]


결과 화면


'코딩,문제풀이 > cpp' 카테고리의 다른 글

p.50~p.55 OOP 프로젝트  (0) 2017.01.01
열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01

Problem1

디폴트값을 함수 오버로딩으로 구현

[code]

#include <iostream>


int BoxVolume(int length, int width, int height) {

return length*width*height;

}

int BoxVolume(int length, int width) {

return length*width*1;

}

int BoxVolume(int length) {

return length*1*1;

}

int main(void)

{

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;

// std::cout << "[D, D, D] : " << BoxVolume(3, 3, 3) << std::endl; compile error!

return 0;

}


[/code]


결과 화면


Problem2

[code]

int SimpleFunc(int a=10){

return a+1;

}

int SimpleFunc(void){

return 10;

}

[/code]


내생각엔 simpleFunc()를 호출하였을 때 첫 번째 함수를 호출해야하는지 두 번째 함수를 호출해야하는지 모르기 때문

'코딩,문제풀이 > cpp' 카테고리의 다른 글

p.50~p.55 OOP 프로젝트  (0) 2017.01.01
namespace 별칭  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01

c++ 함수에서는 디폴트 값을 설정할 수 있다고 한다.

(c++라고 언급한거 보니 c는 안되는듯? 확인은 나중에..)


[code]

int MyFuncOne(int num=7){

return num+1;

}

[/code]

이런 코드가 있으면 다음과 같이 함수 호출 할 때

MyFuncOne();

num에는 7에 들어간다.


함수 선언을 사용 하는 경우 함수 선언부에만 디폴트 값을 표현해주면 사용 가능.


부분적으로 디폴트 값을 설정할 때에는 가장 우측 변수부터 디폴트 값이 설정 되어야 한다.-> 함수 호출시 매개변수가 왼쪽에서부터 채워지게 되고 나머지는 디폴트값을 사용하기 때문


[code]

#include <iostream>


int BoxVolume(int length, int width = 1, int height = 1);


int main(void)

{

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;

// std::cout << "[D, D, D] : " << BoxVolume(3, 3, 3) << std::endl; compile error!

return 0;

}


int BoxVolume(int length, int width, int height) {

return length*width*height;

}

[/code]


결과 화면


'코딩,문제풀이 > cpp' 카테고리의 다른 글

namespace 별칭  (0) 2017.01.01
열혈강의 c++ p.32  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01
열혈강의c++ p.22  (0) 2017.01.01

Problem1

swap함수를 오버로딩 구현


[code]

#include <iostream>


void swap(int* num1,int* num2) {

int temp=*num1;

*num1 = *num2;

*num2 = temp;

}


void swap(char* ch1, char* ch2) {

char temp = *ch1;

*ch1 = *ch2;

*ch2 = temp;

}


void swap(double* dbl1, double* dbl2) {

double temp = *dbl1;

*dbl1 = *dbl2;

*dbl2 = temp;

}


int main(void) {

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;

}

[/code]


결과 화면


'코딩,문제풀이 > cpp' 카테고리의 다른 글

열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01
열혈강의c++ p.22  (0) 2017.01.01
c++ 입출력  (0) 2017.01.01

열혈강의 C++ 내용


함수 오버로딩: 함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수를 구분 가능한데 이러한 형태의 함수 정의를 일컬음


ex)

MyFunc(20);    //MyFunc(int num) 호출

MyFunc(20,30);    //MyFunc(int num1, int num2) 호출



c에서는 허용하지 않지만 c++에서는 허용함

c에서는 함수의 이름만을 가지고 호출 대상을 찾지만 c++에서는 함수 이름과 매개변수를 모두 활용하여 호출 대상을 찾는다고 한다.


함수명, 매개변수로는 구분 가능하지만 반환타입으로는 구분할 수 없다


예제

[code]

#include <iostream>


void MyFunc(void) {

std::cout << "MyFunc(void) called" << std::endl;

}


void MyFunc(char c) {

std::cout << "MyFunc(char c) called" << std::endl;

}


void MyFunc(int a, int b) {

std::cout << "MyFunc(int a,int b) called" << std::endl;

}


int main(void) {

MyFunc();

MyFunc('A');

MyFunc(12,13);

return 0;

}

[/code]


결과 화면



'코딩,문제풀이 > cpp' 카테고리의 다른 글

열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
열혈강의c++ p.22  (0) 2017.01.01
c++ 입출력  (0) 2017.01.01

Problem1

5개의 정수를 입력 받아서 그 합을 출력하는 프로그램

[code]

#include <iostream>


int main(void) {

int val1, val2, val3, val4, val5;

std::cout << "1번째 정수 입력: ";

std::cin >> val1;


std::cout << "2번째 정수 입력: ";

std::cin >> val2;


std::cout << "3번째 정수 입력: ";

std::cin >> val3;


std::cout << "4번째 정수 입력: ";

std::cin >> val4;


std::cout << "5번째 정수 입력: ";

std::cin >> val5;


int sum = val1 + val2 + val3 + val4 + val5;

std::cout << "합계: " << sum<<std::endl;

return 0;

}

[/code]


결과 화면


Problem2

이름, 전화번호를 입력받아 그대로 출력

[code]

#include <iostream>


int main(void) {

char name[100];

char phone[100];


std::cout << "이름 입력: ";

std::cin >> name;


std::cout << "전화번호 입력: ";

std::cin >> phone;


std::cout << "이름: " << name << std::endl;

std::cout << "전화번호: " << phone << std::endl;

return 0;

}

[/code]


결과 화면


Problem3

숫자를 하나 입력받아 구구단 출력

[code]

#include <iostream>


int main(void) {

int num;

std::cout << "구구단 단수 입력: ";

std::cin >> num;


for (int i = 1; i < 10; i++) {

std::cout << num << " x " << i << " = " << num*i << std::endl;

}

return 0;

}

[/code]


결과 화면


Problem4

급여 계산 프로그램(조건은 책 참고)

[code]

#include <iostream>


int main(void) {

int num=0;

while (true) {

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

std::cin >> num;

if (num == -1)

break;

std::cout << "이번 달 급여: " << 50 + num*0.12 << "만원" << std::endl;

}

std::cout << "프로그램을 종료합니다." << std::endl;

return 0;

}

[/code]


결과 화면




'코딩,문제풀이 > cpp' 카테고리의 다른 글

열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01
c++ 입출력  (0) 2017.01.01

출력


헤더파일 선언문

#include <iostream>


std::cout << '출력 대상'     //ex) 문자열, 슷자, 선언된 변수 등

std:cout<<'출력 대상1'<<'출력 대상2'<<'출력 대상3'; 이런 방식으로 사용 가능하다.

std::endl : 개행


예제 코드

[code]

#include <iostream>


int main(void) {

int num = 20;

std::cout<< "Hello World!" << std::endl;

std::cout << "Hello " << "World!" << std::endl;

std::cout << num << ' ' << 'A';

std::cout << ' ' << 3.14 << std::endl;

return 0;

}

[/code]


결과



입력


헤더파일 선언문

#include <iostream>


std::cin>>'변수';

std::cin>>'변수1'>>'변수1';    //연속적인 데이터도 입력 가능


예제 코드

[code]

#include <iostream>


int main(void) {

int val1;

std::cout << "첫 번째 숫자입력: ";

std::cin >> val1;


int val2;

std::cout << "두 번째 숫자입력: ";

std::cin >> val2;

int result = val1 + val2;

std::cout << "덧셈결과: " << result << std::endl;


return 0;

}

[/code]


결과



'코딩,문제풀이 > cpp' 카테고리의 다른 글

열혈강의 c++ p.32  (0) 2017.01.01
매개변수 디폴트값  (0) 2017.01.01
열혈강의 c++ p.26  (0) 2017.01.01
함수 오버로딩(Function Overloading)  (0) 2017.01.01
열혈강의c++ p.22  (0) 2017.01.01

+ Recent posts