⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 films.h

📁 面向对象技术作业银行系统
💻 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 + -