E. 手机服务(构造+拷贝构造+堆)
生活随笔
收集整理的這篇文章主要介紹了
E. 手机服务(构造+拷贝构造+堆)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述設計一個類來實現手機的功能。它包含私有屬性:號碼類型、號碼、
號碼狀態、停機日期;包含方法:構造、拷貝構造、打印、停機。
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. 手机服务(构造+拷贝构造+堆)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架构--网络关键指标公式
- 下一篇: 让POW的共识机制不再成为公链系统吞吐率