?? coach_link.cpp
字號:
//coach_link.cpp
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
#include<assert.h>
#include"person.h"
#include"coach.h"
coach *insert_c(coach*&head_c)
{
long k;
char* str=new char;
double s;
char c;
coach *p,*q;
L2:cout<<"確定添加教練?(y/n)"<<endl;
cin>>c;
if(c=='y')
{
cout<<"請輸入教練的編號:";
cin>>k;
cout<<"\n姓名:";
cin>>str;
cout<<"\n薪水:";
cin>>s;
coach *c=new coach(k,str,s);
c->set_place();
c->set_lead_group();
((person*)c)->set_password();
c->next=NULL;
if(head_c==NULL)
{
head_c=c;return(head_c);
}
//插入表頭
if(((person*)head_c)->get_number()>((person*)c)->get_number())
{
c->next=head_c;
head_c=c;
return(head_c);
}
//搜索插入
for(q=head_c,p=head_c->next;p;p=p->next)
if(((person*)p)->get_number()>((person*)c)->get_number())
{
c->next=p;
q->next=c;
return(head_c);
}
if(((person*)q)->get_number()<((person*)c)->get_number())
{
q->next=c;
return(head_c);
}
return(head_c);
}
else if(c=='n')
{return(head_c);}
else
cout<<"輸入錯誤!"<<endl;
goto L2;
}
coach *del_c(coach*&head_c,long num)
{
coach *p,*q;
if(!head_c)
{
cout<<"教練資料為空!"<<endl;
return(head_c);
}
if(((person*)head_c)->get_number()==num)//被刪除的是頭結點
{
p=head_c;
head_c=head_c->next;
delete p;
cout<<"編號為"<<num<<"的教練已經被刪除!"<<endl;
return (head_c);
}
for(q=head_c;q->next;q=q->next)
{
if(((person*)(q->next))->get_number()==num)
{p=q->next;
q->next=p->next;
delete p;
cout<<"編號為"<<num<<"的教練已經被刪除!"<<endl;
return (head_c);
}
}
cout<<"沒有編號為"<<num<<"的教練!"<<endl;
return(head_c);
}
coach *show_c1(coach*&head_c,long num)
{
coach *p;
if(!head_c)
{
cout<<"教練資料為空!"<<endl;
return(head_c);
}
if(((person*)head_c)->get_number()==num)
{
((person*)head_c)->person::print();
return(head_c);
}
for(p=head_c;p;p=p->next)
{
if(((person*)p)->get_number()==num)
{
((person*)p)->person::print();
delete p;
return (head_c);
}
}
cout<<"沒有編號為"<<num<<"的教練!"<<endl;
return(head_c);
}
coach *show_c2(coach*&head_c, long num)
{
coach *p;
int w;
if(!head_c)
{
cout<<"教練資料為空!"<<endl;
return (head_c);
}
if(((person*)head_c)->get_number()==num)
{
cout<<"請輸入密碼:"<<endl;
cin>>w;
if(((person*)head_c)->get_password()==w)
{
head_c->print();
return(head_c);
}
for(p=head_c;p;p=p->next)
{
if(((person*)p)->get_password()==w)
{
cout<<"請輸入密碼:"<<endl;
cin>>w;
if(((person*)p)->get_password()==w)
{
p->print();
delete p;
return(head_c);
}
}
}
cout<<"沒有編號為"<<num<<"的教練!"<<endl;
return(head_c);
}
return(head_c);
}
coach *change_c(coach*&head_c,long num)
{
coach *p;
int n;
if(!head_c)
{
cout<<"教練資料為空!"<<endl;
return (head_c);
}
if(((person*)head_c)->get_number()==num)
{
cout<<"*********^^請選擇^^*********"<<endl;
cout<<"* 1.修改編號 *"<<endl;
cout<<"* 2.修改姓名 *"<<endl;
cout<<"* 3.修改薪水 *"<<endl;
cout<<"* 4.修改所帶組 *"<<endl;
cout<<"* 5.修改授課地點 *"<<endl;
cout<<"****************************"<<endl;
cin>>n;
switch(n)
{
case 1:(((person*)head_c)->reset_number());break;
case 2:(((person*)head_c)->reset_name());break;
case 3:(((coach*)head_c)->reset_salary());break;
case 4:(((coach*)head_c)->set_lead_group());break;
case 5:(((coach*)head_c)->set_place());break;
}
return(head_c);
}
for(p=head_c;p;p=p->next)
{int n;
if(((person*)p)->get_number()==num)
{
cout<<"*********^^請選擇^^*********"<<endl;
cout<<"* 1.修改編號 *"<<endl;
cout<<"* 2.修改姓名 *"<<endl;
cout<<"* 3.修改薪水 *"<<endl;
cout<<"* 4.修改所帶組 *"<<endl;
cout<<"* 5.修改授課地點 *"<<endl;
cout<<"****************************"<<endl;
cin>>n;
switch(n)
{
case 1:(((person*)head_c)->reset_number());break;
case 2:(((person*)head_c)->reset_name());break;
case 3:(((coach*)head_c)->reset_salary());break;
case 4:(((coach*)head_c)->set_lead_group());break;
case 5:(((coach*)head_c)->set_place());break;
}
return(head_c);
}
cout<<"對不起,沒有編號為"<<num<<"的教練!"<<endl;
return(head_c);
}
return(head_c);
}
coach *reset_password_c(coach *&head_c,long num)
{coach *p;
int w;
if(!head_c)
{cout<<"對不起,資料為空!\n";return(head_c);}
if(((person*)head_c)->get_number()==num)
{cout<<"請輸入原密碼!"<<endl;
cin>>w;
if(((person*)head_c)->get_password()==w)
{((person*)head_c)->set_password();
return(head_c);}
}
for(p=head_c;p;p=p->next)
{if(((person*)p)->get_number()==num)
{cout<<"請輸入原密碼!"<<endl;
cin>>w;
if(((person*)p)->get_password()==w)
{((person*)p)->set_password();
delete p;
return(head_c);}
}
}
cout<<"對不起,沒有編號為"<<num<<"的教練!"<<endl;
return(head_c);
}
void show_c(coach *head_c)
{
if(!head_c)
{cout<<"對不起,教練資料為空!\n";}
else
{cout<<"所有教練的資料如下:"<<endl;
while(head_c)
{cout<<"編號:"<<((person*)head_c)->get_number()<<" ";
cout<<"姓名:"<<((person*)head_c)->get_name()<<endl;
cout<<"薪水:"<<((coach*)head_c)->get_salary()<<endl;
cout<<"個人密碼:"<<((person*)head_c)->get_password()<<endl;
cout<<"授課地點在";
switch(((coach*)head_c)->get_d())
{case 1:cout<<"北湖"<<endl;break;
case 2:cout<<"東湖"<<endl;break;
case 3:cout<<"西湖"<<endl;break;
case 4:cout<<"南湖"<<endl;break;
case 5:cout<<"廣州體育中心"<<endl;break;
case 6:cout<<"華工番禺高爾夫球場"<<endl;break;
case 7:cout<<"天河軟件園高爾夫練習場"<<endl;break;
}
cout<<"帶領第"<<((coach*)head_c)->get_lead_group()<<"組"<<endl;
cout<<endl;
head_c=head_c->next;
}
}
}
void set_file_c(coach *head_c)
{
char fileName[30];
ofstream outstuf;
cout<<"請輸入教練的文本文件名:"<<endl;
cin>>fileName;
outstuf.open(fileName,ios::out);
if(!outstuf)
{cerr<<"File could not be open."<<endl;
abort();
}
outstuf<<"教練的資料如下:\n";
if(!head_c)
{outstuf<<"對不起,教練資料為空!\n";}
else
while(head_c)
{outstuf<<"編號:"<<((person*)head_c)->get_number()<<" ";
outstuf<<"姓名:"<<((person*)head_c)->get_name()<<endl;
outstuf<<"薪水:"<<((coach*)head_c)->get_salary()<<endl;
outstuf<<"個人密碼:"<<((person*)head_c)->get_password()<<endl;
outstuf<<"授課地點在";
switch(((coach*)head_c)->get_d())
{case 1:outstuf<<"北湖"<<endl;break;
case 2:outstuf<<"東湖"<<endl;break;
case 3:outstuf<<"西湖"<<endl;break;
case 4:outstuf<<"南湖"<<endl;break;
case 5:outstuf<<"廣州體育中心"<<endl;break;
case 6:outstuf<<"華工番禺高爾夫球場"<<endl;break;
case 7:outstuf<<"天河軟件園高爾夫練習場"<<endl;break;
}
outstuf<<"帶領第"<<((coach*)head_c)->get_lead_group()<<"組"<<endl;
outstuf<<endl;
head_c=head_c->next;
}
}
int Append_c(coach *head_c,char *fileName)
{
ofstream outstuf(fileName,ios::app);
if(!outstuf)
{cerr<<"File could not be open."<<endl;
return 0;
}
while(head_c)
{outstuf<<"編號:"<<((person*)head_c)->get_number()<<" ";
outstuf<<"姓名:"<<((person*)head_c)->get_name()<<endl;
outstuf<<"薪水:"<<((coach*)head_c)->get_salary()<<endl;
outstuf<<"個人密碼:"<<((person*)head_c)->get_password()<<endl;
outstuf<<"授課地點在";
switch(((coach*)head_c)->get_d())
{case 1:outstuf<<"北湖"<<endl;break;
case 2:outstuf<<"東湖"<<endl;break;
case 3:outstuf<<"西湖"<<endl;break;
case 4:outstuf<<"南湖"<<endl;break;
case 5:outstuf<<"廣州體育中心"<<endl;break;
case 6:outstuf<<"華工番禺高爾夫球場"<<endl;break;
case 7:outstuf<<"天河軟件園高爾夫練習場"<<endl;break;
}
outstuf<<"帶領第"<<((coach*)head_c)->get_lead_group()<<"組"<<endl;
outstuf<<endl;
head_c=head_c->next;
}
outstuf.close();
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -