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

📄 newspaper.h

📁 邮局报刊杂志订阅系统
💻 H
字号:
#include"office.h"class Newspaper{public:	Newspaper(char* pmagazinecode)	{strncpy(number,pmagazinecode,sizeof(number)); 	number[sizeof(number)-1]='\0';	}//构造函数	Newspaper(char*ppname,char*ppnumber,float ppunitprice,char*ppkind,char*ffname);    Newspaper(Newspaper&n):off(n.off)	{		strncpy(name,n.name,sizeof(name)); 	name[sizeof(name)-1]='\0';	strncpy(number,n.number,sizeof(number)); 	number[sizeof(number)-1]='\0';	strncpy(kind,n.kind,sizeof(kind)); 	kind[sizeof(kind)-1]='\0';	unitprice=n.unitprice;	}	unsigned NoNewspaper();//取报纸号	char *NewspaperName(){return name;}        char *NewspaperNumber(){return number;}		float NewspaperUnitprice(){return unitprice;} 		char  *NewpaperName(){return name;}		void Display();        friend	void	creatnewspaper();	 static Newspaper *countfind(char* sn);static Newspaper *pFirst;//链表首指针	       Newspaper *pNext;//指向下一个的指针		    static int count;		friend	void searchnewspaper();		friend void creatnewspaperindent();		friend void newspaperlook();		virtual void display(ostream&out);protected:		char name[20];//报刊名	char number[10];//报刊号	float unitprice;//单价	char kind[10];//发行日	office off;	};ostream& operator<<(ostream& out,office&of);void Newspaper::display(ostream&out){	out<<setiosflags(ios::left)<<setw(20)<<name<<"      "		<<number<<"      "<<unitprice<<"      "<<kind<<"      "<<off.Name();}ostream& operator<<(ostream& out,Newspaper&of){	of.display(out);	out<<endl;	return out;}//............................//............................int Newspaper::count=0;Newspaper *Newspaper::pFirst=0;Newspaper::Newspaper(char*ppname,char*ppnumber,float ppunitprice,char*ppkind,char*ffname):off(ffname){	strncpy(name,ppname,sizeof(name)); 	name[sizeof(name)-1]='\0';	strncpy(number,ppnumber,sizeof(number)); 	name[sizeof(number)-1]='\0';    strncpy(kind,ppkind,sizeof(kind)); 	name[sizeof(kind)-1]='\0';	unitprice=ppunitprice;	pNext=pFirst;	pFirst=this;	count++;}//......................void newspaperread(){ifstream fin("Newspaper.txt");char *ppname=new char[20];char *ppnumber=new char[10];float ppunitprice;char *ppkind=new char[10];char *ffname=new char[20];Newspaper* ps=0;fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;while(!fin.eof()){	ps=new Newspaper(ppname,ppnumber,ppunitprice,ppkind,ffname);	ps=0;    fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;}delete []ppname;delete []ppnumber;delete []ppkind;delete []ffname;}Newspaper *Newspaper::countfind(char* sn){   	Newspaper *p=0;	for(Newspaper *ps=pFirst;ps;ps=ps->pNext)	{		if(strcmp(ps->number,sn)==0)		{			p=ps;			break;		}		else 		    p=(Newspaper*)0;	}	return p;}void Newspaper::Display(){ 	cout<<"报刊名:"<<name<<endl<<"报刊号:"<<number<<endl<<"单价:"<<unitprice<<endl<<"发行日:"<<kind<<endl<<"报社名:"<<off.Name()<<endl;}//..................//......................void newspaperlookall(){ifstream fin("Newspaper.txt");char *ppname=new char[20];char *ppnumber=new char[10];float ppunitprice;char *ppkind=new char[10];char *ffname=new char[20];Newspaper* ps=0;fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;while(!fin.eof()){	ps=new Newspaper(ppname,ppnumber,ppunitprice,ppkind,ffname);		ps->Display();   ps=0;    fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;}delete []ppname;delete []ppnumber;delete []ppkind;delete []ffname; }//...................//....................void searchnewspaper(){       newspaperread();	if(Newspaper::count==0)                                cout<<"无报刊数据存在!"<<endl;    else	{		char c; 		do{ 			char sn[10]; 			cout<<"请输入所查询报刊的报刊号"<<endl; 			cin>>sn; 			Newspaper* pS=Newspaper::countfind(sn); 			if(pS) 			{ 				pS->Display(); 			 			} 			else 				cout<<"不存在此报刊号!"<<endl; 				cout<<endl<<"需要继续查阅报纸吗?(y/n)"<<endl; 				cin>>c; 		}while(c=='y'||c=='Y');	}}//....................//.........................void creatnewspaper()                             //创建报刊{ 	char c; 	do{ 		char* ppname=new char[20]; 		char* ppnumber=new char[10]; 		float ppunitprice;		char* ppkind=new char[10];		char* ffname=new char[20];			cout<<"请输入报刊名"<<endl; 		cin>>ppname; 		cout<<"请输入报刊号"<<endl; 		cin>>ppnumber; 		cout<<"请输入报纸的单价"<<endl; 		cin>>ppunitprice; 		cout<<"请输入报纸的发行日种类(日报请输入daily,周报请输入weeky,月报请输入monthy"<<endl; 		cin>>ppkind; 		cout<<"请输入报社名:"<<endl; 		cin>>ffname; 				Newspaper* pS=new Newspaper(ppname,ppnumber,ppunitprice,ppkind,ffname);		ofstream out("Newspaper.txt",ios::ate);			out<<*pS;		cout<<"您创建一个报刊数据已成功!"<<endl; 		pS->Display(); 		delete[]ppname; 		delete[]ppnumber;		delete[]ppkind;		delete[]ffname;		cout<<endl<<"需要继续创建报刊数据库吗?(y/n)"<<endl; 		cin>>c; 	}while(c=='y'||c=='Y'); } //........................................................//..............................//杂志类的定义//..............................class Magazine{public:	Magazine(char* pmagazinecode)	{strncpy(number,pmagazinecode,sizeof(number)); 	number[sizeof(number)-1]='\0';	}//构造函数	Magazine(char*ppname,char*ppnumber,float ppunitprice,char*ppkind,char*ffname);    Magazine(Magazine&n):off(n.off)	{		strncpy(name,n.name,sizeof(name)); 	name[sizeof(name)-1]='\0';	strncpy(number,n.number,sizeof(number)); 	number[sizeof(number)-1]='\0';	strncpy(kind,n.kind,sizeof(kind)); 	kind[sizeof(kind)-1]='\0';	unitprice=n.unitprice;	}	unsigned NoMagazine();//取报纸号	void Display();//显示杂志信息	char *MagazineName(){return name;}        char *MagazineNumber(){return number;}		float MagazineUnitprice(){return unitprice;} 	   friend	void	creatmagazine();   friend  void officemagazinefind(); static Magazine *countfind(char* sn); static Magazine *officefind(char *sn);static Magazine *pFirst;//链表首指针	       Magazine *pNext;//指向下一个的指针		    static int count;	friend		void searchmagazine();	friend void creatmagazineindent();	friend void magazinelook();	friend void magazinefind();	virtual void display(ostream&out);protected:		char name[20];//报刊名	char number[10];//报刊号	float unitprice;//单价	char kind[10];//发行日	office off;	};ostream& operator<<(ostream& out,Magazine&of);void Magazine::display(ostream&out){	out<<setiosflags(ios::left)<<setw(20)<<name<<"      "		<<number<<"      "<<unitprice<<"      "<<kind<<"      "<<off.Name();}ostream& operator<<(ostream& out,Magazine&of){	of.display(out);	out<<endl;	return out;}//.....................//........................//.....................int Magazine::count=0;Magazine *Magazine::pFirst=0;Magazine::Magazine(char*ppname,char*ppnumber,float ppunitprice,char*ppkind,char*ffname):off(ffname){	strncpy(name,ppname,sizeof(name)); 	name[sizeof(name)-1]='\0';	strncpy(number,ppname,sizeof(number)); 	name[sizeof(number)-1]='\0';    strncpy(kind,ppkind,sizeof(kind)); 	name[sizeof(kind)-1]='\0';	unitprice=ppunitprice;	pNext=pFirst;	pFirst=this;	count++;}Magazine *Magazine::countfind(char* sn){   	Magazine *p=0;	for(Magazine *ps=pFirst;ps;ps=ps->pNext)	{		if(strcmp(ps->number,sn)==0)		{			p=ps;			break;		}		else 		    p=(Magazine*)0;	}	return p;}//................//...........void Magazineread();Magazine *Magazine::officefind(char* sn){   Magazineread();	Magazine *p=0;	for(Magazine *ps=pFirst;ps;ps=ps->pNext)	{		if(strcmp(ps->off.Name(),sn)==0)		{			p=ps;				}		else 		    p=(Magazine*)0;	}	return p;}void Magazine::Display(){cout<<"杂志名:"<<name<<endl<<"杂志号:"<<number<<endl<<"单价:"<<unitprice<<endl<<"发祥间隔期:"<<kind<<endl<<"杂志社名:"<<off.Name()<<endl;}////.........................//...........杂志查询.......void Magazineread(){ifstream fin("Magazine.txt");char *ppname=new char[20];char *ppnumber=new char[10];float ppunitprice;char *ppkind=new char[10];char *ffname=new char[20];Magazine *ps=0;int i=0;fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;while(!fin.eof()){	ps=new Magazine(ppname,ppnumber,ppunitprice,ppkind,ffname);	ps=0;    fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;}delete []ppname;delete []ppnumber;delete []ppkind;delete []ffname;}//.....void magazinelookall(){ifstream fin("Magazine.txt");char ppname[20];char ppnumber[10];float ppunitprice;char ppkind[10];char ffname[20];Magazine *ps=0;int i=0;fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;while(!fin.eof()){	ps=new Magazine(ppname,ppnumber,ppunitprice,ppkind,ffname);		ps->Display();	    fin>>ppname>>ppnumber>>ppunitprice>>ppkind>>ffname;}}//.................void searchmagazine(){   void Magazineread();	if(Magazine::count==0)                        	    cout<<"无杂志数据存在!"<<endl;    else	{		char c; 		do{ 			char sn[10]; 			cout<<"请输入所查询杂志的杂志号"<<endl; 			cin>>sn; 			Magazine* pS=Magazine::countfind(sn); 			if(pS) 			{ 				pS->Display(); 			 			} 			else 				cout<<"不存在此杂志号!"<<endl; 				cout<<endl<<"需要继续查阅报纸吗?(y/n)"<<endl; 				cin>>c; 		}while(c=='y'||c=='Y');	}}//..............................//..................创建杂志......void creatmagazine()                             //创建{ 	char c; 	do{ 		char* ppname=new char[40]; 		char* ppnumber=new char[60]; 		float ppunitprice;		char* ppkind=new char[10];		char* ffname=new char[20];			cout<<"请输入杂志名"<<endl; 		cin>>ppname; 		cout<<"请输入杂志号"<<endl; 		cin>>ppnumber; 		cout<<"请输入杂志的单价"<<endl; 		cin>>ppunitprice; 		cout<<"请输入杂志的发行间隔期(以月为单位)"<<endl; 		cin>>ppkind; 		cout<<"请输入杂志社名:"<<endl; 		cin>>ffname; 				Magazine* pS=new Magazine(ppname,ppnumber,ppunitprice,ppkind,ffname);       ofstream out("Magazine.txt",ios::ate);			out<<*pS;		cout<<"您创建一个杂志数据已成功!"<<endl; 		pS->Display(); 		delete[]ppname; 		delete[]ppnumber;		delete[]ppkind;		delete[]ffname;		cout<<endl<<"需要继续创建杂志数据库吗?(y/n)"<<endl; 		cin>>c; 	}while(c=='y'||c=='Y'); } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -