校际运动会管理系统(共20页).doc
精选优质文档-倾情为你奉上校际运动会管理系统程序设计基础课程设计报告二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 第一个程序的类中各个函数作用分别为: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 t100,tt100;/定义结构体数组int t1100;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+)ti.snumber=i+1; cout<<"n请输入编号为"<<i+1<<"的学校名称:" cin>>tti.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名*/ t10=7; t11=5; t12=3; t13=2; t14=1;break;case '1':/*取前3名*/for(int i=0;i<3;i+) t10=5; t11=3; t12=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=tti.name) cout<<"n学校编号:"<<ti.snumber<<endl; cout<<"学校名称:"<<tti.name<<endl; cout<<"男子项目编号:"<<ti.mtnumber<<endl;/*项目号*/ cout<<"男子项目名称:"<<ti.mtname<<endl;/*项目名称*/ cout<<"女子项目编号:"<<ti.ftnumber<<endl;/*项目号*/ cout<<"女子项目名称:"<<ti.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=ti.mtname) cout<<"男子项目编号:"<<ti.mtnumber<<endl;/*项目号*/ cout<<"男子项目名称:"<<ti.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=ti.ftname) cout<<"女子项目编号:"<<ti.ftnumber<<endl;/*项目号*/ cout<<"女子项目名称:"<<ti.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=tti.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+) ti.mtnumber=i+1; cout<<"n请输入男子项目编号为"<<i+1<<"的竞赛项目名称:"/*项目名称*/ cin>>ti.mtname;break;case '2':for(int i=0;i<n2;i+) ti.ftnumber=i+1; cout<<"n请输入女子项目编号为"<<i+1<<"的竞赛项目名称:"/*项目名称*/ cin>>ti.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学校编号:"<<ti.snumber<<endl;cout<<"学校名称:"<<tti.name<<endl;cout<<"n您输入的比赛项目信息如下:"<<endl;for(i=0;i<n1;i+)cout<<"n男子项目编号:"<<ti.mtnumber<<endl;cout<<"男子项目名称:"<<ti.mtname<<endl;for(i=0;i<n2;i+)cout<<"n女子项目编号:"<<ti.ftnumber<<endl;cout<<"女子项目名称:"<<ti.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填写男子项目"<<ti.mtname<<"的比赛结果:"<<endl; Sport sport; sport.Set2(); cout<<"n输入获得第"<<i+1<<"名的学生信息:"<<endl;/*项目编号*/ ti.number=t1i;/得分 cout<<"n姓名:"<<endl;/*姓名*/ cin>>ti.name; cout<<"n学校编号:"/*学校编号检查编号合法性*/ cin>>ti.snumber; break;case 2: for(i=0;i<n3;i+) cout<<"n填写女子项目"<<ti.ftname<<"的比赛结果:"<<endl Sport sport; sport.Set2(); cout<<"n输入获得第"<<i+1<<"名的学生信息:"<<endl;/*项目编号*/ ti.number=t1i;/得分 cout<<"n姓名:"<<endl;/*姓名*/ cin>>ti.name; cout<<"n学校编号:"/*学校编号检查编号合法性*/ cin>>ti.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学校编号:"<<ti.snumber<<endl; cout<<"学校名称:"<<ti.name<<endl;cout<<"男子团体成绩:"<<ti.number<<endl;/*项目号*/cout<<"女子团体成绩:"<<ti.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(ti.name=tti.name)/同一学校manTotal=manTotal+t1i; womTotal=womTotal+t1i; 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;docin>>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+有了进一步的认识,学到了许多以前在课本上没有学到的东西,自己的编程水平也有一定程度的提高。同时,真正体会到了编写程序要一点点的来:一个题中可能有多个函数,应该一个一个的去编写,等检查无误后再进行其他函数的编写,这样不仅方便修改,也可以减少出错,这一点对编程非常重要。专心-专注-专业