就是
《c++程序设计教程》
原著:H.M.Deitel;P.J.Deitel 
译自机械工业出版社。上面的两道作业题。p62,2.7和p93,3.81。用于分数运算的类RationalNumber。用整数变量表示类的私有数据成员(即分子和分母)。给类提供一个能够对所声明的对象初始化的构造函数。为了能够在不提供初始化值的情况下也能对对象初始化,构造汉书中应该包含默认值。构造函数还应该以最简分数形式存储数据,即2/4应该在对象中存储成分子为1,分母为2的形式。公有成员函数应该有下列功能:
a.两个有理数相加,以最简分数形式保存结果。
b.两个有理数相减,以最简分数形式保存结果。
c.两个有理数相乘,以最简分数形式保存结果。
d.两个有理数相除,以最简分数形式保存结果。
e.以a/b的形式输出有理数(a是分子,b是分母)。
f.以浮点形式输出有理数。2。一个链表类List,要求:  能够添加,删除,查找节点。  能够判断是否链表为空。
 /////////////////////////////////////
以上两个均要测试程序测试这个类的所有函数,最好是控制台程序。mfc提供的也可以,自己写的也成。最重要的是要有源代码!c++语法都忘光了,也是受人所托,先感谢各位了!

解决方案 »

  1.   

    是只做出类来就行了? 不要.exe文件吧?留下email不过我没看过你说的书, 可能会理解有出入
      

  2.   

    gzgz          gzgz        gzgz    gzgz              
      gzgzgzgzgzgzgzgzgzgzgzgz      gzgz      gzgz            
          gzgz    gzgz  gzgz        gzgz        gzgz          
      gzgzgzgzgzgzgzgzgzgz      gzgzgzgzgzgzgzgzgzgzgzgzgz    
          gzgz    gzgz  gzgz    gzgzgzgzgzgzgz                
    gzgzgzgzgzgzgzgzgzgzgzgz    gzgzgzgz  gzgz                
        gzgz    gzgz                gzgz  gzgz                
      gzgzgzgzgzgzgzgzgzgzgz        gzgz  gzgz                
        gzgz    gzgz    gzgz        gzgz  gzgz                
        gzgz    gzgz    gzgz        gzgz  gzgz                
        gzgz    gzgz  gzgzgz        gzgz  gzgz                
                gzgz                gzgz  gzgzgzgzgzgzgzgz
      

  3.   

    #include "stdafx.h"
    #include "stdio.h"
    class CRationalNumber  
    {
    public:
    void GetResult(bool bFloat=false);
    CRationalNumber operator * (CRationalNumber &second);
    CRationalNumber operator - (CRationalNumber & second);
    int GetRat();
    int GetDen();
    CRationalNumber operator + (CRationalNumber &second);
    CRationalNumber operator / (CRationalNumber &second);
    CRationalNumber(int rat=1, int den=1);
    virtual ~CRationalNumber();private:
    int Simple(int first,int second);
    int denominator;
    int numerator;
    int Minrator(int first, int second);};CRationalNumber::~CRationalNumber()
    {}CRationalNumber::CRationalNumber(int rat, int den)
    {
    if(den==0) 
    {
    printf("error! denominator cannot be 0!");
    exit(0);
    }
    if(rat==0)
    {
    denominator=1;
    numerator=0;
    }
    else
    {
    denominator =den/Simple(den,rat);
    numerator = rat/Simple(den,rat);
    }
    }int CRationalNumber::Simple(int first,int second)
    {
    int var1,var2,var3,tmp;
    first>second? (var1=first,var2=second):(var1=second,var2=first);
    var3 = var1 % var2; if (var3 == 0)
     tmp = var2;
    else
     { 
      while(var3 > 0)
       {
      var1 = var2;
      var2 = var3;
      var3 = var1 % var2;
       }
      tmp = var2;
     }
    if(tmp<0) tmp=0-tmp;
    return tmp;
    }CRationalNumber CRationalNumber::operator + (CRationalNumber& second)
    {
    int tmp=Minrator(denominator, second.GetDen());
    return CRationalNumber(tmp/denominator*numerator+tmp/second.GetDen()*second.GetRat(),tmp);
    }int CRationalNumber::Minrator(int first, int second)
    {
    return first*second/Simple(first,second);
    }
    int CRationalNumber::GetDen()
    {
    return denominator;
    }int CRationalNumber::GetRat()
    {
    return numerator;
    }CRationalNumber CRationalNumber::operator -(CRationalNumber &second)
    {
    int tmp=Minrator(denominator, second.GetDen());
    return CRationalNumber(tmp/denominator*numerator-tmp/second.GetDen()*second.GetRat(),tmp);}CRationalNumber CRationalNumber::operator *(CRationalNumber &second)
    {
    return CRationalNumber(numerator*second.GetRat(),denominator*second.GetDen());
    }CRationalNumber CRationalNumber::operator /(CRationalNumber &second)
    {
    if(second.GetRat()==0)
    {
    printf("Error,devide by 0!\n");
    exit(0);
    }
    return CRationalNumber(numerator*second.GetDen(),denominator*second.GetRat());
    }void CRationalNumber::GetResult(bool bFloat)
    {
    if(denominator==1)
    printf("%d\n",numerator);
    else if(numerator==0)
    printf("%d\n",0);
    else if(bFloat)
    printf("%f\n",(float)numerator/(float)denominator);
    else
    printf("%d/%d\n",numerator,denominator);
    }
    int main(int argc, char* argv[])
    {
    int num1a,num1b,num2a,num2b;
    bool opt;
    printf("please input two numbers:\n");
    printf("the first number:");
    scanf("%d/%d",&num1a,&num1b);
    printf("\nthe second number:");
    scanf("%d/%d",&num2a,&num2b); CRationalNumber a1(num1a,num1b),a2(num2a,num2b),a3;

    printf("\nplease select:1-output float, 0-output numeric\n"); printf("Add ? ");
    a3=a1+a2;
    scanf("%d",&opt);
    a3.GetResult(opt); printf("Sub ? ");
    a3=a1-a2;
    scanf("%d",&opt);
    a3.GetResult(opt); printf("Mul ? ");
    a3=a1*a2;
    scanf("%d",&opt);
    a3.GetResult(opt); printf("Dev ? ");
    a3=a1/a2;
    scanf("%d",&opt);
    a3.GetResult(opt);
    return 0;
    }
      

  4.   

    谢谢hyflying() !还有第二道题,链表的那个,相信更简单吧!继续等待!
      

  5.   

    hyflying() 牛!
    建议搂主多看一些C++方面的书!
      

  6.   

    c++一年半以前学过,这么长时间一直用delphi,c+语法都忘光了。
    懒得再看,我也是受人所托。链表的应该很简单阿。学c的时候相信大家都做过吧。继续等待!
      

  7.   


                                                                  
                            UPUPUPUP                              
                              UPUPUP                              
                            UPUPUPUP                              
                            UPUPUP                                
                          UPUPUP                                  
                          UPUP          UPUP                      
                        UPUPUP    UPUPUPUPUPUPUP                  
                  UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP                
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP  UPUPUPUPUP    UPUPUP                  
                    UPUPUPUPUPUP          UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP  UPUPUPUPUP    UPUPUP                  
                    UPUPUPUPUPUP          UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUP                  UPUPUP                  
                    UPUP    UPUPUPUPUPUP  UPUPUP                  
                    UPUPUPUPUPUPUPUP  UPUPUPUPUP                  
                    UPUP                UPUPUPUP                  
                    UPUP                UPUPUPUP                  
                                          UPUP                    
                                                                  
                                                                  
                                                                  
                                                                  
                                    UPUP                          
                                UPUPUPUPUPUP                      
                UPUPUPUPUPUPUPUPUPUPUPUPUPUP                      
                    UPUPUP          UPUPUP                        
                                  UPUPUP                          
                                  UPUPUP                          
                                  UPUP                            
                                  UPUPUP                          
                        UPUPUPUPUPUPUPUP                          
                UPUPUPUPUP                                        
                UPUP                                              
                UPUP                                              
                UPUP                                              
                UPUP                                  UPUP        
                UPUP                                  UPUP        
                UPUP                                UPUPUP        
                UPUP                                UPUPUP        
                UPUPUP                              UPUPUP        
                  UPUPUP                          UPUPUPUP        
                  UPUPUPUPUP                UPUPUPUPUPUPUP        
                    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP            
                          UPUPUPUPUPUPUPUPUPUP                    
                                                                  
                                                                  
                                                                  
                                                                  
      

  8.   


                                                                  
                            UPUPUPUP                              
                              UPUPUP                              
                            UPUPUPUP                              
                            UPUPUP                                
                          UPUPUP                                  
                          UPUP          UPUP                      
                        UPUPUP    UPUPUPUPUPUPUP                  
                  UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP                
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP  UPUPUPUPUP    UPUPUP                  
                    UPUPUPUPUPUP          UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP  UPUPUPUPUP    UPUPUP                  
                    UPUPUPUPUPUP          UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUPUP                UPUPUP                  
                    UPUP                  UPUPUP                  
                    UPUP    UPUPUPUPUPUP  UPUPUP                  
                    UPUPUPUPUPUPUPUP  UPUPUPUPUP                  
                    UPUP                UPUPUPUP                  
                    UPUP                UPUPUPUP                  
                                          UPUP                    
                                                                  
                                                                  
                                                                  
                                                                  
                                    UPUP                          
                                UPUPUPUPUPUP                      
                UPUPUPUPUPUPUPUPUPUPUPUPUPUP                      
                    UPUPUP          UPUPUP                        
                                  UPUPUP                          
                                  UPUPUP                          
                                  UPUP                            
                                  UPUPUP                          
                        UPUPUPUPUPUPUPUP                          
                UPUPUPUPUP                                        
                UPUP                                              
                UPUP                                              
                UPUP                                              
                UPUP                                  UPUP        
                UPUP                                  UPUP        
                UPUP                                UPUPUP        
                UPUP                                UPUPUP        
                UPUPUP                              UPUPUP        
                  UPUPUP                          UPUPUPUP        
                  UPUPUPUPUP                UPUPUPUPUPUPUP        
                    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP            
                          UPUPUPUPUPUPUPUPUPUP                    
                                                                  
                                                                  
                                                                  
                                                                  
      

  9.   

    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"typedef struct DATA
    {
    int mydata;
    DATA *next;
    }DATA;class CMyList  
    {
    public:
    bool modify(int data,int i);
    int getlength();
    bool show();
    bool insertdata(DATA * data);
    bool isempty();
    bool insertdata(DATA *data, int i);
    bool deldata(int i);
    bool deldata(DATA data);
    int find(DATA data);
    bool getdata(int i, DATA &data);
    CMyList();
    virtual ~CMyList();private:
    DATA * culnext;
    DATA * cul;
    DATA  listhead;
    int length;
    };CMyList::CMyList()
    {
    length=0;
    listhead.next=NULL;
    }CMyList::~CMyList()
    {}bool CMyList::getdata(int i, DATA &data)
    {
    if(i<=0||i>length)
    {
    printf("error,cannot get Data %d\n",i);
    return false;
    }
    else
    {
    cul=&listhead;
    for (int index=1; index<=i; index++)
    {
    cul=cul->next;
    }
    data.mydata=cul->mydata;
    data.next=cul->next;
    return true;
    }
    }
    int CMyList::find(DATA data)
    {
    cul=&listhead;
    culnext=cul->next;
    for (int index=1; index<=length; index++)
    {
    if (culnext->mydata==data.mydata) return index;
    else
    {
    cul=cul->next;
    culnext=culnext->next;
    }
    }
    return 0;
    }bool CMyList::deldata(DATA data)
    {
    int index=find(data);
    if(index)
    {
    length--;
    cul->next=culnext->next;
    delete culnext;
    return true;
    }
    else
    {
    printf("cannot find the data:%d\n",data.mydata);
    return false;
    }
    }bool CMyList::deldata(int i)
    {
    if(length<i||i<1) 
    {
    printf("error,no this node!\n");
    return false;
    }
    else
    {
    cul=&listhead;
    culnext=cul->next;
    for (int index=1; index<i; index++)
    {
    cul=cul->next;
    culnext=culnext->next;
    }
    cul->next=culnext->next;
    delete culnext;
    length--;
    return true;
    }
    }bool CMyList::insertdata(DATA *data, int i)
    {
    if (i<0||i>length)
    {
    printf("error,cannot insert at %d\n",i);
    return false;
    }
    else
    {
    length++;
    cul=&listhead;
    for (int index=0; index<i; index++)
    {
    cul=cul->next;
    }
    data->next=cul->next;
    cul->next=data;
    return true;
    }
    }bool CMyList::isempty()
    {
    if(length) return false;
    else return true;
    }bool CMyList::insertdata(DATA *data)
    {
    return insertdata(data,length);
    }bool CMyList::show()
    {
    if(length==0)
    {
    printf("the list is empty!");
    return false;
    }
    else
    {
    printf("the list have %d datas,they are:\n",length);
    cul=&listhead;
    for(int index=1; index<=length; index++)
    {
    cul=cul->next;
    printf("(%d)%d\n",index,cul->mydata);
    }
    return true;
    }
    }int CMyList::getlength()
    {
    return length;
    }bool CMyList::modify(int data, int i)
    {
    if(i<=0||i>length)
    {
    printf("error,cannot modify Data %d\n",i);
    return false;
    }
    else
    {
    cul=&listhead;
    for (int index=1; index<=i; index++)
    {
    cul=cul->next;
    }
    cul->mydata=data;
    return true;
    }
    }
    int main(int argc, char* argv[])
    {
    int method;
    int value,index;
    CMyList list;
    DATA *pdata,data;
    for (int i=1; i<6; i++)
    {
    DATA *pdata=new DATA;
    pdata->mydata=i;
    list.insertdata(pdata);
    }
    list.show();
    do
    {
    printf("\n\n0--quit\n1--insert by index\n2--del by index\n3--del by value\n4--get value by index\n5--get length of the list\n6--modify by index\n");
    printf("please select:");
    method=getche();
    printf("\n");
    switch(method)
    {
    case '1':
    printf("please input the value:");
    scanf("%d",&value);
    if(!list.isempty())
    {
    printf("please input the index:");
    scanf("%d",&index);
    }
    else index=0;
    pdata=new DATA;
    pdata->mydata=value;
    list.insertdata(pdata,index);
    list.show();
    break;
    case '2':
    printf("please input the index:");
    scanf("%d",&index);
    list.deldata(index);
    list.show();
    break;
    case '3':
    printf("please input the value:");
    scanf("%d",&value);
    data.mydata=value;
    list.deldata(data);
    list.show();
    break;
    case '4':
    printf("please input the index:");
    scanf("%d",&index);
    list.getdata(index,data);
    printf("the value of %d is %d",index,data.mydata);
    break;
    case '5':
    printf("the length of the list is %d",list.getlength());
    break;
    case '6':
    printf("please input the value:");
    scanf("%d",&value);
    printf("please input the index:");
    scanf("%d",&index);
    list.modify(value,index);
    list.show();
    default:break;
    }
    }
    while(method!=48);

    return 0;

    }