검색결과 리스트
분류 전체보기에 해당되는 글 643건
- 2018.09.19 c++ stack
- 2018.09.18 c++ oop프로젝트 8장
- 2018.09.18 8-3 연습문제
- 2018.09.08 박사 붐의 폭심만만 프로젝트 치명-마이라 로트스프링
- 2018.09.06 c++ 오버라이딩
- 2018.09.05 레식 총기 부착물 18/9/5 기준 변경
- 2018.09.04 연습문제 8-2
- 2018.09.04 c++ 다른 언어랑 다른점
- 2018.09.03 C++ 생성자
- 2018.08.28 박사 붐의 폭심만만 프로젝트 치명-독성 전문가 폴라크
글
c++ stack
#include<iostream>
using namespace::std;
template<typename T>
class Stack
{
T arr[5];
int index;
int front;
public:
Stack() : index(0) {};
void Push(T num)
{
arr[index++] = num;
}
void Pop()
{
cout << arr[--index] << endl;
}
void Empty()
{
}
};
int main()
{
Stack<int> st;
st.Push(10);
st.Push(20);
st.Push(30);
st.Pop();
st.Pop();
st.Pop();
}
'♪C++ > 소스' 카테고리의 다른 글
c++ oop프로젝트 8장 (0) | 2018.09.18 |
---|---|
열혈강의 3장 연습문제 3-1 3-2 (0) | 2017.11.10 |
성우 1장 OOP 단계별 프로젝트 (0) | 2017.10.09 |
설정
트랙백
댓글
글
c++ oop프로젝트 8장
#include <iostream>
#include <cstring>
using namespace std;
const int NAME_LEN = 20;
enum { MAKE = 1, DEPOSIT, WITHDRAW, INQUIRE, EXIT };
class Account
{
int id; // 계좌번호
int balance; // 잔 액
char *name; // 고객이름
public:
Account(int id, char *name, int balance);
Account(const Account& _Account);
~Account();
int getID() const; //계좌조회
virtual void AddMoney(int money); //입금
void MinMoney(int money); //출금
int getBalance() const; //잔액조회
char* getName() const; //이름
virtual void ShowAllData();
};
Account::Account(int id, char *name, int balance) {
this->id = id;
this->name = new char[strlen(name) + 1];
strcpy(this->name, name);
this->balance = balance;
}
Account::Account(const Account& _Account)
{
this->id = _Account.id;
this->name = new char[strlen(_Account.name) + 1];
strcpy(this->name, _Account.name);
this->balance = _Account.balance;
}
Account::~Account()
{
delete name;
}
int Account::getID() const
{
return id;
}
void Account:: AddMoney(int money)
{
this->balance += money;
}
int Account:: getBalance() const
{
return balance;
}
void Account:: MinMoney(int money)
{
balance -= money;
}
char* Account:: getName() const
{
return name;
}
void Account::ShowAllData()
{
cout << "ID : " << id << endl;
cout << "이름 : " <<name << endl;
cout << "잔액 : " << balance << endl;
}
//신용계좌 입금시 1프로 추가
class FaithAccount : public Account
{
public:
FaithAccount(int id, char *name, int balance) : Account(id, name, balance + balance * 0.01)
{
}
void AddMoney(int money)
{
Account::AddMoney(money + money * 0.01);
}
};
//기부계좌 입금액 1프로 기부 기부총액 저장
class ContriAccount : public Account
{
int contri_sum; //기부금 합
public:
ContriAccount(int id, char *name, int balance) : Account(id, name, balance - balance * 0.01)
{
contri_sum += balance * 0.01;
}
void AddMoney(int money)
{
Account::AddMoney(money - money * 0.01);
contri_sum += money * 0.01;
}
void ShowAllData()
{
Account::ShowAllData();
cout << "총기부액 : " << contri_sum << endl;
}
};
class AccManger
{
Account* pArr[100]; // Account 저장을 위한 배열
int index; // 저장된 Account 수
public:
AccManger() :index(0)
{};
void ShowMenu(void); // 메뉴출력
void MakeAccount(void); // 계좌개설을 위한 함수
void DepositMoney(void); // 입 금
void WithdrawMoney(void); // 출 금
void Inquire(void); // 잔액조회
};
int main(void)
{
int choice;
AccManger ac;
while (1)
{
ac.ShowMenu();
cout << "선택: ";
cin >> choice;
cout << endl;
switch (choice)
{
case MAKE:
ac.MakeAccount();
break;
case DEPOSIT:
ac.DepositMoney();
break;
case WITHDRAW:
ac.WithdrawMoney();
break;
case INQUIRE:
ac.Inquire();
break;
case EXIT:
return 0;
default:
cout << "Illegal selection.." << endl;
}
}
return 0;
}
void AccManger::ShowMenu(void)
{
cout << "-----Menu------" << endl;
cout << "1. 계좌개설" << endl;
cout << "2. 입 금" << endl;
cout << "3. 출 금" << endl;
cout << "4. 계좌정보 전체 출력" << endl;
cout << "5. 프로그램 종료" << endl;
}
void AccManger::MakeAccount(void)
{
int id;
char name[NAME_LEN];
int balance;
int sel;
cout << "1. 일반계좌 개설" << endl;
cout << "2. 신용계좌 개설" << endl;
cout << "3. 기부계좌 개설" << endl;
cout << ">>";
cin >> sel;
cout << "[계좌개설]" << endl;
cout << "계좌ID: "; cin >> id;
cout << "이 름: "; cin >> name;
cout << "입금액: "; cin >> balance;
cout << endl;
if (sel == 1)
pArr[index++] = new Account(id, name, balance);
else if (sel == 2)
pArr[index++] = new FaithAccount(id, name, balance);
else if (sel == 3)
pArr[index++] = new ContriAccount(id, name, balance);
else
cout << "오류"<<endl;
}
void AccManger::DepositMoney(void)
{
int money;
int id;
cout << "[입 금]" << endl;
cout << "계좌ID: "; cin >> id;
cout << "입금액: "; cin >> money;
for (int i = 0; i<index; i++)
{
if (pArr[i]->getID() == id)
{
pArr[i]->AddMoney(money);
cout << "입금완료" << endl << endl;
return;
}
}
cout << "유효하지 않은 ID 입니다." << endl << endl;
}
void AccManger::WithdrawMoney(void)
{
int money;
int id;
cout << "[출 금]" << endl;
cout << "계좌ID: "; cin >> id;
cout << "출금액: "; cin >> money;
for (int i = 0; i<index; i++)
{
if (pArr[i]->getID() == id)
{
if (pArr[i]->getBalance()<money)
{
cout << "잔액부족" << endl << endl;
return;
}
pArr[i]->MinMoney(money);
cout << "출금완료" << endl << endl;
return;
}
}
cout << "유효하지 않은 ID 입니다." << endl << endl;
}
void AccManger::Inquire(void)
{
for (int i = 0; i<index; i++)
{
pArr[i]->ShowAllData();
}
}
'♪C++ > 소스' 카테고리의 다른 글
c++ stack (0) | 2018.09.19 |
---|---|
열혈강의 3장 연습문제 3-1 3-2 (0) | 2017.11.10 |
성우 1장 OOP 단계별 프로젝트 (0) | 2017.10.09 |
설정
트랙백
댓글
글
8-3 연습문제
#include <iostream>
#include <cstring>
using namespace std;
class Employee
{
private:
char name[100];
public:
Employee(const char * name)
{
strcpy(this->name, name);
}
void ShowYourName() const
{
cout << "name: " << name << endl;
}
virtual int GetPay() const
{
return 0;
}
virtual void ShowSalaryInfo() const
{ }
};
class PermanentWorker : public Employee
{
private:
int salary;
public:
PermanentWorker(const char * name, int money)
: Employee(name), salary(money)
{ }
int GetPay() const
{
return salary;
}
void ShowSalaryInfo() const
{
ShowYourName();
cout << "salary: " << GetPay() << endl << endl;
}
};
class TemporaryWorker : public Employee
{
private:
int workTime;
int payPerHour;
public:
TemporaryWorker(const char * name, int pay)
: Employee(name), workTime(0), payPerHour(pay)
{ }
void AddWorkTime(int time)
{
workTime += time;
}
int GetPay() const
{
return workTime * payPerHour;
}
void ShowSalaryInfo() const
{
ShowYourName();
cout << "salary: " << GetPay() << endl << endl;
}
};
class SalesWorker : public PermanentWorker
{
private:
int salesResult; // 월 판매실적
double bonusRatio; // 상여금 비율
public:
SalesWorker(const char * name, int money, double ratio)
: PermanentWorker(name, money), salesResult(0), bonusRatio(ratio)
{ }
void AddSalesResult(int value)
{
salesResult += value;
}
int GetPay() const
{
return PermanentWorker::GetPay()
+ (int)(salesResult*bonusRatio);
}
void ShowSalaryInfo() const
{
ShowYourName();
cout << "salary: " << GetPay() << endl << endl;
}
};
class EmployeeHandler
{
private:
Employee * empList[50];
int empNum;
public:
EmployeeHandler() : empNum(0)
{ }
void AddEmployee(Employee* emp)
{
empList[empNum++] = emp;
}
void ShowAllSalaryInfo() const
{
for (int i = 0; i<empNum; i++)
empList[i]->ShowSalaryInfo();
}
void ShowTotalSalary() const
{
int sum = 0;
for (int i = 0; i<empNum; i++)
sum += empList[i]->GetPay();
cout << "salary sum: " << sum << endl;
}
~EmployeeHandler()
{
for (int i = 0; i<empNum; i++)
delete empList[i];
}
};
int main(void)
{
// 직원관리를 목적으로 설계된 컨트롤 클래스의 객체생성
EmployeeHandler handler;
// 정규직 등록
handler.AddEmployee(new PermanentWorker("JUN", 2000));
handler.AddEmployee(new PermanentWorker("LEE", 3500));
// 임시직 등록
TemporaryWorker * alba = new TemporaryWorker("Jung", 1800);
alba->AddWorkTime(5); // 5시간 일한결과 등록
handler.AddEmployee(alba);
// 영업직 등록
SalesWorker * sell = new SalesWorker("Hong", 2000, 0.2);
sell->AddSalesResult(7000); // 영업실적 7000
handler.AddEmployee(sell);
// 이번 달에 지불해야 할 급여의 정보
handler.ShowAllSalaryInfo();
// 이번 달에 지불해야 할 급여의 총합
handler.ShowTotalSalary();
return 0;
}
'☆C언어 > 소스' 카테고리의 다른 글
c++ q (0) | 2018.09.19 |
---|---|
문자열 숫자 쉽게 숫자로 바꾸기 (0) | 2017.12.25 |
'q' 입력시 종료 (0) | 2017.11.21 |
달력 (0) | 2017.11.13 |
괄호 검사 (0) | 2017.06.17 |
설정
트랙백
댓글
글
박사 붐의 폭심만만 프로젝트 치명-마이라 로트스프링
1) 올빼미 소환(가시덤불 호랑이) ->모두 공격(마아라)-> 영능
2) 광기 물약 (서리늑대 그런틀)-> 서리늑대 그런틀 공격( 서리늑대 그런틀) -> 실바나스 공격(마이아)->왕 크루쉬 공격(마이라)-> 정신분열->성스러운 일격(마이라)
3) 위습 감자 공격(감자폭탄) ->피의 칼날 장착->내면의 분노(거품무는 광전사) -> 거품무는 광전사 공격(감자폭탄)
4) 영능 (왼쪽 구루바시 광전사) ->얼음 화살 (곰)-> 탈로스 소환 -> 금단의 불꽃(왼쪽 구루바시 광전사)-> 구루바시 광전사 공격x2(마이라)
5) 기습(거만한 연기자) -> 광전사 , 코볼트 공격(마이라) -> 그림자 밟기(코볼트) -> 코볼트 소환 -> 사악한 일격(마이라)->칼날꽃잎(마이라)->오염된 노움 소환 -> 기습(오염된 노움)
6) 광란(헬스크림)->가로쉬 공격(누더기 골램)-> 마격(투기장제왕)->회전베기-> 헬스크림 공격(마이라)
7) 죽음의 기사 우서->충전 -> 비어도->영능->검은숲 요정-> 영능->충전 -> 영능 -> 천벌망치(발광로봇)-> 영능
'게임&음악&웃긴거' 카테고리의 다른 글
레식 총기 부착물 18/9/5 기준 변경 (0) | 2018.09.05 |
---|---|
박사 붐의 폭심만만 프로젝트 치명-독성 전문가 폴라크 (0) | 2018.08.28 |
박사 붐의 폭심만만 프로젝트 생존-박사붐 (0) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-수정대장장이 칸고르 (2) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-발광로봇 2000 (0) | 2018.08.22 |
설정
트랙백
댓글
글
c++ 오버라이딩
//은닉 특성
#include<iostream>
using namespace std;
class A
{
public:
void fct()
{
cout << "A"<<endl;
}
};
class B : public A
{
public:
void fct()
{
cout << "B" << endl;
}
};
int main()
{
B* b1 = new B;
b1->fct();
A* a1 = b1;
a1->fct();
}
//virtual 넣어서 재정의 특성
#include<iostream>
using namespace std;
class A
{
public:
virtual void fct()
{
cout << "A"<<endl;
}
};
class B : public A
{
public:
void fct()
{
cout << "B" << endl;
}
};
int main()
{
B* b1 = new B;
b1->fct();
A* a1 = b1;
a1->fct();
}
'♪C++' 카테고리의 다른 글
연습문제 8-2 (0) | 2018.09.04 |
---|---|
c++ 다른 언어랑 다른점 (0) | 2018.09.04 |
C++ 생성자 (0) | 2018.09.03 |
4996 에러 (0) | 2018.08.14 |
c++ 연습 8-1 (0) | 2010.11.14 |
설정
트랙백
댓글
글
레식 총기 부착물 18/9/5 기준 변경
벅 반동 줄었다는데 제어가 안되서 여전히 포구...
엘라 좌우반동 여전히 있어 컴팬
서마 수직반동 줄어서 소염기 가능
예거 좌우반동 줄어서 리플 소염 수직
smg류 수직반동이 강해짐
smg11,12 소염기로 단타로 쓰거나 걍 딴거 써야할듯
베어링 이건 노답..
'게임&음악&웃긴거' 카테고리의 다른 글
박사 붐의 폭심만만 프로젝트 치명-마이라 로트스프링 (0) | 2018.09.08 |
---|---|
박사 붐의 폭심만만 프로젝트 치명-독성 전문가 폴라크 (0) | 2018.08.28 |
박사 붐의 폭심만만 프로젝트 생존-박사붐 (0) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-수정대장장이 칸고르 (2) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-발광로봇 2000 (0) | 2018.08.22 |
설정
트랙백
댓글
글
연습문제 8-2
오류 되는 문장 p2->Work();
이유 :
person <-student<-partimestd 상속 관계
partimestd 주소를 student 포인터로 저장이 가능하지만
접근 권한이 student 기준이라 partimestd 객체 함수 접근 권한이 없음
반대로 partimestd 포인터로 student 주소를 저장 할 수 없다.
partimestd는 partimestd이지만
student는 상속으로 student는partimestd이다 성립
간단히 말해서 객제포인터로 저장하려면 상속을 받는 하위 클래스이어야한다.
'♪C++' 카테고리의 다른 글
c++ 오버라이딩 (0) | 2018.09.06 |
---|---|
c++ 다른 언어랑 다른점 (0) | 2018.09.04 |
C++ 생성자 (0) | 2018.09.03 |
4996 에러 (0) | 2018.08.14 |
c++ 연습 8-1 (0) | 2010.11.14 |
설정
트랙백
댓글
글
c++ 다른 언어랑 다른점
class A
{...소스소스
}
A(10)
java , c# 생성과 동시에 초기화 가능
A(10)
A
c++안됨 이렇게 밖에 생성안되면 void생성자가 있어야하는데?
그래서 c++은 무조건 void 생성자가 디폴트로 들어간다
A(){...}
설정
트랙백
댓글
글
C++ 생성자
class A
{
int x,y;
A(int _x=0,int _y=0) : x(_x),y(_y)
}
_x=0 _y=0 디폴트 변수고
x(_x),y(_y) 객채가 생성되고 생성자가 호출됬을떄 사용되는 초기화 리스트다
x<-_x
y<-_y 초기화
햇갈려 하는 사람이 많아서 대충 적어둠
'♪C++' 카테고리의 다른 글
연습문제 8-2 (0) | 2018.09.04 |
---|---|
c++ 다른 언어랑 다른점 (0) | 2018.09.04 |
4996 에러 (0) | 2018.08.14 |
c++ 연습 8-1 (0) | 2010.11.14 |
OOP프로젝트 5단계 (0) | 2010.11.02 |
설정
트랙백
댓글
글
박사 붐의 폭심만만 프로젝트 치명-독성 전문가 폴라크
1) 영능 ->독성 -> 냉혈(푸른아가미전사) -> 올 공격
2) 얼음화살(폴라크)->얼음창(폴라크)-> 마나지룡 공격(폴라크)
3) 맷돼지 소환->질풍(맷돼지) ->가혹한 하사관 소환(맷돼지) -> 대지의무기(맷돼지) -> 맷돼지 공격(폴라크)
4) 맷돼지 공격(무쇠가죽 불곰) -> 푸른아가미 전사 공격(방패병)->맷돼지 소환(불꽃토탬왼쪽) 공격(플라그)x2 -> 늑대기수 소환(불꽃토탬왼쪽) 공격(폴라크)
5) 흉폭한 늑대인간 소환x2 -> 소용돌이-> 흉폭한늑대인간 공격(참나무 골램)x2 ->영능->방패밀쳐내기(광전사)->광전사 공격(폴라크)
6) 윤회(째깍거리는 누더기골램)->리로이 소환 공격(폴라크)->윤회(리로이)-> 리로이 공격(폴라크)
7)우주변형물 소환 ->별빛사절 소환 ->화염구(폴라크)->동전 -> 비전 작열(청동 문지기)->마나지룡 공격(폴라크)
8) 육식보물상자 소환(테엽돌이 기계골램) -> 죽은척(육식보물상자)->사냥꾼의 징표(육식보물상자) -> 신비한 화살 (육식보물상자)->영능
9) 비상용 계획 한장 쓰면 끝
'게임&음악&웃긴거' 카테고리의 다른 글
박사 붐의 폭심만만 프로젝트 치명-마이라 로트스프링 (0) | 2018.09.08 |
---|---|
레식 총기 부착물 18/9/5 기준 변경 (0) | 2018.09.05 |
박사 붐의 폭심만만 프로젝트 생존-박사붐 (0) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-수정대장장이 칸고르 (2) | 2018.08.23 |
박사 붐의 폭심만만 프로젝트 생존-발광로봇 2000 (0) | 2018.08.22 |