diff options
added bar task
2 files changed, 83 insertions, 0 deletions
| -rw-r--r-- | Sem. 11/Examples/Bar/Drink/Drink.cpp | 62 | ||||
| -rw-r--r-- | Sem. 11/Examples/Bar/Drink/Drink.h | 21 |
diff --git a/Sem. 11/Examples/Bar/Drink/Drink.cpp b/Sem. 11/Examples/Bar/Drink/Drink.cpp new file mode 100644 index 0000000..4bb921f --- /dev/null +++ b/Sem. 11/Examples/Bar/Drink/Drink.cpp @@ -0,0 +1,62 @@ +#include "Drink.h" + +Drink::Drink() : Drink("Unknown", 0) +{} + +const MyString& Drink::getName() const +{ + return name; +} +int Drink::getMl() const +{ + return ml; +} + +bool isLower(char ch) +{ + return ch >= 'a' && ch <= 'z'; +} + +bool areAllLowerCase(const char* str) +{ + while (*str) + { + if (!isLower(*str)) + return false; + str++; + } + return true; +} + +bool isUpper(char ch) +{ + return ch >= 'A' && ch <= 'Z'; +} + +bool isNameValid(const char* name) +{ + return isUpper(*name) && areAllLowerCase(name + 1); +} + +void Drink::setName(const MyString& name) +{ + if (isNameValid(name.c_str())) + this->name = name; +} +void Drink::setMl(int ml) +{ + const int MAX_ML = 1000; + const int MIN_ML = 100; + + ml = MIN_ML; + if (MIN_ML <= ml && ml <= MAX_ML) + this->ml = ml; + +} + +Drink::Drink(const MyString& name, int ml) +{ + setName(name); + setMl(ml); +} + diff --git a/Sem. 11/Examples/Bar/Drink/Drink.h b/Sem. 11/Examples/Bar/Drink/Drink.h new file mode 100644 index 0000000..d48a725 --- /dev/null +++ b/Sem. 11/Examples/Bar/Drink/Drink.h @@ -0,0 +1,21 @@ +#pragma once +#include "../MyString/MyString.h" + +class Drink +{ +public: + + Drink(); + Drink(const MyString& name, int ml); + + const MyString& getName() const; + int getMl() const; + + void setName(const MyString& name); + void setMl(int ml); + +private: + MyString name; + int ml; + +};
\ No newline at end of file |
