month = 1;
if ( month > 12 ) month = 1;
} // end function setMonth // return month
int Date::getMonth() {
return month;
} // end function getMonth // set day
void Date::setDay( int d ) {
day = d;
} // end function setDay // return day
int Date::getDay() {
return day;
} // end function getDay // set year
void Date::setYear( int y ) {
year = y;
} // end function setYear // return year
int Date::getYear() {
return year;
} // end function getYear
// print Date in the format mm/dd/yyyy void Date::displayDate() {
cout << month << '/' << day << '/' << year << endl; } // end function displayDate 测试函数:
#include
#include \ // include definition of class Date from Date.h // function main begins program execution int main() {
Date date( 5, 6, 1981 ); // create a Date object for May 6, 1981 // display the values of the three Date data members
cout << \ << date.getMonth() << endl; cout << \ << date.getDay() << endl; cout << \ << date.getYear() << endl; cout << \ << endl;
date.displayDate(); // output the Date as 5/6/1981 // modify the Date
date.setMonth( 13 ); // invalid month date.setDay( 1 );
date.setYear( 2005 );
cout << \ << endl;
date.displayDate(); // output the modified date (1/1/2005) return 0; // indicate successful termination } // end main 9.05 类定义:
#ifndef COMPLEX_H #define COMPLEX_H class Complex {
public:
Complex( double = 0.0, double = 0.0 ); // default constructor Complex add( const Complex & ); // function add Complex subtract( const Complex & ); // function subtract void printComplex(); // print complex number format
void setComplexNumber( double, double ); // set complex number private:
double realPart;
double imaginaryPart; }; // end class Complex #endif
类成员函数:
#include
Complex::Complex( double real, double imaginary ) {
setComplexNumber( real, imaginary ); } // end Complex constructor
Complex Complex::add( const Complex &right ) {
return Complex(
realPart + right.realPart, imaginaryPart + right.imaginaryPart ); } // end function add
Complex Complex::subtract( const Complex &right ) {
return Complex(
realPart - right.realPart, imaginaryPart - right.imaginaryPart ); } // end function subtract void Complex::printComplex() {
cout << '(' << realPart << \ << imaginaryPart << ')'; } // end function printComplex
void Complex::setComplexNumber( double rp, double ip ) {
realPart = rp;
imaginaryPart = ip;
} // end function setComplexNumber 测试函数:
#include
Complex a( 1, 7 ), b( 9, 2 ), c; // create three Complex objects a.printComplex(); // output object a cout << \;
b.printComplex(); // output object b cout << \;
c = a.add( b ); // invoke add function and assign to object c c.printComplex(); // output object c cout << '\\n';
a.setComplexNumber( 10, 1 ); // reset realPart and b.setComplexNumber( 11, 5 ); // and imaginaryPart a.printComplex(); // output object a cout << \;
b.printComplex(); // output object b cout << \;
c = a.subtract( b ); // invoke add function and assign to object c c.printComplex(); // output object c cout << endl; return 0; } // end main 9.06 类定义:
#ifndef RATIONAL_H #define RATIONAL_H
class Rational {
public:
Rational( int = 0, int = 1 ); // default constructor
Rational addition( const Rational & ); // function addition
Rational subtraction( const Rational & ); // function subtraction Rational multiplication( const Rational & ); // function multi. Rational division( const Rational & ); // function division void printRational (); // print rational format
void printRationalAsDouble(); // print rational as double format private:
int numerator; // integer numerator int denominator; // integer denominator void reduction(); // utility function }; // end class Rational #endif
类成员函数:
#include
#include \ // include definition of class Rational Rational::Rational( int n, int d ) {
numerator = n; // sets numerator
denominator = d; // sets denominator
reduction(); // store the fraction in reduced form } // end Rational constructor
Rational Rational::addition( const Rational &a ) {
Rational t; // creates Rational object t.numerator = a.numerator * denominator; t.numerator += a.denominator * numerator; t.denominator = a.denominator * denominator;
t.reduction(); // store the fraction in reduced form return t;
} // end function addition
Rational Rational::subtraction( const Rational &s ) {
Rational t; // creates Rational object t.numerator = s.denominator * numerator; t.numerator -= denominator * s.numerator; t.denominator = s.denominator * denominator;
t.reduction(); // store the fraction in reduced form return t;
} // end function subtraction
Rational Rational::multiplication( const Rational &m ) {
Rational t; // creates Rational object t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
t.reduction(); // store the fraction in reduced form return t;
} // end function multiplication
Rational Rational::division( const Rational &v ) {
Rational t; // creates Rational object t.numerator = v.denominator * numerator; t.denominator = denominator * v.numerator;
t.reduction(); // store the fraction in reduced form return t;
} // end function division
void Rational::printRational () {
if ( denominator == 0 ) // validates denominator cout << \ << '\\n'; else if ( numerator == 0 ) // validates numerator cout << 0; else
cout << numerator << '/' << denominator; } // end function printRational
void Rational::printRationalAsDouble() {
cout << static_cast< double >( numerator ) / denominator; } // end function printRationalAsDouble void Rational::reduction() {
int largest;
largest = numerator > denominator ? numerator : denominator; int gcd = 0; // greatest common divisor
for ( int loop = 2; loop <= largest; loop++ )
if ( numerator % loop == 0 && denominator % loop == 0 ) gcd = loop; if (gcd != 0) {
numerator /= gcd; denominator /= gcd; } // end if