voidstock::acquire(const string& co, long n, double pr) { company = co; if (n < 0) { cout << "Numbers of shares can't be negative!" << company << " shares set to 0.\n"; shares = 0;
Company name: NanoSmart Number of shares: 20 Share price: 12.5 Total value: 250 Company name: NanoSmart Number of shares: 35 Share price: 18.125 Total value: 634.375 Company name: NanoSmart Number of shares: 30 Share price: 19.5 Total value: 585
抽象数据类型
stock类非常具体。然而,程序员常常通过定义类来表示更通用的概念。例如,就实现计算机专家们所说的抽象数据类型(abstract data type,ADT)而言,使用类是一种非常好的方式。顾名思义,ADT以通用的方式描述数据类型,而没有引入语言或实现细节。例如,通过栈,可以以这样的方式存储数据,即总是从栈添加或删除数据。例如,C++程序通过栈来管理自动变量。当新的自动变量被生成后,它们被添加到栈顶;消亡时,从栈删除它们。
#include"stack.h" #include<cctype> // 主函数,程序入口 intmain() { stack st; char ch; unsignedlong po; // 提示用户输入操作选项 cout << "Please enter A to add apurchase order,\n" << "P to process a PO.or Q to quit.\n"; while (cin >> ch && toupper(ch) != 'Q') { while (cin.get() != '\n') continue; // 检查输入是否为字母 if (!isalpha(ch)) { cout << '\a'; continue; } switch (ch) { // 添加采购订单 case'A': case'a':cout << "Enter a PO number to add:"; cin >> po; if (st.isfull()) { cout << "stack already full\n"; } else st.push(po); break; // 处理采购订单 case'P': case'p': if (st.isenputy()) cout << "stack already empty\n"; else { st.pop(po); cout << "PO #" << po << " popped\n"; } break; default: break; }
// 重复提示用户输入操作选项 cout << "Please enter A to add a purchase order,\n" << "P to process a PO ,or Q to quit.\n";
} // 程序结束提示 cout << "Bye.\n"; return0; }
Please enter A to add apurchase order, P to process a PO.or Q to quit. A Enter a PO number to add:17885 Please enter A to add a purchase order, P to process a PO ,or Q to quit. P PO #17885 popped Please enter A to add a purchase order, P to process a PO ,or Q to quit. A Enter a PO number to add:17965 Please enter A to add a purchase order, P to process a PO ,or Q to quit. A Enter a PO number to add:18002 Please enter A to add a purchase order, P to process a PO ,or Q to quit. P PO #18002 popped Please enter A to add a purchase order, P to process a PO ,or Q to quit. P PO #17965 popped Please enter A to add a purchase order, P to process a PO ,or Q to quit. P stack already empty Please enter A to add a purchase order, P to process a PO ,or Q to quit. Q Bye.
Reprint policy:
All articles in this blog are used except for special statements
CC BY 4.0
reprint policy. If reproduced, please indicate source
T1g3r
!