class Grade char letter float score void calc

  • Slides: 50
Download presentation

class Grade { char letter; float score; void calc. Grade( ); public: void set.

class Grade { char letter; float score; void calc. Grade( ); public: void set. Score(float s) { score = s; calc. Grade( ); } float get. Score( ) { return score; } char get. Letter( ) { return letter; } };

// Definition of member function Grade: : calc. Grade void Grade: : calc. Grade(

// Definition of member function Grade: : calc. Grade void Grade: : calc. Grade( ) { if (score > 89) letter = 'A'; else if (score > 79) letter = 'B'; else if (score > 69) letter = 'C'; else if (score > 59) letter = 'D'; else letter = 'F'; }

class Test : public Grade { int num. Questions; float points. Each; int num.

class Test : public Grade { int num. Questions; float points. Each; int num. Missed; public: Test( int, int ); };

//参数q 代表问题的个数,m代表答错的题数. Test: : Test(int q, int m) { float numeric. Grade; num. Questions

//参数q 代表问题的个数,m代表答错的题数. Test: : Test(int q, int m) { float numeric. Grade; num. Questions = q; num. Missed = m; points. Each = 100. 0 f / num. Questions; numeric. Grade = 100. 0 f - num. Missed * points. Each ; set. Score(numeric. Grade); } 6

void main( ) { int questions, missed; cout << "How many questions ? ";

void main( ) { int questions, missed; cout << "How many questions ? "; cin >> questions; cout << "How many questions missed? "; cin >> missed; Test exam(questions, missed); cout. precision(2); cout << "n The score is " << exam. get. Score( ); cout << "n The grade is " << exam. get. Letter( ); } 5 -1. cpp

class Grade { protected: char letter; float score; void calc. Grade( ); public: void

class Grade { protected: char letter; float score; void calc. Grade( ); public: void set. Score(float s) { score = s; calc. Grade( ); } float get. Score( ) { return score; } char get. Letter( ) { return letter; } };

class Test : public Grade { int num. Questions; float points. Each; int num.

class Test : public Grade { int num. Questions; float points. Each; int num. Missed; public: Test( int, int ); void adjust. Score( ); // 新增加的函数 };

//构造函数略 void Test: : adjust. Score( ) { if ((score - int(score)) >= 0.

//构造函数略 void Test: : adjust. Score( ) { if ((score - int(score)) >= 0. 5 f ) { score += 0. 5 ; calc. Grade( ); } } who

Example: private: x protected: y public: z private base class x is inaccessible private:

Example: private: x protected: y public: z private base class x is inaccessible private: y private: z protected base class x is inaccessible protected: y protected: z public base class x is inaccessible protected: y public: z

class Base. Demo { public: Base. Demo( ) { cout << "In Base. Demo

class Base. Demo { public: Base. Demo( ) { cout << "In Base. Demo constructor. n"; } ~Base. Demo( ) { cout << "In Base. Demo destructor. n"; } }; class Derived. Demo : public Base. Demo { public: Derived. Demo( ) { cout << "In Derived. Demo constructor. n"; } ~ Derived. Demo( ) { cout << "In Derived. Demo destructor. n"; } };

void main( ) { cout << "下面定义一个 Derived. Demo 类对象 n" ; Derived. Demo

void main( ) { cout << "下面定义一个 Derived. Demo 类对象 n" ; Derived. Demo object ; cout << "下面将要结束程序 n" ; } 5 -3. cpp

class Rectangle { protected: float width , length, area; public: Rectangle( ) { width

class Rectangle { protected: float width , length, area; public: Rectangle( ) { width = length = area = 0. 0 f ; } Rectangle ( float w, float l ) { width = w; length = l; area = width * length; } float get. Area( ) { return area; } float get. Len( ) { return length; } float get. Width( ){ return width; } };

class Cube : public Rectangle { protected: float height, volume; public: Cube(float, float); float

class Cube : public Rectangle { protected: float height, volume; public: Cube(float, float); float get. Height ( ) { return height; } float get. Vol( ) { return volume; } }; Cube: : Cube(float w, float l, float h) : Rectangle(w, l) { height = h ; volume = area * height ; } 5 -4. cpp

class Mile. Dist { protected: float miles; public: void set. Dist( float d )

class Mile. Dist { protected: float miles; public: void set. Dist( float d ) { miles = d; } float get. Dist( ) { return miles; } }; class Feet. Dist : public Mile. Dist { protected: float feet; public: void set. Dist(float); float get. Dist( ) { return feet; } float get. Miles( ) { return miles; } };

void Feet. Dist: : set. Dist(float ft) { feet = ft; Mile. Dist: :

void Feet. Dist: : set. Dist(float ft) { feet = ft; Mile. Dist: : set. Dist(feet/5280); //Call base class function } void main( ) { Feet. Dist feet; float ft; cout << "A distance in feet and convert it to miles: "; cin >> ft; 哪一个 feet. set. Dist(ft); ? cout << feet. get. Dist( ) << " feet equals "; cout << feet. get. Miles( ) << " miles. n"; } 5 -5. cpp

class Mile. Dist { protected: float miles; public: void set. Dist(float d){ miles =

class Mile. Dist { protected: float miles; public: void set. Dist(float d){ miles = d; } float get. Dist( ) { return miles; } float square( ) { return get. Dist( ) * get. Dist( ); } }; who

class Feet. Dist : public Mile. Dist { protected: float feet; public: void set.

class Feet. Dist : public Mile. Dist { protected: float feet; public: void set. Dist( float ); float get. Dist( ) { return feet; } float get. Miles( ) { return miles; } }; void Feet. Dist: : set. Dist(float ft ) { feet = ft; Mile. Dist: : set. Dist(feet / 5280); }

void main( ) { Feet. Dist feet; float ft; cout << "请输入以英尺为单位的距离:" ; cin

void main( ) { Feet. Dist feet; float ft; cout << "请输入以英尺为单位的距离:" ; cin >> ft ; feet. set. Dist( ft ) ; cout << feet. get. Dist( ) << " 英尺等于 " ; cout << feet. get. Miles( ) << " 英里n" ; cout << feet. get. Dist( ) << "英尺的平方等于 " ; cout << feet. square( ) << "平方英尺n" ; } 5 -7. cpp

class Student // 例 5 -9 { protected: char name[51]; int hours; public: Student(

class Student // 例 5 -9 { protected: char name[51]; int hours; public: Student( ){ name[0] = hours = 0; } void set. Name(char *n) { strcpy(name, n); } // Pure virtual function virtual void set. Hours( ) = 0; virtual void show. Info( ) = 0; };

class Cs. Student : public Student { int math. Hours , cs. Hours; public:

class Cs. Student : public Student { int math. Hours , cs. Hours; public: void set. Math. Hours(int mh){ math. Hours = mh; } void set. Cs. Hours(int csh){ cs. Hours = csh; } void set. Hours( ) { hours = math. Hours + cs. Hours; } void show. Info( ); };

void Cs. Student: : show. Info( ) { cout << " Name: " <<

void Cs. Student: : show. Info( ) { cout << " Name: " << name << endl; cout << "t Math: " << math. Hours << endl; cout << "t CS : " << cs. Hours; cout << "nt Total Hours: " << hours; } void main( ) { Cs. Student student 1; char ch. Input[51]; int. Input;

cout << "Enter the following information: n"; cout << "Name: "; cin. getline(ch. Input,

cout << "Enter the following information: n"; cout << "Name: "; cin. getline(ch. Input, 51); student 1. set. Name(ch. Input); cout << "Number of math hours completed: "; cin >> int. Input; student 1. set. Math. Hours( int. Input ); cout << "Number of CS hours completed: "; cin >> int. Input; student 1. set. Cs. Hours(int. Input); student 1. set. Hours( ); cout << "n. STUDENT INFORMATIONn"; student 1. show. Info( ); } 5 -9. cpp

class Base { public: void show( ){ cout << "In Base class. n"; }

class Base { public: void show( ){ cout << "In Base class. n"; } }; class Derived : public Base { public: void show( ){ cout << "In Derived class. n"; } }; void main( ) { Base Derived *bptr; dobject; bptr = &dobject; bptr->show( ); } 1. 调用谁? 2. 什么原因? 3. 如何解决? 4. 引用调用呢? 5 -10. cpp

5. 7 多重继承 class A Class C inherits all of Class B's class B

5. 7 多重继承 class A Class C inherits all of Class B's class B class C members, including the ones Class B inherited from Class A. 43

5. 8 多继承 • 如果一个子类具有两个或多个直接父类,那么就 称为多继承。 class A class B class C Constructors are

5. 8 多继承 • 如果一个子类具有两个或多个直接父类,那么就 称为多继承。 class A class B class C Constructors are called in the order they are listed in the first line of the class declaration. 44

class Date // 例 5 -12 { protected: int day , month , year;

class Date // 例 5 -12 { protected: int day , month , year; public: Date(int d, int m, int y) { day = d; month = m; year = y; } int int }; get. Day( ) { return day; } get. Month( ) { return month; } get. Year( ) { return year; }

class Time { protected: int hour , min , sec; public: Time(int h, int

class Time { protected: int hour , min , sec; public: Time(int h, int m, int s) { hour = h; min = m; sec = s; } int get. Hour( ){ return hour; } int get. Min( ) { return min; } int get. Sec( ) { return sec; } };

class Date. Time : public Date, public Time { protected: 这个顺序很重要 char d. TString[20];

class Date. Time : public Date, public Time { protected: 这个顺序很重要 char d. TString[20]; public: Date. Time( int, int, int); void get. Date. Time( char *str) { strcpy(str, d. TString); } };

Date. Time: : Date. Time(int yr, int mon, int dy, int hr, int mt,

Date. Time: : Date. Time(int yr, int mon, int dy, int hr, int mt, int sc) : Time(hr, mt, sc), Date(dy, mon, yr) { char temp[10]; // In the form YY/MM/DD strcpy(d. TString, itoa(get. Year( ), temp, 10)); strcat(d. TString, "/"); strcat(d. TString, itoa(get. Month( ), temp, 10)); strcat(d. TString, "/"); strcat(d. TString, itoa(get. Day( ), temp, 10)); strcat(d. TString, " "); strcat(d. TString, itoa(get. Hour( ), temp, 10)); strcat(d. TString, ": "); strcat(d. TString, itoa(get. Min( ), temp, 10)); strcat(d. TString, ": "); strcat(d. TString, itoa(get. Sec( ), temp, 10)); }

void main( ) { char formatted[20]; Date. Time past. Day(28, 7, 2010, 11, 32,

void main( ) { char formatted[20]; Date. Time past. Day(28, 7, 2010, 11, 32, 27) ; past. Day. get. Date. Time( formatted ); cout << formatted << endl; } 5 -12. cpp

#include <ctime> #include <iostream> using namespace std; void main( ) { char tmpbuf[128]; 获取系统时间

#include <ctime> #include <iostream> using namespace std; void main( ) { char tmpbuf[128]; 获取系统时间 // Display operating system-style date and time _strtime( tmpbuf ); cout<< "time: t"<<tmpbuf<<endl ; _strdate( tmpbuf ); cout<< "date: t"<<tmpbuf<<endl ; } 5 -a. cpp