2.假设某书店的前台收银销售类的定义如下:
 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)结算:系统计算出用户需要支付的价格。

2022.3.10

该程序需要有一个名字为date.text且包含1000本书的文件

才能正常运行

#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
int i=0;
class BookDate//书的数据
{public:string bookname;int booknumber;int bookprice;
};
class Sale//前台销售类
{private:int buycount;double total;BookDate book[1000],buy[100];public:Sale();void addBook();void getBuy();void getCash();void getDate(fstream &ofs);void putDate(fstream &ofs);
};
Sale::Sale()//初始数量金额为0
{buycount=0;total=0;
}
void Sale::addBook()//添加购物车
{string name;int num;cout<<"想要购买的书:";cin>>name;int j;for(j=0;j<1000;j++){if(name==book[j].bookname){cout<<"剩余"<<book[j].booknumber<<"本"<<endl;cout<<"单价"<<book[j].bookprice<<"元"<<endl;cout<<"想要购买的数量:" ;cin>>num;if(num<=book[j].booknumber){buy[i].bookname=book[j].bookname;buy[i].booknumber=num;buy[i].bookprice=book[j].bookprice;book[j].booknumber-=num;i++;cout<<"已将该书添加到购物车!"<<endl;}else{cout<<"书本数量不足!"<<endl; }break;}}if(j==1000){cout<<"无该书"<<endl;}
}
void Sale::getBuy()//查看购物车
{int j;if(i==0){cout<<"购物车为空"<<endl; }else{for(j=0;j<i;j++){cout<<"书名:"<<buy[j].bookname<<endl;cout<<"购买数量:"<<buy[j].booknumber<<endl;cout<<"单价:"<<buy[j].bookprice<<endl;}}
}
void Sale::getCash()//结算
{int sum=0,j;for(j=0;j<i;j++){sum+=buy[j].booknumber*buy[j].bookprice;}cout<<"总价:"<<sum<<"元"<<endl;
}
void Sale::getDate(fstream &ofs)//打开书库文件并将图书信息读取到内存中
{int j;ofs.open("date.txt",ios::out|ios::in);if(!ofs.is_open()){cout<<"false"<<endl;return;}for(j=0;j<1000;j++){ofs<<book[j].bookname<<" "<<book[j].booknumber<<" "<<book[j].bookprice;}ofs.close();
}
void Sale::putDate(fstream &ofs)//结束时将图书信息写入书库文件
{ofs.open("date.txt",ios::out);if(!ofs.is_open()){cout<<"false"<<endl;return;}for(int j=0;j<1000;j++){ofs<<book[j].bookname<<" "<<book[j].booknumber<<" "<<book[j].bookprice;}ofs.close();
}
void menu() //菜单
{int ch;Sale t;fstream ofs;t.getDate(ofs);while(1){cout<<"请选择:"<<endl;cout<<"1:向购物车中增加书籍"<<endl;cout<<"2.查看购物车"<<endl;cout<<"3.结算"<<endl;cout<<"4.退出系统"<<endl;cin>>ch; if((ch<=4) && (ch>=1)){switch(ch){case 1:t.addBook();break;case 2:t.getBuy();break;case 3:t.getCash();break;case 4:t.putDate(ofs);exit(0);break;}}else{cout<<"输入错误";}}
}
int main()
{while(1){menu();}return 0;
}

