C++习题第三章

2

#include<iostream>

class Data

{public:

       Data(int,int, int);

       Data(int,int);

       Data(int);

       Data();

       voiddisplay();

private:

       intmonth;

       intday;

       intyear;

};

 

Data::Data(int m,int d,inty):month(m),day(d),year(y)

{}

 

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

{year=2005;}

 

Data::Data(int m):month(m)

{day=1;

year=2005;

}

 

Data::Data()

{month=1;day=1;year=2005;

}

 

void Data::display()

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

 

int main()

{Data d1(10,13,2005);

Data d2(12,30);

Data d3(10);

Data d4;

d1.display();

d2.display();

d3.display();

d4.display();

return 0;

}

 

3、

#include<iostream>

usingnamespace std;

classDate

{public:

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

void display();

private:

int month;

int day;

int year;

};

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

{ }

voidDate::display()

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

intmain()

{

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>

usingnamespace std;

classStudent

{public:

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

void display();

private:

int num;

float score;

};

voidStudent::display()

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

intmain()

{

Studentstud[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(inti=0;i<=2;p=p+2,i++)

p->display();

return 0;

}

5、

#include <iostream>

using namespace std;

class Student

{public: 

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

  intnum;

  intscore;

};

void max(Student *arr) 

{

       intmax_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;

int main() 

{

       Studentstud[5]=

       {  Student(112,78),

          Student(113,85),

          Student(114,78),

      Student(115,87),

      Student(116,95)

       };

   void max(Student* );

   Student *p=&stud[0];

   max(p);

   return 0;

}

7

1

#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() const{cout<<num<<" "<<score<<endl;} 

 private:

        int num;

        float score;

};

int main()

{

       constStudent stud(101,78.5);

       stud.display();  

       stud.display();

       return0;

}

 

2

#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()

{

       constStudent stud(101,78.5);

       stud.display();

       stud.change(101,80.5);

       stud.display();

       return0;

}

 

3

#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()

{

       Studentstud(101,78.5);

       Student*p=&stud;

       p->display();

       p->change(101,80.5);

       p->display();

       return0;

}

 

4

#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()

{

       constStudent stud(101,78.5);

       constStudent *p=&stud;

       stud.display();

       stud.change(101,80.5);

       stud.display();

       return0;

}

 

5

#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()

{

       Studentstud(101,78.5);

   Student * const p=&stud;

       stud.display();

       stud.display();

       return0;

}

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;

};             

void fun(Student &stud)

{

       stud.display(); 

       stud.change(101,80.5);

       stud.display();

}

int main() 

{

       Studentstud(101,78.5); 

   fun(stud);

       return0;

}

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()

{

       floatrate=1.0; 

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

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

       n=n+quantity;

}

void Product::display()

{

       cout<<"sum="<<sum<<endl;

       cout<<"average="<<average()<<endl;

}

float Product::average()

{

       return(sum/n);

}

float Product::discount=0.1;

float Product::sum=0;

int Product::n=0;

int main()

       ProductProd[3]=

       { 

              Product(101,5,23.5),

              Product(102,12,24.56),

              Product(103,100,21.5)

       };

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

       Prod[i].total();

       Product::display();

       return0;

}

10、

#include<iostream>

using namespace std;

class Date;

class Time

{public:

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

        friend void display(Date &,Time &);

 private:

        int hour;

        int minute;

        int sec;

};

class Date

{public:

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

        friend void display(Date &,Time &);

 private:

        int month;

        int day;

        int year;

};

void display(Date &d,Time &t)

{

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

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

}

int main()

{

       Timet1(10,13,56);

       Dated1(12,25,2004);

       display(d1,t1);

       return0;

}

11

#include<iostream>

using namespace std;

class Time;

class Date

{public:

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

        void display(Time &);

 private:

        int month;

        int day;

        int year;

};

class Time

{public:

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

        friend void Date::display(Time &);

 private:

        int hour;

        int minute;

        int sec;

};

void Date::display(Time &t)

{

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

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

}

int main()

{

       Timet1(10,13,56);

       Dated1(12,25,2004);

       d1.display(t1);

       return0;

}

 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(numtypea,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; 

       return0;

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值