• c++面向对象程序设计 谭浩强 第三章答案


    2:

    #include <iostream>

    using namespace std;

    class Date

     {public:

       Date(int,int,int);

       Date(int,int);

       Date(int);

       Date();

       void display();

      private:

       int month;

       int day;

       int year;

     };

    Date::Date(int m,int d,int y):month(m),day(d),year(y)

     { }

    Date::Date(int m,int d):month(m),day(d)

     {year=2005;}

    Date::Date(int m):month(m)

     {day=1;

      year=2005;

     }

    Date::Date()

     {month=1;

      day=1;

      year=2005;

    }

    void Date::display()

     {cout<<month<<"/"<<day<<"/"<<year<<endl;}

    int main()

    {

     Date d1(10,13,2005);

     Date d2(12,30);

     Date d3(10);

     Date d4;

     d1.display();

     d2.display();

     d3.display();

     d4.display();

     return 0;

     }

    3:

    #include <iostream>

    using namespace std;

    class Date

     {public:

       Date(int=1,int=1,int=2005);

       void display();

      private:

       int month;

       int day;

       int year;

     };

    Date::Date(int m,int d,int y):month(m),day(d),year(y)

     { }

    void Date::display()

     {cout<<month<<"/"<<day<<"/"<<year<<endl;}

    int main()

    {

     Date d1(10,13,2005);

     Date d2(12,30);

     Date d3(10);

     Date d4;

     d1.display();

     d2.display();

     d3.display();

     d4.display();

     return 0;

    }

    4:

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       void display();

      private:

       int num;

       float score;

     };

    void Student::display()

     {cout<<num<<" "<<score<<endl;}

    int main()

    {Student stud[5]={

      Student(101,78.5),Student(102,85.5),Student(103,98.5),

      Student(104,100.0),Student(105,95.5)};

     Student *p=stud;

     for(int i=0;i<=2;p=p+2,i++)

      p->display();

     return 0;

     }

    5:

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       int num;

       float score;

     };

    void main()

    {Student stud[5]={

      Student(101,78.5),Student(102,85.5),Student(103,98.5),

      Student(104,100.0),Student(105,95.5)};

     void max(Student* );

     Student *p=&stud[0];

     max(p);

     }

    void max(Student *arr)

    {float max_score=arr[0].score;

     int k=0;

     for(int i=1;i<5;i++)

       if(arr[i].score>max_score) {max_score=arr[i].score;k=i;}

     cout<<arr[k].num<<" "<<max_score<<endl;

    }

      c++面向对象程序设计

    6:

    #include <iostream>

    using namespace std;

    class Student

    {public:

       Student(int n,float s):num(n),score(s){}

       void change(int n,float s) {num=n;score=s;}

       void display(){cout<<num<<" "<<score<<endl;}

      private:

       int num;

       float score;

     };

    int main()

    {Student stud(101,78.5);

     stud.display();

     stud.change(101,80.5);

     stud.display();

     return 0;

    }

      c++面向对象程序设计 谭浩强 答案

    7: 解法一

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       void change(int n,float s) {num=n;score=s;}

       void display() {cout<<num<<" "<<score<<endl;}

         //可改为:void display() const {cout<<num<<" "<<score<<endl;}

      private:

       int num;

       float score;

     };

    int main()

    {const Student

    stud(101,78.5);

     stud.display();

     //stud.change(101,80.5);

     stud.display();

     return 0;

    }

      c++面向对象程序设计 谭浩强 答案

    解法二:

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       void change(int n,float s) const  {num=n;score=s;}

       void display() const {cout<<num<<" "<<score<<endl;}

      private:

       mutable int num;

       mutable float score;

     };

    int main()

    {const Student stud(101,78.5);

     stud.display();

     stud.change(101,80.5);

     stud.display();

     return 0;

    }

    解法三:

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       void change(int n,float s) {num=n;score=s;}

       void display() {cout<<num<<" "<<score<<endl;}

      private:

       int num;

       float score;

     };

     c++面向对象程序设计 谭浩强 答案

    int main()

    {Student stud(101,78.5);

     Student *p=&stud;

     p->display();

     p->change(101,80.5);

     p->display();

     return 0;

    }

    8:

    #include <iostream>

    using namespace std;

    class Student

     {public:

       Student(int n,float s):num(n),score(s){}

       void change(int n,float s) {num=n;score=s;}

       void display() {cout<<num<<" "<<score<<endl;}

      private:

       int num;

       float score;

     };

    int main()

    {Student stud(101,78.5);

     void fun(Student&);

     fun(stud);

     return 0;

    }

    void fun(Student &stu)

    {stu.display();

    stu.change(101,80.5);

     stu.display();

    }

     谭浩强 

    9:

    #include <iostream>

    using namespace std;

    class Product

     {public:

       Product(int n,int q,float p):num(n),quantity(q),price(p){};

       void total();

       static float average();

       static void display();

      private:

       int num;

       int quantity;

       float price;

       static float discount;

       static float sum;

       static int n;

     };

    void Product::total()

     {float rate=1.0;

      if(quantity>10) rate=0.98*rate;

      sum=sum+quantity*price*rate*(1-discount);

      n=n+quantity;

     }

    void Product::display()

     {cout<<sum<<endl;

      cout<<average()<<endl;

     }

    float Product::average()

     {return(sum/n);}

    float Product::discount=0.05;

    float Product::sum=0;

    int Product::n=0;

    int main()

     {

       Product Prod[3]={

         Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5)

        };

       for(int i=0;i<3;i++)

         Prod[i].total();

       Product::display();

       return 0;

     }

     c++面向对象程序设计 谭浩强 

     10:

    #include <iostream>

    using namespace std;

    class Date;

    class Time

     {public:

       Time(int,int,int);

       friend void display(const Date &,const Time &);

      private:

       int hour;

       int minute;

       int sec;

     };

      c++面向对象程序设计 

     Time::Time(int h,int m,int s)

     {hour=h;

      minute=m;

      sec=s;

     }

    class Date

     {public:

    Date(int,int,int);

       friend void display(const Date &,const Time &);

      private:

       int month;

       int day;

       int year;

     };

    Date::Date(int m,int d,int y)

     {month=m;

      day=d;

      year=y;

     }

    void display(const Date &d,const Time &t)

     {

      cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;

      cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;

     }

    int main()

    {

     Time t1(10,13,56);

     Date d1(12,25,2004);

     display(d1,t1);

     return 0;

    }

     11:

    #include <iostream>

    using namespace std;

    class Time;

    class Date

     {public:

       Date(int,int,int);

       friend Time;

    private:

       int month;

       int day;

       int year;

     };

    Date::Date(int m,int d,int y):month(m),day(d),year(y){ }

    class Time

     {public:

       Time(int,int,int);

       void display(const Date &);

      private:

       int hour;

       int minute;

       int sec;

     };

    Time::Time(int h,int m,int s):hour(h),minute(m),sec(s){ }

    void Time::display(const Date &d)

     {

      cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;

      cout<<hour<<":"<<minute<<":"<<sec<<endl;

     }

    int main()

    {

     Time t1(10,13,56);

     Date d1(12,25,2004);

     t1.display(d1);

     return 0;

    }

    12:

    #include <iostream>

    using namespace std;

    template<class numtype>

    class Compare

     {public:

       Compare(numtype a,numtype b);

       numtype max();

       numtype min();

      private:

       numtype x,y;

     };

    template <class numtype>

    Compare<numtype>::Compare(numtype a,numtype b)

      {x=a;y=b;}

    template <class numtype>

    numtype Compare<numtype>::max()

     {return (x>y)?x:y;}

    template <class numtype>

    numtype Compare<numtype>::min()

      {return (x<y)?x:y;}

    int main()

    {Compare<int> cmp1(3,7);

     cout<<cmp1.max()<<" is the Maximum of two integer numbers."<<endl;

     cout<<cmp1.min()<<" is the Minimum of two integer numbers."<<endl<<endl;

     Compare<float> cmp2(45.78,93.6);

     cout<<cmp2.max()<<" is the Maximum of two float numbers."<<endl;

    cout<<cmp2.min()<<" is the Minimum of two float numbers."<<endl<<endl;

     Compare<char> cmp3('a','A');

     cout<<cmp3.max()<<" is the Maximum of two characters."<<endl;

     cout<<cmp3.min()<<" is the Minimum of two characters."<<endl;

     return 0;

    }

  • 相关阅读:
    dubbo服务接口开发者必备调试利器,你值得拥有
    基于Dubbo的http自动测试工具分享
    「工具」Dubbo可视化测试工具的设计和实现
    IntelliJ IDEA 识别一个类所属的jar包package
    IntelliJ IDEA创建文件时自动填入作者时间 定制格式
    ylb:使用sql语句实现添加、删除约束
    T-SQL:SQL Server-数据开发(经典)
    T-SQL:SQL Server-SQL语句大全经典
    T-SQL:SQL Server-数据库查询语句基本查询
    ylbtech-QQ(腾讯)-群
  • 原文地址:https://www.cnblogs.com/suibian1/p/10987290.html
Copyright © 2020-2023  润新知