//*********************************************************************************************************************
//*程序作者:冰糖
//*完成日期:2019年03月23日
//*章 节:实验四
//*题 号:3
//*题 目:假设有一书店的前台收银销售类如下定义:
//* Class Sale : //前台销售类
//* {
//* private:
//* int buycount; //购买书的数量
//* double total; //总价
//* BookData book[1000],buy[100]; //book数组用于存储图书信息,buy数组用于存储客户购买的图书的信息
//* public:
//* Sale(); //构造函数
//* void addBook(); //向购物车中增加书籍
//* void getBuy(); //查看购物车
//* void getCash(); //结算
//* void getData(); //打开书库文件并将文件中的图书信息读取到内存中
//* void putData(); //在实验结束前,将图书信息写入书库文件中
//* };
//* 请完成该类定义,实验并且要满足:
//* 1)向购物车中添加书籍:用户先输入书名查找要购买的书籍,
//* 系统会查找相关书籍并询问购买数量,用户输入数量后即可添加至购物车
//* 2)查看购物车:系统显示用户购物车中的书籍以及价格、数量等信息
//* 3)结算:系统计算出用户需要支付的价格
//**********************************************************************************************
#include<iostream>
using namespace std;
#include<iomanip>
#include<fstream>
#include<string>
#include<string.h>
int b=0;//记录购买的次数
void menu();
struct BookData
{
char bookName[100];//书名
int buyNum; //用户购买的数量
float bookPrice;//图书单价
};
class Sale //前台销售类
{
private:
int buycount; //购买书的数量
double total; //总价
BookData book[1000],buy[100]; //book数组用于存储图书信息,buy数组用于存储客户购买的图书的信息
public:
Sale() //构造函数 初始化购买的价格以及图书数量为零
{
buycount=0;
total=0;
}
void addBook(); //向购物车中增加书籍
void getBuy(); //查看购物车
void getCash(); //结算
void getData(fstream &file); //打开书库文件并将文件中的图书信息读取到内存中
void putData(fstream &file); //在实验结束前,将图书信息写入书库文件中
~Sale() {
cout<<"销售管理结束!"<<endl;};
};
//向购物车中添加书籍**************************************************************************************************************
void Sale::addBook()
{
char name[100];
int i,num;
float price;
cout<<"请输入您想要购买的图书进行查找:"<<endl;
cin>>name;
for(i=0;i<8;i++)
{
if(strcmp(book[i].bookName,name)==0)
{
cout<<"该图书剩余"<<book[i].buyNum<<"本"<<endl
<<"单价为"<<book[i].bookPrice<<"元一本"<<endl
<<"请输入您想要购买的数量:"<<endl;
cin>>num;
if(num<=book[i].buyNum)
{
strcpy(buy[b].bookName,name);
buy[b].buyNum=num;
buy[b].bookPrice=book[i].bookPrice;
b++;
book[i].buyNum=book[i].buyNum-num;
cout<<"添加购物车成功!祝您生活愉快!~~~"<<endl;
break;
}
else
{
cout<<"抱歉,图书库存不足,请减少购买数量......QAQ"<<endl;
break;
}
}
}
if(i>=8)
{
cout<<"抱歉,本店未找到该图书......QAQ"<<endl;
}
}
//查看购物车*************************************************************************************************************
void Sale::getBuy()
{
int i;
if(b==0)
cout<<"您的购物车为空,无法查看......"<<endl;
for(i=0;i<b;i++)
{
cout<<"书名:"<<buy[i].bookName<<endl
<<"数量:"<<buy[i].buyNum<<endl
<<"单价:"<<buy[i].bookPrice<<endl;
}
}
//结算金额*************************************************************************************************************************
void Sale::getCash()
{
float moneyAll=0;
int i;
cout<<"购物车中有:"<<endl;
for(i=0;i<b;i++)
{
cout<<buy[i].buyNum<<"本"
<<"《"<<buy[i].bookName<<"》"<<endl;
moneyAll=moneyAll+(buy[i].buyNum*buy[i].bookPrice);
}
cout<<"您一共需要支付"<<moneyAll<<"元。"<<endl;
}
//打开书库文件并将文件中的图书信息读取到内存中***********************************************************************************
void Sale::getData(fstream& file)
{
file.open("bookfile.txt",ios::in|ios::out);
if(!file)
{
cout<<"文件bookfile.txt打开失败!"<<endl;
exit(0);
}
for(int i=0;i<8;i++)
{
file>>book[i].bookName
>>book[i].bookPrice
>>book[i].buyNum;
}
file.close();
}
//在实验结束前,将图书信息写入书库文件中***********************************************************************************************
void Sale::putData(fstream& file)
{
file.open("bookfile.txt",ios::out);
if(!file)
{
cout<<"文件bookfile.txt打开失败!"<<endl;
exit(0);
}
for(int i=0;i<8;i++)
{
file<<book[i].bookName<<" "
<<book[i].bookPrice<<" "
<<book[i].buyNum<<endl;
}
file.close();
}
//主函数**************************************************************************************************************
int main()
{
cout<<"欢迎使用前台销售系统,请输入您想要进行的操作:"<<endl;
while(1)
{
menu();
}
}
void menu()
{
char name1[100];
int command;
Sale sale;
fstream file;
sale.getData(file);//获取图书库信息//打开书库文件并将文件中的图书信息读取到内存中
while(1)
{
cout<<"*****************************************************************************************"<<endl;
cout<<"1:向购物车中增加书籍"<<endl
<<"2:查看购物车"<<endl
<<"3:结算"<<endl
<<"4:在实验结束前,将图书信息写入书库文件中"<<endl //在实验结束前,将图书信息写入书库文件中
<<"5:退出系统"<<endl;
cin>>command;
switch(command)
{
case 1:
sale.addBook();
break;
case 2:
sale.getBuy();
break;
case 3:
sale.getCash();
break;
case 4:
sale.putData(file);
break;
case 5:
exit(0);
}
}
}
C++ 实验四 NO. 3 书店的前台收银销售类, 请完成该类定义,实验并且要满足: 1)向购物车中添加书籍;2):查看购物车;3):结算
猜你喜欢
转载自blog.csdn.net/qq_44037213/article/details/106505721
今日推荐
周排行