C歌手大獎賽管理系統(tǒng)_第1頁
C歌手大獎賽管理系統(tǒng)_第2頁
C歌手大獎賽管理系統(tǒng)_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#include<iostream>#include<string>#include<fstream>#include<iomanip>using namespace std;class singer/歌手類的定義protected:int no;/編號char name20;/姓名char sex10;/性別int age; /年齡char song20;/參賽曲目char department30;/選送單位char program30;/比賽項目名稱char time20;/比賽時間char place20;/比賽地點int score;/

2、比賽成績singer *mynext;/指向下一個歌手的指針public:singer();/歌手類無參構(gòu)造函數(shù)的定義singer(int pnum,char pname,char psex,int page,char psong,charpdepart,char program,char time,char place,int score);/歌手類有參構(gòu)造函數(shù)的定義singer(int pnum,char pname,char psex,int page,char psong,char pdepart,char program,char time,char place,int score,

3、singer *next);/ 歌手類有參構(gòu)造函數(shù)的定義int getnum();/提取歌手編號函數(shù)的定義char *getname() ;/提取歌手名字函數(shù)的定義char *getsex();/提取歌手性別函數(shù)的定義int getage();/提取歌手年齡函數(shù)的定義void getagee(int as);/設(shè)置歌手年齡函數(shù)的定義void getscoree(int ak);char *getsong();/提取員歌手參賽曲目函數(shù)的定義char *getdepart();/提取歌手選送單位函數(shù)的定義char *getprogram(); /提取比賽項目名稱函數(shù)的定義char *gettime

4、();/提取比賽時間函數(shù)的定義char *getplace();/提取比賽地點函數(shù)的定義int getscore();/提取比賽成績函數(shù)的定義singer *getnext();/提取指向下一個歌手指針函數(shù)的定義void setnext(singer *next); /設(shè)置指向下一個歌手指針函數(shù)的定義void output1(); void output2(); void output();/輸出歌手信息函數(shù)的定義輸出賽事信息函數(shù)的定義輸出全部信息函數(shù)的定義;singer:singer()/歌手類無參構(gòu)造函數(shù)no=0;strcpy(name,"");strcpy(sex,&

5、quot;");age=0;strcpy(song,"");strcpy(department,"");strcpy(program,"");strcpy(time,"");strcpy(place,"");score=0;mynext=NULL;singer:singer(int pnum,char pname,char psex,int page,char psong,charpdepart,char pprogram,char ptime,char pplace,int psco

6、re) /歌手類有參構(gòu)造函數(shù)no=pnum;strcpy(name,pname);strcpy(sex,psex);age=page;strcpy(song,psong);strcpy(department,pdepart);strcpy(program,pprogram);strcpy(time,ptime);strcpy(place,pplace);score=pscore;mynext=NULL;singer:singer(int pnum,char pname,char psex,int page,char psong,char pdepart,char pprogram,char p

7、time,char pplace,int pscore,singer *next)/ 歌手類有參構(gòu)造函數(shù)no=pnum;strcpy(name,pname);strcpy(sex,psex);age=page;strcpy(song,psong);strcpy(department,pdepart);strcpy(program,pprogram);strcpy(time,ptime);strcpy(place,pplace);score=pscore;mynext=next;int singer:getnum() return no; char *singer:getname() retur

8、n name; char *singer:getsex() return sex; char *singer:getsong() return song; char *singer:getdepart() return department; int singer:getage() return age; char *singer:getprogram()return program;char *singer:gettime()return time;char *singer:getplace()return place;int singer:getscore()return score;vo

9、id singer:getagee(int as) age=as; void singer:getscoree(int ak)score=ak;void singer:setnext(singer *next) mynext=next; singer *singer:getnext() return mynext; void singer:output1()cout<<" 編號 :"<<no<<endl;cout<<" 姓名 :"<<name<<endl;cout<<&q

10、uot;性別 :"<<sex<<endl;cout<<" 年齡 :"<<age<<endl;cout<<"參賽歌曲 :"<<song<<endl;cout<<" 選送單位 :"<<department<<endl;void singer:output2()cout<<" 比賽項目: "<<program<<endl;cout<<

11、" 姓名 :"<<name<<endl;cout<<" 比賽時間 :"<<time<<endl;cout<<" 比賽地點: "<<place<<endl;cout<<" 得分: "<<score<<endl;void singer:output()cout<<"編號 :"<<no<<endl;cout<<"

12、姓名 :"<<name<<endl;cout<<"性別 :"<<sex<<endl;cout<<" 年齡 :"<<age<<endl;cout<<"參賽歌曲 :"<<song<<endl;cout<<" 選送單位 :"<<department<<endl;cout<<" 比賽項目: "<<prog

