?? films.h
字號:
#include<iostream>
#include<fstream>
#include<string>
#include<cctype>
using namespace std;
class Film{
public:
Film(){
store_title();
store_director();
store_time();
store_quality();
}
void store_title(const string& t){
title=t;
}
void store_title(const char* t=""){
title=t;
}
void store_director(const string& d){
director=d;
}
void store_director(const char* d=""){
director=d;
}
void store_time(int t=0){time=t;}
void store_quality(int q=0){quality=q;}
virtual void output();
virtual void input(ifstream&);
static bool read_input(const char*,Film*[],int);
private:
string title;
string director;
int time;//in minutes
int quality;//0(bad) to 4(tops)
};
void Film::input(ifstream& fin){
string inbuff;
getline(fin,inbuff);
store_title(inbuff);
getline(fin,inbuff);
store_director(inbuff);
getline(fin,inbuff);
store_time(atoi(inbuff.c_str()));
getline(fin,inbuff);
store_quality(atoi(inbuff.c_str()));
}
void Film::output(){
cout<<"Title:"<<title<<endl;
cout<<"Director:"<<director<<endl;
cout<<"Time:"<<time<<" mins"<<endl;
cout<<"Quality: ";
for(int i=0;i<quality;i++)
cout<<'*';
cout<<endl;
}
class SongAndDance:public Film{
public:
SongAndDance(){
store_singer();
store_dancer();
}
void store_singer(const string& s){singer=s;}
void store_singer(const char* s=""){singer=s;}
void store_dancer(const string& d){dancer=d;}
void store_dancer(const char* d=""){dancer=d;}
virtual void output();
virtual void input(ifstream&);
private:
string singer;
string dancer;
};
void SongAndDance::input(ifstream& fin){
Film::input(fin);
string inbuff;
getline(fin,inbuff);
store_singer(inbuff);
getline(fin,inbuff);
store_dancer(inbuff);
}
void SongAndDance::output(){
Film::output();
cout<<"Singer:"<<singer<<endl;
cout<<"Dancer:"<<dancer<<endl;
}
bool Film::read_input(const char* file,Film* films[],
int n){
string inbuff;
ifstream fin(file);
if(!fin) return false;
int next=0;
while(getline(fin,inbuff)&&next<n){
if(inbuff=="Film")
films[next]=new Film();
else if(inbuff=="SongAndDance")
films[next]=new SongAndDance();
else
continue;
films[next++]->input(fin);
}
fin.close();
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -