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

📄 indent.h

📁 邮局报刊杂志订阅系统
💻 H
字号:
#include<iostream.h>#include"newspaper.h"class Indent{public:	Indent();//构造函数	Indent(char*pName,char*pAddress,char*pTeleno,int pPostcode,								int ppiece,int startmonth,int pterm);Indent(Indent&n){		strncpy(contractor,n.contractor,sizeof(contractor)); 	contractor[sizeof(contractor)-1]='\0';strncpy(address,n.address,sizeof(address)); 	address[sizeof(address)-1]='\0';	strncpy(teleno,n.teleno,sizeof(teleno)); 	teleno[sizeof(teleno)-1]='\0';	strncpy(teleno,n.teleno,sizeof(teleno)); 	teleno[sizeof(teleno)-1]='\0';	postcode=n.postcode;	piece=n.piece;	months=n.months;	term=n.term;		}	char *indentAddress();//取投递地址	char *Contractor();//取订阅人   protected:	   	char contractor[40];//订阅人	char address[60];//投递地址	int postcode;//邮政编码	char teleno[12];//联系电话	//订阅日期	int piece;//订阅份数	int months;//起始月份	int term;//期限 季度数};//Indent *Indent::pFirst=0;//链表为空Indent::Indent(char*pName,char*pAddress,char*pTeleno,int pPostcode,								int ppiece,int startmonth,int pterm) {strncpy(contractor,pName,sizeof(contractor)); 	contractor[sizeof(contractor)-1]='\0';strncpy(address,pAddress,sizeof(address)); 	address[sizeof(address)-1]='\0';	strncpy(teleno,pTeleno,sizeof(teleno)); 	teleno[sizeof(teleno)-1]='\0';   postcode=pPostcode;   piece=ppiece;   months=startmonth;   term=pterm;}char *Indent::indentAddress(){return address;}char *Indent::Contractor(){	return contractor;}//报刊订单class newspaper_indent:public Indent{ public:newspaper_indent(char* pName, char*pAddress,char*pTeleno,								 char*pmagazinecode,int pPostcode,int ppiece,								 int startmonth,int pterm):Indent(pName,								 pAddress,pTeleno,								 pPostcode,								 ppiece,startmonth,pterm),paper(pmagazinecode){pNext=pFirst;pFirst=this;	count++;}//static int newspaperIndentNO(return count);//取链表中的订单数newspaper_indent(newspaper_indent &n):Indent(n.contractor,								 n.address,n.teleno,								 n.postcode,								 n.piece,n.months,n.term),paper(n.paper){}	char * newspaper_name(){return paper.NewspaperName();}char *newpaper_num(){return paper.NewspaperNumber();}double sum(){ return term*3*paper.NewspaperUnitprice()*piece;}void Display();static newspaper_indent *countfind(int sn);friend void searchnewspaperindent();static  newspaper_indent *pFirst;//链表首指针	       newspaper_indent *pNext;//指向下一个的指针		   static int count;		   virtual void display(ostream&out);protected:			Newspaper paper;};ostream& operator<<(ostream& out,newspaper_indent&of);void newspaper_indent::display(ostream&out){	out<<setiosflags(ios::left)<<setw(20)<<contractor<<"      "		<<address<<"      "<<postcode<<"      "<<teleno<<"      "<<teleno		<<"      "<<piece<<"      "<<months<<"      "<<term;}ostream& operator<<(ostream& out,newspaper_indent&of){	of.display(out);	out<<endl;	return out;}//...............................int newspaper_indent::count=0;newspaper_indent *newspaper_indent::pFirst=0;void newspaper_indent::Display(){   	cout<<"订单号为:"<<count<<endl<<"订阅人为:"<<contractor<<endl<<"投递地址为:"<<address<<endl<<"邮政编码为:"<<postcode<<endl<<"联系电话为:"<<teleno<<endl<<"订阅份数为:"<<piece<<endl<<"起始月为:"<<months<<endl<<"期限为:"<<term;}//.....................//.....................newspaper_indent*newspaper_indent::countfind(int sn){	for(newspaper_indent*ps=pFirst;ps;ps=ps->pNext)		if(ps->count==sn)		{return ps;		}		else return(newspaper_indent*)0;		return 0;}void creatnewspaperindent()                             //创建报刊订单{ 	char c; 	do{ 		char* pName=new char[40]; 		char* pAddress=new char[60]; 		char* pTeleno=new char[12];		char* pmagazinecode=new char[10];		int	pPostcode;		int ppiece,startmonth,pterm;		cout<<"请输入您的姓名"<<endl; 		cin>>pName; 		cout<<"请输入您的地址"<<endl; 		cin>>pAddress; 		cout<<"请输入您住址的邮政编码"<<endl; 		cin>>pPostcode; 		cout<<"请输入您的联系电话"<<endl; 		cin>>pTeleno; 		cout<<"请输入您要订的杂志的期刊号(期刊号为10位以内的数字):"<<endl; 		cin>>pmagazinecode; 		cout<<"请输入您要订的份数."<<endl; 		cin>>ppiece; 		cout<<"请输入您订阅的起始月."<<endl; 		cin>>startmonth; 			cout<<"请输入您订阅的期限(我们是按季度订阅的,请输入您要订几个季度)."<<endl; 		cin>>pterm; 		newspaper_indent* pS=new newspaper_indent(pName,pAddress,pTeleno,								 pmagazinecode,pPostcode,ppiece,								 startmonth,pterm);       ofstream out("Newspaper_indent.txt",ios::ate);			out<<*pS;							 	 newspaperread();	Newspaper *ps=Newspaper::countfind(pmagazinecode);	if(!ps)		cout<<"您输入的报刊号不存在";	else	{pS->Display(); 	cout<<"报刊名为:"<<ps->name<<endl<<"报刊号为:"<<ps->number<<endl<<"单价为:"<<ps->unitprice<<endl<<"您需要交的费用为:"<<ps->unitprice*3*pterm*ppiece<<endl;cout<<"您的订阅已成功!"<<endl; 	}		delete[]pName; 		delete[]pAddress;		delete[]pTeleno;		delete[]pmagazinecode;		cout<<endl<<"需要继续订阅吗?(y/n)"<<endl; 		cin>>c; 	}while(c=='y'||c=='Y'); } //.......................								 //.......................void Newspaper_indentread(){ifstream fin("Newspaper_indent.txt");char pName[40];char pAddress[60];char pTeleno[12];char pmagazinecode[10];int pPostcode;int ppiece;int startmonth;int pterm;newspaper_indent *ps;int i=0;fin>>pName>>pAddress>>pTeleno>>pmagazinecode>>pPostcode>>ppiece>>startmonth>>pterm;while(!fin.eof()){	ps=new newspaper_indent(pName,pAddress,pTeleno,								 pmagazinecode,pPostcode,ppiece,								 startmonth,pterm);ps=0;fin>>pName>>pAddress>>pTeleno>>pmagazinecode>>pPostcode>>ppiece>>startmonth>>pterm;}}//.......................//.......................void searchnewspaperindent(){   	Newspaper_indentread();	if(newspaper_indent::count==0)                        	    cout<<"无报刊订单存在!"<<endl;    else	{		char c; 		do{ 			int sn; 			cout<<"请输入所查询报刊订单的订单号"<<endl; 			cin>>sn; 			newspaper_indent* pS=newspaper_indent::countfind(sn); 			if(pS) 			{ 				pS->Display(); 			 			} 			else 				cout<<"不存在此订单号!"<<endl; 				cout<<endl<<"需要继续查询订单吗?(y/n)"<<endl; 				cin>>c; 		}while(c=='y'||c=='Y');	}} //杂志订单//......................................//......................................//......................................//......................................class magazine_indent:public Indent{ public:magazine_indent();magazine_indent(char* pName, char*pAddress,char*pTeleno,								 char*pmagazinecode,int pPostcode,int ppiece,								 int startmonth,int pterm);magazine_indent(magazine_indent&);//static int magazine_indentNO(return count);//取链表中的订单数char * magazine_name(){return magazine.MagazineName();}char *magazine_num(){return magazine.MagazineNumber();}double sum(){ return term*3*magazine.MagazineUnitprice()*piece;}void Display();static magazine_indent*countfind(int sn);friend void magazinefind();friend void officemagazinefind();friend void searchmagazineindent();friend void magazine_indentmagage();static int count;static magazine_indent *pFirst;//链表首指针	       magazine_indent *pNext;//指向下一个的指针		   virtual void display(ostream&out);protected:		Magazine magazine;};ostream& operator<<(ostream& out,magazine_indent&of);void magazine_indent::display(ostream&out){	out<<setiosflags(ios::left)<<setw(20)<<contractor<<"      "		<<address<<"      "<<postcode<<"      "<<teleno<<"      "<<teleno		<<"      "<<piece<<"      "<<months<<"      "<<term;}ostream& operator<<(ostream& out,magazine_indent&of){	of.display(out);	out<<endl;	return out;}//...........................int magazine_indent::count=0;magazine_indent*magazine_indent::pFirst=0;void magazine_indent::Display(){   Magazine *ps=Magazine::countfind(magazine.MagazineNumber());	cout<<"您的这份订单的订单号为:"<<count<<endl<<"订阅人为:"<<contractor<<endl<<"投递地址为:"<<address<<endl<<"邮政编码为:"<<postcode<<endl<<"联系电话为:"<<teleno<<endl<<"订阅份数为:"<<piece<<endl<<"起始月为:"<<months<<endl<<"期限为:"<<term<<endl;}magazine_indent::magazine_indent(char* pName, char*pAddress,char*pTeleno,								 char*pmagazinecode,int pPostcode,int ppiece,								 int startmonth,int pterm):Indent(pName,								 pAddress,pTeleno,								 pPostcode,								 ppiece,startmonth,pterm),magazine(pmagazinecode){pNext=pFirst;pFirst=this;	count++;}void creatmagazineindent()                             //创建杂志订单{ 	char c; 	do{ 		char* pName=new char[40]; 		char* pAddress=new char[60]; 		char* pTeleno=new char[12];		char* pmagazinecode=new char[10];		int pPostcode,ppiece,startmonth,pterm;		cout<<"请输入您的姓名"<<endl; 		cin>>pName; 		cout<<"请输入您的地址"<<endl; 		cin>>pAddress; 		cout<<"请输入您住址的邮政编码"<<endl; 		cin>>pPostcode; 		cout<<"请输入您的联系电话"<<endl; 		cin>>pTeleno; 		cout<<"请输入您要订的杂志的期刊号(期刊号为10位以内的数字):"<<endl; 		cin>>pmagazinecode; 		cout<<"别输入您要订的份数."<<endl; 		cin>>ppiece; 		cout<<"别输入您订阅的起始月."<<endl; 		cin>>startmonth; 			cout<<"别输入您订阅的期限(我们是按季度订阅的,请输入您要订几个季度)."<<endl; 		cin>>pterm; 		magazine_indent* pS=new magazine_indent(pName,pAddress,pTeleno,								 pmagazinecode,pPostcode,ppiece,								 startmonth,pterm);         ofstream out("Magazine_indent.txt",ios::ate);			out<<*pS;		Magazineread();		Magazine *ps=Magazine::countfind(pmagazinecode);	if(!ps)		cout<<"您输入的杂志号不存在";	else	{		pS->Display(); 	cout<<"杂志名为:"<<ps->name<<endl<<"杂志号为:"<<ps->number<<endl<<"单价为:"<<ps->unitprice<<endl<<"您需要交的费用为:"<<ps->unitprice*3*pterm*ppiece<<endl;cout<<"您的订阅已成功!"<<endl; 	}		delete[]pName; 		delete[]pAddress;		delete[]pTeleno;		delete[]pmagazinecode;		cout<<endl<<"需要继续订阅吗?(y/n)"<<endl; 		cin>>c; 	}while(c=='y'||c=='Y'); } void Magazine_indentread();	magazine_indent*magazine_indent::countfind(int sn){         Magazine_indentread();	for(magazine_indent*ps=pFirst;ps;ps=ps->pNext)		if(ps->count==sn)		{return ps;		}	else	return(magazine_indent*)0;	return 0;}	//..........................//..............................void Magazine_indentread(){ifstream fin("Magazine_indent.txt");char pName[40];char pAddress[60];char pTeleno[12];char pmagazinecode[10];int pPostcode;int ppiece;int startmonth;int pterm;magazine_indent *ps;int i=0;fin>>pName>>pAddress>>pTeleno>>pmagazinecode>>pPostcode>>ppiece>>startmonth>>pterm;while(!fin.eof()){ps=new magazine_indent(pName,pAddress,pTeleno,								 pmagazinecode,pPostcode,ppiece,								 startmonth,pterm);ps=0;i++;fin>>pName>>pAddress>>pTeleno>>pmagazinecode>>pPostcode>>ppiece>>startmonth>>pterm;}}void searchmagazineindent(){   Magazine_indentread();	if(magazine_indent::count==0)                        	    cout<<"无报刊订单存在!"<<endl;    else	{  void Magazine_indentread();		char c; 		do{ 			int sn; 			cout<<"请输入所查询订单的订单号"<<endl; 			cin>>sn; 			magazine_indent* pS=magazine_indent::countfind(sn); 			if(pS) 			{ 				pS->Display(); 			 			} 			else 				cout<<"不存在此订单号!"<<endl; 				cout<<endl<<"需要继续查询订单吗?(y/n)"<<endl; 				cin>>c; 		}while(c=='y'||c=='Y');	}} /*void magazine_indentmagage(){    int i=0;	Magazine_indentread();    for(magazine_indent*ps=pFirst;ps;ps=ps->pNext)		i++;}*/

⌨️ 快捷键说明

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