假设某书店的前台收银销售类的定义如下:相关推荐

  1. C++ 实验四 NO. 3 书店的前台收银销售类, 请完成该类定义,实验并且要满足: 1)向购物车中添加书籍;2):查看购物车;3):结算

    //************************************************************************************************** ...

  2. 超市收银软件测试自学,pos前台收银员培训 免费超市收银软件 视频教程

    作为一个超市店铺收银员,特别是一个新手人员,在刚开始的时候,由于对收银软件不甚了解,常常在使用收银软件的时候,觉得很困惑,不知道如何下手开始.本文以星宇免费超市收银软件为例,一步步教您从安装.设置.入 ...

  3. POS信息管理系统设计说明(二)——前台收银管理(C/S)

    三.POS软件系统前台收银管理(C/S) 1.前台收银功能:如图 2.功能说明: 1)进入 启动POS客户端软件,然后输入用户名与密码,如果密码正确就可以登录POS系统,如下图. 2)      日常 ...

  4. 【详细讲解】某书店有一个收银员该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1

    某书店有一个收银员该书店最多允许n个购书者进入.将收银员和购书者看作不同的进程,其工作流程如下图所示.利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1和a2应填入( ...

  5. 书店文具店收银系统应该从哪些方面着手选择?

    由于人们生活网络化和智能化的趋势发展,书店文具店行业也在不断地转型升级.很多没有安装收银系统的小店铺也逐渐意识到,是时候需要借助收银系统来对店铺进行管理了.但是很多店铺老板对于门店收银管理系统没有太多 ...

  6. 美容院前台收银软件用什么好?

    美容机构使用收银软件时,会提升自身的经营能力.因为一个好的美容院收银软件所能实现的不只是一个收银功能.商品管理.库存管理.会员管理等功能,它将包括商品管理.库存管理.会员管理等.这不仅能提高效率,还能 ...

  7. 猿创征文|从酒店前台收银到软件研发教学主管到技术经理之路~

    大家好,我是雄雄. 内容先知

  8. 基于Java超市管理系统/超市收银系统

    本系统具有完整的业务逻辑.适合做毕业设计.课程设计.数据库大作业等,详细功能请看演示界面. 系统包含技术 后端:springboot 前端:css.js等 开发工具:eclipse或者idea 数据库 ...

  9. 星宇专卖店POS收银软件管理系统 v2.49 官方版

    一.产品概述 [星宇专卖店POS收银软件管理系统]是我公司在多年行业经验的基础上,结合上万家客户的实际需求和国内外先进的管理理念设计开发,专门针对中小型专卖店的现代化信息管理系统,实用方便.简单易用. ...

最新文章

  1. kalilinux安装搜狗输入法
  2. Java ---- 序列化
  3. access开发精要(2)-参照完整性
  4. Python3.4连接Mysql
  5. c语言代码含义大全,小白求解代码各部分意思
  6. 从工程师的角度审视 Web 3,没有任何炒作
  7. 一个简单的Perl脚本求单条序列的GC含量
  8. 新浪微博广告形式全攻略
  9. 各种透明玻璃厚度测量双边对射厚度测量精密测量厂家
  10. 点击图标分享页面到QQ,微信,微博 等
  11. 使用Camera X遇到的坑_OnPause时没有释放相机导致回来时黑屏
  12. HTML网页表格标签,HTML静态网页(标签、表格)
  13. r语言入门——颜色转换
  14. Beej网络编程指南《一》
  15. 免Root卸载系统预装应用
  16. MySQL图形化用户界面客户端的安装与介绍(SQLyog)
  17. might和could的区别用法_情态动词can(could),may(might)的用法
  18. 功能安全 李艳文_如何理解功能安全管理
  19. USACO05JAN「Naptime」
  20. 三坐标检测基础知识之矢量的定义

热门文章

  1. php中斜杆无法识别,THINKPHP3.1以下版本中识别URL尾部是否以斜杆结尾/的错误
  2. PHP:使用curl请求聚合支付的驾考宝典题库接口数据, 并渲染到页面上;composer 常用的指令;mvc pathinfo 路由映射实现
  3. 硅式鄙视:我们还在996,他们已经连955都不要了
  4. Linux 进阶命令 - 集大成篇
  5. 有效增加CPU利用率
  6. 记录一下关于Unix时间戳、UTC时间的知识点
  7. 红外探测器 - 超声波测速器 - 毫米波雷达探测器
  8. 杰理之Echo 混响参数配置【篇】
  9. 服装行业数字化转型解决方案丨聚焦碎片化订单推动变革,打造供应链管理体系
  10. 使用自定义注解和切面AOP实现Java程序增强