仿真超市收银系统
#include<iostream.h>
#include<fstream.h>
#include<windows.h>
#include<math.h>
#define N 10
ofstream write("b.txt");
double sum0, sum_0; //sum0為商品參加促銷(xiāo)活動(dòng)后的總價(jià)格,sum_0為商品促銷(xiāo)后又參與商家促銷(xiāo)后的總價(jià)格。
struct products{ //商品庫(kù)存
int num;
char name[20];
char type[20];
double price;
};
class Product{ ? ?//商品
private:
int num; //商品編號(hào)
char name[20]; //商品名稱(chēng)
char type[20]; //商品類(lèi)型
int amount; //商品數(shù)量
double price; //商品單價(jià)
public:
void set_num(int x){num = x;}; //設(shè)置商品編號(hào)
void set_name(char n[20]){strcpy(name, n);};//設(shè)置商品名稱(chēng)
void set_type(char t[20]){strcpy(type, t);};//設(shè)置商品種類(lèi)
void set_amount(int y){amount = y;}; //設(shè)置商品數(shù)量
void set_price(double z){price = z;}; //設(shè)置商品價(jià)格
int get_num(){return num;}; //獲取商品編號(hào)
char * get_name(){return name;}; //獲取商品名稱(chēng)
char * get_type(){return type;}; //獲取商品種類(lèi)
int get_amount(){return amount;}; //獲取商品數(shù)量
double get_price(){return price;}; //獲取商品價(jià)格
};
class CashManager{ //收銀系統(tǒng)
private:
Product product;
products pro[5];
public:
void input(); //輸入商品信息
void count(double sum2); //計(jì)算價(jià)格
void print(); //打印賬單
void face(); //主界面
};
class SalesTactics{ //促銷(xiāo)策略
public:
double ChildDay(double sum1); //兒童節(jié)
double MidFestival(double sum1); //中秋節(jié)
double ValentineDay(double sum1); //情人節(jié)
double FactorySales(double sum1); //廠家促銷(xiāo)
};
class SalesActivity{ //促銷(xiāo)活動(dòng)
private:
SalesTactics tactics;
public:
double ChildDay(double sum1){return tactics.ChildDay(sum1);};
double MidFestival(double sum1){return tactics.MidFestival(sum1);};
double ValentineDay(double sum1){return tactics.ValentineDay(sum1);};
double FactorySales(double sum1){return tactics.FactorySales(sum1);};
};
double SalesTactics::ChildDay(double sum1){ //兒童節(jié):文具類(lèi)商品一律9折
double ?sum;
sum = sum1 * 0.9;
return sum;
}
double SalesTactics::MidFestival(double sum1){ //中秋節(jié):食品類(lèi)商品一律8折
double sum;
sum = sum1 * 0.8;
return sum;
}
double SalesTactics::FactorySales(double sum1){ //商家促銷(xiāo):滿(mǎn)50減5元
double ?sum;
int s, ss;
s = (int)(sum1 * 100);
ss = s % 5000 + s / 5000 * 4500;
sum = (double)ss / 100;
return sum;
}
void CashManager::face(){ //總界面
int i;
cout<<"***********歡迎進(jìn)入超市促銷(xiāo)活動(dòng)收銀系統(tǒng)*********"<<endl;
cout<<"* ? ? ? ? ? ? ? ?1.商品支付 ? ? ? ? ? ? ? ? ? ?*"<<endl;
cout<<"* ? ? ? ? ? ? ? ?2.退出 ? ? ? ? ? ? ? ? ? ? ? ?*"<<endl;
cout<<"************************************************"<<endl;
cout<<"請(qǐng)輸入您的操作選項(xiàng):";
cin>>i;
switch(i){
case 1:
input();
break;
case 2:
cout<<"系統(tǒng)將退出..."<<endl;
break;
default:
cout<<"輸入不符合規(guī)范,系統(tǒng)將退出..."<<endl;
break;
}
}
void CashManager::input(){ //購(gòu)買(mǎi)商品輸入界面
int i = 0, num, amount, ?k;
double sum;
ifstream read1("a.txt");
while(!read1.eof()){
read1>>pro[i].num>>pro[i].name>>pro[i].type>>pro[i].price;
i++;
}
read1.close();
while(true){ //只需輸入商品編號(hào),即可查詢(xún)庫(kù)存信息獲取該商品所有信息
cout<<"請(qǐng)輸入商品編號(hào):";
cin>>num;
cout<<"請(qǐng)輸入商品數(shù)量:";
cin>>amount;
for(i = 0; i <= 5; i++){
if(pro[i].num == num){
product.set_num(pro[i].num);
product.set_name(pro[i].name);
product.set_type(pro[i].type);
product.set_amount(amount);
product.set_price(pro[i].price);
break;
}
}
sum = amount * pro[i].price; //計(jì)算商品未參與促銷(xiāo)活動(dòng)前的價(jià)格
write<<product.get_num()<<" "<<product.get_name()<<" "<<product.get_type()<<" "<<product.get_price()<<" "<<product.get_amount()<<" "<<sum<<" ";
count(sum); //商品參與促銷(xiāo)
cout<<"是否還需購(gòu)買(mǎi)商品?(1-是,2-否)"<<endl; //是否繼續(xù)購(gòu)買(mǎi)商品
cin>>k;
if(k == 2){
write.close();
print();
break;
}
}
}
void CashManager::print(){ //輸出價(jià)格及是否打印小票
int i;
int num;
char name[20];
char type[20];
int amount;
double price, s_sum, sum;
double money;
SalesActivity c;
sum_0 = c.FactorySales(sum0); //計(jì)算商品參與廠家促銷(xiāo)后的價(jià)格
cout<<"商品總價(jià)格為:"<<sum_0<<endl;
cout<<"實(shí)收金額:";
cin>>money;
cout<<"應(yīng)找回金額:"<<money - sum_0<<endl;
cout<<"是否打印小票?(1-是,2-否)"<<endl;
cin>>i;
if(i == 1){ //打印收銀小票
cout<<"—————-———————超市收銀小票—————————————"<<endl;
cout<<"編號(hào) 名稱(chēng) 類(lèi)型 單價(jià) 數(shù)量 總價(jià) 折扣后"<<endl;
ifstream read("b.txt");
while(!read.eof()){
read>>num>>name>>type>>price>>amount>>s_sum>>sum;
if(!read.eof())
cout<<num<<" "<<name<<" "<<type<<" "<<price<<" "<<amount<<" "<<s_sum<<" "<<sum<<endl;
}
read.close();
cout<<"促銷(xiāo)后總價(jià)格為:"<<sum0<<"元"<<endl;
cout<<"參與滿(mǎn)50減5促銷(xiāo)后價(jià)格為:"<<sum_0<<"元"<<endl;
cout<<"實(shí)收金額:"<<money<<"元 "<<"找回金額:"<<money-sum_0<<"元"<<endl;
cout<<"———————————————————————————————-"<<endl;
}
}
void CashManager::count(double sum2){
char t[20];
char tp1[20]="文具類(lèi)", tp2[20] = "食品類(lèi)";
double sum1;
SalesActivity b;
strcpy(t, product.get_type());
if(strcmp(t, tp1) == 0){
sum1 = b.ChildDay(sum2);
}
else if(strcmp(t, tp2) == 0){
sum1 = b.MidFestival(sum2);
}
else
sum1 = sum2;
sum0 += sum1;
write<<sum1<<endl;
cout<<"商品名稱(chēng):"<<product.get_name()<<" "<<"購(gòu)買(mǎi)單價(jià):"<<product.get_price()<<" "<<"購(gòu)買(mǎi)數(shù)量:"<<product.get_amount()<<" "<<"促銷(xiāo)后小計(jì):"<<sum1<<endl;
}
void main(){
CashManager a;
a.face();
}
#include<fstream.h>
#include<windows.h>
#include<math.h>
#define N 10
ofstream write("b.txt");
double sum0, sum_0; //sum0為商品參加促銷(xiāo)活動(dòng)后的總價(jià)格,sum_0為商品促銷(xiāo)后又參與商家促銷(xiāo)后的總價(jià)格。
struct products{ //商品庫(kù)存
int num;
char name[20];
char type[20];
double price;
};
class Product{ ? ?//商品
private:
int num; //商品編號(hào)
char name[20]; //商品名稱(chēng)
char type[20]; //商品類(lèi)型
int amount; //商品數(shù)量
double price; //商品單價(jià)
public:
void set_num(int x){num = x;}; //設(shè)置商品編號(hào)
void set_name(char n[20]){strcpy(name, n);};//設(shè)置商品名稱(chēng)
void set_type(char t[20]){strcpy(type, t);};//設(shè)置商品種類(lèi)
void set_amount(int y){amount = y;}; //設(shè)置商品數(shù)量
void set_price(double z){price = z;}; //設(shè)置商品價(jià)格
int get_num(){return num;}; //獲取商品編號(hào)
char * get_name(){return name;}; //獲取商品名稱(chēng)
char * get_type(){return type;}; //獲取商品種類(lèi)
int get_amount(){return amount;}; //獲取商品數(shù)量
double get_price(){return price;}; //獲取商品價(jià)格
};
class CashManager{ //收銀系統(tǒng)
private:
Product product;
products pro[5];
public:
void input(); //輸入商品信息
void count(double sum2); //計(jì)算價(jià)格
void print(); //打印賬單
void face(); //主界面
};
class SalesTactics{ //促銷(xiāo)策略
public:
double ChildDay(double sum1); //兒童節(jié)
double MidFestival(double sum1); //中秋節(jié)
double ValentineDay(double sum1); //情人節(jié)
double FactorySales(double sum1); //廠家促銷(xiāo)
};
class SalesActivity{ //促銷(xiāo)活動(dòng)
private:
SalesTactics tactics;
public:
double ChildDay(double sum1){return tactics.ChildDay(sum1);};
double MidFestival(double sum1){return tactics.MidFestival(sum1);};
double ValentineDay(double sum1){return tactics.ValentineDay(sum1);};
double FactorySales(double sum1){return tactics.FactorySales(sum1);};
};
double SalesTactics::ChildDay(double sum1){ //兒童節(jié):文具類(lèi)商品一律9折
double ?sum;
sum = sum1 * 0.9;
return sum;
}
double SalesTactics::MidFestival(double sum1){ //中秋節(jié):食品類(lèi)商品一律8折
double sum;
sum = sum1 * 0.8;
return sum;
}
double SalesTactics::FactorySales(double sum1){ //商家促銷(xiāo):滿(mǎn)50減5元
double ?sum;
int s, ss;
s = (int)(sum1 * 100);
ss = s % 5000 + s / 5000 * 4500;
sum = (double)ss / 100;
return sum;
}
void CashManager::face(){ //總界面
int i;
cout<<"***********歡迎進(jìn)入超市促銷(xiāo)活動(dòng)收銀系統(tǒng)*********"<<endl;
cout<<"* ? ? ? ? ? ? ? ?1.商品支付 ? ? ? ? ? ? ? ? ? ?*"<<endl;
cout<<"* ? ? ? ? ? ? ? ?2.退出 ? ? ? ? ? ? ? ? ? ? ? ?*"<<endl;
cout<<"************************************************"<<endl;
cout<<"請(qǐng)輸入您的操作選項(xiàng):";
cin>>i;
switch(i){
case 1:
input();
break;
case 2:
cout<<"系統(tǒng)將退出..."<<endl;
break;
default:
cout<<"輸入不符合規(guī)范,系統(tǒng)將退出..."<<endl;
break;
}
}
void CashManager::input(){ //購(gòu)買(mǎi)商品輸入界面
int i = 0, num, amount, ?k;
double sum;
ifstream read1("a.txt");
while(!read1.eof()){
read1>>pro[i].num>>pro[i].name>>pro[i].type>>pro[i].price;
i++;
}
read1.close();
while(true){ //只需輸入商品編號(hào),即可查詢(xún)庫(kù)存信息獲取該商品所有信息
cout<<"請(qǐng)輸入商品編號(hào):";
cin>>num;
cout<<"請(qǐng)輸入商品數(shù)量:";
cin>>amount;
for(i = 0; i <= 5; i++){
if(pro[i].num == num){
product.set_num(pro[i].num);
product.set_name(pro[i].name);
product.set_type(pro[i].type);
product.set_amount(amount);
product.set_price(pro[i].price);
break;
}
}
sum = amount * pro[i].price; //計(jì)算商品未參與促銷(xiāo)活動(dòng)前的價(jià)格
write<<product.get_num()<<" "<<product.get_name()<<" "<<product.get_type()<<" "<<product.get_price()<<" "<<product.get_amount()<<" "<<sum<<" ";
count(sum); //商品參與促銷(xiāo)
cout<<"是否還需購(gòu)買(mǎi)商品?(1-是,2-否)"<<endl; //是否繼續(xù)購(gòu)買(mǎi)商品
cin>>k;
if(k == 2){
write.close();
print();
break;
}
}
}
void CashManager::print(){ //輸出價(jià)格及是否打印小票
int i;
int num;
char name[20];
char type[20];
int amount;
double price, s_sum, sum;
double money;
SalesActivity c;
sum_0 = c.FactorySales(sum0); //計(jì)算商品參與廠家促銷(xiāo)后的價(jià)格
cout<<"商品總價(jià)格為:"<<sum_0<<endl;
cout<<"實(shí)收金額:";
cin>>money;
cout<<"應(yīng)找回金額:"<<money - sum_0<<endl;
cout<<"是否打印小票?(1-是,2-否)"<<endl;
cin>>i;
if(i == 1){ //打印收銀小票
cout<<"—————-———————超市收銀小票—————————————"<<endl;
cout<<"編號(hào) 名稱(chēng) 類(lèi)型 單價(jià) 數(shù)量 總價(jià) 折扣后"<<endl;
ifstream read("b.txt");
while(!read.eof()){
read>>num>>name>>type>>price>>amount>>s_sum>>sum;
if(!read.eof())
cout<<num<<" "<<name<<" "<<type<<" "<<price<<" "<<amount<<" "<<s_sum<<" "<<sum<<endl;
}
read.close();
cout<<"促銷(xiāo)后總價(jià)格為:"<<sum0<<"元"<<endl;
cout<<"參與滿(mǎn)50減5促銷(xiāo)后價(jià)格為:"<<sum_0<<"元"<<endl;
cout<<"實(shí)收金額:"<<money<<"元 "<<"找回金額:"<<money-sum_0<<"元"<<endl;
cout<<"———————————————————————————————-"<<endl;
}
}
void CashManager::count(double sum2){
char t[20];
char tp1[20]="文具類(lèi)", tp2[20] = "食品類(lèi)";
double sum1;
SalesActivity b;
strcpy(t, product.get_type());
if(strcmp(t, tp1) == 0){
sum1 = b.ChildDay(sum2);
}
else if(strcmp(t, tp2) == 0){
sum1 = b.MidFestival(sum2);
}
else
sum1 = sum2;
sum0 += sum1;
write<<sum1<<endl;
cout<<"商品名稱(chēng):"<<product.get_name()<<" "<<"購(gòu)買(mǎi)單價(jià):"<<product.get_price()<<" "<<"購(gòu)買(mǎi)數(shù)量:"<<product.get_amount()<<" "<<"促銷(xiāo)后小計(jì):"<<sum1<<endl;
}
void main(){
CashManager a;
a.face();
}
總結(jié)
- 上一篇: 极简 ssh之 scp
- 下一篇: 抖音无水印视频解析源码