#include <iostream>
#include <vector>
using namespace std;
class Book {
public:
string id, name;
bool issue = false;
Book(string i, string n) {
id = i;
name = n;
}
};
vector<Book> b = {
{"B001","C++"},
{"B002","Java"},
{"B003","Python"}
};
#define RED "\033[31m"
#define GREEN "\033[32m"
#define BLUE "\033[34m"
#define CYAN "\033[36m"
#define YELLOW "\033[33m"
#define RESET "\033[0m"
int main() {
string u, p, id;
int ch;
// COLORFUL LOGIN PAGE
cout << CYAN;
cout << "\n****************************************\n";
cout << "* LIBRARY MANAGEMENT SYSTEM *\n";
cout << "****************************************\n";
cout << RESET;
cout << BLUE << "\n========== LOGIN PAGE ==========\n" << RESET;
cout << YELLOW << "Username : " << RESET;
cin >> u;
cout << YELLOW << "Password : " << RESET;
cin >> p;
if(u != "admin" || p != "1234") {
cout << RED << "\nWrong Login!\n" << RESET;
return 0;
}
cout << GREEN << "\nLogin Successful!\n" << RESET;
// MENU
cout << CYAN;
cout << "\n1. View Books";
cout << "\n2. Issue Book";
cout << "\n3. Return Book";
cout << "\n4. Exit\n";
cout << RESET;
while(true) {
cout << "\nEnter Choice: ";
cin >> ch;
if(ch == 1) {
cout << "\n--- BOOKS ---\n";
for(auto x : b) {
cout << x.id << " - " << x.name;
if(x.issue)
cout << RED << " (Issued)";
cout << RESET << endl;
}
}
else if(ch == 2) {
cout << "Enter Book ID: ";
cin >> id;
for(auto &x : b) {
if(x.id == id) {
x.issue = true;
cout << GREEN << "Book Issued!\n" << RESET;
}
}
}
else if(ch == 3) {
cout << "Enter Book ID: ";
cin >> id;
for(auto &x : b) {
if(x.id == id) {
x.issue = false;
cout << GREEN << "Book Returned!\n" << RESET;
}
}
}
else if(ch == 4) {
cout << RED << "Good Bye!\n" << RESET;
break;
}
else {
cout << RED << "Invalid Choice!\n" << RESET;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQm9vayB7CnB1YmxpYzoKICAgIHN0cmluZyBpZCwgbmFtZTsKICAgIGJvb2wgaXNzdWUgPSBmYWxzZTsKCiAgICBCb29rKHN0cmluZyBpLCBzdHJpbmcgbikgewogICAgICAgIGlkID0gaTsKICAgICAgICBuYW1lID0gbjsKICAgIH0KfTsKCnZlY3RvcjxCb29rPiBiID0gewogICAgeyJCMDAxIiwiQysrIn0sCiAgICB7IkIwMDIiLCJKYXZhIn0sCiAgICB7IkIwMDMiLCJQeXRob24ifQp9OwoKI2RlZmluZSBSRUQgIlwwMzNbMzFtIgojZGVmaW5lIEdSRUVOICJcMDMzWzMybSIKI2RlZmluZSBCTFVFICJcMDMzWzM0bSIKI2RlZmluZSBDWUFOICJcMDMzWzM2bSIKI2RlZmluZSBZRUxMT1cgIlwwMzNbMzNtIgojZGVmaW5lIFJFU0VUICJcMDMzWzBtIgoKaW50IG1haW4oKSB7CgogICAgc3RyaW5nIHUsIHAsIGlkOwogICAgaW50IGNoOwoKICAgIC8vIENPTE9SRlVMIExPR0lOIFBBR0UKICAgIGNvdXQgPDwgQ1lBTjsKICAgIGNvdXQgPDwgIlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIjsKICAgIGNvdXQgPDwgIiogICAgICBMSUJSQVJZIE1BTkFHRU1FTlQgU1lTVEVNICAgICAgICpcbiI7CiAgICBjb3V0IDw8ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iOwogICAgY291dCA8PCBSRVNFVDsKCiAgICBjb3V0IDw8IEJMVUUgPDwgIlxuPT09PT09PT09PSBMT0dJTiBQQUdFID09PT09PT09PT1cbiIgPDwgUkVTRVQ7CgogICAgY291dCA8PCBZRUxMT1cgPDwgIlVzZXJuYW1lIDogIiA8PCBSRVNFVDsKICAgIGNpbiA+PiB1OwoKICAgIGNvdXQgPDwgWUVMTE9XIDw8ICJQYXNzd29yZCA6ICIgPDwgUkVTRVQ7CiAgICBjaW4gPj4gcDsKCiAgICBpZih1ICE9ICJhZG1pbiIgfHwgcCAhPSAiMTIzNCIpIHsKICAgICAgICBjb3V0IDw8IFJFRCA8PCAiXG5Xcm9uZyBMb2dpbiFcbiIgPDwgUkVTRVQ7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCBHUkVFTiA8PCAiXG5Mb2dpbiBTdWNjZXNzZnVsIVxuIiA8PCBSRVNFVDsKCiAgICAvLyBNRU5VCiAgICBjb3V0IDw8IENZQU47CiAgICBjb3V0IDw8ICJcbjEuIFZpZXcgQm9va3MiOwogICAgY291dCA8PCAiXG4yLiBJc3N1ZSBCb29rIjsKICAgIGNvdXQgPDwgIlxuMy4gUmV0dXJuIEJvb2siOwogICAgY291dCA8PCAiXG40LiBFeGl0XG4iOwogICAgY291dCA8PCBSRVNFVDsKCiAgICB3aGlsZSh0cnVlKSB7CgogICAgICAgIGNvdXQgPDwgIlxuRW50ZXIgQ2hvaWNlOiAiOwogICAgICAgIGNpbiA+PiBjaDsKCiAgICAgICAgaWYoY2ggPT0gMSkgewoKICAgICAgICAgICAgY291dCA8PCAiXG4tLS0gQk9PS1MgLS0tXG4iOwoKICAgICAgICAgICAgZm9yKGF1dG8geCA6IGIpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgeC5pZCA8PCAiIC0gIiA8PCB4Lm5hbWU7CgogICAgICAgICAgICAgICAgaWYoeC5pc3N1ZSkKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IFJFRCA8PCAiIChJc3N1ZWQpIjsKCiAgICAgICAgICAgICAgICBjb3V0IDw8IFJFU0VUIDw8IGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGVsc2UgaWYoY2ggPT0gMikgewoKICAgICAgICAgICAgY291dCA8PCAiRW50ZXIgQm9vayBJRDogIjsKICAgICAgICAgICAgY2luID4+IGlkOwoKICAgICAgICAgICAgZm9yKGF1dG8gJnggOiBiKSB7CiAgICAgICAgICAgICAgICBpZih4LmlkID09IGlkKSB7CiAgICAgICAgICAgICAgICAgICAgeC5pc3N1ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY291dCA8PCBHUkVFTiA8PCAiQm9vayBJc3N1ZWQhXG4iIDw8IFJFU0VUOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBlbHNlIGlmKGNoID09IDMpIHsKCiAgICAgICAgICAgIGNvdXQgPDwgIkVudGVyIEJvb2sgSUQ6ICI7CiAgICAgICAgICAgIGNpbiA+PiBpZDsKCiAgICAgICAgICAgIGZvcihhdXRvICZ4IDogYikgewogICAgICAgICAgICAgICAgaWYoeC5pZCA9PSBpZCkgewogICAgICAgICAgICAgICAgICAgIHguaXNzdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IEdSRUVOIDw8ICJCb29rIFJldHVybmVkIVxuIiA8PCBSRVNFVDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZWxzZSBpZihjaCA9PSA0KSB7CiAgICAgICAgICAgIGNvdXQgPDwgUkVEIDw8ICJHb29kIEJ5ZSFcbiIgPDwgUkVTRVQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgUkVEIDw8ICJJbnZhbGlkIENob2ljZSFcbiIgPDwgUkVTRVQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==