1. 程式人生 > >C++學習(20)

C++學習(20)

return 一個 AR dma ted clu 計算機應用 b+ elb

  1 //圖書館信息-公有繼承舉例
  2 //圖書館有兩種類型的資料:一種是圖書,一種是雜誌.
  3 //圖書和雜誌有一些共同的地方,因此可以設計一個資料類作為它們的基類.
  4 //資料類的成員變量包括名字和條碼.
  5 //圖書類的成員變量除繼承基類的名字和條碼外,還包括作者和內部分類號
  6 //雜誌類的成員變量除繼承基類的名字和條碼外,還包括卷號
  7 #include<iostream.h>
  8 #include<string.h>
  9 
 10 //資料類
 11 class Retrieval{
 12     protected:
 13         char
Title[40];//名字 14 long Code;//條碼 15 public: 16 Retrieval(); 17 Retrieval(char *title,long code); 18 long GetCode(){ 19 return this->Code; 20 } 21 void Show(); 22 }; 23 24 Retrieval::Retrieval(){ 25 strcpy(Title,""); 26 Code=0
; 27 } 28 29 Retrieval::Retrieval(char *title,long code){ 30 strcpy(Title,title); 31 Code=code; 32 } 33 34 void Retrieval::Show(){ 35 cout<<"資料名字:"<<Title<<\t<<Code<<endl; 36 } 37 38 //圖書類 39 class Book:public Retrieval{ 40 private: 41 char
Author[20];//作者名 42 char IndexCode[10];//內部分類號 43 public: 44 Book(); 45 Book(char *title,long code,char *author,char *indexcode); 46 void Show(); 47 }; 48 49 Book::Book(){ 50 strcpy(Author,""); 51 strcpy(IndexCode,""); 52 } 53 54 Book::Book(char *title,long code,char *author,char *indexcode):Retrieval(title,code){ 55 strcpy(Author,author); 56 strcpy(IndexCode,indexcode); 57 } 58 void Book::Show(){ 59 cout<<"圖書:"<<endl; 60 cout<<"名字:"<<Title<<endl; 61 cout<<"條碼:"<<Code<<endl; 62 cout<<"作者:"<<Author<<endl; 63 cout<<"內部分類號:"<<IndexCode<<endl; 64 } 65 66 //雜誌類 67 class Magazine:public Retrieval{ 68 private: 69 int Volume;//卷號 70 public: 71 Magazine(); 72 Magazine(char *title,long code,int vol); 73 void Show(); 74 }; 75 76 Magazine::Magazine(){ 77 Volume=0; 78 } 79 80 Magazine::Magazine(char *title,long code,int vol){ 81 strcpy(Title,title); 82 Code=code; 83 Volume=vol; 84 } 85 86 void Magazine::Show(){ 87 cout<<"雜誌:"<<endl; 88 cout<<"名字:"<<Title<<endl; 89 cout<<"條碼:"<<Code<<endl; 90 cout<<"卷號:"<<Volume<<endl; 91 } 92 93 94 //讀者類 95 class Reader{ 96 private: 97 char Name[20];//讀者姓名 98 long Code;//讀者編號 99 100 Book *books;//所借圖書 101 int CounterB;//所借圖書的數量 102 Magazine *magazines;//所借雜誌 103 int CounterM;//所借雜誌的數量 104 public: 105 Reader(); 106 Reader(char *name,long code); 107 ~Reader(); 108 109 void Show();//顯示讀者的信息 110 void ShowBooks();//顯示所有借的圖書 111 void AddBook(Book it);//借圖書 112 void DelBook(Book it);//還圖書 113 void ShowMagazines();//顯示所有借的雜誌 114 void AddMagazine(Magazine it);//借雜誌 115 void DelMagazine(Magazine it);//還雜誌 116 }; 117 118 Reader::Reader(){ 119 strcpy(Name,""); 120 Code=0; 121 books=new Book[5]; 122 CounterB=0; 123 magazines=new Magazine[10]; 124 CounterM=0; 125 } 126 127 Reader::Reader(char *name,long code){ 128 strcpy(Name,name); 129 Code=code; 130 books=new Book[5];//默認最多只能借5本圖書 131 CounterB=0; 132 magazines=new Magazine[10];//默認最多只能借10本雜誌 133 CounterM=0; 134 } 135 136 Reader::~Reader(){ 137 delete books; 138 delete magazines; 139 } 140 141 //顯示讀者的信息 142 void Reader::Show(){ 143 cout<<"讀者:"<<endl; 144 cout<<"姓名:"<<Name<<endl; 145 cout<<"編號:"<<Code<<endl; 146 } 147 148 //顯示所有借的圖書 149 void Reader::ShowBooks(){ 150 if(CounterB==0){ 151 cout<<"圖書已經還清"<<endl; 152 } 153 for(int i=0;i<CounterB;i++){ 154 books[i].Show(); 155 } 156 } 157 158 //借圖書 159 void Reader::AddBook(Book it){ 160 if(CounterB<5){ 161 books[CounterB]=it; 162 CounterB++; 163 }else{ 164 cout<<"你已經借滿5本圖書"<<endl; 165 } 166 } 167 168 //還圖書 169 void Reader::DelBook(Book it){ 170 for(int i=0;i<CounterB;i++){ 171 if( books[i].GetCode()==it.GetCode() ){ 172 break; 173 } 174 } 175 for(int j=i;j<CounterB;j++){ 176 books[j]=books[j+1]; 177 } 178 CounterB--; 179 } 180 181 //顯示所有借的雜誌 182 void Reader::ShowMagazines(){ 183 if(CounterM==0){ 184 cout<<"雜誌已經還清"<<endl; 185 } 186 for(int i=0;i<CounterM;i++){ 187 magazines[i].Show(); 188 } 189 } 190 191 //借雜誌 192 void Reader::AddMagazine(Magazine it){ 193 if(CounterM<10){ 194 magazines[CounterM]=it; 195 CounterM++; 196 }else{ 197 cout<<"你已經借滿10本雜誌"<<endl; 198 } 199 } 200 201 //還雜誌 202 void Reader::DelMagazine(Magazine it){ 203 for(int i=0;i<CounterM;i++){ 204 if( magazines[i].GetCode()==it.GetCode() ){ 205 break; 206 } 207 } 208 for(int j=i;j<CounterM;j++){ 209 magazines[j]=magazines[j+1]; 210 } 211 CounterM--; 212 } 213 //char *title,long code,char *author,char *indexcode 214 //char *title,long code,int vol 215 int main(){ 216 Book b1("c++面向對象程序設計",10001,"朱戰立","P306/5"); 217 Book b2("數據結構--使用C語言",10002,"朱戰立","P306/6"); 218 219 Magazine m1("計算機學報",20001,13); 220 Magazine m2("計算機應用",20002,12); 221 222 Reader r1("張三",30001); 223 Reader r2("李四",30002); 224 r1.Show(); 225 r2.Show(); 226 227 r1.AddBook(b1); 228 r1.AddBook(b2); 229 r1.ShowBooks(); 230 r1.DelBook(b1); 231 r1.ShowBooks(); 232 233 r2.AddMagazine(m1); 234 r2.AddMagazine(m2); 235 236 r2.DelMagazine(m1); 237 r2.ShowMagazines(); 238 return 0; 239 }

技術分享圖片

C++學習(20)