diff --git a/Cosmetic.cpp b/Cosmetic.cpp index a19f1ce..2385b2a 100644 --- a/Cosmetic.cpp +++ b/Cosmetic.cpp @@ -26,6 +26,12 @@ void Cosmetic::setPrice(double price) { void Cosmetic::setType(bool type) { this->type = type; } +// 设置过期日期 +void Cosmetic::setExpirationDate(std::string expirationDate) { + this->expirationDate = expirationDate; +} + + std::string Cosmetic::getExpirationDate() const { return expirationDate; diff --git a/Cosmetic.h b/Cosmetic.h index ed37a95..e13845f 100644 --- a/Cosmetic.h +++ b/Cosmetic.h @@ -18,6 +18,8 @@ public: void setName(std::string name); void setPrice(double price); void setType(bool type); + // 设置过期日期 + void setExpirationDate(std::string expirationDate); // 获取当前时间 static std::string getTime(); // 获取当前时间+days天 diff --git a/CosmeticManager.cpp b/CosmeticManager.cpp index 42cc832..43dd5e9 100644 --- a/CosmeticManager.cpp +++ b/CosmeticManager.cpp @@ -58,11 +58,12 @@ Cosmetic* CosmeticManager::findCosmetic(const std::string& name) { return nullptr; } -bool CosmeticManager::modifyCosmetic(const std::string& name, double newPrice, bool newType) { +bool CosmeticManager::modifyCosmetic(const std::string &name, double newPrice, bool newType, std::string expirationDate) { Cosmetic* cosmetic = findCosmetic(name); if (cosmetic) { cosmetic->setPrice(newPrice); cosmetic->setType(newType); + cosmetic->setExpirationDate(expirationDate); saveToFile(); return true; } diff --git a/CosmeticManager.h b/CosmeticManager.h index 59dbe8b..4b07258 100644 --- a/CosmeticManager.h +++ b/CosmeticManager.h @@ -13,7 +13,7 @@ public: void addCosmetic(const Cosmetic& cosmetic); bool deleteCosmetic(const std::string& name); Cosmetic* findCosmetic(const std::string& name); - bool modifyCosmetic(const std::string& name, double newPrice, bool newType); + bool modifyCosmetic(const std::string &name, double newPrice, bool newType, std::string string); void loadFromFile(); void saveToFile(); void displayAll() const; diff --git a/main.cpp b/main.cpp index b17ad84..91a59d9 100644 --- a/main.cpp +++ b/main.cpp @@ -85,7 +85,17 @@ int main() { std::cin >> price; std::cout << "输入新类型 (1-国产, 0-进口): "; std::cin >> type; - if (manager.modifyCosmetic(name, price, type)) { + if (type!=1 && type!=0) { + std::cout << "类型输入错误!请输入1-国产, 0-进口" << std::endl; + break; + } + std::cout << "输入新过期日期 (YYYY-MM-DD): "; + std::cin >> expirationDate; + if (!manager.isValidDate(expirationDate)) { + std::cout << "日期格式有误!格式YYYY-MM-DD 例2000-01-01" << std::endl; + break; + } + if (manager.modifyCosmetic(name, price, type, expirationDate)) { std::cout << "修改成功!" << std::endl; } else { std::cout << "未找到该品牌!" << std::endl;