home *** CD-ROM | disk | FTP | other *** search
/ PC User 2001 August / APC_Aug2001_CD1.iso / workshop / c / files / studbase.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-06-03  |  2.0 KB  |  98 lines

  1. #include <iostream> 
  2. #include "roll.h"
  3.  
  4. void Usage();
  5. bool DoAdd(CRoll &r, int argc, char *argv[]);
  6. bool DoDelete(CRoll &r, int argc, char *argv[]);
  7. bool DoFind(CRoll &r, int argc, char *argv[]);
  8.  
  9. int main(int argc, 
  10.          char *argv[])
  11. {
  12.   if (argc<2) {
  13.     Usage();
  14.     return 1;
  15.   }
  16.  
  17.   CRoll r("Test.dat");
  18.   char sel=toupper(argv[1][0]);
  19.   bool rs=false;
  20.  
  21.   switch (sel) {
  22.     case 'A':
  23.       rs = DoAdd(r, argc, argv);
  24.       break;
  25.     case 'D':       
  26.       rs = DoDelete(r, argc, argv);
  27.       break;
  28.     case 'F': 
  29.       rs = DoFind(r, argc, argv);
  30.       break;
  31.     default:
  32.       Usage();
  33.       rs = false;
  34.       break;
  35.   }
  36.  
  37.   if (rs)
  38.     std::cerr << "Operation completed successfully" << std::endl;
  39.   else
  40.     std::cerr << "Operation failed" << std::endl;
  41.   
  42.   return !rs;
  43. }
  44.  
  45. static void Usage() 
  46. {
  47.   std::cerr 
  48.    << "Usage: studbase <verb> <args>" << std::endl
  49.    << std::endl
  50.    << "Verb    Args" << std::endl
  51.    << "=================================================================" << std::endl
  52.    << "Add     StudentNumber FamilyName OtherName(s) Address DateOfBirth" << std::endl
  53.    << "Delete  StudentNumber" << std::endl
  54.    << "Find    StudentNumber" << std::endl
  55.    << std::endl
  56.    << "e.g." << std::endl
  57.    << "studbase Add 1000 Smith \"Mary Jane\" \"21 George St, Randwick, 2031\" 23-07-1984" << std::endl
  58.    << "studbase Delete 1000" << std::endl
  59.    << "studbase Find 1000" << std::endl;
  60. }
  61.  
  62. bool  DoAdd(CRoll &r, int argc, char *argv[])
  63. {
  64.   if (argc!=7) {
  65.     Usage();
  66.     return false;
  67.   }
  68.   CStudent s(atoi(argv[2]),
  69.              argv[3],
  70.              argv[4],
  71.              argv[5],
  72.              argv[6] );
  73.   return r.Add(s);
  74. }
  75.  
  76. bool  DoDelete(CRoll &r, int argc, char *argv[])
  77. {
  78.   if (argc!=3) {
  79.     Usage();
  80.     return false;
  81.   }
  82.   CStudent s;
  83.   return r.Delete(atoi(argv[2]));
  84. }
  85.  
  86. bool  DoFind(CRoll &r, int argc, char *argv[])
  87. {
  88.   if (argc!=3) {
  89.     Usage();
  90.     return false;
  91.   }
  92.   CStudent s;
  93.   bool rs = r.Find(atoi(argv[2]), s);
  94.   if (rs)
  95.     rs = s.Print(std::cout);
  96.   return rs; 
  97. }
  98.