博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 类的抽象初练
阅读量:5945 次
发布时间:2019-06-19

本文共 2454 字,大约阅读时间需要 8 分钟。

/*某商店经销一种货物,货物的购进和卖出以箱为单位,各箱的重量不一样,因此商店需要目前库存的总重量。现在用c++模拟商店货物购进和卖出的情况*/#include
using namespace std;//货物类class Goods{public: Goods(int w=0){ this->weight = w; } int GetW(){ return weight; } Goods *next;private: //重量 int weight;};//商店类class Shop{public: Shop(int s=0){ this->weights = s; pHead = NULL; } ~Shop(){ if (pHead!=NULL) { Goods *pCurrent = pHead; Goods *pNext = NULL; while (pCurrent){ pNext = pCurrent->next; delete pCurrent; pCurrent = NULL; pCurrent = pNext; } } weights = 0; } //卖出 void SellOut(){ if (pHead==NULL) { cout << "商店里已经没有货物了!" << endl; } else{ //队列 先进先出 Goods *pCurrent = pHead; pHead = pHead->next; delete pCurrent; } } //购进 void Purchase(Goods *&pin){ if (pHead==NULL) { //插入第一箱货物 pHead = pin; weights += pin->GetW(); } else{ Goods *pCurrent = pHead; while (pCurrent->next){ pCurrent = pCurrent->next; } pCurrent->next = pin; weights += pin->GetW(); } } //查询货物重量 int GetWeight(){ return weights; }private: int weights; Goods *pHead;};void protectA(){ Shop *sp = new Shop(); int indexover = 1; while (indexover){ int num = 0; int w = 0; cout << "请输入操作:" << endl; cout << "1购进货物" << endl; cout << "2卖出货物" << endl; cout << "3查看现有货物重量" << endl; cout << "按任意键退出" << endl; cin >> num; switch (num) { case 1: cout << "请输入货物的重量" << endl; //备注:在c++中不可以在case语句里定义任意变量,如果非要定义,请外面套上大括号{} //int ss = 0; //报错 : error C2360: “ss”的初始化操作由“case”标签跳过 { cin >> w; Goods * g1 = new Goods(w); sp->Purchase(g1); } break; case 2: { sp->SellOut(); } break; case 3: cout << "现有货物的重量是" << sp->GetWeight() << endl; break; default: indexover = 0; break; } } if (sp!=NULL) { delete sp; }}void main(){ protectA(); system("pause");}

 

转载地址:http://wlwxx.baihongyu.com/

你可能感兴趣的文章
使用react全家桶制作博客后台管理系统
查看>>
vue绑定html的class属性的方法
查看>>
Python学习笔记之五:类定义
查看>>
解决eclipse修改后台代码ctrl+s总是【自动重启服务器】问题
查看>>
8080端口被占用处理办法
查看>>
正则表达式抓取文件内容中的http链接地址
查看>>
使用阿里云对象存储OSS上传图片工具类
查看>>
MongoDB:详细解释mongodb的高级操作,聚合和游标
查看>>
隐藏计划能力
查看>>
一个供应商只允许一个报价单
查看>>
C#压缩解压zip 文件
查看>>
Android AM命令行启动程序的方法
查看>>
第三节:Windows平台部署Asp.Net Core应用(基于IIS和Windows服务两种模式)
查看>>
jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别
查看>>
Android手机刷recovery
查看>>
【记录】一些非常方便的命令集合
查看>>
#第六次会议#(4.21)
查看>>
phpQuery—基于jQuery的PHP实现
查看>>
StringUtils工具类的isBlank()方法使用说明
查看>>
FJ省队集训DAY3 T1
查看>>