| | | | | next -> |

Testing BitVector

/*  fbitvect.cpp

    testing BitVector
*/

#include <xbitvect.cpp>

void display_menu(unsigned int size);

int main()
{
  char selection;
  unsigned int size, index;
  std::cout << "Welcome to fbitvect. Enter size of BitVector: ";
  std::cin >> size;
  fsu::BitVector * bvptr = new fsu::BitVector (size);
  display_menu(size);
  do
  {
    std::cout << "  Enter [op][index] (m for menu, x to exit): ";
    std::cin >> selection;
    switch(selection)
    {
      case 'S':
        bvptr->Set();
        break;
      case 'U':
        bvptr->Unset();
        break;
      case 'F':
        bvptr->Flip();
        break;
      case 's':
        std::cin >> index;
        bvptr->Set(index);
        break;
      case 'u':
        std::cin >> index;
        bvptr->Unset(index);
        break;
      case 'f':
        std::cin >> index;
        bvptr->Flip(index);
        break;
      case 't': case 'T':
        std::cin >> index;
        std::cout << "  v[" << index << "] == ";
        if (bvptr->Test(index))
          std::cout << "1\n";
        else
          std::cout << "0\n";
        break;
      case 'd': case 'D':
        std::cout << "  v == " << *bvptr << '\n';
        break;
      case 'm': case 'M':
        display_menu(size);
        break;
      case 'x': case 'X':
        break;
      default:
        std::cout << "  command not found\n";
    }
  }
  while (selection != 'x' && selection != 'X');
  delete bvptr;
  std::cout << "Thank you for testing BitVector\n";
  return 0;
}

void display_menu(unsigned int size)
{
   std::cout << "     BitVector (" << size << ") v;\n"   
             << "     operation                                entry\n"
             << "     ---------                                -----\n"
             << "     v.Set            ()  ......................  S\n"
             << "     v.Set            (index)  .................  s\n"
             << "     v.Unset          ()  ......................  U\n"
             << "     v.Unset          (index)  .................  u\n"
             << "     v.Flip           ()  ......................  F\n"
             << "     v.Flip           (index)  .................  f\n"
             << "     v.Test           (index)  .................  t\n"
             << "     cout << v  ................................  d\n"
             << "     display this Menu  ........................  m\n"
             << "     eXit program  .............................  x\n";
}

| next -> | Top of Page | 2. A BitVector Class - 10 of 10