國家工信部網(wǎng)站備案實名:湖北自考網(wǎng) 為考生提供湖北自考信息服務(wù),僅供學(xué)習(xí)交流使用,官方信息以湖北教育考試院為準(zhǔn)。
湖北自考在線 湖北學(xué)位英語培訓(xùn)班 湖北成人高考報名 湖北自考視頻免費領(lǐng)取

北大“面向?qū)ο蟪绦蛟O(shè)計”上機試題(含答案) -自考串講筆記

湖北自考網(wǎng) 來源: 時間:2008-11-08 15:25:06

  1、Annie的寵物小屋里有12個籠子,每個籠子可以放不同的動物,包括貓,狗和蛇,但同一時刻一個籠子只能放0只或1只寵物,本題要求完成:

  (1)實現(xiàn)一個簡單的管理系統(tǒng),可以增加,刪除指定籠子中的寵物,查詢每個籠子中存放寵物的情況,統(tǒng)計寵物的種類和數(shù)量。

 ?。?)定義描述寵物小屋的類Shelves,其中包括12個籠子用于存放各種寵物;

  (3)定義虛擬基類Animal,至少包含純虛函數(shù)Showme;

  (4)定義派生類Cat,Dog,Snake,具體實現(xiàn)上述純虛函數(shù)showme,顯示該寵物的種類,名稱,著色,體重和喜歡的食物。

 ?。?)重載輸入>>操作符,使得可以通過cin直接讀入寵物的著色,體重,和喜歡的食物;

 ?。?)編寫main函數(shù),測上述所要求的各種功能;

  Main.cpp

  #include<iostream>

  #include“animal.h”

  using std::cout;

  using std::cin;

  using std::endl;

  int main()

  {

  Shelves * shelves=new Shelves;

  Cat *cat;

  Dog *dog;

  Snake *snake;

  int n;

  int i=0;

  char ch;

  while(i!=5)

  {

  cout<<“ please chiose(1-5):”<<endl;

  cout<<“ 1:add an animal”<<endl;

  cout<<“2:delete an animal”<<endl;

  cout<<“ 3:query”<<endl;

  cout<<“4:stat”<<endl;

  cout<<“5:exit”<<endl;

  cin>>i;

  switch(i)

  {

  case 1:

  cout<<“which cage?”;

  cin>>n;

  cout<<“c:cat d:dog s:snake”<<endl;

  cout<<“please choise an animal:”;

  cin>>ch;

  switch(ch)

  {

  case'c':

  cat=new Cat;

  cin>>*cat;

  if(!shelves ->add(n,cat))

  cat->deleteme();

  break;

  case'd':

  dog=new Dog;

  cin>>*dog;

  if(!shelves->add(n,dog))

  dog->deleteme();

  break;

  case's':

  snake=new Snake;

  cin>>*snake;

  if(!shelves->add(n,snake))

  snake->deleteme();

  break;

  default:

  cout<<“ your choise is wrong”<<endl;

  break;

  }

  break;

  case 3:

  cout<<“ thich cage ?”;

  cin>>n;

  shelves->query(n);

  break;

  case 2:

  cout<<“which cage?”;//由于不想重寫所以就改了數(shù)字;

  cin>>n;

  shelves->Delete(n);

  break;

  case 4:

  shelves->stat();

  break;

  case 5:

  break;

  }

  }

  return 0;

  }

  Animal.h

  #ifndef ANIMAL_H

  #define ANIMAL_H

  #include<iosfwd>

  class Animal

  {

  public:

  virtual void showme()=0;

  virtual void deleteme()=0;

  ~Animal(){}

  protected:

  char *name ;

  char *color;

  float weight;

  char *food;

  int type;

  };

  class Cat:public Animal

  {

  public:

  Cat();

  void showme();

  static int number();

  friend std::istream & operator >>(std::istream & is,Cat &cat);

  void deleteme();

  ~Cat();

  private:

  static int Catnum;

  };

  class Dog:public Animal

  {

  public:

  Dog();

  void showme();

  static int number();

  friend std::istream & operator>>(std::istream & is,Dog &dog);

  void deleteme();

  ~Dog();

  private:

  static int Dognum;

  };

  class Snake:public Animal

  {

  public:

  Snake();

  void showme();

  static int number();

  friend std::istream & operator>>(std::istream & is ,Snake &snake);

  void deleteme();

  ~Snake();

  private:

  static int Snakenum;

  };

  class Shelves

  {

  public:

  Shelves();

  int add(int n,Animal *animal);

  void Delete(int n);

  void query(int n);

  void stat();

  private:

  Animal * shelves[12];

  };

  #endif

  Animal.cpp

  #include<iostream>

  #include“animal.h”

  using std::cout;

  using std::cin;

  using std::endl;

  int Cat::Catnum=0;

  Cat::Cat()

  {

  type=0;

  weight=0;

  name=new char[20];

  color =new char [20];

  food=new char [20];

  Catnum++;

  }

  void Cat::showme()

  {

  cout<<“I am a Cat.”<<endl;

  cout<<“ My name is ”<<name<<endl;

  cout<<“ My color is ”<<color<<endl;

  cout<<“My weight is ”<<weight<<endl;

  cout <<“ My favorite foood is ”<<food <<endl;

  return ;

  }

  int Cat::number()

  {

  return Catnum;

  }

  std::istream & operator>>(std::istream & is ,Cat &cat)

  {

  cout<<“ the cat's name is :”;

  is>>cat.name;

  cout<<endl<<“the cat's color is:”;

  is>>cat.color;

  cout<<endl<<“ the cat's weight is :”;

  is>>cat.weight;

  cout<<endl<<“the cat's fovarite food is :”;

  cin>>cat.food;

  return is;

  }

  void Cat::deleteme()

  {

  Catnum——;

  }

  Cat::~Cat()

  {

  }

  int Dog::Dognum=0;

  Dog::Dog()

  {

  type=1;

  name=new char [20];

  color =new char [20];

  food=new char [20];

  weight=0;

  Dognum++;

  }

  void Dog::showme()

  {

  cout<<endl<<“I am a Dog”<<endl;

  cout<<“My name is ”<<name<<endl;

  cout<<“ My color is ”<<color<<endl;

  cout<<“My weight is ”<<weight<<endl;

  cout<<“My favorite food is ”<<food<<endl;

  return ;

  }

  int Dog::number()

  {

  return Dognum;

  }

  std::istream & operator>>(std::istream &is ,Dog &dog)

  {

  cout<<“the dog's name is”;

  is>>dog.name;

  cout<<endl<<“ the dog's color is ”;

  is>>dog.color;

  cout<<endl<<“the dog's weight is ”;

  is>>dog.weight;

  cout<<endl<<“the dog's fovarite food is:”;

  is>>dog.food;

  return is;

  }

  void Dog::deleteme()

  {

  Dognum——;

  }

  Dog::~Dog()

  {}

  int Snake::Snakenum=0;

  Snake::Snake()

  {

  type=2;

  name=new char [20];

  color=new char [20];

  food=new char [20];

  Snak

結(jié)束
本文標(biāo)簽
特別聲明:1.凡本網(wǎng)注明稿件來源為“湖北自考網(wǎng)”的,轉(zhuǎn)載必須注明“稿件來源:湖北自考網(wǎng)(trillionsbussines.com)”,違者將依法追究責(zé)任;
2.部分稿件來源于網(wǎng)絡(luò),如有不實或侵權(quán),請聯(lián)系我們溝通解決。最新官方信息請以湖北省教育考試院及各教育官網(wǎng)為準(zhǔn)!
限時,免費獲取學(xué)歷提升方案

已幫助10w萬+意向?qū)W歷提升用戶成功上岸

  • 毛澤東思想概論

    毛澤東思想概論

    培訓(xùn)優(yōu)勢:課時考點精講+刷題+沖刺,熟練應(yīng)對考試題型。全程督促學(xué)習(xí),安排好學(xué)習(xí)計劃。 毛澤東思想概論...自考培訓(xùn)
  • 英語二

    英語二

    本課程既是一門語言實踐課程,也是拓寬知識、了解世界文化的重要素質(zhì)課程,它以培養(yǎng)學(xué)習(xí)者的綜合語言應(yīng)用能力為目標(biāo),使他們在學(xué)習(xí)、工作和社會交往中能夠使用英語進行有效的交流。 英語二...自考培訓(xùn)
  • 馬克思主義基本原理概論

    馬克思主義基本原理概論

    本書包括兩個部分:自學(xué)考試大綱和基本原理。主要內(nèi)容有,馬克思主義是關(guān)于工人階級和人類解放的科學(xué),物質(zhì)世界及其發(fā)展規(guī)律,認(rèn)識的本質(zhì)及其規(guī)律,人類社會及其發(fā)展規(guī)律,資本主義的形成及其發(fā)展,資本主義發(fā)展的歷史進程,社會主義社會及其進程,共產(chǎn)主義社會及其進程等。 馬克思主義基本原理概論...自考培訓(xùn)
  • 思想道德修養(yǎng)與法律基礎(chǔ)

    思想道德修養(yǎng)與法律基礎(chǔ)

    《思想道德修養(yǎng)與法律基礎(chǔ)》課具有鮮明的政治性、思想性、理論性、針對性、科學(xué)性、知識性以及實踐性和修養(yǎng)性。它包羅政治、思想、道德、心理本質(zhì)、學(xué)習(xí)成才和法律本質(zhì)等內(nèi)容,指導(dǎo)和回答大學(xué)生在人生、抱負(fù)、信念等方面遍及關(guān)心和迫切需要解決的問題。 思想道德修養(yǎng)與法律基礎(chǔ)...自考培訓(xùn)
  • 中國近代史綱要

    中國近代史綱要

    “中國近現(xiàn)代史綱要”全國高等教育自學(xué)考試指定教材,依據(jù)中央審定的普通高等學(xué)?!爸袊F(xiàn)代史綱要”編寫大綱以及馬克思主義理論研究和建設(shè)工程重點教材《中國近現(xiàn)代史綱要》,結(jié)合自學(xué)考試的特點設(shè)計了十章,集中講述1840年鴉片戰(zhàn)爭爆發(fā)一直到2007年中國共產(chǎn)黨第十七次全國代表大會召開的160多年的中國近現(xiàn)代歷史。 中國近代史綱要...自考培訓(xùn)
微信公眾號 考試交流群
湖北自考網(wǎng)微信公眾號

掃一掃關(guān)注微信公眾號

隨時獲取湖北省自考政策、通知、公告以及各類學(xué)習(xí)資料、學(xué)習(xí)方法、課程。