题目描述设计一个类来实现手机的功能。它包含私有属性:号码类型、号码、
号码状态、停机日期;包含方法:构造、拷贝构造、打印、停机。
1、号码类型表示用户类别,只用单个字母,A表示机构,B表示企业
、C表示个人
2、号码是11位整数,用一个字符串表示
3、号码状态用一个数字表示,1、2、3分别表示在用、未用、停用
4、停机日期是一个日期对象指针,在初始化时该成员指向空,该日
期类包含私有属性年月日,以及构造函数和打印函数等
----------------------------------------5、构造函数的作用就是接受外来参数,并设置各个属性值,并输出
提示信息,看示例输出
6、拷贝构造的作用是复制已有对象的信息,并输出提示信息,看
示例输出。7、打印功能是把对象的所有属性都输出,输出格式看示例
8、停机功能是停用当前号码,参数是停机日期,无返回值,操作是把状态改成停用,并停机日期指针创建为动态对象,并根据参数来设置停机日期,最后输出提示信息,看示例输出
-------------------------------------------要求:在主函数中实现号码备份的功能,对已有的虚拟手机号的所有信息进行复制,并将号码类型改成D表示备份;将手机号码末尾加字母X输入第一行输入t表示有t个号码第二行输入6个参数,包括号码类型、号码、状态、停机的年、月、日,用空格隔开依次输入t行输出每个示例输出三行,依次输出原号码信息、备份号码信息和原号码停机后的信息每个示例之间用短划线(四个)分割开,看示例输出输入样例1
2
A 15712345678 1 2015 1 1
B 13287654321 2 2012 12 12输出样例1Construct a new phone 15712345678
类型=机构||号码=15712345678||State=在用
Construct a copy of phone 15712345678
类型=备份||号码=15712345678X||State=在用
Stop the phone 15712345678
类型=机构||号码=15712345678||State=停用 ||停机日期=2015.1.1
----
Construct a new phone 13287654321
类型=企业||号码=13287654321||State=未用
Construct a copy of phone 13287654321
类型=备份||号码=13287654321X||State=未用
Stop the phone 13287654321
类型=企业||号码=13287654321||State=停用 ||停机日期=2012.12.12
----

题目较长,注意理解题意即格式化输出

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include <iomanip>
#include<cmath>
#include<cstring>
#include<cctype>
#include<queue>
#include<set>
using namespace std;class date
{int year, month, day;
public:date()//{;}void print();void set(int y, int m, int d);
};void date::print()
{cout << year << "." << month << "." << day << endl;
}void date::set(int y, int m, int d)
{year = y;month = m;day = d;
}class phone
{char num_type;char number[15];int sit;date* p=nullptr;
public:phone(char nt, char* num, int sit);void print();void stop(int y, int m, int d);phone(const phone& obj);
};phone::phone(const phone& obj)
{cout << "Construct a copy of phone " << obj.number << endl;strcpy(number, obj.number);number[11] = 'X';number[12] = '\0';num_type = 'D';sit = obj.sit;p = obj.p;
}
void phone::stop(int y, int m, int d)
{cout << "Stop the phone " << number << endl;sit = 3;p = new date;p->set(y, m, d);cout << "类型=";if (num_type == 'A')cout << "机构";else if (num_type == 'B')cout << "企业";else if (num_type == 'C')cout << "个人";else if (num_type == 'D')cout << "备份";cout << "||号码=" << number << "||State=";if (sit == 1)cout << "在用";else if (sit == 2)cout << "未用";else if (sit == 3)cout << "停用";cout << " ||停机日期=";p->print();cout << "----" << endl;
}
void phone::print()
{cout << "类型=";if (num_type == 'A')cout << "机构";else if (num_type == 'B')cout << "企业";else if (num_type == 'C')cout << "个人";else if (num_type == 'D')cout << "备份";cout << "||号码=" << number << "||State=";if (sit == 1)cout << "在用" << endl;else if (sit == 2)cout << "未用" << endl;else if (sit == 3)cout << "停用" << endl;
}
phone::phone(char nt,char *num,int sit)
{num_type = nt;strcpy(number, num);this->sit = sit;cout << "Construct a new phone " << number << endl;
}
int main()
{int t, s, y, m, d;char num[15];char nt;cin >> t;while (t--){cin >> nt >> num >> s>>y >> m >> d;phone ph1(nt, num, s);ph1.print();phone ph2(ph1);ph2.print();ph1.stop(y, m, d);}return 0;
}

