当前位置:文档之家› 校际运动会管理系统

校际运动会管理系统

《校际运动会管理系统》程序设计基础课程设计报告二OO八年七月二十九日目录1.课程设计目的 (2)2.课程设计题目描述和要求 (2)3.课程设计报告内容 (3)3.1sport类(lei) (4)3.2 主类及其子类 (4)4.算法描述 (4)5.运算结果 (4)6.源程序及流程图 (5)7.课程设计总结 (20)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 第一个程序的类中各个函数作用分别为:void Menu( ); //显示选单void Set1( );//设置竞赛项目总数void Set2( );//设置某项目名次的取法及每一名次的分值void Find( );//查询功能void Set3( );//设置竞赛项目信息void Put( );//打印竞赛项目信息void Set4( );//为某个竞赛项目设定比赛结果信息void List( );//按学校打印成绩void GetReport();//生成报表void Quit( );//退出功能4.算法描述该程序主要采用类的结构,及其应用,公有10函数,在函数中实现嵌套,连接,指针的传递,数组等简单的程序结构。

5.运算结果该程序运行结果及其程序逐步实现为以下图片显示6.源程序#include <iostream>#include <string>using namespace std;class Sport//{public:void Menu( ); //显示选单void Set1( );//设置竞赛项目总数void Set2( );//设置某项目名次的取法及每一名次的分值void Find( );//查询功能void Set3( );//设置竞赛项目信息void Put( );//打印竞赛项目信息void Set4( );//为某个竞赛项目设定比赛结果信息void List( );//按学校打印成绩void GetReport();//生成报表void Quit( );//退出功能private:string name;//学校名称string snumber;//学校编号string mtname;//男子竞赛项目类型string mtnumber;//男子竞赛项目编号string ftname;//女子竞赛项目类型string ftnumber;//女子竞赛项目编号int number;//得分};string s; //定义字符型全局变量int n; //定义整型全局变量Sport t[100],tt[100];//定义结构体数组int t1[100];int n1,n2,n3;void Sport::Menu( ) //显示选单{cout<<"\n**********"<<"选单"<<"**********"<<endl;cout<<"\n"<<" 设置竞赛项目总数<1>\t"<<" 设置竞赛项目名次<2>\n"<<" 设置竞赛项目信息<3>\t"<<" 设定比赛结果信息<4>\n"<<" 查询<5>\t"<<" 按学校打印成绩<6>\n"<<" 打印竞赛项目信息<7>\t"<<" 生成报表<8>\n"<<" 退出<Q>\n";cout<<endl;cout<<"******************************"<<endl;cout<<endl;cout<<"请您输入相应的字母:";}void Sport::Set1( )//设置竞赛项目总数{cout<<"请输入男子竞赛项目总数(0<总项目数<8):";cin>>n1;cout<<endl;cout<<"请输入女子竞赛项目总数(0<总项目数<8):";cin>>n2;cout<<endl;cout<<"请输入参加运动会的学校总数(0<学校总数<8):";cin>>n3;for(int i=0;i<n3;i++){t[i].snumber=i+1;cout<<"\n请输入编号为"<<i+1<<"的学校名称:";cin>>tt[i].name;}cout<<endl;cout<<"**********输入完毕!***********"<<endl;Sport sport;sport.Menu();//调用Menu函数,显示选单}void Sport::Set2( )//设置某项目名次的取法及每一名次的分值{char ch;int i,p;for(int i1=0;i1<10;i1++){cout<<endl;string over;//定义字符串变量,用于退出cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!"<<endl;cin>>over;if(over=="over") break;cout<<"\n请选择编号为"<<i1+1<<"的竞赛项目取名次类型\n(0: 取前5名; 1: 取前3名; 2: 用户自定义):";cin>>ch;cout<<endl;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(int i=0;i<3;i++){t1[0]=5;t1[1]=3;t1[2]=2;}break;}case '2':/*用户自定义类型*/{cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!"<<endl;for(i=0;i<10;i++){cout<<endl;string over;//定义字符串变量,用于退出cin>>over;if(over=="over")break;cout<<"\n请输入该项目第"<<i+1<<"名的分值:"<<endl;cin>>p;if (p<=0){cout<<"\n输入有误,分值应大于0!"<<endl;}}}break;default:/*错误的输入*/{cout<<"\n错误的选择!";break;}}}/* Sport sport;sport.Menu( );//调用Menu函数,显示选单*/}void Sport::Find( )//查询功能{cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!"<<endl;for(int i=0;i<10;i++){cout<<endl;string over;//定义字符串变量,用于退出cin>>over;if(over=="over") break;cout<<"请输入你的选择(参赛学校信息<n>,比赛项目信息<h>,学校比赛成绩<t>):";char s;cin>>s;switch(s){case 'n':{cout<<"请输入学校的名称:";string fname;cin>>fname;for(int i=0;i<n3;i++){if(fname==tt[i].name){cout<<"\n学校编号:"<<t[i].snumber<<endl;cout<<"学校名称:"<<tt[i].name<<endl;cout<<"男子项目编号:"<<t[i].mtnumber<<endl;/*项目号*/cout<<"男子项目名称:"<<t[i].mtname<<endl;/*项目名称*/cout<<"女子项目编号:"<<t[i].ftnumber<<endl;/*项目号*/cout<<"女子项目名称:"<<t[i].ftname<<endl;/*项目名称*/break;}}if(i==n3) cout<<"\n本次查询完毕,没有查询到此人的相关信息"<<endl;}break;case 'h':{cout<<"请选择:(1-男2-女)"<<endl;if(i==1){cout<<"请输入比赛项目的名称:";string fname;cin>>fname;for(int i=0;i<n1;i++){if(fname==t[i].mtname){cout<<"男子项目编号:"<<t[i].mtnumber<<endl;/*项目号*/cout<<"男子项目名称:"<<t[i].mtname<<endl;/*项目名称*/cout<<endl;break;}}if(i==n1) cout<<"\n本次查询完毕,没有查询到此人的相关信息"<<endl;}if(i==2){cout<<"请输入比赛项目的名称:";string ffname;cin>>ffname;for(int i=0;i<n2;i++){if(ffname==t[i].ftname){cout<<"女子项目编号:"<<t[i].ftnumber<<endl;/*项目号*/cout<<"女子项目名称:"<<t[i].ftname<<endl;/*项目名称*/cout<<endl;break;}}if(i==n2) cout<<"\n本次查询完毕,没有查询到此人的相关信息"<<endl;}}break;case 't':{cout<<"请输入学校的名称:";string fname;cin>>fname;for(int i=0;i<n3;i++){if(fname==tt[i].name){cout<<endl;break;}}if(i==n3) cout<<"\n本次查询完毕,没有查询到此人的相关信息"<<endl;}break;default:{cout<<"\n输入字母错误,请重新输入"<<endl; //错误提示break;}break;}}Sport sport;sport.Menu( );//调用Menu函数,显示选单*/}void Sport::Set3( )//设置竞赛项目信息{int i=0;for(i=0;i<10;i++){cout<<endl;string over;//定义字符串变量,用于退出cout<<"退出请输入over,继续请输入c,然后按相应的字母查询!"<<endl;cin>>over;if(over=="over") break;cout<<"\n请选择男子或女子项目编号(1:男2:女):";/*项目类型:男子或女子项目*/char ch;cin>>ch;cout<<endl;switch(ch){case '1':{for(int i=0;i<n1;i++){t[i].mtnumber=i+1;cout<<"\n请输入男子项目编号为"<<i+1<<"的竞赛项目名称:";/*项目名称*/cin>>t[i].mtname;}}break;case '2':{for(int i=0;i<n2;i++){t[i].ftnumber=i+1;cout<<"\n请输入女子项目编号为"<<i+1<<"的竞赛项目名称:";/*项目名称*/ cin>>t[i].ftname;}}break;default:{cout<<"\n输入字母错误,请重新输入";/*项目名称*/ }break;}}Sport sport;sport.Menu( );//调用Menu函数,显示选单*/}void Sport::Put( )//打印竞赛项目信息{int i;cout<<"\n共有"<<n3<<"个学校参赛"<<endl;for(i=0;i<n3;i++){cout<<"\n学校编号:"<<t[i].snumber<<endl;cout<<"学校名称:"<<tt[i].name<<endl;}cout<<"\n您输入的比赛项目信息如下:"<<endl;for(i=0;i<n1;i++){cout<<"\n男子项目编号:"<<t[i].mtnumber<<endl;cout<<"男子项目名称:"<<t[i].mtname<<endl;}for(i=0;i<n2;i++){cout<<"\n女子项目编号:"<<t[i].ftnumber<<endl;cout<<"女子项目名称:"<<t[i].ftname<<endl;}Sport sport;sport.Menu( );//调用Menu函数,显示选单*/}void Sport::Set4( )//为某个竞赛项目设定比赛结果信息{int i=0,j=0;cout<<"\n请选择男子或女子项目(1:男2:女):";int ch;cin>>ch;cout<<endl;switch(ch){case 1:{for(i=0;i<n2;i++){cout<<"\n填写男子项目"<<t[i].mtname<<"的比赛结果:"<<endl;Sport sport;sport.Set2();cout<<"\n输入获得第"<<i+1<<"名的学生信息:"<<endl;/*项目编号*/ t[i].number=t1[i];//得分cout<<"\n姓名:"<<endl;/*姓名*/cin>>t[i].name;cout<<"\n学校编号:";/*学校编号检查编号合法性*/cin>>t[i].snumber;}}break;case 2:{for(i=0;i<n3;i++){cout<<"\n填写女子项目"<<t[i].ftname<<"的比赛结果:"<<endlSport sport;sport.Set2();cout<<"\n输入获得第"<<i+1<<"名的学生信息:"<<endl;/*项目编号*/t[i].number=t1[i];//得分cout<<"\n姓名:"<<endl;/*姓名*/cin>>t[i].name;cout<<"\n学校编号:";/*学校编号检查编号合法性*/cin>>t[i].snumber;}}break;default:{cout<<"\n输入字母错误,请重新输入";break;}}Sport sport;sport.Menu( );//调用Menu函数,显示选单}void Sport::List( )//按学校打印成绩{if (n1<=0)cout<<"\n没有学校参加比赛!"<<endl;for(int i=0;i<n1;i++){cout<<"\n学校编号:"<<t[i].snumber<<endl;cout<<"学校名称:"<<t[i].name<<endl;cout<<"男子团体成绩:"<<t[i].number<<endl;/*项目号*/cout<<"女子团体成绩:"<<t[i].number<<endl;/*项目号*/}cout<<"**********输出完毕!***********"<<endl;Sport sport;sport.Menu( );//调用Menu函数,显示选单}void Sport::GetReport()//生成报表{int i,manTotal=0,womTotal=0,Total=0;//男子团体总分,女子团体总分,团体总分cout<<"\n团体总分报表:"<<endl;for(i=0;i<n3;i++){if(t[i].name==tt[i].name)//同一学校{manTotal=manTotal+t1[i];womTotal=womTotal+t1[i];}}Total+=manTotal+womTotal;cout<<"男子团体总分:"<<manTotal<<endl;cout<<"女子团体总分:"<<womTotal<<endl;cout<<"团体总分:"<<Total<<endl;}void Sport::Quit( )//退出功能{cout<<"*********操作完毕,谢谢使用!***********"<<endl;}int main( )//根据选单的选项调用各函数,并完成相应的功能{cout<<"\n"<<"******************************\n"<<"* 欢迎您使用这个校际运动会管理系统! *\n"<<"* 这是一个简单的校际运动会管理程序! *\n"<<"* 可以对校际运动会信息进行简单管理! *\n"<<"******************************\n"<<"\n";Sport sport;sport.Menu( );//调用Menu函数,显示选单char s;do{cin>>s;cout<<endl;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您输入的字母错误,请按提示重新输入!"<<endl;//错误提示break;}}}while(s!='q'&&s!='Q');return 0;}4. 课程设计总结通过做课程设计,对程序的编写以及对程序中出现的一些错误的修改,我觉得自己对C++有了进一步的认识,学到了许多以前在课本上没有学到的东西,自己的编程水平也有一定程度的提高。

相关主题