bigInt01
Home ] Up ]

 

//Date:   2003.11.05
//File:   bigInt01.cpp
//Author: AOU


///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
#include <iostream.h>
#include <stdlib.h>
#include <time.h>


///////////////////////////////////////////////////////////
// WHAT IS NEW
///////////////////////////////////////////////////////////
/*
*/
///////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////
//constants
///////////////////////////////////////////////////////////
const int MAX_SIZE    = 10;
const int TEST_COUNT  = 25;
const int UNDEFINED   = -911;


///////////////////////////////////////////////////////////
//prototypes
///////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////
//class CDigit
///////////////////////////////////////////////////////////
class CDigit
  {
  private:
    unsigned int _coef;
    unsigned int _expo;
    CDigit *_next;
    CDigit *_prev;
  public:
    CDigit(void);
    CDigit(char ch);
    CDigit(const CDigit &d2);

    void display(void) const;
    void init(void);

    bool   operator   == (const CDigit &d2) const;
    bool   operator   != (const CDigit &d2) const;
    bool operator     <  (const CDigit &d2) const;
    bool operator     >  (const CDigit &d2) const;
    bool operator     >= (const CDigit &d2) const;
    bool operator     <= (const CDigit &d2) const;
    CDigit operator   +  (const CDigit &d2) const;
    CDigit operator   *  (const CDigit &d2) const;
    CDigit operator   -  (const CDigit &d2) const;
    CDigit operator   /  (const CDigit &d2) const;
    CDigit & operator =  (const CDigit &d2);
    friend ostream & operator << (ostream &bob, const CDigit &d2);
  };


///////////////////////////////////////////////////////////
//class CBigInt
///////////////////////////////////////////////////////////
class CBigInt
  {
  private:
    CDigit *first;
    CDigit *last;
    int count;
  public:
    CBigInt(void);
    CBigInt(char ch);
    CBigInt(int n);
    CBigInt(const CBigInt &i2);

    void display(void) const;
    void init(void);
    bool insert(CDigit x);
    bool isSorted(void) const;
    void shuffle(void);
    void sortBubble(void);
    void populate(int n);

    CBigInt & operator = (const CBigInt &i2);

    bool operator     ==  (const CBigInt &i2) const;
    bool operator     !=  (const CBigInt &i2) const;
    bool operator      <  (const CBigInt &i2) const;
    bool operator      <= (const CBigInt &i2) const;
    bool operator      >  (const CBigInt &i2) const;
    bool operator      >= (const CBigInt &i2) const;
    CBigInt operator   +  (const CBigInt &i2) const; 
    CBigInt operator   *  (const CBigInt &i2) const;
    CBigInt operator   -  (const CBigInt &i2) const;
    CBigInt operator   /  (const CBigInt &i2) const;

    friend ostream & operator << (ostream &bob, const CBigInt &bi);

    bool hasDistinct(void) const;
    
    bool deleteAtPos(int p);



  };


///////////////////////////////////////////////////////////
//main
///////////////////////////////////////////////////////////
void main(void)
  {
  srand(time(NULL));
  }