From a2f2a82a9c4ebd9789f28ddf96823224685ef15f Mon Sep 17 00:00:00 2001 From: MrJiaGe <3060669380@qq.com> Date: Mon, 29 Sep 2025 10:47:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E5=8C=96?= =?UTF-8?q?=E5=A6=86=E5=93=81=E6=97=A0=E6=B3=95=E6=9B=B4=E6=94=B9=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cosmetic.cpp | 6 ++++++ Cosmetic.h | 2 ++ CosmeticManager.cpp | 3 ++- CosmeticManager.h | 2 +- main.cpp | 12 +++++++++++- 5 files changed, 22 insertions(+), 3 deletions(-) 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;