C++歌手大奖赛管理系统_第1页
C++歌手大奖赛管理系统_第2页
C++歌手大奖赛管理系统_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#in clude<iostream> #in clude<stri ng> #in clude<fstream> #in cludevioma nip> using n amespace std; class sin ger/ protected: int no; / char n ame20;/char sex10;/int age; / 年龄 char son g20;/char departme nt30;char program30; / char time20;/char place20; /歌手类的定义编号姓名性别参赛曲目/选送单位比赛项

2、目名称比赛时间比赛地点int score; /sin ger *myn ext;/public:sin ger();/比赛成绩指向下一个歌手的指针歌手类无参构造函数的定义sin ger(i nt pnu m,char pn ame,char psex,i nt page,char pson g,char pdepart,char program,char time,char place,i nt score); / 参构造函数的定义歌手类有sin ger(i nt pnu m,char pn ame,char psex,i nt page,char pson g,char pdepart,ch

3、ar program,char time,char place,i nt score,s in ger *n ext);/歌手类有参构造函数的定义提取员歌手参赛曲目函数的定义提取歌手选送单位函数的定义提取比赛项目名称函数的定义提取比赛时间函数的定义提取比赛地点函数的定义提取比赛成绩函数的定义提取指向下一个歌手指针函数的定义/设置指向下一个歌手指针函数的定义输出歌手信息函数的定义 输出赛事信息函数的定义输出全部信息函数的定义int get nu m();/char *get name() ;/char *getsex();/int getage();/void getagee(i nt as);

4、/void getscoree(i nt ak);char *gets on g();/char *getdepart(); / char *getprogram();/char *gettime();/char *getplace();/int getscore();/sin ger *get next();/void set next(s in ger *n ext); void output1(); / void output2(); / void output(); /提取歌手编号函数的定义提取歌手名字函数的定义提取歌手性别函数的定义提取歌手年龄函数的定义设置歌手年龄函数的定义歌手类无

5、参构造函数;sin ger:s in ger()/no=0;strcpy (n ame,"");strcpy(sex,"");age=0;strcpy(so ng,"");strcpy(departme nt,"");strcpy(program,""); strcpy(time,"");strcpy(place,"");score=0;myn ext=NULL;歌手类有参构造sin ger:s in ger(i nt pnu m,char pn ame,

6、char psex,i nt page,char pson g,char pdepart,char pprogram,char ptime,char pplace,i nt pscore) / 函数no=pnum;strcpy( name,p name);strcpy(sex,psex);age=page;strcpy(s on g,ps on g);strcpy(departme nt,pdepart);strcpy(program,pprogram);strcpy(time,ptime);strcpy(place,pplace);score=pscore;myn ext=NULL;sin

7、ger:s in ger(i nt pnu m,char pn ame,char psex,i nt page,char pson g,char pdepart,char pprogram,char ptime,char pplace,i nt pscore,s in ger *n ext) / 歌手类有参构造函数no=pnum;strcpy( name,p name);strcpy(sex,psex);age=page;strcpy(s on g,ps on g);strcpy(departme nt,pdepart);strcpy(program,pprogram);strcpy(time

8、,ptime);strcpy(place,pplace);score=pscore;myn ext=n ext;int sin ger:get num() retur n no; char *sin ger:get name() return n ame; char *sin ger:getsex() retur n sex; char *sin ger:gets on g() retur n son g; char *sin ger:getdepart() retur n departme nt; int sin ger:getage() retur n age; char *si nger

9、:getprogram()return program; char *si nger:gettime()return time; char *si nger:getplace()return place; int si nger:getscore()return score; void sin ger:getagee(i nt as) age=as; void sin ger:getscoree(i nt ak)score=ak; void sin ger:set next(s in ger *n ext) myn ext=n ext; sin ger *sin ger:get next()

10、return myn ext; void sin ger:output1()cout«"编号:"<<no<<endl; cout«"姓名:"<<name<<endl;coutvv"'性另 H:"<<sex<<e ndl; cout«"年龄:"<<age<<endl;cout«"参赛歌曲:"<<song«endl; coutvv&qu

11、ot;选送单位:"<<department<<endl; void sin ger:output2() coutvv"比赛项目:"vvprogramvvendl; coutvv"姓名:"v<name<<endl;coutvv"比赛时间:"vvtimevvendl; coutvv"比赛地点:"vvplacevvendl; coutvv"得分:"vvscorevvendl;void sin ger:output()coutvv" 编号:&

12、quot;v vno vve ndl; coutvv"姓名:"vvnamevvendl;coutvv"'性另寸:"vvsexvve ndl; coutvv"年龄:"vvagevvendl;coutvv"参赛歌曲:"vvsongvvendl;coutvv"选送单位:"vvdepartmentvvendl; coutvv"比赛项目:"vvprogramvvendl; coutvv"比赛时间:"vvtimevvendl; coutvv"比赛地点