E. 手机服务(构造+拷贝构造+堆)相关推荐

  1. C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系

    #include <iostream> #include <string> using namespace std; class Phone { public:string m ...

  2. 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元

     1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化. //1.一个是通过在后面:a(x),b(y)的方式实现初始化. //2.第二种初始化的方式是直接在构造方法里面实现初始化. 案例如下: ...

  3. 类和对象—对象特性—拷贝构造函数调用时期

    C++中拷贝构造函数通常有三种情况 使用一个已经建立完毕的对象来初始化一个新对象 值传递的方式给函数参数传值 以值方式返回局部对象 #include <iostream> using na ...

  4. c/c++教程 - 2.4.2.1~2 对象的初始化和清理,构造函数和析构函数,构造函数的分类和调用(有参构造,无参构造,普通构造,拷贝构造,括号法,显示法,隐式转换法,匿名对象)

    目录 4.2 对象的初始化和清理 4.2.1 构造函数和析构函数 4.2.2 构造函数的分类及调用 相关教程 4.2 对象的初始化和清理 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候 ...

  5. C++之拷贝构造、拷贝赋值

    拷贝构造 class Stu{public:int no;string name;int age; public:Stu(int no=10086, string name="jin&quo ...

  6. c++: 移动构造/赋值 和 拷贝构造/赋值

    Copy Constructor vs. Assignment https://blog.csdn.net/u013904227/article/details/107441848 [阅读原文] 这篇 ...

  7. 拷贝构造(深拷贝、浅拷贝)

    一.概念介绍 拷贝构造:拷贝构造函数,又称构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构造及初始化. 其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上 ...

  8. 【C++11智能指针】shared_ptr的初始化、拷贝构造和拷贝赋值、移动构造和移动赋值

    文章目录 1.智能指针概述 2.shared_ptr的初始化 2.1 shared_ptr和new结合使用(直接初始化) 2.2 make_shared函数 3.shared_ptr的拷贝构造和拷贝赋 ...

  9. C++——构造函数(拷贝构造,拷贝复制),析构函数,操作符重载

    C++--构造函数(拷贝构造,拷贝复制),析构函数,操作符重载 构造函数与析构函数:: 涉及构造函数还可以看这篇文章C++搞懂深拷贝初始化=与赋值=的区别 1.声明和定义构造函数和析构函数 构造函数在 ...

最新文章

  1. Redux 入门教程(三):React-Redux 的用法
  2. 速度、准确率与泛化性能媲美SOTA CNN,Facebook开源高效图像Transformer
  3. list集合分类显示
  4. python的函数_Python 返回函数+匿名函数
  5. 创建物化视图commit_oracle慎用基于on commit刷新物化视图的方式(一)
  6. mysql gis 时间_MySQL interval()函数
  7. 把ueditor的 p 标签 改成a标签_每周一签·35 | 云标签使用常见问题(QA)
  8. usb uvc协议 1
  9. visio显示形状窗口
  10. 左耳朵耗子:你得知道,技术不是用来写 CRUD 的
  11. SQL查询语句大全集锦
  12. SQLiteSpy 数据库软件
  13. 雷霆复鸣 决战巅峰 | 第七届XCTF国际网络攻防联赛总决赛即刻启航!
  14. PPPOE总结和配置
  15. linux如何连接手机传文件,Ubuntu和手机通过蓝牙互传文件
  16. ftp服务器怎么创建文件夹权限设置密码,ftp服务器 创建文件夹权限设置
  17. uniapp微信小程序视频播放卡顿
  18. SAP HR Schema 详解(三)工资核算基础
  19. mysql使用报错1142(42000)解决方法
  20. ”核高基“培育”外国种“(COM)究竟是谁的责任?

热门文章

  1. 怎么AI生成绘画图片?试试这几款软件吧
  2. 如何使用excel画甘特图
  3. C语言读取wav文件
  4. java算球体积的代码_java - 球体体积法不起作用 - 堆栈内存溢出
  5. python实现微信自动加群_为Python开发人员提供实时代码片段,Kite获1700万美元A轮融资...
  6. 论文阅读:MobileNetV2: Inverted Residuals and Linear Bottlenecks(MobileNetV2)
  7. Python 批量下载SIGMOD,VLDB的论文 Mac OS
  8. 还在为 520 发愁吗?教你用 Python 写个表白神器
  9. gitea 忘记密码 重设密码
  10. Ros学习笔记(一)Ros中HelloWorld实现(C++/Python)