Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 37.54 KB | None | 0 0
  1. //In order for program to work, these files are needed:
  2. //-projectmanagerlist.sfi file with one or more given line of manager details
  3. //-projectmemberlist.sfi file with only data is '0'
  4. //-projectlist.sfi file with only data is '0'
  5. //-tasklist.sfi file with only data is '0'
  6. //-subtasklist.sfi file with only data is '0'
  7.  
  8. #include<iomanip>
  9. #include<iostream>
  10. #include<string>
  11. #include<stdio.h>
  12. #include<string.h>
  13. #include<windows.h>
  14. #include<time.h>
  15. #include<fstream>
  16. #include<assert.h>
  17. using namespace std;
  18.  
  19. void createNewProject();            //Done
  20. void openExistingProjects();       
  21. void createNewProjectMembers();    
  22.  
  23. void modifymember();                //Done
  24. void deletemember();                //Done
  25.  
  26. void createtask();                  //Done
  27. void edittask();                   
  28. void deletetask();                  //Done
  29. void linktask();                   
  30. void createsubtask();               //Done
  31.  
  32.  
  33. void goOut();                       //Done
  34. void projectManagerPage();          //Done
  35. void projectPage();                 //Done
  36.  
  37. void projectMemberPage();           //Done
  38. void updatetaskprogress();          //Done
  39. void viewtaskprogress();            //Done
  40.  
  41. //Loading bar
  42. void loadingbar();              //Done
  43. //create empty file
  44. void createfile();              //Done
  45. //create default Project Manager account
  46. void createPMaccount();         //Done
  47.  
  48.         ///////////////////////////
  49.         //// CLASS DECLARATION ////
  50.         ///////////////////////////
  51.  
  52. class project
  53. {
  54. public:
  55.     //int projectNumber;
  56.     string projectName;
  57.     int sd,sm,sy;//start day,month,year
  58.     int ed,em,ey;//end day,month,year
  59.     float projectProgress;
  60. }proj;
  61.  
  62. class task
  63. {
  64. public:
  65.     int taskNumber;
  66.     string taskName;
  67.     int sd,sm,sy;
  68.     int ed,em,ey;
  69.     float taskProgress;
  70. }tsk;
  71.  
  72. class subTask
  73. {
  74. public:
  75.     string subTaskName;
  76.     float subTaskProgress;
  77. }sbtsk;
  78.  
  79. class projectManager
  80. {
  81. public:
  82.     string loginName;
  83.     string loginCode;
  84. }manager;
  85.  
  86. class projectMember
  87. {
  88. public:
  89.     string loginName;
  90.     string loginCode;
  91.     //int uid;
  92. }member;
  93.  
  94. void loadingbar()
  95. {
  96.     cout<<"LOADING ";
  97.     for(int a=0;a<15;a++)
  98.     {
  99.         Sleep(800);
  100.         cout<<".";
  101.     }
  102.     system("cls");
  103.     cout<<"LOADING COMPLETE\n";
  104. }
  105.         ///////////////////////////
  106.         //// CREATE EMPTY FILE ////
  107.         ///////////////////////////
  108.  
  109. void createfile()
  110. {
  111.     ofstream simpan;
  112.     simpan.open("projectmanagerlist.sfi");
  113.     simpan.close();
  114.  
  115.     simpan.open("projectmemberlist.sfi");
  116.     simpan<<"0"<<endl;
  117.     simpan.close();
  118.  
  119.     simpan.open("projectlist.sfi");
  120.     simpan<<"0"<<endl;
  121.     simpan.close();
  122.  
  123.     simpan.open("tasklist.sfi");
  124.     simpan<<"0"<<endl;
  125.     simpan.close();
  126.  
  127.     simpan.open("subtasklist.sfi");
  128.     simpan<<"0"<<endl;
  129.     simpan.close();
  130. }
  131.  
  132.         ////////////////////////////////////////
  133.         //// CREATE PROJECT MANAGER ACCOUNT ////
  134.         ////////////////////////////////////////
  135.  
  136. void createPMaccount()
  137. {
  138.     ofstream simpan;
  139.     ifstream baca;
  140.  
  141.     baca.open("projectmanagerlist.sfi",ios::beg);
  142.     assert(!baca.fail());
  143.     while(!baca.eof())
  144.     {
  145.         baca>>manager.loginName>>manager.loginCode;
  146.     }
  147.     baca.close();
  148.     //assert(!baca.fail());
  149.  
  150.     simpan.open("projectmanagerlist.sfi",ios::end|ios::app);
  151.     cout<<"Enter Project Manager Login Name: ";
  152.     cin>>manager.loginName;
  153.     cout<<"Enter Project Manager Password: ";
  154.     cin>>manager.loginCode;
  155.     simpan<<manager.loginName<<"\t"<<manager.loginCode<<endl;
  156.     simpan.close();
  157. }
  158.  
  159.         /////////////////////
  160.         //// MAIN DRIVER ////
  161.         /////////////////////
  162.  
  163. int main()
  164. {
  165.     //createfile(); //file is created, this function is no longer needed
  166.     //createPMaccount(); //project manager account create, this function is no longer needed
  167.     string name;
  168.     string pass;
  169.     //int retval;
  170.     cout << "Log In\n";
  171.     cout << "Username: ";
  172.     cin >> name;
  173.     cout << "Password: ";
  174.     cin >> pass;
  175.  
  176.     ifstream baca,baca2;
  177.     baca.open("projectmanagerlist.sfi",ios::beg);
  178.     baca2.open("projectmemberlist.sfi",ios::beg);
  179.     if(baca.good())
  180.     {
  181.             while(!baca.eof())
  182.             {
  183.                 baca >> manager.loginName;
  184.                 baca >> manager.loginCode;
  185.                 baca2 >> member.loginName;
  186.                 baca2 >> member.loginCode;
  187.                 if(name==manager.loginName && pass==manager.loginCode)
  188.                 {
  189.                     cout<<"Welcome Project Manager "<<manager.loginName<<endl;
  190.                     Sleep(1000);
  191.                     projectManagerPage();
  192.                 }
  193.                 else if(name==member.loginName && pass==member.loginCode)
  194.                 {
  195.                     cout<<"Welcome Project Member "<<member.loginName<<endl;
  196.                     Sleep(1000);
  197.                     projectMemberPage();
  198.                 }
  199.                 else
  200.                 {
  201.                     cerr<<"Incorrect Username or Password\n";
  202.                     Sleep(3000);
  203.                     exit(0);
  204.                 }
  205.             }
  206.     }
  207.     else
  208.     {
  209.         cerr<<"Error opening file\n";
  210.     }
  211.     //int i;
  212.     //Dynamic Array
  213.     //projectManager *manageracc = new projectManager[];
  214.     //projectMember *memberacc = new projectMember[];
  215.  
  216.     //cout<<"Dynamic class array successfully create\n";
  217.     //cout<<"Attempting to open files";
  218.     //for(i=0;i<5;i++)
  219.     //{
  220.     //  Sleep(500);
  221.     //  cout<<".";
  222.     //}
  223.  
  224.     //assert(!baca.fail());
  225.     //assert(!baca2.fail());
  226.  
  227.     //cout<<"\nFile opened successfully!\n";
  228.  
  229.     //i=0;//reset i value
  230.  
  231.  
  232.     //ifstream ambil;
  233.     //ambil.open("projectmanagerlist.sfi",ios::beg);
  234.     //while(!ambil.eof())
  235.     //{
  236.     //  ambil>>manager.loginName;
  237.     //  ambil>>manager.loginCode;
  238.     //  //strcpy(manageracc[i].loginName,manager.loginName);
  239.     //  //strcpy(manageracc[i].loginCode,manager.loginCode);
  240.     //  manageracc[i].loginName=manager.loginName;
  241.     //  manageracc[i].loginCode=manager.loginCode;
  242.     //  cout<<"Name: "<<manageracc[i].loginName<<"\t Password: "<<manageracc[i].loginCode<<endl;
  243.     //  i++;
  244.     //}
  245.     //int counter1=i;
  246.     //ambil.close();
  247.  
  248.     //for(i=0;i<counter1;i++)
  249.     //{
  250.     //  if(name==manageracc[i].loginName && pass==manageracc[i].loginCode)
  251.     //  {
  252.     //      cout<<"Access granted.\n";
  253.     //      Sleep(2000);
  254.     //      projectManagerPage();
  255.     //  }
  256.     //  else
  257.     //  {
  258.     //      cout<<"Access Denied.\n";
  259.     //      Sleep(2000);
  260.     //      exit(0);
  261.     //  }
  262.     //}
  263.  
  264.     //ifstream baca;
  265.     //baca.open("projectmanagerlist.sfi",ios::beg);
  266.     //while(!baca.eof())
  267.     //{
  268.     //  baca>>manager.loginName>>manager.loginCode;
  269.     //  manageracc[i].loginName=manager.loginName;
  270.     //  manageracc[i].loginCode=manager.loginCode;
  271.     //  cout<<"Name: "<<manageracc[i].loginName<<"\nPassword: "<<manageracc[i].loginCode<<endl;
  272.     //  i++;
  273.     //}
  274.     //int counter1=i;
  275.     //baca.close();
  276.  
  277.     //i=0;//reset i value
  278.     //ifstream baca2;
  279.     //baca2.open("projectmemberlist.sfi",ios::beg);
  280.     //while(!baca2.eof())
  281.     //{
  282.     //  baca2>>member.loginName>>member.loginCode>>member.uid;
  283.     //  memberacc[i].loginName=member.loginName;
  284.     //  memberacc[i].loginCode=member.loginCode;
  285.     //  memberacc[i].uid=member.uid;
  286.     //  cout<<"Name: "<<memberacc[i].loginName<<"\nPassword: "<<memberacc[i].loginCode<<"\nUID: "<<memberacc[i].uid<<endl;
  287.     //  i++;
  288.     //}
  289.     //baca2.close();
  290.     //int counter2=i;
  291.     //int retval=0;//(1 = project manager, 2 = project member)
  292.  
  293.     //for(i=0;i<counter1;i++) // loop for manager account comparison
  294.     //{
  295.     //  if(name==manageracc[i].loginName && pass==manageracc[i].loginCode)//(if Project Manager)do this with file and MD5
  296.     //  {
  297.     //      /*cout << "Access granted.\n";
  298.     //      Sleep(2000);
  299.     //      projectManagerPage();*/
  300.     //      retval=1;
  301.     //  }
  302.     //  //else if(member.loginName==memberacc[i].loginName && member.loginCode==memberacc[i].loginCode)
  303.     //  //{
  304.     //  //  /*cout << "Access granted.\n";
  305.     //  //  Sleep(2000);
  306.     //  //  projectMemberPage();*/
  307.     //  //  retval=2;
  308.     //  //}
  309.     //  else
  310.     //  {
  311.     //      //cout << "Access denied.\n";
  312.     //      retval=0;
  313.     //  }
  314.     //}
  315.  
  316.     //for(i=0;i<counter2;i++)//lop for member account comparison
  317.     //{
  318.     //  if(name==memberacc[i].loginName && pass==memberacc[i].loginCode)
  319.     //  {
  320.     //      retval=2;
  321.     //  }
  322.     //  else
  323.     //  {
  324.     //      retval=0;
  325.     //  }
  326.     //}
  327.  
  328.     //if(retval==1)
  329.     //{
  330.     //  cout << "Access granted.\n";
  331.     //  Sleep(2000);
  332.     //  projectManagerPage();
  333.     // 
  334.     //}
  335.     //else if(retval==2)
  336.     //{
  337.     //  cout << "Access granted.\n";
  338.     //  Sleep(2000);
  339.     //  projectMemberPage();
  340.     //}
  341.     //else
  342.     //{
  343.     //  cout << "Access denied.\n";
  344.     //}
  345.  
  346.     if(name=="Jan" && pass=="Jan")/*(if Project Manager)do this with file and MD5*/
  347.     {
  348.         cout << "Access granted.\n";
  349.         Sleep(1000);
  350.         //loadingbar();
  351.         projectManagerPage();
  352.     }
  353.     else if(name=="member" && pass=="member")
  354.     {
  355.         cout << "Access granted.\n";
  356.         Sleep(1000);
  357.         projectMemberPage();
  358.     }
  359.     else
  360.     {
  361.         cout << "Access denied.\n";
  362.     }
  363.  
  364.     system("pause");
  365.     return 0;
  366. }
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.         ////////////////////////////
  375.         //// CREATE NEW PROJECT ////
  376.         ////////////////////////////
  377.        
  378. void createNewProject()
  379. {
  380.     system("cls");
  381.     cout << "Project Details\n";
  382.     cout << "Enter Project Name: ";
  383.     cin >> proj.projectName;
  384.     cout << "Project Start date (dd mm yyyy): ";
  385.     cin>>proj.sd;
  386.     cin>>proj.sm;
  387.     cin>>proj.sy;
  388.  
  389.     int m=1;
  390.     while(m==1)
  391.     {
  392.         if(proj.sm>0 && proj.sm<13)//while Month is between 1 and 12
  393.         {
  394.             if(proj.sy%4==0)//if it is Leap Year
  395.             {
  396.                     if(proj.sm==2)//if it is Leap Year and it is Februari
  397.                     {
  398.                             if(proj.sd>0 && proj.sd<=29)//Feb in Leap Year is not more than 29 days
  399.                             {  
  400.                                 m=0;//exit loop
  401.                             }
  402.                             else//its Leap Year & Februari, but day entered is more than 29
  403.                             {
  404.                                 cerr<<"Wrong date entered!\n";
  405.                                 cout << "Project Start date (dd mm yyyy): ";
  406.                                 cin >> proj.sd >> proj.sm >> proj.sy ;
  407.                             }
  408.                     }
  409.                     else//Its Leap Year but it is not Februari
  410.                     {
  411.                             if(proj.sm==4 || proj.sm==6 || proj.sm==9 || proj.sm==11)//It is a 30 days'  month
  412.                             {
  413.                                     if(proj.sd>0 && proj.sd<=30)//Day is between 1 and 30
  414.                                     {
  415.                                         m=0;//exit loop
  416.                                     }
  417.                                     else
  418.                                     {
  419.                                         cerr<<"Wrong date entered!\n";
  420.                                         cout << "Project Start date (dd mm yyyy): ";
  421.                                         cin >> proj.sd >> proj.sm >> proj.sy ;
  422.                                     }
  423.                             }
  424.                             else//It is a 31 day's month
  425.                             {
  426.                                     if(proj.sd>0 && proj.sd<=31)//Day is between 1 and 31
  427.                                     {
  428.                                         m=0;//exit loop
  429.                                     }
  430.                                     else
  431.                                     {
  432.                                         cerr<<"Wrong date entered!\n";
  433.                                         cout << "Project Start date (dd mm yyyy): ";
  434.                                         cin >> proj.sd >> proj.sm >> proj.sy ;
  435.                                     }
  436.                             }
  437.                     }
  438.             }
  439.             else//It is not a Leap Year
  440.             {
  441.                 if(proj.sm==2)//if it is not Leap Year and it is Februari
  442.                     {
  443.                             if(proj.sd>0 && proj.sd<=28)//Feb is not more than 28 days
  444.                             {  
  445.                                 m=0;//exit loop
  446.                             }
  447.                             else//Day entered is more than 28
  448.                             {
  449.                                 cerr<<"Wrong date entered!\n";
  450.                                 cout << "Project Start date (dd mm yyyy): ";
  451.                                 cin >> proj.sd >> proj.sm >> proj.sy ;
  452.                             }
  453.                     }
  454.                     else//Its not Leap Year and it is not Februari
  455.                     {
  456.                             if(proj.sm==4 || proj.sm==6 || proj.sm==9 || proj.sm==11)//It is a 30 days'  month
  457.                             {
  458.                                     if(proj.sd>0 && proj.sd<=30)//Day is between 1 and 30
  459.                                     {
  460.                                         m=0;//exit loop
  461.                                     }
  462.                                     else
  463.                                     {
  464.                                         cerr<<"Wrong date entered!\n";
  465.                                         cout << "Project Start date (dd mm yyyy): ";
  466.                                         cin >> proj.sd >> proj.sm >> proj.sy ;
  467.                                     }
  468.                             }
  469.                             else//It is a 31 day's month
  470.                             {
  471.                                     if(proj.sd>0 && proj.sd<=31)//Day is between 1 and 31
  472.                                     {
  473.                                         m=0;//exit loop
  474.                                     }
  475.                                     else
  476.                                     {
  477.                                         cerr<<"Wrong date entered!\n";
  478.                                         cout << "Project Start date (dd mm yyyy): ";
  479.                                         cin >> proj.sd >> proj.sm >> proj.sy ;
  480.                                     }
  481.                             }
  482.                     }
  483.             }
  484.         }
  485.         else//Month entered is > 13
  486.         {
  487.             cerr<<"Wrong date entered!\n";
  488.             cout << "Project Start date (dd mm yyyy): ";
  489.             cin >> proj.sd >> proj.sm >> proj.sy ;
  490.         }
  491.     }
  492.  
  493.     cout << "Project End date (dd mm yyyy): ";
  494.     cin >> proj.ed >> proj.em >> proj.ey ;
  495.     m=1;//reset m value
  496.     while(m==1)
  497.     {
  498.         if(proj.ey<proj.sy)//if End year is less than Start year
  499.         {
  500.             cerr<<"Wrong date entered!\n";
  501.             cout << "Project End date (dd mm yyyy): ";
  502.             cin >> proj.ed >> proj.em >> proj.ey ;
  503.         }
  504.         else//End year is equal or greater than Start year
  505.         {
  506.             if(proj.em<proj.sm)//if End month is less than Start month
  507.             {
  508.                 cerr<<"Wrong date entered!\n";
  509.                 cout << "Project End date (dd mm yyyy): ";
  510.                 cin >> proj.ed >> proj.em >> proj.ey ;
  511.             }
  512.             else//End month is equal or greater than Start month
  513.             {
  514.                 if(proj.ed<proj.sd)//if End day is less than Start day)
  515.                 {
  516.                     cerr<<"Wrong date entered!\n";
  517.                     cout << "Project End date (dd mm yyyy): ";
  518.                     cin >> proj.ed >> proj.em >> proj.ey ;
  519.                 }
  520.                 else//End DATE entered is greater than Start DATE (correct input)
  521.                 {
  522.                         if(proj.em>0 && proj.em<13)//while Month is between 1 and 12
  523.                         {
  524.                             if(proj.ey%4==0)//if it is Leap Year
  525.                             {
  526.                                     if(proj.em==2)//if it is Leap Year and it is Februari
  527.                                     {
  528.                                             if(proj.ed>0 && proj.ed<=29)//Feb in Leap Year is not more than 29 days
  529.                                             {  
  530.                                                 m=0;//exit loop
  531.                                             }
  532.                                             else//its Leap Year & Februari, but day entered is more than 29
  533.                                             {
  534.                                                 cerr<<"Wrong date entered!\n";
  535.                                                 cout << "Project End date (dd mm yyyy): ";
  536.                                                 cin >> proj.ed >> proj.em >> proj.ey ;
  537.                                             }
  538.                                     }
  539.                                     else//Its Leap Year but it is not Februari
  540.                                     {
  541.                                             if(proj.sm==4 || proj.sm==6 || proj.sm==9 || proj.sm==11)//It is a 30 days'  month
  542.                                             {
  543.                                                     if(proj.sd>0 && proj.sd<=30)//Day is between 1 and 30
  544.                                                     {
  545.                                                         m=0;//exit loop
  546.                                                     }
  547.                                                     else
  548.                                                     {
  549.                                                         cerr<<"Wrong date entered!\n";
  550.                                                         cout << "Project End date (dd mm yyyy): ";
  551.                                                         cin >> proj.ed >> proj.em >> proj.ey ;
  552.                                                     }
  553.                                             }
  554.                                             else//It is a 31 day's month
  555.                                             {
  556.                                                     if(proj.ed>0 && proj.ed<=31)//Day is between 1 and 31
  557.                                                     {
  558.                                                         m=0;//exit loop
  559.                                                     }
  560.                                                     else
  561.                                                     {
  562.                                                         cerr<<"Wrong date entered!\n";
  563.                                                         cout << "Project End date (dd mm yyyy): ";
  564.                                                         cin >> proj.ed >> proj.em >> proj.ey ;
  565.                                                     }
  566.                                             }//end of day comparison
  567.                                     }//end of februari comparison
  568.                             }
  569.                             else//It is not a Leap Year
  570.                             {
  571.                                 if(proj.em==2)//if it is not Leap Year and it is Februari
  572.                                 {
  573.                                     if(proj.ed>0 && proj.ed<=28)//Feb is not more than 28 days
  574.                                     {  
  575.                                         m=0;//exit loop
  576.                                     }
  577.                                     else//Day entered is more than 28
  578.                                     {
  579.                                         cerr<<"Wrong date entered!\n";
  580.                                         cout << "Project End date (dd mm yyyy): ";
  581.                                         cin >> proj.ed >> proj.em >> proj.ey ;
  582.                                     }
  583.                                 }
  584.                                 else//Its not Leap Year and it is not Februari
  585.                                 {
  586.                                     if(proj.em==4 || proj.em==6 || proj.em==9 || proj.em==11)//It is a 30 days'  month
  587.                                     {
  588.                                             if(proj.ed>0 && proj.ed<=30)//Day is between 1 and 30
  589.                                             {
  590.                                                 m=0;//exit loop
  591.                                             }
  592.                                             else
  593.                                             {
  594.                                                 cerr<<"Wrong date entered!\n";
  595.                                                 cout << "Project End date (dd mm yyyy): ";
  596.                                                 cin >> proj.ed >> proj.em >> proj.ey ;
  597.                                             }
  598.                                     }
  599.                                     else//It is a 31 day's month
  600.                                     {
  601.                                             if(proj.ed>0 && proj.ed<=31)//Day is between 1 and 31
  602.                                             {
  603.                                                 m=0;//exit loop
  604.                                             }
  605.                                             else
  606.                                             {
  607.                                                 cerr<<"Wrong date entered!\n";
  608.                                                 cout << "Project End date (dd mm yyyy): ";
  609.                                                 cin >> proj.ed >> proj.em >> proj.ey ;
  610.                                             }
  611.                                     }//End of 30 day comparison
  612.                                 }//End of Leap Year and Februari comparison
  613.                             }
  614.                         }
  615.                         else//Month entered is > 13
  616.                         {
  617.                             cerr<<"Wrong date entered!\n";
  618.                             cout << "Project End date (dd mm yyyy): ";
  619.                             cin >> proj.ed >> proj.em >> proj.ey ;
  620.                         }
  621.                     }
  622.                 }
  623.         }
  624.     }
  625.                
  626.     proj.projectProgress=0.00;
  627.     char ans='n';
  628.     cout << "Save Project Details?(y/n) ";
  629.     cin >> ans;
  630.     if(ans=='y' || ans=='Y')
  631.     {
  632.         ofstream simpan;
  633.         simpan.open("projectlist.sfi",ios::app);
  634.         simpan<<proj.projectName<<"\t"<<proj.sd<<" "<<proj.sm<<" "<<proj.sy<<"\t"<<proj.ed<<" "<<proj.em<<" "<<proj.ey<<"\t"<<proj.projectProgress<<endl;
  635.         Sleep(2000);
  636.         projectManagerPage();
  637.     }
  638.     else
  639.     {  
  640.         cout<<"Project is not saved.\n";
  641.         Sleep(2000);
  642.         projectManagerPage();
  643.     }
  644. }
  645.  
  646.         ///////////////////////////////
  647.         //// OPEN EXISTING PROJECT ////
  648.         ///////////////////////////////
  649.  
  650. void openExistingProjects()
  651. {
  652.     system("cls");
  653.     int choice;
  654.     project *temp = new project[];//Dynamic array of project class
  655.     int i=0;//index counter for dynamic array *temp
  656.     ifstream ambil;
  657.     ambil.open("projectlist.sfi",ios::beg);
  658.     cout << "The Existing Projects:\n";
  659.     while(!ambil.eof())
  660.     {
  661.         ambil >> proj.projectName;
  662.         ambil >> proj.sd;
  663.         ambil >> proj.sm;
  664.         ambil >> proj.sy;
  665.         ambil >> proj.ed;
  666.         ambil >> proj.em;
  667.         ambil >> proj.ey;
  668.         ambil >> proj.projectProgress;
  669.         cout<<"Project Number: "<<i+1<<endl;
  670.         cout<<"Project Name: "<<proj.projectName;
  671.         //cout<<"\nStart date: "<<proj.sd<<"/"<<proj.sm<<"/"<< proj.sy;
  672.         //cout<<"\nEnd date: "<<proj.ed<<"/"<<proj.em<<"/"<< proj.ey;
  673.         //cout<<"\nProject progress: "<<setprecision(2)<<proj.projectProgress<<"%"<<endl;
  674.        
  675.         //Save data temporarily to temp array;
  676.         temp[i].projectName=proj.projectName;
  677.         temp[i].sd=proj.sd;
  678.         temp[i].sm=proj.sm;
  679.         temp[i].sy=proj.sy;
  680.         temp[i].ed=proj.ed;
  681.         temp[i].em=proj.em;
  682.         temp[i].ey=proj.ey;
  683.         temp[i].projectProgress=proj.projectProgress;
  684.         i++;
  685.     }
  686.     cout << "Choice: ";
  687.     cin >> choice;
  688.     int j;
  689.     j = choice - 1;
  690.     cout<<"\nProject Name: "<<temp[j].projectName;
  691.     cout<<"\nStart date: "<<temp[j].sd;
  692.     cout<<"/"<<temp[j].sm;
  693.     cout<<"/"<<temp[j].sy;;
  694.     cout<<"\nEnd date: "<<temp[j].ed;
  695.     cout<<"/"<<temp[j].em;
  696.     cout<<"/"<<temp[j].ey;
  697.     cout<<"\nProject progress: "<<setprecision(2)<<temp[j].projectProgress<<"%"<<endl;
  698.     /*string name;
  699.     int tempsd,tempsm,tempsy,temped,tempem,tempey;
  700.     float pp;
  701.     temp[j].projectName=name;
  702.     temp[j].sd=tempsd;
  703.     temp[j].sm=tempsm;
  704.     temp[j].sy=tempsy;
  705.     temp[j].ed=temped;
  706.     temp[j].em=tempem;
  707.     temp[j].ey=tempey;
  708.     temp[j].projectProgress=pp;*/
  709.     char ans;
  710.     cout<<"Continue?(y/n)";
  711.     cin>>ans;
  712.     if(ans=='y'||ans=='Y')
  713.     {
  714.         projectPage();
  715.     }
  716.     else
  717.     {
  718.         projectManagerPage();
  719.     }
  720. }
  721.  
  722.         ///////////////////////////////
  723.         //// CREATE PROJECT MEMBER ////
  724.         ///////////////////////////////
  725.  
  726. void createNewProjectMembers()
  727. {
  728.     cout << "Create New Member\n";
  729.     cout<< "Member Username: ";
  730.     //cin >> member.uid;
  731.     /*int retval = sizeof(member.uid);
  732.     if(retval<6)
  733.     {
  734.         cerr<<"UID requires at least 5 characters\n";
  735.         cout<< "Member UID: ";
  736.         cin >> member.uid;
  737.         retval = sizeof(member.uid);
  738.     }*/
  739.  
  740.     cout << "Member Name: ";
  741.     cin >> member.loginName;
  742.     /*retval = sizeof(member.loginName);
  743.     if(retval<6)
  744.     {
  745.         cerr<<"Name requires at least 5 characters\n";
  746.         cout << "Member Name: ";
  747.         cin >> member.loginName;
  748.         retval = sizeof(member.loginName);
  749.     }*/
  750.     cout << "Member Code: ";
  751.     cin >> member.loginCode;
  752.     /*retval = sizeof(member.loginCode);
  753.     if(retval<6)
  754.     {
  755.         cerr<<"Code requires at least 5 characters\n";
  756.         cout << "Member Code: ";
  757.         cin >> member.loginCode;
  758.         retval = sizeof(member.loginCode);
  759.     }*/
  760.     char ans;
  761.     cout << "Save(y/n)? ";
  762.     cin >> ans;
  763.     if(ans=='y'||ans=='Y')
  764.     {
  765.         ofstream simpan;
  766.         simpan.open("projectmemberlist.sfi",ios::app);
  767.         simpan << member.loginName << "\t" << member.loginCode <<endl; // "\t" <<member.uid << endl;
  768.         cout << "Member Created!\n";
  769.         Sleep(700);
  770.         projectManagerPage();
  771.     }
  772.     else
  773.     {
  774.         Sleep(700);
  775.         projectManagerPage();
  776.     }
  777. }
  778.  
  779.  
  780.         ///////////////////////
  781.         //// MODIFY MEMBER ////
  782.         ///////////////////////
  783.  
  784. void modifymember()
  785. {
  786.     int choice;
  787.     system("cls");
  788.     ifstream ambil;
  789.     ambil.open("projectmemberlist.sfi");
  790.     projectMember *temp = new projectMember[];
  791.     int i=0,counter=0;
  792.     while(!ambil.eof())
  793.     {
  794.         ambil >> temp[i].loginName;
  795.         ambil >> temp[i].loginCode;
  796.         //ambil >> temp[i].uid;
  797.         counter=i;
  798.     }
  799.     ambil.close();
  800.     cout<<"Member list\n";
  801.     for(i=0;i<=counter;i++)
  802.     {
  803.         cout<<temp[i].loginName<<endl;
  804.     }
  805.     string name;
  806.     string pass;
  807.     cout << "Modify which member?\n";
  808.     cin >>  name;
  809.     i=0;//reset i to 0
  810.     while ( temp[i].loginName != name )
  811.     {
  812.         i++;
  813.     }
  814.     cout << "\n\n";
  815.     cout << "1. Modify Name\n";
  816.     cout << "2. Modify Code\n";
  817.     cout << "3. View member list\n";
  818.     cout << "4. Go to main menu\n";
  819.     cout << "5. Exit program\n";
  820.     cout << "Choice: ";
  821.     cin >> choice;
  822.    
  823.     ofstream simpan;
  824.     simpan.open("projectmemberlist.sfi",ios::app||ios::beg);
  825.     switch(choice)
  826.     {
  827.     case 1:{
  828.             int a=0;
  829.             cin >> name;
  830.             temp[i].loginName = name;
  831.             while(a<i)
  832.             {
  833.                 //skip until i
  834.             }
  835.             //rename temp[i].loginName to name
  836.             cout<<"Rename successful\n";
  837.             break;
  838.            }
  839.     case 2:{
  840.             int a=0;
  841.             cin >> pass;
  842.             temp[i].loginCode = pass;
  843.             while(a<i)
  844.             {
  845.                 //skip until i
  846.             }
  847.             //rename temp[i].loginCode to pass
  848.             cout<<"Recode successful\n";
  849.             break;}
  850.     case 3:{
  851.             system("cls");
  852.             modifymember();
  853.             break;}
  854.     case 4:{
  855.             main();
  856.             break;}
  857.     case 5:{
  858.         exit(0);}
  859.     default:{
  860.         exit(0);}
  861.     }
  862. }
  863.         /////////////////////////////
  864.         //// VIEW PROJECT MEMBER ////
  865.         /////////////////////////////
  866.  
  867. void deletemember()
  868. {
  869.     system("cls");
  870.     int choice;
  871.     ifstream ambil;
  872.     ambil.open("projectmemberlist.sfi");
  873.     projectMember *temp = new projectMember[];
  874.     int i=0,counter=0;
  875.     while(!ambil.eof())
  876.     {
  877.         ambil >> temp[i].loginName;
  878.         ambil >> temp[i].loginCode;
  879.         //ambil >> temp[i].uid;
  880.         counter=i;
  881.     }
  882.     ambil.close();
  883.     cout<<"Member list\n";
  884.     for(i=0;i<=counter;i++)
  885.     {
  886.         cout<<temp[i].loginName<<endl;
  887.     }
  888.     cout << "Delete which member?\n";
  889.     cin >> choice;
  890.     ofstream simpan;
  891.     simpan.open("projectmemberlist.sfi",ios::beg);
  892.     for(i=0;i<counter;i++)
  893.     {
  894.         if(i==choice)
  895.         {
  896.             temp[i].loginName=temp[i+1].loginName;
  897.             temp[i].loginCode=temp[i+1].loginCode;
  898.             //temp[i].uid=temp[i+1].uid;
  899.             simpan << temp[i].loginName <<"\t" << temp[i].loginCode <<endl; //"\t" <<temp[i].uid <<endl;
  900.         }
  901.         else
  902.         {
  903.             simpan << temp[i].loginName <<"\t" << temp[i].loginCode <<endl; //"\t" <<temp[i].uid <<endl;
  904.         }
  905.     }
  906. }
  907.  
  908.  
  909.  
  910.         /////////////////////
  911.         //// CREATE TASK ////
  912.         /////////////////////
  913. void createtask()
  914. {
  915.     cout << "Task Details\n";
  916.     cout << "Enter Task Number: ";
  917.     cin >> tsk.taskNumber;
  918.     cout << "Enter Task Name: ";
  919.     cin >> tsk.taskName;
  920.     cout << "Task Start date (dd mm yyyy): ";
  921.     cin>>tsk.sd;
  922.     cin>>tsk.sm;
  923.     cin>>tsk.sy;
  924.  
  925.     int m=1;
  926.     while(m==1)
  927.     {
  928.         if(tsk.sm>0 && tsk.sm<13)//while Month is between 1 and 12
  929.         {
  930.             if(tsk.sy%4==0)//if it is Leap Year
  931.             {
  932.                     if(tsk.sm==2)//if it is Leap Year and it is Februari
  933.                     {
  934.                             if(tsk.sd>0 && tsk.sd<=29)//Feb in Leap Year is not more than 29 days
  935.                             {  
  936.                                 m=0;//exit loop
  937.                             }
  938.                             else//its Leap Year & Februari, but day entered is more than 29
  939.                             {
  940.                                 cerr<<"Wrong date entered!\n";
  941.                                 cout << "Task Start date (dd mm yyyy): ";
  942.                                 cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  943.                             }
  944.                     }
  945.                     else//Its Leap Year but it is not Februari
  946.                     {
  947.                             if(tsk.sm==4 || tsk.sm==6 || tsk.sm==9 || tsk.sm==11)//It is a 30 days'  month
  948.                             {
  949.                                     if(tsk.sd>0 && tsk.sd<=30)//Day is between 1 and 30
  950.                                     {
  951.                                         m=0;//exit loop
  952.                                     }
  953.                                     else
  954.                                     {
  955.                                         cerr<<"Wrong date entered!\n";
  956.                                         cout << "Task Start date (dd mm yyyy): ";
  957.                                         cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  958.                                     }
  959.                             }
  960.                             else//It is a 31 day's month
  961.                             {
  962.                                     if(tsk.sd>0 && tsk.sd<=31)//Day is between 1 and 31
  963.                                     {
  964.                                         m=0;//exit loop
  965.                                     }
  966.                                     else
  967.                                     {
  968.                                         cerr<<"Wrong date entered!\n";
  969.                                         cout << "Task Start date (dd mm yyyy): ";
  970.                                         cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  971.                                     }
  972.                             }
  973.                     }
  974.             }
  975.             else//It is not a Leap Year
  976.             {
  977.                 if(tsk.sm==2)//if it is not Leap Year and it is Februari
  978.                     {
  979.                             if(tsk.sd>0 && tsk.sd<=28)//Feb is not more than 28 days
  980.                             {  
  981.                                 m=0;//exit loop
  982.                             }
  983.                             else//Day entered is more than 28
  984.                             {
  985.                                 cerr<<"Wrong date entered!\n";
  986.                                 cout << "Task Start date (dd mm yyyy): ";
  987.                                 cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  988.                             }
  989.                     }
  990.                     else//Its not Leap Year and it is not Februari
  991.                     {
  992.                             if(tsk.sm==4 || tsk.sm==6 || tsk.sm==9 || tsk.sm==11)//It is a 30 days'  month
  993.                             {
  994.                                     if(tsk.sd>0 && tsk.sd<=30)//Day is between 1 and 30
  995.                                     {
  996.                                         m=0;//exit loop
  997.                                     }
  998.                                     else
  999.                                     {
  1000.                                         cerr<<"Wrong date entered!\n";
  1001.                                         cout << "Task Start date (dd mm yyyy): ";
  1002.                                         cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  1003.                                     }
  1004.                             }
  1005.                             else//It is a 31 day's month
  1006.                             {
  1007.                                     if(tsk.sd>0 && tsk.sd<=31)//Day is between 1 and 31
  1008.                                     {
  1009.                                         m=0;//exit loop
  1010.                                     }
  1011.                                     else
  1012.                                     {
  1013.                                         cerr<<"Wrong date entered!\n";
  1014.                                         cout << "Task Start date (dd mm yyyy): ";
  1015.                                         cin >> proj.sd >> proj.sm >> proj.sy ;
  1016.                                     }
  1017.                             }
  1018.                     }
  1019.             }
  1020.         }
  1021.         else//Month entered is > 13
  1022.         {
  1023.             cerr<<"Wrong date entered!\n";
  1024.             cout << "Task Start date (dd mm yyyy): ";
  1025.             cin >> tsk.sd >> tsk.sm >> tsk.sy ;
  1026.         }
  1027.     }
  1028.  
  1029.     cout << "Task End date (dd mm yyyy): ";
  1030.     cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1031.     m=1;//reset m value
  1032.     while(m==1)
  1033.     {
  1034.         if(tsk.ey<tsk.sy)//if End year is less than Start year
  1035.         {
  1036.             cerr<<"Wrong date entered!\n";
  1037.             cout << "Task End date (dd mm yyyy): ";
  1038.             cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1039.         }
  1040.         else//End year is equal or greater than Start year
  1041.         {
  1042.             if(tsk.em<tsk.sm)//if End month is less than Start month
  1043.             {
  1044.                 cerr<<"Wrong date entered!\n";
  1045.                 cout << "Task End date (dd mm yyyy): ";
  1046.                 cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1047.             }
  1048.             else//End month is equal or greater than Start month
  1049.             {
  1050.                 if(tsk.ed<tsk.sd)//if End day is less than Start day)
  1051.                 {
  1052.                     cerr<<"Wrong date entered!\n";
  1053.                     cout << "Task End date (dd mm yyyy): ";
  1054.                     cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1055.                 }
  1056.                 else//End DATE entered is greater than Start DATE (correct input)
  1057.                 {
  1058.                         if(tsk.em>0 && tsk.em<13)//while Month is between 1 and 12
  1059.                         {
  1060.                             if(tsk.ey%4==0)//if it is Leap Year
  1061.                             {
  1062.                                     if(tsk.em==2)//if it is Leap Year and it is Februari
  1063.                                     {
  1064.                                             if(tsk.ed>0 && tsk.ed<=29)//Feb in Leap Year is not more than 29 days
  1065.                                             {  
  1066.                                                 m=0;//exit loop
  1067.                                             }
  1068.                                             else//its Leap Year & Februari, but day entered is more than 29
  1069.                                             {
  1070.                                                 cerr<<"Wrong date entered!\n";
  1071.                                                 cout << "Task End date (dd mm yyyy): ";
  1072.                                                 cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1073.                                             }
  1074.                                     }
  1075.                                     else//Its Leap Year but it is not Februari
  1076.                                     {
  1077.                                             if(tsk.sm==4 || tsk.sm==6 || tsk.sm==9 || tsk.sm==11)//It is a 30 days'  month
  1078.                                             {
  1079.                                                     if(tsk.sd>0 && tsk.sd<=30)//Day is between 1 and 30
  1080.                                                     {
  1081.                                                         m=0;//exit loop
  1082.                                                     }
  1083.                                                     else
  1084.                                                     {
  1085.                                                         cerr<<"Wrong date entered!\n";
  1086.                                                         cout << "Task End date (dd mm yyyy): ";
  1087.                                                         cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1088.                                                     }
  1089.                                             }
  1090.                                             else//It is a 31 day's month
  1091.                                             {
  1092.                                                     if(tsk.ed>0 && tsk.ed<=31)//Day is between 1 and 31
  1093.                                                     {
  1094.                                                         m=0;//exit loop
  1095.                                                     }
  1096.                                                     else
  1097.                                                     {
  1098.                                                         cerr<<"Wrong date entered!\n";
  1099.                                                         cout << "Task End date (dd mm yyyy): ";
  1100.                                                         cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1101.                                                     }
  1102.                                             }//end of day comparison
  1103.                                     }//end of februari comparison
  1104.                             }
  1105.                             else//It is not a Leap Year
  1106.                             {
  1107.                                 if(tsk.em==2)//if it is not Leap Year and it is Februari
  1108.                                 {
  1109.                                     if(tsk.ed>0 && tsk.ed<=28)//Feb is not more than 28 days
  1110.                                     {  
  1111.                                         m=0;//exit loop
  1112.                                     }
  1113.                                     else//Day entered is more than 28
  1114.                                     {
  1115.                                         cerr<<"Wrong date entered!\n";
  1116.                                         cout << "Project End date (dd mm yyyy): ";
  1117.                                         cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1118.                                     }
  1119.                                 }
  1120.                                 else//Its not Leap Year and it is not Februari
  1121.                                 {
  1122.                                     if(tsk.em==4 || tsk.em==6 || tsk.em==9 || tsk.em==11)//It is a 30 days'  month
  1123.                                     {
  1124.                                             if(tsk.ed>0 && tsk.ed<=30)//Day is between 1 and 30
  1125.                                             {
  1126.                                                 m=0;//exit loop
  1127.                                             }
  1128.                                             else
  1129.                                             {
  1130.                                                 cerr<<"Wrong date entered!\n";
  1131.                                                 cout << "Task End date (dd mm yyyy): ";
  1132.                                                 cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1133.                                             }
  1134.                                     }
  1135.                                     else//It is a 31 day's month
  1136.                                     {
  1137.                                             if(tsk.ed>0 && tsk.ed<=31)//Day is between 1 and 31
  1138.                                             {
  1139.                                                 m=0;//exit loop
  1140.                                             }
  1141.                                             else
  1142.                                             {
  1143.                                                 cerr<<"Wrong date entered!\n";
  1144.                                                 cout << "Task End date (dd mm yyyy): ";
  1145.                                                 cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1146.                                             }
  1147.                                     }//End of 30 day comparison
  1148.                                 }//End of Leap Year and Februari comparison
  1149.                             }
  1150.                         }
  1151.                         else//Month entered is > 13
  1152.                         {
  1153.                             cerr<<"Wrong date entered!\n";
  1154.                             cout << "Task End date (dd mm yyyy): ";
  1155.                             cin >> tsk.ed >> tsk.em >> tsk.ey ;
  1156.                         }
  1157.                     }
  1158.                 }
  1159.         }
  1160.     }
  1161.                
  1162.     tsk.taskProgress=0.00;
  1163.     char ans='n';
  1164.     cout << "Save Task Details?(y/n) ";
  1165.     cin >> ans;
  1166.     if(ans=='y' || ans=='Y')
  1167.     {
  1168.         ofstream simpan;
  1169.         simpan.open("tasklist.sfi",ios::app);
  1170.         simpan<<tsk.taskNumber<<"\t"<<tsk.taskName<<"\t"<<tsk.sd<<" "<<tsk.sm<<" "<<tsk.sy<<"\t"<<tsk.ed<<" "<<tsk.em<<" "<<tsk.ey<<"\t"<<tsk.taskProgress<<endl;
  1171.         Sleep(2000);
  1172.         projectManagerPage();
  1173.     }
  1174.     else
  1175.     {  
  1176.         cout<<"Task is not saved.\n";
  1177.         Sleep(2000);
  1178.         projectManagerPage();
  1179.     }
  1180. }
  1181.  
  1182.  
  1183.         /////////////////
  1184.         //// LOG OUT ////
  1185.         /////////////////
  1186.  
  1187. void goOut()
  1188. {
  1189.     //system("exit");//cannot exit after going through so many functions but i'll fix this.
  1190.     exit(0);//EXIT successfully
  1191. }
  1192.  
  1193.         //////////////////////////////
  1194.         //// PROJECT MANAGER PAGE ////
  1195.         //////////////////////////////
  1196.  
  1197. void projectManagerPage()
  1198. {
  1199.     int choice;
  1200.     system("cls");
  1201.     cout << "Welcome Project Manager\n";
  1202.     cout << "1. Create New Project\n";
  1203.     cout << "2. Open Existing Projects\n";
  1204.     cout << "3. Create New Project Members\n";
  1205.     cout << "4. Log Out\n";
  1206.     cout << "Enter choice: ";
  1207.     cin >> choice;
  1208.     switch(choice)
  1209.     {
  1210.     case 1:
  1211.         createNewProject();
  1212.         break;
  1213.     case 2:
  1214.         openExistingProjects();
  1215.         break;
  1216.     case 3:
  1217.         createNewProjectMembers();
  1218.         break;
  1219.     case 4:
  1220.         goOut();//Logout
  1221.     default:
  1222.         exit(0);//QUIT program
  1223.     }
  1224. }
  1225.  
  1226.         /////////////////////////////
  1227.         //// PROJECT MEMBER PAGE ////
  1228.         /////////////////////////////
  1229.  
  1230. void projectMemberPage()
  1231. {
  1232.     int choice=0;
  1233.     system("cls");
  1234.     cout << "Welcome Project Member\n";
  1235.     cout << "1. Update Progress of Tasks\n";
  1236.     cout << "2. View Progress of Members\n";
  1237.     cout << "3. Log Out\n";
  1238.     cout << "Choice: ";
  1239.     cin >> choice;
  1240.     switch(choice)
  1241.     {
  1242.     case 1:
  1243.         updatetaskprogress();
  1244.         break;
  1245.     case 2:
  1246.         viewtaskprogress();
  1247.         break;
  1248.     case 3:
  1249.         goOut();
  1250.     default:
  1251.         exit(0);
  1252.     }
  1253. }
  1254.  
  1255.         //////////////////////////////
  1256.         //// UPDATE TASK PROGRESS ////
  1257.         //////////////////////////////
  1258.  
  1259. void updatetaskprogress()
  1260. {
  1261.     system("cls");
  1262.     ifstream ambil;
  1263.     string name;
  1264.     ambil.open("tasklist.sfi");
  1265.     cout << "List of Task:\n";
  1266.     while(!ambil.eof())
  1267.     {
  1268.         ambil >> tsk.taskNumber;
  1269.         ambil >> tsk.taskName;
  1270.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1271.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1272.         ambil >> tsk.taskProgress;
  1273.         cout << tsk.taskName << "\n";
  1274.     }
  1275.     cout<<"Which task do you want to update?";
  1276.     cin>>name;
  1277.     task *temp = new task[];
  1278.     int i=0;
  1279.     int counter=0;
  1280.     float num;
  1281.     while(!ambil.eof())
  1282.     {
  1283.         ambil >> tsk.taskNumber;
  1284.         temp[i].taskNumber = tsk.taskNumber;
  1285.         ambil >> tsk.taskName;
  1286.         temp[i].taskName = tsk.taskName;
  1287.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1288.         temp[i].sd = tsk.sd; temp[i].sm = tsk.sm; temp[i].sy = tsk.sy;
  1289.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1290.         temp[i].ed = tsk.ed; temp[i].em = tsk.em; temp[i].ey = tsk.ey;
  1291.         ambil >> tsk.taskProgress;
  1292.         temp[i].taskProgress = tsk.taskProgress;
  1293.         if(tsk.taskName==name)
  1294.         {
  1295.             cout << "Task Name: " << tsk.taskName <<endl;
  1296.             cout << "Task Number: " << tsk.taskNumber <<endl;
  1297.             cout << "Start date: " << tsk.sd <<"/"<<tsk.sm<<"/"<<tsk.sy<<endl;
  1298.             cout << "End date: " << tsk.ed<<"/"<<tsk.em<<"/"<<tsk.ey<<endl;
  1299.             cout << "Task progress: " << tsk.taskProgress <<"%" <<endl;
  1300.             cout << "\nEnter new task progress: ";
  1301.             cin >> num;
  1302.             temp[i].taskNumber = tsk.taskNumber;
  1303.             temp[i].taskName = tsk.taskName;
  1304.             temp[i].sd = tsk.sd; temp[i].sm = tsk.sm; temp[i].sy = tsk.sy;
  1305.             temp[i].ed = tsk.ed; temp[i].em = tsk.em; temp[i].ey = tsk.ey;
  1306.             temp[i].taskProgress = num;
  1307.         }
  1308.         else
  1309.         {
  1310.             continue;
  1311.             //read the next task list
  1312.         }
  1313.         i++;
  1314.         counter=i;
  1315.     }
  1316.     ambil.close();
  1317.     ofstream simpan;
  1318.     simpan.open("tasklist.sfi",ios::trunc);
  1319.     if(simpan.good())
  1320.     {
  1321.         for(i=0;i<counter;i++)
  1322.         {
  1323.             simpan << temp[i].taskNumber;
  1324.             simpan << temp[i].taskName;
  1325.             simpan << temp[i].sd;
  1326.             simpan << temp[i].sm;
  1327.             simpan << temp[i].sy;
  1328.             simpan << temp[i].ed;
  1329.             simpan << temp[i].em;
  1330.             simpan << temp[i].ey;
  1331.             simpan << temp[i].taskProgress;
  1332.         }
  1333.     }
  1334.     else
  1335.     {
  1336.         cerr<<"Error updating file\n";
  1337.     }
  1338.     projectMemberPage();
  1339. }
  1340.  
  1341.         /////////////////////////////////////
  1342.         //// VIEW PROJECT MEMBER PROGRESS////
  1343.         /////////////////////////////////////
  1344.  
  1345. void viewtaskprogress()
  1346. {
  1347.     string name;
  1348.     system("cls");
  1349.     ifstream ambil;
  1350.     ambil.open("tasklist.sfi");
  1351.     cout << "List of Task:\n";
  1352.     while(!ambil.eof())
  1353.     {
  1354.         ambil >> tsk.taskNumber;
  1355.         ambil >> tsk.taskName;
  1356.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1357.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1358.         ambil >> tsk.taskProgress;
  1359.         cout << tsk.taskName << "\n";
  1360.     }
  1361.     cout << "Which task do you want to view?\n";
  1362.     cin >> name;
  1363.     while(!ambil.eof())
  1364.     {
  1365.         ambil >> tsk.taskNumber;
  1366.         ambil >> tsk.taskName;
  1367.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1368.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1369.         ambil >> tsk.taskProgress;
  1370.         if(tsk.taskName==name)
  1371.         {
  1372.             cout << "Task Name: " << tsk.taskName <<endl;
  1373.             cout << "Task Number: " << tsk.taskNumber <<endl;
  1374.             cout << "Start date: " << tsk.sd <<"/"<<tsk.sm<<"/"<<tsk.sy<<endl;
  1375.             cout << "End date: " << tsk.ed<<"/"<<tsk.em<<"/"<<tsk.ey<<endl;
  1376.             cout << "Task progress: " << tsk.taskProgress <<"%" <<endl;
  1377.         }
  1378.         else
  1379.         {
  1380.             continue;
  1381.             //read the next task list
  1382.         }
  1383.     }
  1384.     Sleep(2000);
  1385.     projectMemberPage();
  1386. }
  1387.         ///////////////////////////
  1388.         //// PROJECT PAGE MENU ////
  1389.         ///////////////////////////
  1390.  
  1391. void projectPage()
  1392. {
  1393.     int choice;
  1394.     system("cls");
  1395.     cout << "1. Modify Project\n";
  1396.     cout << "2. Create Task\n";
  1397.     cout << "3. Edit Tasks - NOT WORKING -\n";
  1398.     cout << "4. Delete Task\n";
  1399.     cout << "5. Link Task - NOT WORKING -\n";
  1400.     cout << "6. Create Subtask \n";
  1401.     cout << "7. Assign Task - NOT WORKING -\n";
  1402.     cout << "8. Unassign Task - NOT WORKING -\n";
  1403.     cout << "Choice: ";
  1404.     cin >> choice;
  1405.     switch(choice)
  1406.     {
  1407.     case 1:
  1408.         openExistingProjects();
  1409.         break;
  1410.     case 2:
  1411.         createtask();
  1412.         break;
  1413.     case 3:
  1414.         //edittask();
  1415.         break;
  1416.     case 4:
  1417.         deletetask();
  1418.         break;
  1419.     case 5:
  1420.         //linktask();
  1421.         break;
  1422.     case 6:
  1423.         createsubtask();
  1424.         break;
  1425.     case 7:
  1426.         //assigntask();
  1427.         break;
  1428.     case 8:
  1429.         //unassigntask();
  1430.         break;
  1431.     default:
  1432.         exit(0);
  1433.     }
  1434.    
  1435. }
  1436.  
  1437.         /////////////////////
  1438.         //// DELETE TASK ////
  1439.         /////////////////////
  1440.  
  1441. void deletetask()
  1442. {
  1443.     system("cls");
  1444.     string name;
  1445.     ifstream ambil;
  1446.     ambil.open("tasklist.sfi");
  1447.     cout << "List of Task:\n";
  1448.     while(!ambil.eof())
  1449.     {
  1450.         ambil >> tsk.taskNumber;
  1451.         ambil >> tsk.taskName;
  1452.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1453.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1454.         ambil >> tsk.taskProgress;
  1455.         cout << tsk.taskName << "\n";
  1456.     }
  1457.     cout << "Which task do you want to delete?\n";
  1458.     cin >> name;
  1459.     task *temp = new task[];
  1460.     int i=0;
  1461.     int counter=0;
  1462.     char ans;
  1463.     while(!ambil.eof())
  1464.     {
  1465.         ambil >> tsk.taskNumber;
  1466.         temp[i].taskNumber = tsk.taskNumber;
  1467.         ambil >> tsk.taskName;
  1468.         temp[i].taskName = tsk.taskName;
  1469.         ambil >> tsk.sd >> tsk.sm >> tsk.sy;
  1470.         temp[i].sd = tsk.sd; temp[i].sm = tsk.sm; temp[i].sy = tsk.sy;
  1471.         ambil >> tsk.ed >> tsk.em >> tsk.ey;
  1472.         temp[i].ed = tsk.ed; temp[i].em = tsk.em; temp[i].ey = tsk.ey;
  1473.         ambil >> tsk.taskProgress;
  1474.         temp[i].taskProgress = tsk.taskProgress;
  1475.         if(tsk.taskName==name)
  1476.         {
  1477.             cout << "\n\n";
  1478.             cout << "Task Name: " << tsk.taskName <<endl;
  1479.             cout << "Task Number: " << tsk.taskNumber <<endl;
  1480.             cout << "Start date: " << tsk.sd <<"/"<<tsk.sm<<"/"<<tsk.sy<<endl;
  1481.             cout << "End date: " << tsk.ed<<"/"<<tsk.em<<"/"<<tsk.ey<<endl;
  1482.             cout << "Task progress: " << tsk.taskProgress <<"%" <<endl;
  1483.             cout << "\nDelete this task?";
  1484.             cin >> ans;
  1485.             if(ans=='y' || ans=='Y')
  1486.             {
  1487.                 if(temp[i+1].taskNumber==NULL)
  1488.                 {
  1489.                     //discard last record
  1490.                 }
  1491.                 else
  1492.                 {
  1493.                     temp[i].taskNumber = temp[i+1].taskNumber;
  1494.                     temp[i].taskName = temp[i+1].taskName;
  1495.                     temp[i].sd = temp[i+1].sd; temp[i+1].sm = temp[i+1].sm; temp[i+1].sy = temp[i+1].sy;
  1496.                     temp[i].ed = temp[i+1].ed; temp[i+1].em = temp[i+1].em; temp[i+1].ey = temp[i+1].ey;
  1497.                     temp[i].taskProgress = temp[i+1].taskProgress;
  1498.                 }
  1499.             }
  1500.             else
  1501.             {
  1502.                 cout << "Deletion canceled\n";
  1503.                 projectPage();
  1504.             }
  1505.         }
  1506.         else
  1507.         {
  1508.             continue;
  1509.             //read the next task list
  1510.         }
  1511.         i++;
  1512.         counter=i;
  1513.     }
  1514.     ambil.close();
  1515.     ofstream simpan;
  1516.     simpan.open("tasklist.sfi",ios::trunc);
  1517.     if(simpan.good())
  1518.     {
  1519.         for(i=0;i<counter;i++)
  1520.         {
  1521.             simpan << temp[i].taskNumber;
  1522.             simpan << temp[i].taskName;
  1523.             simpan << temp[i].sd;
  1524.             simpan << temp[i].sm;
  1525.             simpan << temp[i].sy;
  1526.             simpan << temp[i].ed;
  1527.             simpan << temp[i].em;
  1528.             simpan << temp[i].ey;
  1529.             simpan << temp[i].taskProgress;
  1530.         }
  1531.     }
  1532.     else
  1533.     {
  1534.         cerr<<"Error updating file\n";
  1535.     }
  1536.  
  1537. }
  1538.         ////////////////////////
  1539.         //// CREATE SUBTASK ////
  1540.         ////////////////////////
  1541.  
  1542. void createsubtask()
  1543. {
  1544.     cout<<"Enter Subtask name: ";
  1545.     cin>> sbtsk.subTaskName;
  1546.     sbtsk.subTaskProgress=0.00;
  1547.     ofstream simpan;
  1548.     simpan.open("subtasklist.sfi");
  1549.     if(simpan.good())
  1550.     {
  1551.         simpan << sbtsk.subTaskName << "\t" << sbtsk.subTaskProgress << endl;
  1552.         Sleep(1000);
  1553.         cout << "Subtask successfully created\n";
  1554.     }
  1555.     else
  1556.     {
  1557.         cerr << "Error creating subtask..\n";
  1558.     }
  1559.     simpan.close();
  1560. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement