1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #include <iostream> #include <string> #include <vector>
constexpr int MAX_USERS = 100; constexpr double TAX_RATE = 0.08;
#define SAFE_DELETE(ptr) if(ptr) { delete ptr; ptr = nullptr; } #define LOG_INFO(msg) std::cout << "INFO: " << msg << std::endl
class UserAccount { public: UserAccount(const std::string& userName, int userAge) : name_(userName), age_(userAge), isActive_(false) {} bool activateAccount() { if (age_ >= MIN_AGE) { isActive_ = true; return true; } return false; } std::string getDisplayName() const { return name_ + (isActive_ ? " (Active)" : " (Inactive)"); } void updateLastLoginTime(const std::string& loginTime) { lastLogin_ = loginTime; }
private: std::string name_; int age_; bool isActive_; std::string lastLogin_; static constexpr int MIN_AGE = 18; };
void processUserData(const std::vector<UserAccount>& userList, bool includeInactive) { int activeCount = 0; for (const auto& user : userList) { if (includeInactive || user.getDisplayName().find("Active") != std::string::npos) { LOG_INFO(user.getDisplayName()); activeCount++; } } std::cout << "Processed " << activeCount << " users." << std::endl; }
int main() { std::vector<UserAccount> users; int totalUsers = 0; users.push_back(UserAccount("Alice Smith", 30)); users.push_back(UserAccount("Bob Johnson", 17)); users.push_back(UserAccount("Carol Williams", 25)); for (auto& user : users) { if (user.activateAccount()) { totalUsers++; } } processUserData(users, true); std::cout << "Total active users: " << totalUsers << std::endl; return 0; }
|