C++KFC 주문 시스템 구현
1.제목:아 날로 그 KFC 수금 시스템
2.제목 내용:
학우 들 은 모두 맥 도 날 드 나 KFC 에 가서 패스트푸드 를 먹 은 적 이 있 겠 지?학생 들 은 KFC 홈 페이지 의 정 보 를 참고 하여 KFC 패스트푸드점 의 수금 시스템 을 모 의 하고 C++또는 자바 또는 Python 결합 디자인 모델(2 가지 이상)을 합 리 적 으로 사용 하여 시스템 의 다음 과 같은 기능 을 실현 하 십시오.
1.정상 적 인 음식 결제 와 거스름돈.
2.기본 세트 결제 와 거스름돈.
3.혜택 을 이용 해 학 전갈 이 방 을 삐다 낙타 이각
4.일정 시간 동안 매장 내 활동 에 참여 할 수 있다(자체 적 으로 홈 페이지 정 보 를 디자인 하거나 참고).
5.작은 표 인쇄 를 모 의 하 는 기능(파일 에 쓰기).
기본 요구 사항:
1.프로 그래 밍 스타일 이 좋 고 콘 솔 인터페이스 가 우호 적 이 며 최대 2 인 1 조로 임 무 를 완성 합 니 다.
2.기능 테스트 코드 를 실현 하여 프로그램의 건장 성 을 확보한다.
3.사용 하 는 디자인 패턴 을 그린다.
요구 사항 증가:
1.시각 화 인터페이스 구현(MFC 사용).
2.회원 의 메모리 카드 기능 을 실현 하고 메모리 카드 소 비 를 완성 한다.
당일 영업 액 과 음식 판 매 량 계산 과 통 계 를 실현 하고 데이터베이스 로 기록한다.
3.알고리즘 디자인:
코드
1.주문 시스템 코드
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class Food
{
protected:
string name;
double price;
int num;
public:
virtual double get_sum()
{
double sum = price * num;
return sum;
}
virtual void set_name(string name)
{
this->name = name;
}
virtual string get_name()
{
return name;
}
virtual void set_price(double price)
{
this->price = price;
}
virtual double get_price()
{
return price;
}
virtual void set_num(int num)
{
this->num = num;
}
virtual int get_num()
{
return num;
}
};
class Hamburger :public Food
{
public:
virtual double get_sum()
{
double sum = price * num;
return sum;
}
};
class Snack :public Food
{
public:
virtual double get_sum()
{
double sum = price * num;
return sum;
}
};
class Drink :public Food
{
public:
virtual double get_sum()
{
double sum = price * num;
return sum;
}
};
class Set :public Food
{
public:
virtual double get_sum()
{
double sum = price * num;
return sum;
}
};
class Factory
{
public:
virtual Food* food() = 0;
};
class Factory_Hamburger :public Factory
{
public:
Food* food()
{
return new Hamburger;
}
};
class Factory_Snack :public Factory
{
public:
Food* food()
{
return new Snack;
}
};
class Factory_Drink :public Factory
{
public:
Food* food()
{
return new Drink;
}
};
class Factory_Set :public Factory
{
public:
Food* food()
{
return new Set;
}
};
class xiaopiao
{
public:
virtual void output() = 0;
} ;
class H1 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class H2 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class H3 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class S1 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class S2 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class D1 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class D2 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class D3 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class SET1 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
}
protected:
int num;
};
class SET2 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
if(0 != num)
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
}
protected:
int num;
};
//
class Context
{
public:
Context(xiaopiao *p) : pStrategy(p)
{
}
void Interface()
{
pStrategy->output();
}
private:
xiaopiao *pStrategy;
};
class collect
{
private:
public:
void main_menu()
{
cout << "---------------------" << endl;
cout << " !" << endl;
cout << "---------------------" << endl;
cout << " (1) (2):" << endl;
}
void single_menu()
{
cout << "---------------------" << endl;
cout << " : " << endl;
cout << " : " << endl;
cout << " 1. --17 " << endl;
cout << " 2. --15 " << endl;
cout << " 3. --15 " << endl;
cout << " : " << endl;
cout << " 4. --11 " << endl;
cout << " 5. --9 " << endl;
cout << " : " << endl;
cout << " 6. --7 " << endl;
cout << " 7. --7 " << endl;
cout << " 8. --10 " << endl;
cout << " , 0 !" << endl;
}
void set_menu()
{
cout << "---------------------" << endl;
cout << " : " << endl;
cout << " 1. --25 " << endl;
cout << " ( 、 、 )" << endl;
cout << " 2. --23 " << endl;
cout << " ( 、 、 )" << endl;
cout << " , 0 !" << endl;
}
void menu()
{
main_menu();
int choose;
int hamburger[3], snack[2], drink[3],set[2];
for (int i = 0; i < 3; i++) { hamburger[i] = 0; drink[i] = 0; }
for (int i = 0; i < 2; i++) { snack[i] = 0; set[i] = 0; }
cin >> choose;
if (1 == choose)
{
single_menu();
int ch,flag=1;
while(flag)
{
cout << " :" ;
cin >> ch;
switch (ch)
{
case(0):
{
flag = 0;
break;
}
case(1):
{
cout << " ?:";
int number;
cin >> number;
hamburger[0] = number;
break;
}
case(2):
{
cout << " ?:";
int number;
cin >> number;
hamburger[1] = number;
break;
}
case(3):
{
cout << " ?:";
int number;
cin >> number;
hamburger[2] = number;
break;
}
case(4):
{
cout << " ?:";
int number;
cin >> number;
snack[0] = number;
break;
}
case(5):
{
cout << " ?:";
int number;
cin >> number;
snack[1] = number;
break;
}
case(6):
{
cout << " ?:";
int number;
cin >> number;
drink[0] = number;
break;
}
case(7):
{
cout << " ?:";
int number;
cin >> number;
drink[1] = number;
break;
}
case(8):
{
cout << " ?:";
int number;
cin >> number;
drink[2] = number;
break;
}
default:
{
cout << " !" << endl;
break;
}
}
}
}
else if (2 == choose)
{
set_menu();
int ch, flag = 1;
while (flag)
{
cout << " :";
cin >> ch;
switch (ch)
{
case(0):
{
flag = 0;
break;
}
case(1):
{
cout << " ?:";
int number;
cin >> number;
set[0] = number;
break;
}
case(2):
{
cout << " ?:";
int number;
cin >> number;
set[1] = number;
break;
}
default:
{
cout << " !" << endl;
break;
}
}
}
}
//
Factory_Hamburger* fac_h = new Factory_Hamburger();
//
Food* hamburger1 = fac_h->food();
Food* hamburger2 = fac_h->food();
Food* hamburger3 = fac_h->food();
//
//
hamburger1->set_name(" ");
hamburger1->set_price(17);
hamburger1->set_num(hamburger[0]);
//
hamburger2->set_name(" ");
hamburger2->set_price(15);
hamburger2->set_num(hamburger[1]);
//
hamburger3->set_name(" ");
hamburger3->set_price(15);
hamburger3->set_num(hamburger[2]);
//
Factory_Snack* fac_s = new Factory_Snack();
//
Food* snack1 = fac_s->food();
Food* snack2 = fac_s->food();
//
//
snack1->set_name(" ");
snack1->set_price(11);
snack1->set_num(snack[0]);
//
snack2->set_name(" ");
snack2->set_price(9);
snack2->set_num(snack[1]);
//
Factory_Drink* fac_d = new Factory_Drink();
//
Food* drink1 = fac_d->food();
Food* drink2 = fac_d->food();
Food* drink3 = fac_d->food();
//
//
drink1->set_name(" ");
drink1->set_price(7);
drink1->set_num(drink[0]);
//
drink2->set_name(" ");
drink2->set_price(7);
drink2->set_num(drink[1]);
//
drink3->set_name(" ");
drink3->set_price(7);
drink3->set_num(drink[2]);
//
Factory_Set* fac_se = new Factory_Set();
//
Food* set1 = fac_se->food();
Food* set2 = fac_se->food();
//
//
set1->set_name(" ");
set1->set_price(25);
set1->set_num(set[0]);
//
set2->set_name(" ");
set2->set_price(23);
set2->set_num(set[1]);
//
cout << "---------------------" << endl;
double sum = 0;
sum = sum + hamburger1->get_sum();
sum = sum + hamburger2->get_sum();
sum = sum + hamburger3->get_sum();
sum = sum + snack1->get_sum();
sum = sum + snack2->get_sum();
sum = sum + drink1->get_sum();
sum = sum + drink2->get_sum();
sum = sum + drink3->get_sum();
sum = sum + set1->get_sum();
sum = sum + set2->get_sum();
cout << " :" << sum << endl;
cout << " ?( 0 )";
int ch;
cin >> ch;
int yhq=0;
if (0 == ch)
{
cout << " :" << endl;
cout << "-1. 50 5" << endl;
cout << "-2. 100 15" << endl;
cout << "-3. 200 40" << endl;
cout << " , " << endl;
int flag = 1;
while (flag)
{
int ch;
cin >> ch;
if (ch == 1)
{
if (sum > 50) { sum -= 5; cout << " !"; }
else { cout << " !" << endl; }
flag = 0;
}
if (ch == 2)
{
if (sum > 100) { sum -= 15; cout << " !";}
else { cout << " !" << endl; }
flag = 0;
}
if (ch == 3)
{
if (sum > 200) { sum -= 40; cout << " !";}
else { cout << " !" << endl; }
flag = 0;
}
if (ch == 0)
{
cout << " " << endl;
flag = 0;
}
}
}
cout << " :";
double pay;
cin >> pay;
double payback = pay - sum;
while (0 > payback)
{
cout << " , ( .jpg), , ~";
cin >> pay;
payback = pay - sum;
}
cout << " " << pay << " 。" << endl;
cout << " :" << payback << " " << endl;
int cho;
cout << "---------------------" << endl;
cout << " :( 0 )" << endl;
cin >> cho;
if (0 == cho)
{
//
/*
ofstream outfile("receipt.dat", ios::out);
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << " !" << endl;
outfile << " !" << endl;
cout << " :" << endl;
outfile << " :" << endl;
cout << endl;
outfile << endl;
if (0 != hamburger[0]) { cout << " --" << hamburger[0] << " " <<endl;outfile << " --" << hamburger[0] << " " << endl; }
if (0 != hamburger[1]) { cout << " --" << hamburger[1] << " " << endl;outfile << " --" << hamburger[1] << " " << endl; }
if (0 != hamburger[2]) { cout << " --" << hamburger[2] << " " << endl; outfile << " --" << hamburger[2] << " " << endl;}
if (0 != snack[0]) { cout << " --" << snack[0] << " " << endl;outfile << " --" << snack[0] << " " << endl; }
if (0 != snack[1]) { cout << " --" << snack[1] << " " << endl; outfile << " --" << snack[1] << " " << endl;}
if (0 != drink[0]) { cout << " --" << drink[0] << " " << endl;outfile << " --" << drink[0] << " " << endl; }
if (0 != drink[1]) { cout << " --" << drink[1] << " " << endl; outfile << " --" << drink[1] << " " << endl;}
if (0 != drink[2]) { cout << " --" << drink[2] << " " << endl;outfile << " --" << drink[2] << " " << endl; }
if (0 != set[0]) { cout << " --" << set[0] << " " << endl;outfile << " --" << set[0] << " " << endl; }
if (0 != set[1]) { cout << " --" << set[1] << " " << endl; outfile << " --" << set[1] << " " << endl;}
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << " " << pay << " 。" << endl;
outfile << " " << pay << " 。" << endl;
cout << " :" << payback << " " << endl;
outfile << " :" << payback << " " << endl;
*/
ofstream outfile("receipt.dat", ios::out);
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << " !" << endl;
outfile << " !" << endl;
cout << " :" << endl;
outfile << " :" << endl;
cout << endl;
outfile << endl;
H1 *h1 = new H1;
h1->get_num(hamburger[0]);
H2 *h2 = new H2;
h2->get_num(hamburger[1]);
H3 *h3 = new H3;
h3->get_num(hamburger[2]);
S1 *s1 = new S1;
s1->get_num(snack[0]);
S2 *s2 = new S2;
s2->get_num(snack[1]);
D1 *d1 = new D1;
d1->get_num(drink[0]);
D2 *d2 = new D2;
d2->get_num(drink[1]);
D3 *d3 = new D3;
d3->get_num(drink[2]);
SET1 *set1 = new SET1;
set1->get_num(set[0]);
SET2 *set2 = new SET2;
set2->get_num(set[1]);
Context *ph1 = new Context(h1);
Context *ph2 = new Context(h2);
Context *ph3 = new Context(h3);
Context *ps1 = new Context(s1);
Context *ps2 = new Context(s1);
Context *pd1 = new Context(d1);
Context *pd2 = new Context(d2);
Context *pd3 = new Context(d3);
Context *pset1 = new Context(set1);
Context *pset2 = new Context(set2);
ph1->Interface();
ph2->Interface();
ph3->Interface();
ps1->Interface();
ps2->Interface();
pd1->Interface();
pd2->Interface();
pd3->Interface();
pset1->Interface();
pset2->Interface();
cout << endl;
outfile << endl;
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << endl;
outfile << endl;
cout << " " << pay << " 。" << endl;
outfile << " " << pay << " 。" << endl;
cout << " :" << payback << " " << endl;
outfile << " :" << payback << " " << endl;
outfile.close();
// if
}
}
};
int main()
{
collect c;
c.menu();
}
2.테스트 코드
#include <iostream>
#include <fstream>
using namespace std;
class xiaopiao
{
public:
virtual void output() = 0;
} ;
class H1 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
protected:
int num;
};
class H2 : public xiaopiao
{
public:
void get_num(int n)
{
num = n;
}
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << num << " " <<endl;
outfile << " --" << num << " " << endl;
outfile.close();
}
protected:
int num;
};
class H3 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class S1 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class S2 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class D1 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class D2 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class D3 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class SET1 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class SET2 : public xiaopiao
{
public:
void output()
{
ofstream outfile("receipt.dat", ios::out);
cout << " --" << 1 << " " <<endl;
outfile << " --" << 1 << " " << endl;
outfile.close();
}
};
class Context
{
public:
Context(xiaopiao *p) : pStrategy(p)
{
}
void Interface()
{
pStrategy->output();
}
private:
xiaopiao *pStrategy;
};
int main()
{
ofstream outfile("receipt.dat", ios::out);
cout << "---------------------" << endl;
outfile << "---------------------" << endl;
cout << " !" << endl;
outfile << " !" << endl;
cout << " :" << endl;
outfile << " :" << endl;
cout << endl;
outfile << endl;
H1 *h1 = new H1;
h1->get_num(2);
H2 *h2 = new H2;
h2->get_num(3);
H3 *h3 = new H3;
S1 *s1 = new S1;
S2 *s2 = new S2;
D1 *d1 = new D1;
D2 *d2 = new D2;
D3 *d3 = new D3;
SET1 *set1 = new SET1;
SET2 *set2 = new SET2;
Context *ph1 = new Context(h1);
Context *ph2 = new Context(h2);
Context *ph3 = new Context(h3);
Context *ps1 = new Context(s1);
Context *ps2 = new Context(s1);
Context *pd1 = new Context(d1);
Context *pd2 = new Context(d2);
Context *pd3 = new Context(d3);
Context *pset1 = new Context(set1);
Context *pset2 = new Context(set2);
ph1->Interface();
ph2->Interface();
ph3->Interface();
ps1->Interface();
ps2->Interface();
pd1->Interface();
pd2->Interface();
pd3->Interface();
pset1->Interface();
pset2->Interface();
if (h1) delete h1;
if (h2) delete h2;
if (h3) delete h3;
if (s1) delete s1;
if (s2) delete s2;
if (d1) delete h1;
if (d2) delete d2;
if (d3) delete d3;
if (set1) delete set1;
if (set2) delete set2;
}
결과 전시총화
1.이번 작업 은 KFC 주문 시스템 입 니 다.처음에는 자바 로 하 겠 다 는 생각 이 들 었 지만 많은 자 료 를 자신의 상황 과 결합 시 켜 C++로 프로그램 을 만 들 었 습 니 다.C++는 자바 에 비해 많이 익숙 해 졌 습 니 다.
2.이번 에는 기본 적 인 요구 만 했 고 요 구 를 향상 시 키 지 않 았 습 니 다.저 는 뒤의 학습 에서 시각 화 인터페이스 와 데이터 베 이 스 를 결합 시 켜 주문 시스템 을 보완 하 겠 습 니 다.
3.주로 디자인 모델 에서 의 전략 모델 과 공장 모델 을 활용 한다.그 중에서 공장 모델 은 식당 의 각종 음식 을 생산 하 는 대상 을 책임 지고 전략 모델 은 작은 표를 생 성 할 때 복잡 한 if 문 구 를 피 하 는 것 을 책임 진다.
4.RPG 게임 과 KFC 주문 시스템 의 두 번 의 작업 을 보면 이 두 번 의 코드 는 양 이 비교적 크다 고 생각 하고 그 중의 일부 함수 기능 의 사용,그리고 디자인 모델 에 대한 이해 가 부족 하 다.
더 많은 학습 자 료 는 주제 인 에 주목 하 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio에서 파일 폴더 구분 (포함 경로 설정)Visual Studio에서 c, cpp, h, hpp 파일을 폴더로 나누고 싶었습니까? 어쩌면 대부분의 사람들이 있다고 생각합니다. 처음에 파일이 만들어지는 장소는 프로젝트 파일 등과 같은 장소에 있기 때문에 파일...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.