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

C++ 类的抽象初练的更多相关文章

  1. 抽象鸡类 abstract(抽象) base(基础) class(类型)

    # --> ''' class interface 接口: 建立关联的桥梁, 方便管理代码 (python中没有接口语法) 接口类: 用来定义功能的类 为继承它的子类提供功能 该类的功能法方法一 ...

  2. 创建一个抽象的员工类, 抽象开发累继承员工类,JavaEE ,和安卓继承开发类在测试类中进行测试

    /* 1 定义一个员工类  所有的子类都抽取(抽象类)  Employee            属性:姓名  工号(生成get  set  )       方法:工作  抽象     2 定义一个研 ...

  3. python(七):元类与抽象基类

    一.实例创建 在创建实例时,调用__new__方法和__init__方法,这两个方法在没有定义时,是自动调用了object来实现的.python3默认创建的类是继承了object. class A(o ...

  4. Python 中的类与对象 初认识

    一:类的声明 1类的关键字: 从第一天第一个项目起我们就接触过关键字,比如False True is not None return for while elif else import等等,这是语言 ...

  5. C# 类 (7) - 抽象 Abstract

    Abstract 抽象类,关键字Abstract ,最典型的应用就是在 继承机制里 作为base类,抽象类是不能被实例化的(前面说的static 类也不能被实例化)它必须作为 基类,被别人继承,然后必 ...

  6. UE4开发神秘海域类游戏原型 初阶(二):动画资源的整合

    前一篇已经确定神海类游戏原型的目标,首先要做的就是3C's(Character, Controls, Camera)的开发.   UE4的3C's的程序部分开发主要也就是基于他的GamePlay Fr ...

  7. 类,抽象基类,接口类三者间的区别与联系(C++)

    结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...

  8. 三分初练QAQ

    求凸函数的极值的一般方法是三分 三分的思想大概是这样的: 例如我们要求下凸函数的极值 在区间[L,R]上, 我们定义m1为区间的第一个三等分点 定义m2为区间的第二个三等分点 设函数值为F(x) 则若 ...

  9. 操作数据库的时候,使用自带的DbProviderFactory类 (涉及抽象工厂和工厂方法)

    微软自带的DbProviderFactory https://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactory ...

随机推荐

  1. gedit如何使用代码片段

    gedit的片段插件 1 打开这个插件   2 以HTML为例,我们看到触发器是doctype   3则我在编辑一个HTML文档的时候,先输入doctype,再按Tab键,将会自动提示,我选择即可插入 ...

  2. web前端开发文档

  3. 我的项目7 js 实现歌词同步(额,小小的效果)

    在项目中须要做一个播放器,还要实现歌词同步的效果,就跟如今搜狗音乐的歌词同步差点儿相同,在网上查了一些关于这方面的.整理了一下,在这里,其有用这种方法能够吗? <!DOCTYPE html> ...

  4. mysql 简单介绍

    mysql 不允许修改数据库名,一些客户端可以变通的方式来修改数据库名称 mysql 1064错误,语法错误 更改表名: rename table jian to song; 删除表 drop tab ...

  5. unity模型任意无限切割插件

    概述 3d模型的任意切割一直是游戏开发里的一个很大的问题,模型切割的关键点就只有生成横切面的新顶点以及切口纹理的缝合,理论上解决了这两点,就近乎可以做到以假乱真的程度了.本篇文章就这两点进行描述 详细 ...

  6. cpu_test

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. findlibrary returned null产生的联想,Android ndk开发打包时我们应该怎样注意平台的兼容(x86,arm,arm-v7a)

    非常多朋友在开发Android JNI的的时候,会遇到findlibrary returned null的错误,由于某种原因,so没有打包到apk中.以下浅析下引起该错误的原因以及平台兼容性问题. A ...

  8. HBase源代码分析之HRegionServer上MemStore的flush处理流程(一)

    在<HBase源代码分析之HRegion上MemStore的flsuh流程(一)>.<HBase源代码分析之HRegion上MemStore的flsuh流程(二)>等文中.我们 ...

  9. PHP代码优化之缓存(转)

    我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少.往往我们在追求这些的同时却失去了很多东西.下面我想讲讲我对PHP优化的理解.优化的目的是花最少的代价换来最快的运行速度与最 ...

  10. Cocos2d-x3.0 载入Cocostudio的UI后,button无法点击的解决方法

    原帖地址:http://blog.csdn.net/musicvs/article/details/28390617 近期发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在 ...