c++面向对象程序设计 谭浩强 第三章答案
Posted suibian1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
以上是关于c++面向对象程序设计 谭浩强 第三章答案的主要内容,如果未能解决你的问题,请参考以下文章
C语言程序设计,谭浩强老师第三版里面的一个关于浮点型数据的舍入误差问题