13、:"vvplacevvendl; coutvv"得分:"vvscorevvendl;class operate:public sin ger private:bool findnum();/bool fin dprogram();bool modify(); / bool deletes in ger();void save();/void showa();/void showb(); /singer *myfirst; / 指向歌手链表中结点的指针public:operate。;/operate类无参构造函数的定义operate© nt nnu m,c

14、har nn ame,char n sex,i nt n age,char nson g,char n depart,char n program,char n time,char n place,i nt n score);operate();/operate类析构函数的定义void load(); /从文件中加载歌手信息void add(); /增加歌手信息void in put( int number); /键盘输入新歌手基本信息void in sert(i nt nnu m,char nn ame,char n sex,i nt n age,char nson g,char n dep

15、art,char n program,char n time,char n place,i nt n score);按编号查询歌手信息/按项目名称查询赛事信息修改歌手信息/删除歌手信息歌手信息存盘显示所有歌手信息显示比赛赛事。;operate:operate ()/operate类无参构造函数的实现 myfirst=NULL; 类带参operate:operate(i nt nnu m,char nn ame,char n sex,i nt n age,char nson g,char n depart,char n program,char n time,char n place,i nt

16、n score) /operate 数构造函数的实现 myfirst=newsinger(nnum,nn ame ,n sex ,n age ,nsong,n depart ,n program ,n time ,n place ,n score); operate:operate()/operate类析构函数的实现sin ger *n ext=myfirst,*temp;while( next!=NULL)temp=n ext;n ext=n ext->get next();delete temp;myfirst=NULL;void operate:load() /从文件中加载歌手信息

