【14.4】c++ primer plus 课后编程答案

来源:互联网 发布:导购网站源码 下载 编辑:程序博客网 时间:2024/06/07 08:09

C++ PRIMER PLUS 课后答案 
使用IDE为window7系统下的VS2010

/*user.h*/#ifndef USERSH_H_#define USERSH_H_#include <string>#include <valarray>#include <iostream>#include <ctime>#include <cstdlib>using std::ostream;using std::istream;using std::string;class Person{protected:string firstName;string lastName;public:Person(const string & fn, const string & ln);Person(const Person & p);Person(){firstName = "None"; lastName = "None";}virtual ~Person(){}virtual void Show() const;};class Gunslinger : virtual public Person{private:int Mark;double Time;double Draw() const { return Time;}public:Gunslinger() : Person(), Mark(0), Time(0) {}Gunslinger(const string & fn, const string & ln, int m, double tm): Person(fn, ln), Mark(m), Time(tm) {}Gunslinger(const Person & p, int m, double tm): Person(p), Mark(m), Time(tm) {}Gunslinger (const Gunslinger & g);double GetTime() const {return Time;}virtual ~Gunslinger() {}virtual void Show() const;};class PokerPlayer : virtual public Person{private:int Draw () const;public:PokerPlayer() : Person() {}PokerPlayer(const string & fn, const string & ln) : Person(fn, ln) {}PokerPlayer(const PokerPlayer & p) : Person(p) {}int get() const {return Draw();}virtual void Show() const;virtual ~PokerPlayer() {}};class BadDude : public Gunslinger, public PokerPlayer{private:double GDraw () const;int CDraw () const;public:BadDude() : Person() {}BadDude(const string & fn, const string & ln, int m, double tm) ;BadDude(const BadDude & p) : Person(p) {}void Show() const;~BadDude(){}};#endif

/*userfucntion.cpp*/#include "usersh.h"#include <iostream>#include <cstring>using std::cout;using std::cin;using std::endl;using std::string;using std::ostream;using std::istream;Person::Person(const string & fn, const string & ln){firstName = fn;lastName = ln;}Person::Person(const Person & p){firstName = p.firstName;lastName = lastName;}void Person::Show() const{cout << "first name :" << firstName <<endl;cout << "last name: " << lastName <<endl;}Gunslinger ::Gunslinger(const Gunslinger & g){firstName = g.firstName;lastName = g.lastName;Mark = g.Mark;Time = g.Time;}void Gunslinger::Show() const{Person::Show();cout << "mark: " << Mark << endl;cout << "time : " << Draw() << endl;}int PokerPlayer::Draw() const{srand((unsigned) time(0));int x = 0;x = rand() % 52 + 1;return x;}void PokerPlayer::Show() const{Person::Show();cout << "rand: " << Draw() << endl;}double BadDude::GDraw() const{return GetTime();}int BadDude::CDraw() const{return get();}BadDude::BadDude(const string & fn, const string & ln, int m, double tm) : Person(fn, ln), Gunslinger(fn, ln, m, tm) {}void BadDude::Show() const{Person::Show();cout << "time : " << GetTime() << endl;cout << "rand : " << CDraw() <<endl;}


/*main*/#include <iostream>#include <Windows.h>#include <cstring>#include "usersh.h"using std::cout;using std::cin;using std::endl;int main(){   Person * Test[4];Test[0] = new Person ("le", "ming");Test[1] = new Gunslinger("Qu", "www", 10, 14);Test[2] = new PokerPlayer("wang", "5");Test[3] = new BadDude("gua", "opr", 14, 20);for(int i = 0; i < 4; i++){Test[i]->Show();cout << endl;}for(int i = 0; i < 4; i++)delete Test[i];system("pause");return 0;}



阅读全文
0 0
原创粉丝点击