C++歌手大奖赛管理系统.docx

上传人:b****9 文档编号:25283140 上传时间:2023-06-07 格式:DOCX 页数:21 大小:20.89KB
下载 相关 举报
C++歌手大奖赛管理系统.docx_第1页
第1页 / 共21页
C++歌手大奖赛管理系统.docx_第2页
第2页 / 共21页
C++歌手大奖赛管理系统.docx_第3页
第3页 / 共21页
C++歌手大奖赛管理系统.docx_第4页
第4页 / 共21页
C++歌手大奖赛管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++歌手大奖赛管理系统.docx

《C++歌手大奖赛管理系统.docx》由会员分享,可在线阅读,更多相关《C++歌手大奖赛管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

C++歌手大奖赛管理系统.docx

C++歌手大奖赛管理系统

#include

#include〈string>

#include

#include〈iomanip〉

usingnamespacestd;

classsinger//歌手类的定义

protected:

intno;//编号

charname[20];//姓名

charsex[10];//性别

intage;//年龄

charsong[20];//参赛曲目

chardepartment[30];//选送单位

charprogram[30];//比赛项目名称

chartime[20];//比赛时间

charplace[20];//比赛地点

intscore;//比赛成绩

singer*mynext;//指向下一个歌手的指针

public:

singer();//歌手类无参构造函数的定义

singer(intpnum,charpname[],charpsex[],intpage,charpsong[],charpdepart[],charprogram[],chartime[],charplace[],intscore);//歌手类有参构造函数的定义

singer(intpnum,charpname[],charpsex[],intpage,charpsong[],charpdepart[],charprogram[],chartime[],charplace[],intscore,singer*next);//歌手类有参构造函数的定义

intgetnum();//提取歌手编号函数的定义

char*getname();//提取歌手名字函数的定义

char*getsex();//提取歌手性别函数的定义

intgetage();//提取歌手年龄函数的定义

voidgetagee(intas);//设置歌手年龄函数的定义

voidgetscoree(intak);

char*getsong();//提取员歌手参赛曲目函数的定义

char*getdepart();//提取歌手选送单位函数的定义

char*getprogram();//提取比赛项目名称函数的定义

char*gettime();//提取比赛时间函数的定义

char*getplace();//提取比赛地点函数的定义

intgetscore();//提取比赛成绩函数的定义

singer*getnext();//提取指向下一个歌手指针函数的定义

voidsetnext(singer*next);//设置指向下一个歌手指针函数的定义

voidoutput1();//输出歌手信息函数的定义

voidoutput2();//输出赛事信息函数的定义

voidoutput();//输出全部信息函数的定义

};

singer:

singer()//歌手类无参构造函数

no=0;

