}
voidshanchu1()//运动员数据删除函数
{
ifstreamoutfile1("player.txt");
fstreamiofile("player.txt",ios:
:
in|ios:
:
out|ios:
:
binary);
intc;
cout<<"请选择对几号运动员的数据进行删除:
";
charpanduan;
do
{
cin>>c;
a[c-1].number=NULL;strcpy(a[c-1].eve,"");;strcpy(a[c-1].xuex,"");
iofile.seekp((c-1)*sizeof(a[0]),ios:
:
beg);
iofile.write((char*)&a[c-1],sizeof(a[c-1]));
cout<<"--------------删除成功-------------"<cout<<"是否需要继续删除?
需要请输入y,否则输入n";
cin>>panduan;
}while(panduan=='y'||panduan=='Y');
}
voidplayer()//运动员数据管理函数
{
ofstreamfile1("player.txt",ios:
:
app);
cout<<"*******运动员基本资料数据管理*******"<cout<<"运动员基本资料数据输入请按:
1"<cout<<"运动员基本资料数据修改请按:
2"<cout<<"运动员基本资料数据删除请按:
3"<cout<<"运动员基本资料数据查询请按:
4"<cout<<"退出管理请按:
5"<cout<<"************************************"<cout<cout<<"请选择:
"<intj;
cin>>j;
switch(j)
{
case1:
input1();break;
case2:
xiugai1();break;
case3:
shanchu1();break;
case4:
chaxun1();break;
default:
cout<};
}
classeven//定义赛事时间的类
{
public:
intmonth;
intday;
};
evenb[3];
voidinput2()//输入赛事时间的函数
{
ifstreamoutfile1("event.txt");
fstreamiofile("event.txt",ios:
:
in|ios:
:
out|ios:
:
binary);
if(!
iofile)
{
cerr<<"打开文件event.txt错误"<exit
(1);
}
for(i=0;i<3;i++)
{
cout<<"请分别输入赛事的比赛时间,顺序为体操、跳水、滑冰。
例如2月3日输入23"<cin>>b[i].month>>b[i].day;
iofile.write((char*)&b[i],sizeof(b[i]));
}
cout<<"-----------输入成功----------"<}
voidxiugai2()//修改赛事时间的函数
{
cout<<"现在对比赛event数据进行修改"<ifstreamoutfile1("event.txt");
fstreamiofile("event.txt",ios:
:
in|ios:
:
out|ios:
:
binary);
if(!
iofile)
{
cerr<<"打开文件event.txt错误"<exit
(1);
}
intd;
charpanduan;
do
{
cout<<"选择需要修改的比赛编号1代表体操,2代表跳水,3代表滑冰";
cin>>d;
iofile.seekp((d-1)*sizeof(b[0]),ios:
:
beg);
cout<<"请输入新的比赛时间:
"<cin>>b[d-1].month>>b[d-1].day;
iofile.write((char*)&b[d-1],sizeof(b[d-1]));
cout<<"修改成功"<cout<<"是否需要继续修改?
需要请输入y,否则输入n:
";
cin>>panduan;
}while(panduan=='y'||panduan=='Y');
}
voidchaxun2()//查询赛事时间的函数
{
cout<<"比赛event的比赛时间为:
"<cout<<"体操比赛的时间为"<
cout<<"跳水比赛的时间为"<
cout<<"滑冰比赛的时间为"<
cout<}
voidevent()//赛事管理函数
{
ofstreamfile1("event.txt",ios:
:
app);
cout<<"*********比赛event数据管理*********"<cout<<"比赛event数据输入请按:
1"<cout<<"比赛event数据修改请按:
2"<cout<<"比赛event数据查询请按:
3"<cout<<"退出管理请按:
4"<cout<<"***********************************"<cout<<"请选择:
";
intk;
cin>>k;
switch(k)
{
case1:
input2();break;
case2:
xiugai2();break;
case3:
chaxun2();break;
default:
cout<};
}
classscore//定义运动员分数的类
{
public:
floatsco[5];
floatsum;
floataver;
};
scorec[5];
voidinputscore()//成绩输入函数
{
for(i=0;i<5;i++)
{
cout<<"请输入5名评委给"<<(i+1)<<"号运动员的打的分数"<cin>>c[i].sco[0]>>c[i].sco[1]>>c[i].sco[2]>>c[i].sco[3]>>c[i].sco[4];
}
cout<<"-----------输入成功----------"<}
voidinquiry()//成绩查询函数
{
intx,j;
floattemp;
for(x=0;x<5;x++)
{
for(j=0;j<5;j++)
{
for(i=0;i<4;i++)
if(c[x].sco[i]>c[x].sco[i+1])
temp=c[x].sco[i];c[x].sco[i]=c[x].sco[i+1];c[x].sco[i+1]=temp;
}
c[x].aver=(c[x].sco[1]+c[x].sco[2]+c[x].sco[3])/3;
c[x].sum=c[x].sco[1]+c[x].sco[2]+c[x].sco[3]+c[x].sco[4]+c[x].sco[5];
}
cout<<"运动员的最终得分为:
"<cout<<"运动员编号得分1得分2得分3得分4得分5最终得分"<for(i=0;i<5;i++)
{
cout<:
left)<<(1+i)
<:
left)<<:
left)<<:
left)<<:
left)<<:
left)<<:
left)<}
}
voidbaocun()//数据保存
{
ifstreamoutfile1("score.txt");
ofstreamfile1("score.txt",ios:
:
app);
fstreamiofile("score.txt",ios:
:
in|ios:
:
out|ios:
:
binary);
if(!
iofile)
{
cerr<<"打开文件score.txt错误"<exit
(1);
}
for(i=0;i<5;i++)
{
iofile.write((char*)&a[i],sizeof(a[i]));
iofile.write((char*)&b[i],sizeof(b[i]));
iofile.write((char*)&c[i],sizeof(c[i]));
}
cout<<"------------保存成功------------"<outfile1.close();
file1.close();
iofile.close();
}
intmain()//程序主函数
{
inti;
do
{
kaishi();
cin>>i;
switch(i)
{
case1:
player();break;
case2:
event();break;
case3:
inputscore();break;
case4:
inquiry();break;
case5:
baocun();break;
case6:
cout<<"谢谢使用,请关闭"<default:
break;
}
}while(6);
return0;
}
运行截图
程序主界面
运动员数据管理界面
运动员数据输入
运动员数据修改
运动员数据删除
运动员数据的查询
比赛数据管理系统及数据的输入
比赛数据的修改
比赛数据的查询
运动员分数数据的输入
运动员成绩的查询
文件的保存
程序的退出
5.课程设计心得
学了一年的C++,但在课程设计的时候然我们写出了一个较长的程序时,一开始看到题目,一种无从下手的感觉,一种什么都不会的感觉,一种在这一年里自己什么都没学会样子。
但同学们跟我不一样,他们学的挺多。
但和同学们交流了以后,我也觉得自己还有可能会做出这个程序,于是开始做课程设计了!
虽然遇到来很多困难,但是最终还是完成了课程设计,通过这次设计我掌握了C++的编译,调试运行,以后,我会更加的努力的学习编程!
6.附录
参考资料
谭浩强.《C++程序设计》清华大学出版社2010年10月