📄 office.h
字号:
#include<string.h>#include<fstream.h>#include<iomanip.h>class office{public: office(){}; office(char*ffname,char*ffnumber,char*ffaddress,int ffpostcode, char*ffteleno,char*fflinkman,char*fflinkman_tele);//构造函数 office(char*ffname); office(office&n) { strncpy(name,n.name,sizeof(name)); name[sizeof(name)-1]='\0'; strncpy(number,n.number,sizeof(number)); number[sizeof(number)-1]='\0'; strncpy(teleno,n.teleno,sizeof(teleno)); teleno[sizeof(teleno)-1]='\0'; strncpy(linkman,n.linkman,sizeof(linkman)); linkman[sizeof(linkman)-1]='\0'; strncpy(linkman_tele,n.linkman_tele,sizeof(linkman_tele)); linkman_tele[sizeof(linkman_tele)-1]='\0'; postcode=n.postcode; } void Display(); char *Name(){return name;} char *Number(){return number;} char *Address(){return address;} char *Teleno(){return teleno;}; char *Linkman(){return linkman;} char *Linkman_tele(){return linkman_tele;} int Postcode(){return postcode;} static office*namefind(char* sn); static office *pFirst;//链表首指针 office *pNext;//指向下一个的指针 static int count;//社种类数 virtual void display(ostream&out); friend void officemagazinefind(); friend void magazinefind();protected: char name[20];//报社名 char number[10];//报社编号 char address[60];//报社地址 int postcode;//邮政编码 char teleno[12];//电话 char linkman[12];//联系人 char linkman_tele[12];//联系人电话 };ostream& operator<<(ostream& out,office&of);office *office::pFirst=0;int office::count=0; office::office(char*ffname,char*ffnumber,char*ffaddress,int ffpostcode,char*ffteleno,char*fflinkman,char*fflinkman_tele){strncpy(name,ffname,sizeof(name)); name[sizeof(name)-1]='\0';strncpy(number,ffnumber,sizeof(number)); name[sizeof(number)-1]='\0';strncpy(address,ffaddress,sizeof(address)); name[sizeof(address)-1]='\0';strncpy(teleno,ffteleno,sizeof(teleno)); name[sizeof(teleno)-1]='\0';strncpy(linkman,fflinkman,sizeof(linkman)); name[sizeof(linkman)-1]='\0'; strncpy(linkman_tele,fflinkman_tele,sizeof(linkman_tele)); name[sizeof(linkman_tele)-1]='\0'; postcode=ffpostcode; pNext->pFirst; pFirst=this; count++;}office::office(char*ffname){ strncpy(name,ffname,sizeof(name)); name[sizeof(name)-1]='\0';}//....................//....................//....................void officeread();office*office::namefind(char* sn){ officeread(); for(office*ps=pFirst;ps;ps=ps->pNext) { if(strcmp(ps->name,sn)==0) {return ps; } return(office*)0; } return 0;}//..........................// 插入操作符//...........................void office::display(ostream&out){ out<<setiosflags(ios::left)<<setw(20)<<name<<" " <<number<<" "<<address<<" "<<postcode<<" "<<teleno <<" "<<linkman<<" "<<linkman_tele;}ostream& operator<<(ostream& out,office&of){ of.display(out); out<<endl; return out;}//.........................创建社...............void creatoffice() //创建{ char c; do{ char* ffname=new char[20]; char* ffnumber=new char[10]; char* ffaddress=new char[60]; int ffpostcode; char* ffteleno=new char[12]; char* fflinkman=new char[12]; char* fflinkman_tele=new char[12]; cout<<"请输入报社名或者是杂志社名"<<endl; cin>>ffname; cout<<"请输入该社得编号"<<endl; cin>>ffnumber; cout<<"请输入该社的地址"<<endl; cin>>ffaddress; cout<<"请输入该社的邮政编码"<<endl; cin>>ffpostcode; cout<<"请输入该社的电话:"<<endl; cin>>ffteleno; cout<<"请输入该社的联系人:"<<endl; cin>>fflinkman; cout<<"请输入该社联系人的电话:"<<endl; cin>>fflinkman_tele; office* pS=new office(ffname,ffnumber,ffaddress, ffpostcode,ffteleno,fflinkman,fflinkman_tele); ofstream out("office.txt",ios::ate); out<<*pS; cout<<"您创建一个报刊数据已成功!"<<endl; pS->Display(); delete[]ffname; delete[]ffaddress; delete[]ffteleno; delete[]fflinkman; delete[]fflinkman_tele; cout<<endl<<"需要继续创建报刊数据库吗?(y/n)"<<endl; cin>>c; }while(c=='y'||c=='Y'); } //.....................显示...................void office::Display(){cout<<"该社的名为:"<<name<<endl<<"该社的编号为:"<<number<<endl<<"该社的地址为:"<<address<<endl<<"该社的电话为:"<<teleno<<endl<<"该社的联系人为:"<<linkman<<endl<<"该社的联系人的电话为:"<<linkman_tele<<endl;}//////void officeread(){ifstream fin("office.txt");char ffname[20];char ffnumber[10];char ffaddress[60];int ffpostcode;char ffteleno[12];char fflinkman[12];char fflinkman_tele[12];office *ps;int i=0;fin>>ffname>>ffnumber>>ffaddress>>ffpostcode>>ffteleno>>fflinkman>>fflinkman_tele;while(!fin.eof()){ps=new office(ffname,ffnumber,ffaddress,ffpostcode,ffteleno,fflinkman,fflinkman_tele);ps=0;fin>>ffname>>ffnumber>>ffaddress>>ffpostcode>>ffteleno>>fflinkman>>fflinkman_tele;}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -