校际运动会管理系统.docx
《校际运动会管理系统.docx》由会员分享,可在线阅读,更多相关《校际运动会管理系统.docx(21页珍藏版)》请在冰点文库上搜索。
校际运动会管理系统
《校际运动会管理系统》
程序设计基础课程设计报告
二OO八年七月二十九日
1:
课程设计的目的
本程序主要学习类的使用,以及子类的调用,了解函数体的调用case语句使用,for循环,函数的调用,进一步加深对语言程序设计的了解,解决一些简单的程序应用,综合实现程序的利用。
2:
校际运动会管理系统
2:
问题描述
(1)初始化输入:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;
各项目名次取法有如下几种:
取前5名:
第1名得7分,第2名得5分,第3名得3分,第4名得2分,第5名得1分;
取前三名:
第一名得5分,第二名得3分,第三名得2分;
用户自定义:
各名次权值有用户定义。
(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
3:
课程设计的基本要求:
根据规定的题目,编写程序设计的说明(程序设计文当),程序设计说明包括以下容:
设计简要说明
1)程序运行的软硬件环境
2)程序的组成模块及每个模块的基本功能
3)每个模块的流程图
4)程序的使用方法
5)源程序的清单
6)总结与体会
3.课程设计报告容
3.1第一个程序有一个Point类,该类共有12个函数
3.2第一个程序的类中各个函数作用分别为:
voidMenu();//显示选单
voidSet1();//设置竞赛项目总数
voidSet2();//设置某项目名次的取法及每一名次的分值
voidFind();//查询功能
voidSet3();//设置竞赛项目信息
voidPut();//打印竞赛项目信息
voidSet4();//为某个竞赛项目设定比赛结果信息
voidList();//按学校打印成绩
voidGetReport();//生成报表
voidQuit();//退出功能
4.算法描述
该程序主要采用类的结构,及其应用,公有10函数,在函数中实现嵌套,连接,指针的传递,数组等简单的程序结构。
5.运算结果
该程序运行结果及其程序逐步实现为以下图片显示
6.源程序
#include
#include
usingnamespacestd;
classSport//
{
public:
voidMenu();//显示选单
voidSet1();//设置竞赛项目总数
voidSet2();//设置某项目名次的取法及每一名次的分值
voidFind();//查询功能
voidSet3();//设置竞赛项目信息
voidPut();//打印竞赛项目信息
voidSet4();//为某个竞赛项目设定比赛结果信息
voidList();//按学校打印成绩
voidGetReport();//生成报表
voidQuit();//退出功能
private:
stringname;//学校名称
stringsnumber;//学校编号
stringmtname;//男子竞赛项目类型
stringmtnumber;//男子竞赛项目编号
stringftname;//女子竞赛项目类型
stringftnumber;//女子竞赛项目编号
intnumber;//得分
};
strings;//定义字符型全局变量
intn;//定义整型全局变量
Sportt[100],tt[100];//定义结构体数组
intt1[100];
intn1,n2,n3;
voidSport:
:
Menu()//显示选单
{
cout<<"\n**********"<<"选单"<<"**********"<cout<<"\n"
<<"设置竞赛项目总数<1>\t"
<<"设置竞赛项目名次<2>\n"
<<"设置竞赛项目信息<3>\t"
<<"设定比赛结果信息<4>\n"
<<"查询<5>\t"
<<"按学校打印成绩<6>\n"
<<"打印竞赛项目信息<7>\t"
<<"生成报表<8>\n"
<<"退出\n";
cout<cout<<"******************************"<cout<cout<<"请您输入相应的字母:
";
}
voidSport:
:
Set1()//设置竞赛项目总数
{
cout<<"请输入男子竞赛项目总数(0<总项目数<8):
";
cin>>n1;
cout<cout<<"请输入女子竞赛项目总数(0<总项目数<8):
";
cin>>n2;
cout<cout<<"请输入参加运动会的学校总数(0<学校总数<8):
";
cin>>n3;
for(inti=0;i{
t[i].snumber=i+1;
cout<<"\n请输入编号为"<
";
cin>>tt[i].name;
}
cout<cout<<"**********输入完毕!
***********"<Sportsport;
sport.Menu();//调用Menu函数,显示选单
}
voidSport:
:
Set2()//设置某项目名次的取法及每一名次的分值
{
charch;
inti,p;
for(inti1=0;i1<10;i1++)
{
cout<stringover;//定义字符串变量,用于退出
cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!
"<cin>>over;
if(over=="over")break;
cout<<"\n请选择编号为"<取前5名;1:
取前3名;2:
用户自定义):
";
cin>>ch;
cout<switch(ch)
{
case'0':
/*取前5名*/
{
t1[0]=7;
t1[1]=5;
t1[2]=3;
t1[3]=2;
t1[4]=1;
break;
}
case'1':
/*取前3名*/
{
for(inti=0;i<3;i++)
{
t1[0]=5;
t1[1]=3;
t1[2]=2;
}
break;
}
case'2':
/*用户自定义类型*/
{
cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!
"<for(i=0;i<10;i++)
{
cout<stringover;//定义字符串变量,用于退出
cin>>over;
if(over=="over")break;
cout<<"\n请输入该项目第"<
"<cin>>p;
if(p<=0)
{
cout<<"\n输入有误,分值应大于0!
"<}
}
}break;
default:
/*错误的输入*/
{
cout<<"\n错误的选择!
";
break;
}
}
}
/*Sportsport;
sport.Menu();//调用Menu函数,显示选单*/
}
voidSport:
:
Find()//查询功能
{
cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!
"<for(inti=0;i<10;i++)
{
cout<stringover;//定义字符串变量,用于退出
cin>>over;
if(over=="over")break;
cout<<"请输入你的选择(参赛学校信息,比赛项目信息,学校比赛成绩):
";
chars;
cin>>s;
switch(s)
{
case'n':
{
cout<<"请输入学校的名称:
";
stringfname;
cin>>fname;
for(inti=0;i{
if(fname==tt[i].name)
{
cout<<"\n学校编号:
"<cout<<"学校名称:
"<
cout<<"男子项目编号:
"<cout<<"男子项目名称:
"<cout<<"女子项目编号:
"<cout<<"女子项目名称:
"<break;
}
}
if(i==n3)cout<<"\n本次查询完毕,没有查询到此人的相关信息!
!
!
"<}break;
case'h':
{
cout<<"请选择:
(1-男2-女)"<if(i==1)
{
cout<<"请输入比赛项目的名称:
";
stringfname;
cin>>fname;
for(inti=0;i{
if(fname==t[i].mtname)
{
cout<<"男子项目编号:
"<cout<<"男子项目名称:
"<cout<break;
}
}
if(i==n1)cout<<"\n本次查询完毕,没有查询到此人的相关信息!
!
!
"<}
if(i==2)
{
cout<<"请输入比赛项目的名称:
";
stringffname;
cin>>ffname;
for(inti=0;i{
if(ffname==t[i].ftname)
{
cout<<"女子项目编号:
"<cout<<"女子项目名称:
"<cout<break;
}
}
if(i==n2)cout<<"\n本次查询完毕,没有查询到此人的相关信息!
!
!
"<}
}break;
case't':
{
cout<<"请输入学校的名称:
";
stringfname;
cin>>fname;
for(inti=0;i{
if(fname==tt[i].name)
{
cout<break;
}
}
if(i==n3)cout<<"\n本次查询完毕,没有查询到此人的相关信息!
!
!
"<}break;
default:
{
cout<<"\n输入字母错误,请重新输入!
!
!
"<break;
}break;
}
}
Sportsport;
sport.Menu();//调用Menu函数,显示选单*/
}
voidSport:
:
Set3()//设置竞赛项目信息
{
inti=0;
for(i=0;i<10;i++)
{
cout<stringover;//定义字符串变量,用于退出
cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!
"<cin>>over;
if(over=="over")break;
cout<<"\n请选择男子或女子项目编号(1:
男2:
女):
";/*项目类型:
男子或女子项目*/
charch;
cin>>ch;
cout<switch(ch)
{
case'1':
{
for(inti=0;i{
t[i].mtnumber=i+1;
cout<<"\n请输入男子项目编号为"<
";/*项目名称*/
cin>>t[i].mtname;
}
}break;
case'2':
{
for(inti=0;i{
t[i].ftnumber=i+1;
cout<<"\n请输入女子项目编号为"<
";/*项目名称*/
cin>>t[i].ftname;
}
}break;
default:
{
cout<<"\n输入字母错误,请重新输入!
!
!
";/*项目名称*/
}break;
}
}
Sportsport;
sport.Menu();//调用Menu函数,显示选单*/
}
voidSport:
:
Put()//打印竞赛项目信息
{
inti;
cout<<"\n共有"<for(i=0;i{
cout<<"\n学校编号:
"<cout<<"学校名称:
"<
}
cout<<"\n您输入的比赛项目信息如下:
"<for(i=0;i{
cout<<"\n男子项目编号:
"<cout<<"男子项目名称:
"<}
for(i=0;i{
cout<<"\n女子项目编号:
"<cout<<"女子项目名称:
"<}
Sportsport;
sport.Menu();//调用Menu函数,显示选单*/
}
voidSport:
:
Set4()//为某个竞赛项目设定比赛结果信息
{
inti=0,j=0;
cout<<"\n请选择男子或女子项目(1:
男2:
女):
";
intch;
cin>>ch;
cout<switch(ch)
{
case1:
{
for(i=0;i{
cout<<"\n填写男子项目"<"<Sportsport;
sport.Set2();
cout<<"\n输入获得第"<
"<t[i].number=t1[i];//得分
cout<<"\n:
"<cin>>t[i].name;
cout<<"\n学校编号:
";/*学校编号检查编号合法性*/
cin>>t[i].snumber;
}
}break;
case2:
{
for(i=0;i{
cout<<"\n填写女子项目"<"<Sportsport;
sport.Set2();
cout<<"\n输入获得第"<
"<t[i].number=t1[i];//得分
cout<<"\n:
"<cin>>t[i].name;
cout<<"\n学校编号:
";/*学校编号检查编号合法性*/
cin>>t[i].snumber;
}
}break;
default:
{
cout<<"\n输入字母错误,请重新输入!
!
!
";
break;
}
}
Sportsport;
sport.Menu();//调用Menu函数,显示选单
}
voidSport:
:
List()//按学校打印成绩
{
if(n1<=0)cout<<"\n没有学校参加比赛!
"<for(inti=0;i{
cout<<"\n学校编号:
"<cout<<"学校名称:
"<cout<<"男子团体成绩:
"<cout<<"女子团体成绩:
"<}
cout<<"**********输出完毕!
***********"<Sportsport;
sport.Menu();//调用Menu函数,显示选单
}
voidSport:
:
GetReport()//生成报表
{
inti,manTotal=0,womTotal=0,Total=0;//男子团体总分,女子团体总分,团体总分
cout<<"\n团体总分报表:
"<for(i=0;i{
if(t[i].name==tt[i].name)//同一学校
{
manTotal=manTotal+t1[i];
womTotal=womTotal+t1[i];
}
}
Total+=manTotal+womTotal;
cout<<"男子团体总分:
"<cout<<"女子团体总分:
"<cout<<"团体总分:
"<}
voidSport:
:
Quit()//退出功能
{
cout<<"*********操作完毕,使用!
***********"<}
intmain()//根据选单的选项调用各函数,并完成相应的功能
{
cout<<"\n"
<<"******************************\n"
<<"*欢迎您使用这个校际运动会管理系统!
*\n"
<<"*这是一个简单的校际运动会管理程序!
*\n"
<<"*可以对校际运动会信息进行简单管理!
*\n"
<<"******************************\n"
<<"\n";
Sportsport;
sport.Menu();//调用Menu函数,显示选单
chars;
do
{
cin>>s;
cout<switch(s)
{
case'1':
{
sport.Set1();//调用创建函数
break;
}
case'2':
{
sport.Set2();//调用保存函数
break;
}
case'3':
{
sport.Set3();//调用增加函数
break;
}
case'4':
{
sport.Set4();//调用修改函数
break;
}
case'5':
{
sport.Find();//调用查询函数
break;
}
case'6':
{
sport.List();//调用显示函数
break;
}
case'7':
{
sport.Put();//打印竞赛项目信息
break;
}
case'8':
{
sport.GetReport();//生成报表
break;
}
case'q':
case'Q':
{
sport.Quit();//调用退出函数
break;
}
default:
{
cout<<"\n您输入的字母错误,请按提示重新输入!
"<break;
}
}
}while(s!
='q'&&s!
='Q');
return0;
}
4.课程设计总结
通过做课程设计,对程序的编写以及对程序中出现的一些错误的修改,我觉得自己对C++有了进一步的认识,学到了许多以前在课本上没有学到的东西,自己的编程水平也有一定程度的提高。
同时,真正体会到了编写程序要一点点的来:
一个题中可能有多个函数,应该一个一个的去编写,等检查无误后再进行其他函数的编写,这样不仅方便修改,也可以减少出错,这一点对编程非常重要。