13、ram<<endl;cout<<" 比賽時間 :"<<time<<endl;cout<<" 比賽地點: "<<place<<endl;cout<<" 得分: "<<score<<endl;class operate:public singerprivate:singer *myfirst; /指向歌手鏈表中結(jié)點的指針public:operate();/operate類無參構(gòu)造函數(shù)的定義operate(int nnum

14、,char nname,char nsex,int nage,char nsong,char ndepart,char nprogram,char ntime,char nplace,int nscore);operate();/operate類析構(gòu)函數(shù)的定義void load();/從文件中加載歌手信息void add();/增加歌手信息void input(int number); /鍵盤輸入新歌手基本信息void insert(int nnum,char nname,char nsex,int nage,char nsong,char ndepart,char nprogram,char

15、 ntime,char nplace,int nscore);bool findnum();/按編號查詢歌手信息bool findprogram();/按項目名稱查詢賽事信息bool modify();/修改歌手信息bool deletesinger();/刪除歌手信息void save();/歌手信息存盤void showa();/顯示所有歌手信息void showb();/顯示比賽賽事。;operate:operate ()/operate類無參構(gòu)造函數(shù)的實現(xiàn) myfirst=NULL; operate:operate(intnnum,char nname,charnsex,intnage

16、,char nsong,charndepart,char nprogram,char ntime,char nplace,int nscore) /operate 類帶參數(shù)構(gòu)造函數(shù)的實現(xiàn) myfirst=new singer(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore); operate:operate()/operate類析構(gòu)函數(shù)的實現(xiàn)singer *next=myfirst,*temp;while(next!=NULL)temp=next;next=next->getnext();delete tem

