SHARE
TWEET

LibraryMS

a guest Feb 15th, 2020 88 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // 1. Optimize the code
  2. // 2. Graphics
  3. // 3. User Friendly
  4. // 4. Issue Book and Return Book
  5. // 5. Books stock system etc
  6.  
  7. #include <iostream>
  8. #include <conio.h>
  9. #include <fstream>
  10. #include <iomanip>
  11.  
  12. using namespace std;
  13.  
  14. class Book
  15. {
  16.     private:
  17.         int isbn;
  18.         string name;
  19.         string author1 = "NA";
  20.         string author2 = "NA";
  21.         int price;
  22.         int instock;
  23.     public:
  24.         void setisbn(int a)
  25.         {
  26.             isbn = a;
  27.         }
  28.         void setname(string a)
  29.         {
  30.             name = a;
  31.         }
  32.         void setauthor1(string a)
  33.         {
  34.             author1 = a;
  35.         }
  36.         void setauthor2(string a)
  37.         {
  38.             author2 = a;
  39.         }
  40.         void setprice(int a)
  41.         {
  42.             price = a;
  43.         }
  44.         void setinstock(int a)
  45.         {
  46.             instock = a;
  47.         }
  48.         int getisbn()
  49.         {
  50.             return isbn;
  51.         }
  52.         string getname()
  53.         {
  54.             return name;
  55.         }
  56.         string getauthor1()
  57.         {
  58.             return author1;
  59.         }
  60.         string getauthor2()
  61.         {
  62.             return author2;
  63.         }
  64.         int getprice()
  65.         {
  66.             return price;
  67.         }
  68.         int getinstock()
  69.         {
  70.             return instock;
  71.         }
  72. };
  73.  
  74. class Librarian
  75. {
  76.     private:
  77.         string name;
  78.         string empno;
  79.         int pin;
  80.     public:
  81.         void setname(string a)
  82.         {
  83.             name = a;
  84.         }
  85.         void setempno(string a)
  86.         {
  87.             empno = a;
  88.         }
  89.         void setpin(int a)
  90.         {
  91.             pin = a;
  92.         }
  93.         string getname()
  94.         {
  95.             return name;
  96.         }
  97.         string getempno()
  98.         {
  99.             return empno;
  100.         }
  101.         int getpin()
  102.         {
  103.             return pin;
  104.         }
  105. };
  106.  
  107. class Student
  108. {
  109.     private:
  110.         string name;
  111.         string rollno;
  112.         int pin;
  113.     public:
  114.         void setname(string a)
  115.         {
  116.             name = a;
  117.         }
  118.         void setrollno(string a)
  119.         {
  120.             rollno = a;
  121.         }
  122.         void setpin(int a)
  123.         {
  124.             pin = a;
  125.         }
  126.         string getname()
  127.         {
  128.             return name;
  129.         }
  130.         string getrollno()
  131.         {
  132.             return rollno;
  133.         }
  134.         int getpin()
  135.         {
  136.             return pin;
  137.         }
  138. };
  139.  
  140. const string Admin = "Milton";
  141. const int AdminPin = 27;
  142. Librarian lib;
  143. Student stu;
  144.  
  145. const string RLOG = "returnlog.txt";
  146. const string ILOG = "issuelog.txt";
  147. const string LLOG = "loginlog.txt";
  148. const string LOG = "log.txt";
  149. const string LIB = "Librarians.txt";
  150. const string STU = "Students.txt";
  151. const string BOK = "Books.txt";
  152. const string ISS = "Issued.txt";
  153.  
  154. void Welcome();
  155. int Login();
  156. int AddLibToDB();
  157. int RemLibFromDB();
  158. int AddStuToDB();
  159. int RemStuFromDB();
  160. int AddBookToDB();
  161. int RemBookFromDB();
  162. int ShowBooks();
  163. int ShowStudents();
  164. int ShowLibrarians();
  165. int SearchBook();
  166. int ReturnBook();
  167. int IssueBook();
  168. void AskChoice();
  169. void ShowAO();
  170. void ShowSO();
  171. void ShowLO();
  172. const string currentTime();
  173.  
  174. int main()
  175. {
  176.     Welcome();
  177.     if(Login() == 5)
  178.     {
  179.         while(1)
  180.         {
  181.             ShowAO();
  182.         }
  183.     }
  184.     else if(Login() == 3)
  185.     {
  186.         while(1)
  187.         {
  188.             ShowSO();
  189.         }
  190.     }
  191.     else if(Login() == 6)
  192.     {
  193.         while(1)
  194.         {
  195.             ShowLO();
  196.         }
  197.     }
  198.     else if(Login() == 2)
  199.     {
  200.         exit(0);
  201.     }
  202.     else if(Login() == 4)
  203.     {
  204.         exit(0);
  205.     }
  206. }
  207.  
  208. void ShowAO()
  209. {
  210.     int choice;
  211.     cout<<"1: Add Librarian to Database\n";
  212.     cout<<"2: Remove Librarian from Database\n";
  213.     cout<<"3: Add Student to Database\n";
  214.     cout<<"4: Remove Student from Database\n";
  215.     cout<<"5: Add Book to Database\n";
  216.     cout<<"6: Remove Book from Database\n";
  217.     cout<<"7: Show All Books\n";
  218.     cout<<"8: Search Book\n";
  219.     cout<<"9: Exit\n";
  220.     cout<<"Choice: "; cin>>choice;
  221.     system("cls");
  222.     switch(choice)
  223.     {
  224.         case 1:
  225.             AddLibToDB();
  226.             AskChoice();
  227.             break;
  228.         case 2:
  229.             RemLibFromDB();
  230.             AskChoice();
  231.             break;
  232.         case 3:
  233.             AddStuToDB();
  234.             AskChoice();
  235.             break;
  236.         case 4:
  237.             RemStuFromDB();
  238.             AskChoice();
  239.             break;
  240.         case 5:
  241.             AddBookToDB();
  242.             AskChoice();
  243.             break;
  244.         case 6:
  245.             RemBookFromDB();
  246.             AskChoice();
  247.             break;
  248.         case 7:
  249.             ShowBooks();
  250.             AskChoice();
  251.             break;
  252.         case 8:
  253.             SearchBook();
  254.             AskChoice();
  255.             break;
  256.         case 9:
  257.             exit(0);
  258.             break;
  259.         default:
  260.             cout<<"Not an option bud!\n\n";
  261.             break;
  262.     }
  263. }
  264.  
  265. void ShowSO()
  266. {
  267.     int choice;
  268.     cout<<"1: Show All Books\n";
  269.     cout<<"2: Search Book\n";
  270.     cout<<"3: Issue a Book\n";
  271.     cout<<"4: Return a Book\n";
  272.     cout<<"5: Exit\n";
  273.     cout<<"Choice: "; cin>>choice;
  274.     system("cls");
  275.     switch(choice)
  276.     {
  277.         case 1:
  278.             ShowBooks();
  279.             AskChoice();
  280.             break;
  281.         case 2:
  282.             SearchBook();
  283.             AskChoice();
  284.             break;
  285.         case 3:
  286.             IssueBook();
  287.             AskChoice();
  288.             break;
  289.         case 4:
  290.             ReturnBook();
  291.             AskChoice();
  292.             break;
  293.         case 5:
  294.             exit(0);
  295.             break;
  296.         default:
  297.             cout<<"Not an option bud!\n\n";
  298.             break;
  299.     }
  300. }
  301.  
  302. void ShowLO()
  303. {
  304.     int choice;
  305.     cout<<"1: Add Student to Database\n";
  306.     cout<<"2: Remove Student from Database\n";
  307.     cout<<"3: Add Book to Database\n";
  308.     cout<<"4: Remove Book from Database\n";
  309.     cout<<"5: Show All Books\n";
  310.     cout<<"6: Search Book\n";
  311.     cout<<"7: Exit\n";
  312.     cout<<"Choice: "; cin>>choice;
  313.     system("cls");
  314.     switch(choice)
  315.     {
  316.         case 1:
  317.             AddStuToDB();
  318.             AskChoice();
  319.             break;
  320.         case 2:
  321.             RemStuFromDB();
  322.             AskChoice();
  323.             break;
  324.         case 3:
  325.             AddBookToDB();
  326.             AskChoice();
  327.             break;
  328.         case 4:
  329.             RemBookFromDB();
  330.             AskChoice();
  331.             break;
  332.         case 5:
  333.             ShowBooks();
  334.             AskChoice();
  335.             break;
  336.         case 6:
  337.             SearchBook();
  338.             AskChoice();
  339.             break;
  340.         case 7:
  341.             exit(0);
  342.             break;
  343.         default:
  344.             cout<<"Not an option bud!\n\n";
  345.             break;
  346.     }
  347. }
  348.  
  349. void AskChoice()
  350. {
  351.     cout<<"Press Any Key to Go Back to Menu!";
  352.     getch();
  353.     system("cls");
  354. }
  355. void Welcome()
  356. {
  357.     cout<<"Welcome to the Library System!\n";
  358. }
  359.  
  360. int Login()
  361. {
  362.     int a;
  363.     cout<<"What are you? \n";
  364.     cout<<"1: Student, 2: Librarian, 3: Admin\n";
  365.     cout<<"Choice: "; cin>>a;
  366.     if(a == 3)
  367.     {
  368.         string name;
  369.         int pin;
  370.         cout<<"Enter your name, Majesty: "; cin>>name;
  371.         if(name == Admin)
  372.         {
  373.             cout<<"Enter PIN: "; cin>>pin;
  374.             if(pin == AdminPin)
  375.             {
  376.                 ofstream file;
  377.                 file.open(LLOG, fstream::app);
  378.                 file << "|A| [ " << currentTime() << " ] " << Admin << " has logged in!\n";
  379.                 file.close();
  380.                 file.open(LOG, fstream::app);
  381.                 file << "|A| [ " << currentTime() << " ] " <<"[Login-LOG] " << Admin << " has logged in!\n";
  382.                 file.close();
  383.                 cout<<"Successfuly Logged in As Admin!\n";
  384.                 return 5;
  385.             }
  386.         }
  387.         else
  388.         {
  389.             cout<<"Wrong name bud! Get out!";
  390.             exit(0);
  391.         }
  392.     }
  393.     if(a == 1)
  394.     {
  395.         string rollno;
  396.         int pin;
  397.         cout<<"Enter your Roll No: ";
  398.         cin>>rollno;
  399.         string fname = "[S]" + rollno + ".txt";
  400.         ifstream file;
  401.         file.open(fname);
  402.         if(!file.is_open())
  403.         {
  404.             cout<<"No such Database exists!";
  405.             file.close();
  406.             return 2;
  407.         }
  408.         else
  409.         {
  410.             string frollno, fname;
  411.             int fpin, a = 0;
  412.             file >> frollno >> fpin >> fname;
  413.             while(a < 3)
  414.             {
  415.                 cout<<"Enter Pin: "; cin>>pin;
  416.                 if(pin == fpin)
  417.                 {
  418.                     stu.setname(fname);
  419.                     stu.setrollno(frollno);
  420.                     stu.setpin(fpin);
  421.                     ofstream file;
  422.                     file.open(LLOG, fstream::app);
  423.                     file << "|S| [ " << currentTime() << " ] " << fname << " having roll no: " << frollno << " has logged in!\n";
  424.                     file.close();
  425.                     file.open(LOG, fstream::app);
  426.                     file << "|S| [ " << currentTime() << " ] " <<"[Login-LOG] " << fname << " (Roll No: " << frollno << ") has logged in!\n";
  427.                     file.close();
  428.                     cout<<"Login Successful!\n";
  429.                     return 3;
  430.                     break;
  431.                 }
  432.                 else
  433.                 {
  434.                     a++;
  435.                     cout<<"You have entered a wrong password! Attempts: "<<a<<" out of 3!\n";
  436.                     if(a == 3)
  437.                     {
  438.                         exit(0);
  439.                     }
  440.                 }
  441.             }
  442.         }
  443.     }
  444.     if(a == 2)
  445.     {
  446.         string employeeno;
  447.         int pin;
  448.         cout<<"Enter your Employee No: ";
  449.         cin>>employeeno;
  450.         string fname = "[L]" + employeeno + ".txt";
  451.         ifstream file;
  452.         file.open(fname);
  453.         if(!file.is_open())
  454.         {
  455.             cout<<"No such Database exists!";
  456.             file.close();
  457.             return 4;
  458.         }
  459.         else
  460.         {
  461.             string fempno, fname;
  462.             int fpin, a = 0;
  463.             file >> fempno >> fpin >> fname;
  464.             while(a < 3)
  465.             {
  466.                 cout<<"Enter Pin: "; cin>>pin;
  467.                 if(pin == fpin)
  468.                 {
  469.                     lib.setempno(fempno);
  470.                     lib.setname(fname);
  471.                     lib.setpin(fpin);
  472.                     ofstream file;
  473.                     file.open(LLOG, fstream::app);
  474.                     file << "|L| [ " << currentTime() << " ] " << fname << " having employee no: " << fempno << " has logged in!\n";
  475.                     file.close();
  476.                     file.open(LOG, fstream::app);
  477.                     file << "|L| [ " << currentTime() << " ] " <<"[Login-LOG] " << fname << " (Employee No: " << fempno << ") has logged in!\n";
  478.                     file.close();
  479.                     cout<<"Login Successful!\n";
  480.                     return 6;
  481.                     break;
  482.                 }
  483.                 else
  484.                 {
  485.                     a++;
  486.                     cout<<"You have entered a wrong password! Attempts: "<<a<<" out of 3!\n";
  487.                     if(a == 3)
  488.                     {
  489.                         exit(0);
  490.                     }
  491.                 }
  492.             }
  493.         }
  494.     }
  495. }
  496. int AddLibToDB()
  497. {
  498.     string empno, empname;
  499.     int emppin;
  500.     cout<<"Enter Employee No of Librarian: ";
  501.     cin>>empno;
  502.     string fname = "[L]" + empno + ".txt";
  503.     ifstream file;
  504.     file.open(fname);
  505.     if(file.is_open())
  506.     {
  507.         cout<<"Librarian Already exists in the Database!\n";
  508.         return 2;
  509.     }
  510.     else
  511.     {
  512.         ofstream file;
  513.         file.open(fname);
  514.         cout<<"Enter PIN: ";cin>>emppin;
  515.         cout<<"Enter Name: "; cin>>empname;
  516.         file << empno << " " << emppin << " " << empname;
  517.         file.close();
  518.         file.open(LOG, fstream::app);
  519.         string temp = "[L-LOG] " + Admin + " has created Librarian " + empno + " named " + empname + "\n";
  520.         file << temp;
  521.         file.close();
  522.         file.open(LIB, fstream::app);
  523.         file << empno << " " << empname << "\n";
  524.         file.close();
  525.         return 3;
  526.     }
  527. }
  528. int RemLibFromDB()
  529. {
  530.     string empno, empname, line;
  531.     int emppin;
  532.     cout<<"Enter Employee No of Librarian: ";
  533.     cin>>empno;
  534.     string fname = "[L]" + empno + ".txt";
  535.     ifstream file;
  536.     file.open(fname);
  537.     if(!file.is_open())
  538.     {
  539.         cout<<"Librarian Does not exist in the Database!\n";
  540.         return 2;
  541.     }
  542.     else
  543.     {
  544.         file.close();
  545.         remove(fname.c_str());
  546.         ifstream file;
  547.         file.open(LIB);
  548.         ofstream tempo;
  549.         tempo.open("tempo.txt");
  550.         while(getline(file, line))
  551.         {
  552.             if(!(line.find(empno) != string::npos))
  553.             tempo << line << endl;
  554.         }
  555.         file.close();
  556.         tempo.close();
  557.         remove(LIB.c_str());
  558.         rename("tempo.txt", LIB.c_str());
  559.         ofstream filee;
  560.         filee.open(LOG, fstream::app);
  561.         string temp = "[L-LOG] " + Admin + " has removed Librarian " + empno + "\n";
  562.         filee << temp;
  563.         filee.close();
  564.         return 3;
  565.     }
  566. }
  567. int AddStuToDB()
  568. {
  569.     string rollno, stuname;
  570.     int stupin;
  571.     cout<<"Enter Roll No of Student: ";
  572.     cin>>rollno;
  573.     string fname = "[S]" + rollno + ".txt";
  574.     ifstream file;
  575.     file.open(fname);
  576.     if(file.is_open())
  577.     {
  578.         cout<<"Student Already exists in the Database!\n";
  579.         return 2;
  580.     }
  581.     else
  582.     {
  583.         ofstream file;
  584.         file.open(fname);
  585.         cout<<"Enter PIN: ";cin>>stupin;
  586.         cout<<"Enter Name: "; cin>>stuname;
  587.         file << rollno << " " << stupin << " " << stuname;
  588.         file.close();
  589.         file.open(LOG, fstream::app);
  590.         string temp = "[S-LOG] " + Admin + " has created Student " + rollno + " named " + stuname + "\n";
  591.         file << temp;
  592.         file.close();
  593.         file.open(STU, fstream::app);
  594.         file << rollno << " " << stuname << "\n";
  595.         file.close();
  596.         return 3;
  597.     }
  598. }
  599. int RemStuFromDB()
  600. {
  601.     string rollno, stuname, line;
  602.     int stupin;
  603.     cout<<"Enter Roll No of Student: ";
  604.     cin>>rollno;
  605.     string fname = "[S]" + rollno + ".txt";
  606.     ifstream file;
  607.     file.open(fname);
  608.     if(!file.is_open())
  609.     {
  610.         cout<<"Student Does not exist in the Database!\n";
  611.         return 2;
  612.     }
  613.     else
  614.     {
  615.         file.close();
  616.         remove(fname.c_str());
  617.         ifstream file;
  618.         file.open(STU);
  619.         ofstream tempo;
  620.         tempo.open("tempo.txt");
  621.         while(getline(file, line))
  622.         {
  623.             if(!(line.find(rollno) != string::npos))
  624.             tempo << line << endl;
  625.         }
  626.         file.close();
  627.         tempo.close();
  628.         remove(STU.c_str());
  629.         rename("tempo.txt", STU.c_str());
  630.         ofstream filee;
  631.         filee.open(LOG, fstream::app);
  632.         string temp = "[S-LOG] " + Admin + " has removed Student " + rollno + "\n";
  633.         filee << temp;
  634.         filee.close();
  635.         return 3;
  636.     }
  637. }
  638. int AddBookToDB()
  639. {
  640.     string a1, a2, bname;
  641.     int isbn, price, instock;
  642.     cout<<"Enter Name of the book: ";
  643.     cin>>bname;
  644.     string fname = "[B]" + bname + ".txt";
  645.     ifstream file;
  646.     file.open(fname);
  647.     if(file.is_open())
  648.     {
  649.         cout<<"Book Already exists in the Database!\n";
  650.         return 2;
  651.     }
  652.     else
  653.     {
  654.         ofstream file;
  655.         file.open(fname);
  656.         cout<<"Enter ISBN No: ";cin>>isbn;
  657.         cout<<"Enter Price: "; cin>>price;
  658.         cout<<"Enter Author: "; cin>>a1;
  659.         cout<<"Enter another author (Optional; put NA): "; cin>>a2;
  660.         cout<<"Enter In-Stock Books No: "; cin>>instock;
  661.         file << bname << " " << isbn << " " << price << " " << instock << " " << a1 << " " << a2;
  662.         file.close();
  663.         file.open(LOG, fstream::app);
  664.         string temp = "[B-LOG] " + Admin + " has created Book " + to_string(isbn) + " named " + bname + "\n";
  665.         file << temp;
  666.         file.close();
  667.         file.open(BOK, fstream::app);
  668.         file << "\n" << bname << " " << isbn << " " << price << " " << instock << " " << a1 << " " << a2;
  669.         file.close();
  670.         return 3;
  671.     }
  672. }
  673. int RemBookFromDB()
  674. {
  675.     string bname, line;
  676.     cout<<"Enter Name of Book: ";
  677.     cin>>bname;
  678.     string fname = "[B]" + bname + ".txt";
  679.     ifstream file;
  680.     file.open(fname);
  681.     if(!file.is_open())
  682.     {
  683.         cout<<"Book Does not exist in the Database!\n";
  684.         return 2;
  685.     }
  686.     else
  687.     {
  688.         file.close();
  689.         remove(fname.c_str());
  690.         ifstream file;
  691.         file.open(BOK);
  692.         ofstream tempo;
  693.         tempo.open("tempo.txt");
  694.         while(getline(file, line))
  695.         {
  696.             if(!(line.find(bname) != string::npos))
  697.             tempo << line << endl;
  698.         }
  699.         file.close();
  700.         tempo.close();
  701.         remove(BOK.c_str());
  702.         rename("tempo.txt", BOK.c_str());
  703.         ofstream filee;
  704.         filee.open(LOG, fstream::app);
  705.         string temp = "[B-LOG] " + Admin + " has removed Book " + bname + "\n";
  706.         filee << temp;
  707.         filee.close();
  708.         return 3;
  709.     }
  710. }
  711. int ShowBooks()
  712. {
  713.     string a1, a2, bname;
  714.     int isbn, price, instock;
  715.     ifstream file;
  716.     file.open(BOK);
  717.     system("cls");
  718.     cout<<setw(10)<<setfill(' ')<<std::left<<"Name"<<"\t"<<"ISBN"<<"\t"<<"Price"<<"\t"<<"Stock"<<"\t"<<"Author"<<"\t"<<"Author"<<endl;
  719.     while(!file.eof())
  720.     {
  721.         file >> bname >> isbn >> price >> instock >> a1 >> a2;
  722.         cout<<setw(10)<<setfill(' ')<<std::left<<bname<<"\t"<<isbn<<"\t"<<price<<"\t"<<instock<<"\t"<<a1<<"\t"<<a2<<endl;
  723.     }
  724. }
  725. int SearchBook()
  726. {
  727.     string name, line, a1, a2;
  728.     int isbn, instock, price;
  729.     cout<<"Enter Book Name: "; cin>>name;
  730.     ifstream file;
  731.     file.open(BOK);
  732.     while(!file.eof())
  733.     {
  734.         file >> name >> isbn >> price >> instock >> a1 >> a2;
  735.         if(name.find(name) != string::npos)
  736.         {
  737.             cout<<setw(10)<<setfill(' ')<<std::left<<name<<"\t"<<isbn<<"\t"<<price<<"\t"<<instock<<"\t"<<a1<<"\t"<<a2<<endl;
  738.         }
  739.     }
  740.     file.close();
  741. }
  742. int IssueBook()
  743. {
  744.     string name, line, a1, a2;
  745.     int yes = 0, isbn, isbna, instock, price, q = 0;
  746.     cout<<"Enter Book ISBN: "; cin>>isbna;
  747.     ifstream file;
  748.     file.open(BOK);
  749.     while(file >> name >> isbn >> price >> instock >> a1 >> a2)
  750.     {
  751.         if(isbn == isbna)
  752.         {
  753.             string tname = name, ta1 = a1, ta2 = a2;
  754.             int tisbn = isbn, tinstock = instock-2, tprice = price;
  755.             ofstream filee;
  756.             filee.open(ISS, fstream::app);
  757.             filee << stu.getrollno() << " " << isbna << "\n";
  758.             filee.close();
  759.             filee.open(ILOG, fstream::app);
  760.             filee << "[ " << currentTime() << " ] " << stu.getname() << " (Roll No: " << stu.getrollno() << ") has issued book having ISBN: "<< isbn <<"!\n";
  761.             filee.close();
  762.             ifstream fileee;
  763.             fileee.open(BOK);
  764.             ofstream fileeee;
  765.             fileeee.open("tempo.txt");
  766.             while(fileee >> name >> isbn >> price >> instock >> a1 >> a2)
  767.             {
  768.                 if(isbn != isbna)
  769.                 {
  770.                     cout<<"[DBG]" << name << " " << isbn << " " << price << " " << instock << " " << a1 << " " << a2 << "\n";
  771.                     fileeee << name << " " << isbn << " " << price << " " << instock << " " << a1 << " " << a2 << "\n";
  772.                 }
  773.                 else
  774.                 {
  775.                     cout<<"[DBG]" << name << " " << isbn << " " << price << " " << instock << " " << a1 << " " << a2 << "\n";
  776.                     fileeee << name << " " << isbn << " " << price << " " << instock-1 << " " << a1 << " " << a2 << "\n";
  777.                 }
  778.             }
  779.             fileee.close();
  780.             //fileeee << tname << " " << tisbn << " " << tprice << " " << tinstock << " " << ta1 << " " << ta2 << "\n";
  781.             fileeee.close();
  782.             remove(BOK.c_str());
  783.             rename("tempo.txt", BOK.c_str());
  784.             filee.open(LOG, fstream::app);
  785.             string temp = "[I-LOG] " + stu.getrollno() + " has issued Book " + tname + "\n";
  786.             filee << temp;
  787.             filee.close();
  788.             yes = 1;
  789.             break;
  790.         }
  791.     }
  792.     if(yes == 0) cout<<"Wrong ISBN No.";
  793. }
  794. int ReturnBook()
  795. {
  796.     string roll, line;
  797.     int isbn, a = 0;
  798.     ifstream file;
  799.     file.open(ISS);
  800.     cout<<"Your Issued Books:\n";
  801.     while(getline(file, line))
  802.     {
  803.         file >> roll >> isbn;
  804.         if(roll == stu.getrollno())
  805.         {
  806.             a++;
  807.             cout<<"ISBN No: "<<isbn<<"\n";
  808.         }
  809.     }
  810.     cout<<"No of Books issued: "<<a<<"\n";
  811.     if(a == 0)
  812.     {
  813.         cout<<"You have no any book issued!\n";
  814.         return 2;
  815.     }
  816.     else
  817.     {
  818.         int tisbn;
  819.         cout<<"Enter the ISBN No of book you want to return: "; cin>>tisbn;
  820.         ofstream tempo;
  821.         tempo.open("tempo.txt");
  822.         while(file >> roll >> isbn)
  823.         {
  824.             if(isbn != tisbn)
  825.             {
  826.                 tempo << roll << " " << isbn << endl;
  827.             }
  828.         }
  829.         file.close();
  830.         tempo.close();
  831.         remove(ISS.c_str());
  832.         rename("tempo.txt", ISS.c_str());
  833.         tempo.open(RLOG, fstream::app);
  834.         tempo << "[ " << currentTime() << " ] " << stu.getname() << " (Roll No: " << stu.getrollno() << ") has returned book having ISBN "<< isbn <<"!\n";
  835.         tempo.close();
  836.         tempo.open(LOG, fstream::app);
  837.         tempo << "[ " << currentTime() << " ] " << "[R-LOG] " << stu.getrollno() << " has returned Book having ISBN " << isbn << "\n";
  838.         tempo.close();
  839.     }
  840.    
  841. }
  842.  
  843. int ShowStudents()
  844. {
  845.     string name, roll;
  846.     ifstream file;
  847.     file.open(STU);
  848.     system("cls");
  849.     cout<<setw(10)<<setfill(' ')<<std::left<<"Name"<<"\t"<<"Roll No"<<endl;
  850.     while(!file.eof())
  851.     {
  852.         file >> name >> roll;
  853.         cout<<setw(10)<<setfill(' ')<<std::left<<name<<"\t"<<roll<<endl;
  854.     }
  855. }
  856.  
  857. int ShowLibrarians()
  858. {
  859.     string name, empno;
  860.     ifstream file;
  861.     file.open(LIB);
  862.     system("cls");
  863.     cout<<setw(10)<<setfill(' ')<<std::left<<"Name"<<"\t"<<"Employee No"<<endl;
  864.     while(!file.eof())
  865.     {
  866.         file >> name >> empno;
  867.         cout<<setw(10)<<setfill(' ')<<std::left<<name<<"\t"<<empno<<endl;
  868.     }
  869. }
  870.  
  871.  
  872.  
  873.  
  874. const string currentTime() // Taken from cppreference.com //
  875. {
  876.     time_t now = time(0);
  877.     struct tm tstruct;
  878.     char buf[80];
  879.     tstruct = *localtime(&now);
  880.     strftime(buf, sizeof(buf), "%Y-%m-%d | %X", &tstruct);
  881.     return buf;
  882. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top