/*
某商店经销一种货物,货物的购进和卖出以箱为单位,各箱的重量不一样,
因此商店需要目前库存的总重量。
现在用c++模拟商店货物购进和卖出的情况*/#include<iostream>
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");
}

转载于:https://www.cnblogs.com/zhanggaofeng/p/5612562.html

C++ 类的抽象初练相关推荐

  1. 第七章节 类的抽象(抽象类)

    一.抽象类 1.抽象类可以看做对类的抽象.抽象类的用途是提供一个可供多个派子生类共享的通用基类定义 2如果一个类中没有包含足够能描述具体对象的信息,那么就称其为抽象类. 3.在C#中抽象类使用&quo ...

  2. 浅析编程及类的本质、类的抽象

    现阶段编程语言极大丰富,以编程思想大致分为面向过程和面向对象两类,前者以C语言作为代表,编程以过程为中心,符合编程人员的直观逻辑,便于理解:后者有C++.C#.Java等,编程以对象为基本程序结构单元 ...

  3. c#面向对象程序设计——类的抽象

    7.1类的抽象: 在面向对象思想中,所有的对象都可以通过类来描述.但并不是所有的类都是用来描述对象的,如果一个类中没有包含能够描述具体对象的信息,那么就称其为抽象类. 语法: abstract cla ...

  4. 《初“练”阅读》学习笔记

    使用书籍<初"练"阅读>(克克老师) **1. 句内逻辑:**前提是掌握硕士研究生英语一二大纲词汇,了解熟词辟义:掌握了语法和长难句,能够正确翻译或理解长难句 四抓一找 ...

  5. 员工类为抽象父类,包括属性:姓名、职位、基本工资、应发工资、实发工资、应缴税;

    (1)通过实现接口Operation来编写窗帘类和灯类.(2)编写一个公共类,其中包含main方法和static void operate(Operation a)方法.(3)在main方法中,当用户 ...

  6. Java多线程模拟驾校学车——假设共有30个学员,其中20个普通学员,10个VIP学员,两类学员并行叫号练车 ,叫号要求:vip学员被叫号的概率要高,vip学习时长是普通学员的3倍数···

    假设共有30个学员,其中20个普通学员,10个VIP学员,两类学员并行叫号练车 叫号要求:vip学员被叫号的概率要高,vip学习时长是普通学员的3倍数,vip学员要在普通学员之前结束练车 packag ...

  7. 【类、抽象与继承(练习)~python】

    python 练习目录 类的练习 简单介绍-1 学生的多重身份 中西兼备的厨师 继承 练习 运行效果如下: 简单介绍-2 抽象 练习 运行效果如下: pandas 每日一练: 程序运行结果为: 31. ...

  8. 【java笔记】类的抽象

    如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 抽象方法和抽象类的定义格式: 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 抽象类:抽象方法所在的类, ...

  9. 计算机程序设计c++ 9-7:类的抽象描述举例-汽车类及圆类设计

    汽车类 汽车的抽象描述 类的特征和功能也就是对象(实体)的特征和功能 汽车类的特征和功能-分析抽象汽车个体的特征和功能 特征:型号.颜色.价格.出厂日期.载客量.载重量.-- 功能:运动.鸣笛.倒车. ...

最新文章

  1. SQL SERVER 数据库清空语句 忽略外键 触发器 等
  2. android mvc mvp 区别,谈谈Android框架 MVC、MVP、MVVM的区别
  3. symbian 视频播放解决方案
  4. spark RDD创建方式:parallelize,makeRDD,textFile
  5. 计算机中级职称报考入口,2020年9月计算机职称考试报名流程(附入口)
  6. 计数器java代码_计数器的java代码
  7. 网页错误在线检测网站汇总
  8. pytorch学习的一点小窍门(1)-数据转换
  9. SAP中由生产版本有误导致的生产报工时提示“错误确定成本核算”问题实例
  10. 不忘初心,能偷懒就偷懒:C#操作Word文件
  11. python对英语的要求_对英文【对英文英语头条】- 对英文知识点 - 中企动力
  12. 不用找,你想要的廊ps后期素材素材都在这里
  13. 艾克姆 蓝牙nRF52832上册-学习笔记
  14. 《腾讯云CityBase产品白皮书》
  15. LP Wizard10.5破解笔记
  16. springboot+小程序老年人健康保障管理系统毕业设计源码302303
  17. 推荐一款文件文档在线预览解决方案
  18. 质量管理体系认证的标准
  19. 云服务器-裸金属介绍
  20. 十问NB-IoT,最专业的NB知识。

热门文章

  1. 反病毒引擎设计全解(二)
  2. UE4 + UnLua + VSCode + LuaPanda调试
  3. OpenGL在frag着色器中模拟点光源
  4. 3D数学基础:图形与游戏开发---随笔一
  5. 数据结构与算法 -- 链表
  6. Java-gt;Android并发编程引气入门篇
  7. Android 开源框架之 Android-async-http 源码解读
  8. Android系统中的进程管理:内存的回收
  9. JZOJ 5458. 【NOIP2017提高A组冲刺11.7】质数
  10. 笔记本暗屏维修多少钱_电视机维修|维修电视机多少钱?电视机黑屏