strcpy(name,"”);

strcpy(sex,"”);

age=0;

strcpy(song,”");

strcpy(department,””);

strcpy(program,"”);

strcpy(time,"");

strcpy(place,"");

score=0;

mynext=NULL;

}

singer:

:

singer(intpnum,charpname[],charpsex[],intpage,charpsong[],charpdepart[],charpprogram[],charptime[],charpplace[],intpscore)//歌手类有参构造函数

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(intpnum,charpname[],charpsex[],intpage,charpsong[],charpdepart[],charpprogram[],charptime[],charpplace[],intpscore,singer*next)//歌手类有参构造函数

{

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;

intsinger:

:

getnum(){returnno;}

char*singer:

getname(){returnname;}

char*singer:

getsex(){returnsex;}

char*singer:

:

getsong(){returnsong;}

char*singer:

:

getdepart(){returndepartment;}

intsinger:

:

getage(){returnage;}

char*singer:

getprogram(){returnprogram;}

char*singer:

:

gettime(){returntime;}

char*singer:

getplace(){returnplace;}

intsinger:

getscore(){returnscore;}

voidsinger:

getagee(intas){age=as;}

voidsinger:

getscoree(intak){score=ak;}

voidsinger:

setnext(singer*next){mynext=next;}

singer*singer:

getnext(){returnmynext;}

voidsinger:

output1()

cout〈〈"编号:

"<〈no〈〈endl;

cout〈<"姓名:

"〈〈name〈〈endl;

cout<〈”性别:

"〈〈sex<〈endl;

cout〈〈”年龄:

”<〈age〈〈endl;

cout〈<”参赛歌曲:

"〈〈song〈

cout〈<”选送单位:

”<〈department<〈endl;

}

voidsinger:

:

output2()

cout〈〈"比赛项目:

”<〈program〈〈endl;

cout<〈"姓名:

”〈〈name<〈endl;

cout<<”比赛时间:

”〈〈time<〈endl;

cout〈〈”比赛地点:

”<〈place<〈endl;

cout<〈”得分:

"〈〈score<

voidsinger:

:

output()

cout<<"编号:

”〈

cout〈<”姓名:

”<

cout<<"性别:

”〈〈sex<

cout〈<”年龄:

”<〈age〈

cout<<”参赛歌曲:

"<〈song〈〈endl;

cout〈〈”选送单位:

"〈〈department<

cout〈<”比赛项目:

”<

cout〈〈"比赛时间:

"〈

cout〈〈"比赛地点:

”〈

cout〈〈"得分:

"<〈score〈〈endl;

classoperate:

publicsinger

{

private:

singer*myfirst;//指向歌手链表中结点的指针

public:

operate();//operate类无参构造函数的定义

operate(intnnum,charnname[],charnsex[],intnage,charnsong[],charndepart[],charnprogram[],charntime[],charnplace[],intnscore);

~operate();//operate类析构函数的定义

voidload();//从文件中加载歌手信息

voidadd();//增加歌手信息

voidinput(intnumber);//键盘输入新歌手基本信息

voidinsert(intnnum,charnname[],charnsex[],intnage,charnsong[],charndepart[],charnprogram[],charntime[],charnplace[],intnscore);

boolfindnum();//按编号查询歌手信息

boolfindprogram();//按项目名称查询赛事信息

boolmodify();//修改歌手信息

booldeletesinger();//删除歌手信息

voidsave();//歌手信息存盘

voidshowa();//显示所有歌手信息

voidshowb();//显示比赛赛事。

};

operate:

operate()//operate类无参构造函数的实现

{myfirst=NULL;}

operate:

operate(intnnum,charnname[],charnsex[],intnage,charnsong[],charndepart[],charnprogram[],charntime[],charnplace[],intnscore)//operate类带参数构造函数的实现

{myfirst=newsinger(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore);}

operate:

~operate()//operate类析构函数的实现

{

singer*next=myfirst,*temp;

while(next!

=NULL)

{

temp=next;

next=next—〉getnext();

deletetemp;

myfirst=NULL;

voidoperate:

load()//从文件中加载歌手信息

{

intnnum,nage;

floatnscore;

charnname[20],nsex[20],nsong[20],ndepart[20],nprogram[20],ntime[20],nplace[20];

ifstreamf1(”singer。

txt”,ios:

in);

while(f1。

good())

f1>〉nnum〉〉nname>>nsex〉>nage>>nsong>>ndepart>〉nprogram>〉ntime〉>nplace>>nscore;

if(!

(f1.eof()))

insert(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore);

f1。

close();

cout<

voidoperate:

add()//增加新歌手

intnum,n1,n2;

singer*p=myfirst;

if(p==NULL)

cout〈<”目前无歌手,请输入新歌手的编号:

”;

cin>>num;

input(num);

else

if(p—〉getnext()==NULL)

n1=p-〉getnum()+1;

input(n1);

}

else

while(p->getnext()!

=NULL)

p=p—〉getnext();

n2=p—>getnum()+1;

input(n2);}

voidoperate:

:

input(intnumber)//键盘输入新歌手基本信息

{

intnage;

intnscore;

charnname[20],nsex[20],nsong[20],ndepart[20],nprogram[20],ntime[20],nplace[20];

cout〈〈”请输入编号为”〈〈number〈<”的歌手信息"<〈endl;

cout〈〈”输入姓名:

”;cin>〉nname;

cout<〈”输入性别:

";cin>>nsex;

cout<〈"输入年龄:

”;cin>>nage;

cout<<”输入参赛歌曲:

”;cin〉〉nsong;

cout<<"选送单位:

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

voidoperate:

insert(intnnum,charnname[],charnsex[],intnage,charnsong[],charndepart[],charnprogram[],charntime[],charnplace[],intnscore)

{

singer*p=myfirst;

if(p==NULL)

myfirst=newsinger(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore);

else

while(p—>getnext()!

=NULL)

p=p—〉getnext();

p—>setnext(newsinger(nnum,nname,nsex,nage,nsong,ndepart,nprogram,ntime,nplace,nscore,p->getnext()));}

booloperate:

findnum()//按编号查询歌手信息

{

intid;

singer*s=myfirst;

singer*f=s;

cout<〈"请输入歌手的编号:

”;cin〉〉id;

if(s==NULL)

{cout〈〈"本系统暂无歌手信息!

"〈〈endl;returnfalse;}

else

{

while(s!

=NULL)

{

if(s—〉getnum()==id)

{s—>output1();returntrue;}

else

{f=s;s=s-〉getnext();}

cout〈〈”无此歌手信息!

”〈〈endl;

returnfalse;

}

booloperate:

:

findprogram()//按比赛项目查询赛事信息

{

chartmpprogram[20];

singer*s=myfirst;

singer*f=s;

cout〈〈”请输入比赛项目:

";

cin>>tmpprogram;

if(s==NULL)

{cout〈〈"本系统暂无项目信息!

”〈〈endl;returnfalse;}

else

{while(s!

=NULL)

{if(strcmp(s—>getprogram(),tmpprogram)==0)

{s—>output2();returntrue;}

f=s;s=s—〉getnext();

cout〈〈"本系统无此项目信息!

”〈〈endl;

returnfalse;

}

}

booloperate:

:

modify()//修改歌手信息

intnumber;

singer*s=myfirst;

singer*f=s;

cout<<”请输入要修改的歌手编号:

";cin>〉number;

if(s==NULL)

{cout〈〈”无此歌手!

”〈〈endl;returnfalse;}

else

{

while(s!

=NULL)

if(s—〉getnum()==number)

{

s—〉output();

while

(1)

{

inti;

floattmpnumber;

chartemp[30];

cout〈<"请选择要修改的歌手信息:

"<

cout<〈”1:

姓名2:

性别3:

年龄4:

参赛曲目5:

选送单位6:

比赛项目7:

比赛时间8:

比赛地点9:

得分"〈〈endl;

cout<〈"请选择(1~9)中的选项:

”;cin〉>i;

switch(i)

case1:

{cout〈〈”输入修改姓名:

”;cin>〉temp;strcpy(s—〉getname(),temp);};break;

case2:

{cout<〈”输入修改性别:

";cin>〉temp;strcpy(s-〉getsex(),temp);};break;

case3:

{cout<<"输入修改年龄:

";cin>〉tmpnumber;s—〉getagee(tmpnumber);};break;

case4:

{cout<〈”输入修改参赛歌曲:

”;cin〉〉temp;strcpy(s—〉getsong(),temp);};break;

case5:

{cout〈〈”输入修改选送单位:

";cin>〉temp;strcpy(s—〉getdepart(),temp);};break;

case6:

{cout<<”输入修改比赛项目:

";cin〉〉temp;strcpy(s—>getprogram(),temp);};break;

case7:

{cout<<"输入修改比赛时间:

";cin>〉temp;strcpy(s->gettime(),temp);};break;

case8:

{cout〈〈”输入修改比赛地点:

”;cin〉〉temp;strcpy(s—〉getplace(),temp);};break;

case9:

{cout〈〈"输入修改得分:

”;cin>>tmpnumber;s—〉getscoree(tmpnumber);};break;}

returntrue;

}

else

{s=s—〉getnext();f=s;}

cout〈<”没有此编号的歌手!

”〈

returnfalse;

}

booloperate:

:

deletesinger()//删除歌手信息

inti;

singer*s=myfirst;

singer*f=s;

cout<〈"请输入要删除歌手的编号:

”;cin〉〉i;

if(s==NULL)

{

cout〈〈”无歌手可以删除”;returnfalse;}

elseif(s-〉getnum()==i)

myfirst=myfirst—>getnext();

cout<〈”编号为"〈〈i<<"的歌手已被删除了!

”〈

deletes;

returntrue;

}

else

s=s-〉getnext();

while(s!

=NULL)

if(s—>getnum()==i)

f—>setnext(s—〉getnext());

cout<〈"编号为”〈

deletes;

returntrue;

f=s;

s=s-〉getnext();

cout<<"要删除的歌手不存在,无法删除!

”〈〈endl;

returnfalse;

voidoperate:

save()//歌手信息存盘

ofstreamf2("singer。

txt”,ios:

out);

singer*p=myfirst;

while(p)

{

f2<getsex()〈〈”\t”〈〈p—>getage()〈〈”\t”

<〈p—>getsong()<〈”\t”〈getprogram()〈<”\t”〈〈p—>gettime()〈〈”\t"〈〈p—〉getplace()〈〈"\t"<〈p-〉getscore〈

p=p->getnext();

f2.close();

cout〈<”保存数据已经完成”<〈endl;

voidoperate:

showa()//显示所有歌手信息

{

singer*s=myfirst;

cout〈

while(s!

=NULL)

{

cout〈

<getage()<〈setw(10)〈getdepart()<〈endl;

s=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1