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

📄 indent.cpp

📁 邮局报刊杂志订阅系统
💻 CPP
字号:
#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++;}


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;
protected:
	
	
	Newspaper paper;

};
//...............................
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
<<"报刊名为:"<<paper.NewspaperName()<<endl
<<"报刊号为:"<<paper.NewspaperNumber()<<endl
<<"单价为:"<<paper.NewspaperUnitprice()<<endl
<<"订阅份数为:"<<piece<<endl
<<"起始月为:"<<months<<endl
<<"期限为:"<<term
<<"应付金额为:"<<sum();
}


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); 

		cout<<"您的订阅已成功!"<<endl; 
		pS->Display(); 
		delete[]pName; 
		delete[]pAddress;
		delete[]pTeleno;
		delete[]pmagazinecode;

		cout<<endl<<"需要继续订阅吗?(y/n)"<<endl; 
		cin>>c; 
	}while(c=='y'||c=='Y'); 
} 
void searchnewspaperindent()
{
	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&);

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 searchmagazineindent();
static int count;
static magazine_indent *pFirst;//链表首指针
	       magazine_indent *pNext;//指向下一个的指针
protected:
	
	Magazine magazine;

};
//...........................
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
<<"报刊名为:"<<magazine.MagazineName()<<endl
<<"报刊号为:"<<ps->MagazineName()<<endl
<<"单价为:"<<magazine.MagazineUnitprice()<<endl
<<"订阅份数为:"<<piece<<endl
<<"起始月为:"<<months<<endl
<<"期限为:"<<term<<endl
<<"应付金额为:"<<sum();

}
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); 
        
		cout<<"您的订阅已成功!"<<endl; 
		pS->Display(); 
		delete[]pName; 
		delete[]pAddress;
		delete[]pTeleno;
		delete[]pmagazinecode;

		cout<<endl<<"需要继续订阅吗?(y/n)"<<endl; 
		cin>>c;
	}while(c=='y'||c=='Y'); 
}
magazine_indent*magazine_indent::countfind(int sn)
{
	for(magazine_indent*ps=pFirst;ps;ps=ps->pNext)
		if(ps->count==sn)
		{return ps;
		}
	else	return(magazine_indent*)0;
	return 0;
}
void searchmagazineindent()
{
	if(magazine_indent::count==0)                        

	
    cout<<"无报刊订单存在!"<<endl;
    else
	{
		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');
	}
} 






⌨️ 快捷键说明

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