17、p;myfirst=NULL;void operate:load()/從文件中加載歌手信息int nnum,nage;float nscore;charnname20,nsex20,nsong20,ndepart20,nprogram20,ntime20,nplace20 ;ifstream f1("singer.txt",ios:in);while(f1.good()f1>>nnum>>nname>>nsex>>nage>>nsong>>ndepart>>nprogram>>n

18、time>>nplace>>n score;if(!(f1.eof()insert(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore);f1.close();cout<<endl<<" 存儲在文件中的學(xué)校人員信息已加載到系統(tǒng)中"<<endl;void operate:add() /增加新歌手int num,n1,n2;singer *p=myfirst;if(p=NULL)cout<<" 目前無歌手,請輸入新歌手的編

19、號:"cin>>num;input(num);elseif(p->getnext()=NULL)n1=p->getnum()+1;input(n1);elsewhile(p->getnext()!=NULL)p=p->getnext();n2=p->getnum()+1;input(n2); void operate:input(int number) /鍵盤輸入新歌手基本信息int nage;int nscore;charnname20,nsex20,nsong20,ndepart20,nprogram20,ntime20,nplace20

20、 ;cout<<" 請輸入編號為 "<<number<<"的歌手信息 "<<endl; cout<<" 輸入姓名: "cin>>nname;cout<<" 輸入性別: "cin>>nsex;cout<<" 輸入年齡: "cin>>nage;cout<<"輸入?yún)①惛枨?"cin>>nsong;cout<<"選送單

21、位: "cin>>ndepart;cout<<" 比賽項目: "cin>>nprogram;cout<<" 比賽時間: "cin>>ntime;cout<<" 比賽地點: "cin>>nplace;cout<<" 得分: "cin>>nscore;insert(number,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore);voi

22、d operate:insert(int nnum,char nname,char nsex,int nage,charnsong,charndepart,charnprogram,charntime,charnplace,intnscore)singer *p=myfirst;if(p=NULL)myfirst=newsinger(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore); elsewhile(p->getnext()!=NULL)p=p->getnext();p->setnext(ne

23、wsinger(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore,p-> getnext();bool operate:findnum() /按編號查詢歌手信息int id;singer *s=myfirst;singer *f=s;cout<<" 請輸入歌手的編號 :"cin>>id;if(s=NULL) cout<<" 本系統(tǒng)暫無歌手信息 !"<<endl; return false; elsewhile(s!=NULL

24、)if(s->getnum()=id) s->output1(); return true; else f=s; s=s->getnext(); cout<<" 無此歌手信息 !"<<endl;return false;bool operate:findprogram() /按比賽項目查詢賽事信息char tmpprogram20;singer *s=myfirst;singer *f=s;cout<<" 請輸入比賽項目: "cin>>tmpprogram;if(s=NULL) cout&

25、lt;<" 本系統(tǒng)暫無項目信息! "<<endl; return false; else while(s!=NULL) if(strcmp(s->getprogram(),tmpprogram)=0) s->output2(); return true; f=s;s=s->getnext();cout<<" 本系統(tǒng)無此項目信息!"<<endl;return false;bool operate:modify() /修改歌手信息int number;singer *s=myfirst;singer

26、 *f=s;cout<<" 請輸入要修改的歌手編號 :"cin>>number; if(s=NULL)cout<<" 無此歌手 !"<<endl; return false; elsewhile(s!=NULL)if(s->getnum()=number)s->output();while(1)int i;賽項目7:float tmpnumber;char temp30;cout<<"請選擇要修改的歌手信息cout<<"1: 姓名 2: 性別 3: 年

27、齡比賽時間 8: 比賽地點 9: 得分 "<<endl;:"<<endl;4: 參賽曲目5: 選送單位6: 比cout<<"請選擇 (19)中的選項 :"cin>>i;switch(i)case 1: cout<<"輸入修改姓名:"cin>>temp;strcpy(s->getname(),temp); ; break;case 2: cout<<"輸入修改性別 :"cin>>temp;strcpy(s->g

28、etsex(),temp); ;break;case 3: cout<<"輸入修改年齡:"cin>>tmpnumber;s->getagee(tmpnumber); ;break;case 4: cout<<"輸入修改參賽歌曲:"cin>>temp;strcpy(s->getsong(),temp); ;break;case 5: cout<<"輸入修改選送單位:"cin>>temp;strcpy(s->getdepart(),temp);bre

29、ak;case 6: cout<<"輸入修改比賽項目:"cin>>temp;strcpy(s->getprogram(),temp);break;case 7: cout<<"輸入修改比賽時間:"cin>>temp;strcpy(s->gettime(),temp);break;case 8: cout<<"輸入修改比賽地點:"cin>>temp;strcpy(s->getplace(),temp);break;case 9: cout<&

30、lt;"輸入修改得分:"cin>>tmpnumber;s->getscoree(tmpnumber); ;break; return true;else s=s->getnext(); f=s; cout<<" 沒有此編號的歌手 !"<<endl;return false;bool operate:deletesinger( ) /刪除歌手信息int i;singer *s=myfirst;singer *f=s;cout<<"請輸入要刪除歌手的編號:"cin>>

31、i;if(s=NULL)cout<<" 無歌手可以刪除 " return false; else if(s->getnum()=i)myfirst=myfirst->getnext();cout<<" 編號為 "<<i<<" 的歌手已被刪除了 !"<<endl; delete s;return true;elses=s->getnext();while(s!=NULL)if(s->getnum()=i)f->setnext(s->getne

32、xt();cout<<" 編號為 "<<i<<" 的成員已被刪除 n"delete s;return true;f=s;s=s->getnext();cout<<" 要刪除的歌手不存在 , 無法刪除 !"<<endl;return false;void operate:save() /歌手信息存盤ofstream f2("singer.txt",ios:out);singer *p=myfirst;while(p)f2<<p->ge

33、tnum()<<"t"<<p->getname()<<"t"<<p->getsex()<<"t"<<p->getage()<<"t"<<p->getsong()<<"t"<<p->getdepart()<<"t"<<p->getprogram()<<"t"<&l

34、t;p->g ettime()<<"t"<<p->getplace()<<"t"<<p->getscore<<endl;p=p->getnext();f2.close();cout<<"保存數(shù)據(jù)已經(jīng)完成 "<<endl;void operate:showa( ) /顯示所有歌手信息singer *s=myfirst;cout<<setw(8)<<"編號 "<<setw(8)

35、<<" 姓名 "<<setw(8)<<" 性別 "<<setw(8)<<" 年齡"<<setw(10)<<" 參賽曲目 "<<setw(12)<<" 選送單位 "<<endl; while(s!=NULL)cout<<setw(8)<<s->getnum()<<setw(8)<<s->getname()<<

36、setw(8)<<s->getsex()<<setw(8)<<s->getage()<<setw(10)<<s->getsong()<<setw(12)<<s->getdepart( )<<endl;s=s->getnext();void operate:showb() /顯示所有賽事信息singer *s=myfirst;cout<<setw(10)<<" 參賽項目 "<<setw(12)<<&quo

37、t; 參賽時間 "<<setw(12)<<" 參賽地點 "<<setw(12)<<" 得分 "<<endl;while(s!=NULL)cout<<setw(10)<<s->getprogram()<<setw(12)<<s->gettime()<<setw(12)<<s->g etplace()<<setw(12)<<s->getscore()<<end

38、l;s=s->getnext();void menu()/主菜單cout<<"|"<<endl;cout<<" *歡迎來到歌手信息管理系統(tǒng)*"<<endl;cout<<" *|*"<<endl;cout<<" *"<<endl;cout<<" *=*"<<endl;cout<<" *操作:*"<<endl;cout<<" *1.歌手?jǐn)?shù)據(jù)錄入*&quo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論