17、int nnum,n age;float n score;charnn ame20, nsex20, nso ng20, ndepart20, nprogram20, ntime20, nplace20; ifstream f1("s in ger.txt",ios:i n);while(f1.good()f1> >nnum>>nn ame> >n sex> >n age> >nsong>>n depart>n program >>n time> >n place>n

18、 score; if(!(f1.eof()in sert (nnum,nn ame ,n sex ,n age ,nsong,n depart ,n program ,n time ,n place ,n score);f1.close();cout«endl<<"存储在文件中的学校人员信息已加载到系统中"<<endl;void operate:add() /增加新歌手int num,n1,n2;sin ger *p=myfirst;if(p=NULL)coutvv"目前无歌手,请输入新歌手的编号:"cin»n

19、um;in put( nu m);elseif(p->get next()=NULL)n 1=p->get num ()+1;in put( n1);elsewhile(p->get next()!=NULL)p=p->get next();n 2=p->get num ()+1;in put (n 2); void operate:i nput(i nt number) /键盘输入新歌手基本信息int n age;int n score;charnn ame20, nsex20, nso ng20, ndepart20, nprogram20, ntime20,

20、 nplace20;coutvv"请输入编号为"<<numbervv"的歌手信息"<<endl;coutvv"输入姓名:"cin>>nname;coutvv"输入性别:"cin>>nsex;coutvv"输入年龄:"cin>>nage;coutvv"输入参赛歌曲:"ci nn so ng;coutvv" 选送单位:"ci n>>n depart;cout«"比赛项目

21、cout«"比赛时间cout«"比赛地点"ci n»n program;"ci n>>n time;"ci n»n place;coutvv"得分:"cin>>nscore;in sert( nu mber, nn ame, nsex, nage, nsong,n depart, nprogram, ntime, nplace, nscore); void operated nsert(i nt nnu m,char nn ame,char n sex,i nt

22、 n age,char nson g,charn depart,char n program,char n time,char n place,i nt n score)sin ger *p=myfirst;if(p=NULL)myfirst=newsinger(nnum,nn ame ,n sex ,n age ,nsong,n depart ,n program ,n time ,n place ,n score);elsewhile(p->get next()!=NULL) p=p->get next();p->set next (newsin ger( nnu m,

23、nn ame ,n sex, nage, nson g, ndepart, nprogram, ntime ,n place ,n score,p->get nex t();bool operate:fi ndnum() /按编号查询歌手信息int id;sin ger *s=myfirst;sin ger *f=s;coutvv"请输入歌手的编号:"cin>>id;if(s=NULL) coutvv"本系统暂无歌手信息!"<<endl; return false; elsewhile(s!=NULL)if(s->ge

24、t num( )=id) s->output1(); return true; else f=s; s=s->get next(); coutvv"无此歌手信息!"<<endl;return false;bool operate:fi ndprogram() /按比赛项目查询赛事信息char tmpprogram20;sin ger *s=myfirst;sin ger *f=s;coutvv"请输入比赛项目:"cin> >tmpprogram;if(s=NULL) cout«" 本系统暂无项目信息

25、! "<<e ndl; return false; else while(s!=NULL) if(strcmp(s->getprogram(),tmpprogram)=0) s->output2(); return true; f=s; s=s->get next();cout«"本系统无此项目信息! "<<endl;return false;bool operate:modify() /修改歌手信息int nu mber;sin ger *s=myfirst;sin ger *f=s;coutvv"请

26、输入要修改的歌手编号:"cin>>number;if(s=NULL)coutvv"无此歌手!"<<endl; return false; elsewhile(s!=NULL)if(s->get num()=nu mber)s->output();while(1)int i;float tmp nu mber;char temp30;coutvv"请选择要修改的歌手信息:"<<e ndl;coutvv"1:姓名2:性别3:年龄4:参赛曲目5:选送单位6:比赛项目7:比赛时间8:比赛地点9:

27、得分"vvendl;coutvv"请选择(19)中的选项:"cin>>i;switch(i)case 1: coutvv"输入修改姓名:"ci n> >temp;strcpy(s->get name(),temp); ; break;case 2: coutvv"输入修改性别:"ci n> >temp;strcpy(s->getsex(),temp); ;break;case 3: cout«"输入修改年龄:"ci n> >tmp nu

28、 mber;s->getagee(tmp nu mber); ;break;case 4: cout<<"输入修改参赛歌曲:"ci n> >temp;strcpy(s->gets on g(),temp); ;break;case 5: cout<<"输入修改选送单位:"ci n> >temp;strcpy(s->getdepart(),temp);break;case 6: cout<<"输入修改比赛项目:"cin>>temp;strcpy(s

29、->getprogram(),temp);break;case 7: cout<<"输入修改比赛时间:"ci n> >temp;strcpy(s->gettime(),temp);break;case 8: cout<<"输入修改比赛地点:"ci n> >temp;strcpy(s->getplace(),temp);break;case 9: cout<<"输入修改得分:"ci n> >tmp nu mber;s->getscoree(t

30、mp nu mber); ;break; return true;else s=s->get next(); f=s; coutvv"没有此编号的歌手!"<<endl;return false;bool operate:deletesi nger( ) /删除歌手信息int i;sin ger *s=myfirst;sin ger *f=s;coutvv"请输入要删除歌手的编号:"cin>>i;if(s=NULL)coutvv"无歌手可以删除"return false; else if(s->get

31、 num ()=i)myfirst=myfirst->get next();coutvv" 编号为"<<ivv"的歌手已被删除了 !"<<endl; delete s;return true;elses=s->get next();while(s!=NULL)if(s->get num ()=i)f->set next(s->get next();coutvv"编号为"vvivv"的成员已被删除n"delete s;return true;f=s;s=s->

32、;get next();coutvv"要删除的歌手不存在,无法删除!"<<endl;return false;void operate:save() /歌手信息存盘ofstream f2("si nger.txt",ios:out);sin ger *p=myfirst;while(p)t"<<p->gets on g()vv"t"vvp->getdepart()vv"t"vvp->getprogram()vv"t"vvp->gettim

33、e()<<%"<<卩->96上卩力。6()<<%"<<卩->96上$。09<<6 ndl;p=p->get next();f2.close();coutvv" 保存数据已经完成"<<endl;void operate:showa( ) /显示所有歌手信息sin ger *s=myfirst;cout<<setw(8)vv" 编号"<<setw(8)vv"姓名"<<setw(8)vv"

34、;性别"<<setw(8)vv"年龄 "vvsetw(10)v<"参赛曲目"<<setw(12)vv"选送单位"<<endl;while(s!=NULL)cout<<setw(8)vvs->get num( )vvsetw(8)v<s->get name()v<setw(8)vvs->getsex()vvsetw(8)v<s->getage()vvsetw(10)vvs->gets on g()vvsetw(12)vvs-&

35、gt;getdepart()v<e nd l;s=s->get next();void operate:showb() /显示所有赛事信息sin ger *s=myfirst;cout<vsetw(10)vv"参赛项目"<<setw(12)vv"参赛时间"<<setw(12)vv"参赛地点 "vvsetw(12)vv"得分"<<endl;while(s!=NULL)coutvvsetw(10)vvs->getprogram()vvsetw(12)vvs-&

36、gt;gettime()v<setw(12)vvs->getplac e()v<setw(12)vvs->getscore()vve ndl;s=s->get next();void menu() 主菜单cci 2刁iaaaaaaaaaaaaaaaaaaaaaaaaaaa"<<e ndl;cout«"*欢迎来到歌手信息管理系统<<e ndl;*、'cout«" *|*"<<e ndl;cci 2刁 *AAAAAAAAAAAAAAAAAAAAAAAAAAA*"<<e ndl; cout«"*"<<e ndl;cout«" *II操作:II*"<<e ndl;cout«" *II1.歌手数据录入II*"<<e ndl;cout«" *II2.增加新歌手II*"<<e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论