#include <iostream>
#include <string>
class Invoice {
public:
void setBookName(std::string name) {
book_name = name;
}
std::string getBookName() const {
return book_name;
}
void setBookNumber(int num) {
book_number = num;
}
int getBookNumber() const {
return book_number;
}
void setQuantity(int quan) {
if (quan > 0)
quantity = quan;
else
quantity = 0;
}
int getQuantity() const {
return quantity;
}
void setPrice(int price) {
if (price > 0)
book_price = price;
else
book_price = 0;
}
int getPrice() const {
return book_price;
}
int getItemAmount() {
return item_amount = quantity*book_price;
}
int getInvoiceAmount() {
return invoice_amount = invoice_amount + item_amount;
}
private:
std::string book_name{0};
int book_number{0},quantity{0},book_price{0},item_amount{0},invoice_amount{0};
};
using namespace std;
int main() {
string name{},A[100];
int B[100],C[100],D[100];
int num{},quan{},price{};
int x{},y{},i{};
Invoice Book[100];
for(i=0 ; i<100 ; i++) {
getline(cin, name);
Book[i].setBookName(name);
A[i] = Book[i].getBookName();
cin >> num;
Book[i].setBookNumber(num);
B[i] = Book[i].getBookNumber();
cin >> quan;
Book[i].setQuantity(quan);
C[i] = Book[i].getQuantity();
cin >> price;
Book[i].setPrice(price);
D[i] = Book[i].getPrice();
cout << "請輸入\"1\"繼續或輸入任意鍵退出。" << endl;
cin >> x ;
cin.ignore(); //呼叫 ignore 忽略緩衝區的資料
if( x != 1 ) {
y = i;
break;
}
}
for(i=0 ; i<=y ; i++) {
cout << A[i] << endl;
cout << B[i] << endl;
cout << C[i] << endl;
cout << D[i] << endl;
cout << Book[i].getItemAmount() << endl;
cout << Book[i].getInvoiceAmount() << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKY2xhc3MgSW52b2ljZSB7CnB1YmxpYzoKCQoJdm9pZCBzZXRCb29rTmFtZShzdGQ6OnN0cmluZyBuYW1lKSB7CgkJYm9va19uYW1lID0gbmFtZTsKCX0KCXN0ZDo6c3RyaW5nIGdldEJvb2tOYW1lKCkgY29uc3QgewoJCXJldHVybiBib29rX25hbWU7Cgl9CgkKCXZvaWQgc2V0Qm9va051bWJlcihpbnQgbnVtKSB7CgkJYm9va19udW1iZXIgPSBudW07Cgl9CglpbnQgZ2V0Qm9va051bWJlcigpIGNvbnN0IHsKCQlyZXR1cm4gYm9va19udW1iZXI7Cgl9CgkKCXZvaWQgc2V0UXVhbnRpdHkoaW50IHF1YW4pIHsKCQlpZiAocXVhbiA+IDApCgkJcXVhbnRpdHkgPSBxdWFuOwoJCWVsc2UKCQlxdWFudGl0eSA9IDA7Cgl9CglpbnQgZ2V0UXVhbnRpdHkoKSBjb25zdCB7CgkJcmV0dXJuIHF1YW50aXR5OwoJfQoJCgl2b2lkIHNldFByaWNlKGludCBwcmljZSkgewoJCWlmIChwcmljZSA+IDApCgkJYm9va19wcmljZSA9IHByaWNlOwoJCWVsc2UKCQlib29rX3ByaWNlID0gMDsKCX0KCQoJaW50IGdldFByaWNlKCkgY29uc3QgewoJCXJldHVybiBib29rX3ByaWNlOwoJfQoJCglpbnQgZ2V0SXRlbUFtb3VudCgpIHsKCQlyZXR1cm4gaXRlbV9hbW91bnQgPSBxdWFudGl0eSpib29rX3ByaWNlOwoJfQoJCglpbnQgZ2V0SW52b2ljZUFtb3VudCgpIHsKCQlyZXR1cm4gaW52b2ljZV9hbW91bnQgPSBpbnZvaWNlX2Ftb3VudCArIGl0ZW1fYW1vdW50OwoJfQkKcHJpdmF0ZToKCXN0ZDo6c3RyaW5nIGJvb2tfbmFtZXswfTsKCWludCBib29rX251bWJlcnswfSxxdWFudGl0eXswfSxib29rX3ByaWNlezB9LGl0ZW1fYW1vdW50ezB9LGludm9pY2VfYW1vdW50ezB9Owp9OyAKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCQoJc3RyaW5nIG5hbWV7fSxBWzEwMF07CglpbnQgQlsxMDBdLENbMTAwXSxEWzEwMF07CglpbnQgbnVte30scXVhbnt9LHByaWNle307CglpbnQgeHt9LHl7fSxpe307CgkKCUludm9pY2UgQm9va1sxMDBdOwoJCglmb3IoaT0wIDsgaTwxMDAgOyBpKyspIHsKCQkKCQlnZXRsaW5lKGNpbiwgbmFtZSk7CgkJQm9va1tpXS5zZXRCb29rTmFtZShuYW1lKTsKCQlBW2ldID0gQm9va1tpXS5nZXRCb29rTmFtZSgpOwoJCQoJCWNpbiA+PiBudW07CgkJQm9va1tpXS5zZXRCb29rTnVtYmVyKG51bSk7CgkJQltpXSA9IEJvb2tbaV0uZ2V0Qm9va051bWJlcigpOwoJCQoJCWNpbiA+PiBxdWFuOwoJCUJvb2tbaV0uc2V0UXVhbnRpdHkocXVhbik7CgkJQ1tpXSA9IEJvb2tbaV0uZ2V0UXVhbnRpdHkoKTsKCQkKCQljaW4gPj4gcHJpY2U7CgkJQm9va1tpXS5zZXRQcmljZShwcmljZSk7CgkJRFtpXSA9IEJvb2tbaV0uZ2V0UHJpY2UoKTsKCQkKCQljb3V0IDw8ICLoq4vovLjlhaVcIjFcIue5vOe6jOaIlui8uOWFpeS7u+aEj+mNtemAgOWHuuOAgiIgPDwgZW5kbDsKCQljaW4gPj4geCA7CgkJY2luLmlnbm9yZSgpOyAvL+WRvOWPqyBpZ25vcmUg5b+955Wl57ep6KGd5Y2A55qE6LOH5paZCgkJCgkJaWYoIHggIT0gMSApIHsKCQkJeSA9IGk7CgkJCWJyZWFrOwoJCX0KCQoJfQoJZm9yKGk9MCA7IGk8PXkgOyBpKyspIHsKCQljb3V0IDw8IEFbaV0gPDwgZW5kbDsKCQljb3V0IDw8IEJbaV0gPDwgZW5kbDsKCQljb3V0IDw8IENbaV0gPDwgZW5kbDsKCQljb3V0IDw8IERbaV0gPDwgZW5kbDsKCQljb3V0IDw8IEJvb2tbaV0uZ2V0SXRlbUFtb3VudCgpIDw8IGVuZGw7CgkJY291dCA8PCBCb29rW2ldLmdldEludm9pY2VBbW91bnQoKSA8PCBlbmRsOwoJfQp9