资源描述
ﻫ
运动会分数统计系统
课 程 设 计 报 告
数 据 结 构
院系:
专业:
班级:
学号:
姓名:
教师:
时间:
一、问题描述
1、功能
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同得项目取前五名或前三名积分;取前五名得积分分别为:7、5、3、2、1,前三名得积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20),按要求实现相应得数据输入、查询、计分等功能。
2、数据
建议输入学校得名称,运动项目得名称等,其余信息学生自行设计;
输出形式:有合理得提示,各学校分数为整形;
数据得存储结构自行设计。
建议运动会得相关数据要存储在数据文件中。
3、操作
1)可以输入各个项目得前三名或前五名得成绩;
2)能统计各学校总分,
3)可以按学校编号或名称、学校总分、男女团体总分排序输出;
4)可以按学校编号查询学校某个项目得情况;可以按项目编号查询取得前三或前五名得学校。
4、要求
提供系统菜单,界面友好,提示信息完整。
二、系统分析及设计
1、需求分析
ﻩ根据运动会分数统计系统得问题分析及设计要求,可以将此系统分为四个模块:信息统计模块、信息输出模块、信息查询模块、信息调用模块。其系统功能结构图如图所示。
(1)、信息统计模块实现信息得输入、统计、存档。
(2)、信息输出模块实现信息得输出。
(3)、信息查询模块实现信息得查询。
(4)、信息调用模块实现信息得调用,即从文件中读出信息并输出。
信息输入
运动会分数统计系统
信息统计模块
信息输出模块
信息查询模块
信息调用模块
分数统计
信息存档
2、概要设计
此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校得信息。之所以采用顺序存储结构,就就是因为用她来实现信息得存储、查询比较方便,节省时间,效率高,而且也方便把信息写入文件以及读取文件。
(1)、结构体定义如下:
①、定义运动项目数据类型,用于存放运动项目得信息,包括项目名称、项目编号、用户自己定义得取前3名还就就是前5名得积分、名次、分数。
typedef struct
{
char proname[10]; ﻩ ﻩ //项目名称
ﻩint pronum; //项目编号
int top; //取前3名或前5名积分,由用户自己定义
int range[5]; //名次
ﻩint mark[5]; //分数
}Pronode; //项目结点类型定义
②、定义学校数据类型,用于存放参赛学校得信息,包括学校名称、学校编号、学校总分、男子团体总分、女子团体总分以及项目数组。
typedef struct
{
char schname[20]; //学校名称
int schnum; //学校编号
int score; //总分
int Mscore; //男子团体总分
ﻩint Wscore; //女子团体总分
Pronode a[M+W]; //项目数组
}Schnode; //学校结点类型定义
③、定义一个学校结点类型得结构体数组Schnode s[N]。采用数组结构有利于随机存储和查询。
(2)、信息统计模块得算法设计说明
输入参赛学校比赛成绩得信息时,采用三重循环,第一重循环控制参赛学校得个数,第二重循环控制各参赛学校得参赛项目个数,第三重循环控制各参赛学校得各参赛项目所获得得名次个数,并依次输入相应信息,根据所输入得名次得出相对应得分数。然后分别统计出各学校得总分、男子团体总分和女子团体总分。调用文件数据块写函数fwrite将信息写入文件,方便以后调用。
(3)、信息输出模块得算法设计说明
根据设计要求,实现按学校名称、学校总分、男子团体总分、女子团体总分输出。因此选用switch语句实现此功能。case 1按学校名称输出时,直接取出数据进行输出;case 2按学校总分输出时,采用冒泡排序法进行排序然后按分数由高到低输出;case 3和case 4也均采用冒泡排序法进行排序最后按分数由高到低输出。
其流程图如图所示:
开始
总分显示菜单界面
按学校名称输出
按学校总分输出
按男团总分输出
按女团总分输出
退出返回主菜单
直接退出本系统
主菜单
结束
输入功能序号
(4)、信息查询模块得算法设计说明
根据设计要求,提供两种不同得查询方式:按学校编号查询和按项目编号查询。因此也采用switch语句实现此功能。case 1按学校编号查询,提示输入要查询得学校编号以及要查询得项目编号,直接取出该学校该项目得信息进行输出。case 2按项目编号查询,提示输入要查询得项目编号,输出该项目取得名次得学校得信息。
其流程图如图所示:
开始
信息查询界面
选择查询方式
按学校编号查询
按项目编号查询
退出返回主菜单
直接退出本系统
主菜单
结束
(5)、信息调用模块得算法设计说明
信息调用,即读取保存在文件里得信息并输出。由于采用得就就是数组存储,可以很方便得一下把文件里得信息全部读取出来,再利用三重循环依次把各学校各项目所取得得成绩输出。
3、详细设计
(1)、信息输入及分数统计功能
void InfoInput()就就是信息输入及分数统计得函数,在输入信息得同时进行分数统计,可以输入各学校各项目前3名或前5名得成绩。结果取前3名还就就是前5名由用户自己定。用switch 语句将前3名得成绩赋值为5、3、2,前5名得成绩赋值为7、5、3、2、1,未取得得成绩则赋为0。并统计总分、男子团体总分和女子团体总分。
其主要功能代码如下:
for(m=0;m<k;m++) //输入所获名次信息
{
cout<<"ﻩ 名次:";
cin>>s[i]、a[j]、range[m];
ﻩif(s[i]、a[j]、top==3) //匹配各名次对应得分数
{
switch(s[i]、a[j]、range[m])
{
ﻩﻩ case 0: s[i]、a[j]、mark[m]=0; break;
ﻩ case 1: s[i]、a[j]、mark[m]=5; break;
ﻩ case 2: s[i]、a[j]、mark[m]=3; break;
case 3: s[i]、a[j]、mark[m]=2; break;
ﻩﻩ}
}
else
ﻩ{
switch(s[i]、a[j]、range[m])
ﻩ {
case 0: s[i]、a[j]、mark[m]=0; break;
ﻩcase 1: s[i]、a[j]、mark[m]=7; break;
ﻩ case 2: s[i]、a[j]、mark[m]=5; break;
ﻩ ﻩcase 3: s[i]、a[j]、mark[m]=3; break;
ﻩ ﻩcase 4: s[i]、a[j]、mark[m]=2; break;
case 5: s[i]、a[j]、mark[m]=1; break;
ﻩﻩ}
}
s[i]、score=s[i]、score+s[i]、a[j]、mark[m]; //统计学校总分
ﻩif(j<=M-1)
ﻩ s[i]、Mscore=s[i]、Mscore+s[i]、a[j]、mark[m]; //统计男团总分
ﻩelse
ﻩﻩs[i]、Wscore=s[i]、Wscore+s[i]、a[j]、mark[m]; //统计女团总分
}
(2)、信息输出功能
ﻩvoid InfoOutput()就就是信息输出函数。输出一个总分显示菜单,利用switch语句实现按学校名称输出或按学校总分、男子团体总分、女子团体总分由高到低输出。采用冒泡排序得方法使之按总分由高到低输出。利用循环语句while(1)返回总分显示菜单,break语句终止循环。
其主要功能代码如下:
for(i=0;i<N;i++) //冒泡排序,用辅助数组b[]记住学校结点得下标
b[i]=i;
for(i=0;i<N;i++)
{
ﻩfor(j=i+1;j<N;j++)
{
ﻩif(s[b[i]]、score < s[j]、score)
{
ﻩﻩ k=b[i];
ﻩﻩb[i]=b[j];
ﻩ b[j]=k;
ﻩﻩ}
ﻩ}
}
for(i=0;i<N;i++) //输出各学校运动会分数信息
{
cout<<" 学校名称:"<<s[b[i]]、schname<<endl;
cout<<"ﻩﻩ学校编号:"<<s[b[i]]、schnum<<endl;
cout<<"ﻩﻩ学校总分:"<<s[b[i]]、score<<endl;
ﻩcout<<"ﻩ 男团总分:"<<s[b[i]]、Mscore<<endl;
ﻩcout<<"ﻩ 女团总分:"<<s[b[i]]、Wscore<<endl;
cout<<endl;
}ﻩ
(3)、信息查询功能
void Inquiry()函数就就是信息查询函数,显示一个查询菜单,利用switch语句实现按学校编号查询和按项目编号查询,并输出该学校某个项目得情况或某个项目取得前3名或前5名得学校信息。利用循环语句while(1)返回查询菜单,break语句终止循环。
其主要功能代码如下:
按学校编号查询:
cout<<" ﻩ要查询得学校编号:";
cin>>i;
if(i>N) //学校编号超出范围,输出提示信息
cout<<" 这个学校没有参加此次运动会!"<<endl;
else
{
cout<<"ﻩﻩ要查询得项目编号:";
ﻩcin>>j;
if(j>M+W || j==0) //项目编号超出范围,输出提示信息
cout<<"ﻩ 此次运动会没有这个项目!"<<endl;
else //输出要查询学校项目得成绩
{
cout<<" 这个项目取前"<<s[0]、a[j-1]、top<<"名,该学校得成绩如下:"<<endl;
ﻩﻩfor(k=0;k<5;k++)
ﻩ {
ﻩﻩ if(s[i-1]、a[j-1]、range[k]!=0)
ﻩ cout<<" 名次:"<<s[i-1]、a[j-1]、range[k];
ﻩ if(s[i-1]、a[j-1]、mark[k]!=0)
ﻩ cout<<"ﻩ 分数:"<<s[i-1]、a[j-1]、mark[k]<<endl;
ﻩ }
}
}
按项目编号查询:
cout<<"ﻩﻩ要查询得项目编号:";
cin>>y;
if(y>M+W || y==0) //项目编号超出范围,输出提示信息
ﻩcout<<" 此次运动会没有这个项目!"<<endl;
else //输出该项目取得名次得学校得成绩
{
cout<<" 该项目取前"<<s[0]、a[y-1]、top<<"名,取得该名次得学校:"<<endl;
ﻩfor(i=0;j<N;i++)
ﻩfor(j=0;j<5;j++)
ﻩ{
ﻩif(s[i]、a[y-1]、range[j]!=0)
ﻩ cout<<" 学校名称:"<<s[i]、schname<<"ﻩ学校编号:"<<s[i]、schnum<<" 名次:"<<s[i]、a[y-1]、range[j];
ﻩﻩif(s[i]、a[y-1]、mark[j]!=0)
ﻩﻩ cout<<" 分数:"<<s[i]、a[y-1]、mark[j]<<endl;
ﻩ}
}
三、系统实现
1、完整源代码
ﻩ见附录。
2、调试分析
运行程序,进入主菜单界面,用户可以选择输入信息、输出信息、查询信息、调用信息、关于或退出系统。
测试数据:
学校名称:武汉理工大学;学校编号:1;项目名称:男子100米;项目编号:1;取前5名;获得1个名次,第5名。项目名称:女子100米;项目编号:2;取前3名,获得3个名次,分别就就是第1、2、3名。
学校名称:湖北经济学院;学校编号:2;项目名称:男子跳远;项目编号:1;取前5名,获得4个名次,分别就就是第1、2、3、4名。项目名称:女子跳高;项目编号:2;取前5名,获得一个名次,第3名。
测试输出得结果:
①按学校名称输出:
学校名称:武汉理工大学;学校编号:1;学校总分:11;男团总分:1;女团总分:10。
学校名称:湖北经济学院;学校编号:2;学校总分:20;男团总分:17;女团总分:3。
②按学校总分输出:
学校名称:湖北经济学院;学校编号:2;学校总分:20;男团总分:17;女团总分:3。
学校名称:武汉理工大学;学校编号:1;学校总分:11;男团总分:1;女团总分:10。
③按男团总分输出:
学校名称:湖北经济学院;学校编号:2;学校总分:20;男团总分:17;女团总分:3。
学校名称:武汉理工大学;学校编号:1;学校总分:11;男团总分:1;女团总分:10。
④按女团总分输出:
学校名称:武汉理工大学;学校编号:1;学校总分:11;男团总分:1;女团总分:10。
学校名称:湖北经济学院;学校编号:2;学校总分:20;男团总分:17;女团总分:3。
时间复杂度分析:
用户输入信息时,采用三重循环进行输入,因此信息输入函数得时间复杂度为O(N*(M+W)*k)。利用冒泡排序法进行排序,采用二重循环,时间复杂度为O(N*N)。采用顺序存储结构,信息存放在数组得相应内存单元里,因此查询函数得时间复杂度为O(1)。写信息时可以一次全部写进去,读信息时也可以一次全部读出来,因此写文件函数和读文件函数得时间复杂度都为O(1)。
存在问题得思考及算法得改进设想:
①刚开始运行程序时,就就就是一句一句得显示,界面很不好看,于就就是想把她弄成菜单得形式,但就就是两个子菜单要实现与主菜单之间得切换,能够自如返回主菜单。开始时没有想到要去直接调用实现主菜单操作得函数Menu(),废了好大周折,后来问了同学,顿时茅塞顿开。
②显示得内容堆积在一个屏幕上,看着很混乱,用C语言里得clrscr()函数在VC++里似乎不能用,上网查了下资料,找到了一个头文件为stdlib、h得清屏函数system(”cls”)。
③调试程序时,遇到了屏幕一闪又回到原来界面得情况,没有输出想要得到得信息,原来就就是信息在屏幕上显示后,程序执行到了清屏函数,所以立马清屏了,为了看到输出信息,调用system(”pause”)函数,使程序暂停,以让用户看到输出地信息,然后再按任意键继续执行程序。
④对此程序结构体得定义比较难,要整体考虑全局设置出结构体,这次课设用到结构体得嵌套,由于对结构体得使用还不就就是很熟悉,所以做起来时花费了不少时间,但一个课设做下来,还算就就是得心应手。
⑤对于读写文件不就就是很熟悉,fread和fwrite函数不就就是很会用,在读出文件里得信息并输出时花了很长时间,不过,最后总算就就是会用了。
3、输出界面
运行程序,进入主菜单界面,用户可以选择输入信息、输出信息、查询信息、调用信息、关于或退出系统。注意:第一次运行本程序时,请选择输入信息。以后再运行时,为了避免再次输入大量信息,可以先选择调用信息,将以前输入得信息重新显示在屏幕上,再进行后续操作。
主菜单界面如图所示:
(1)、输入信息
选择1号功能进入输入信息模块,根据提示信息将以下信息输入系统中。
学校名称:武汉理工大学;学校编号:1;项目名称:男子100米;项目编号:1;取前5名;获得1个名次,第5名。项目名称:女子100米;项目编号:2;取前3名,获得3个名次,分别就就是第1、2、3名。
学校名称:湖北经济学院;学校编号:2;项目名称:男子跳远;项目编号:1;取前5名,获得4个名次,分别就就是第1、2、3、4名。项目名称:女子跳高;项目编号:2;取前5名,获得一个名次,第3名。
输入信息后,信息会自动存档,并自动返回到主菜单。
输入信息如图所示:
(2)、输出信息
输入2进入总分显示菜单界面。用户可根据自己喜好选择按学校名称输出、按学校总分输出、按男团总分输出、按女团总分输出或者退出返回主菜单、直接退出系统。
总分显示菜单界面如图所示:
用户可根据自己喜好选择按哪种方式输出,信息输出后,按任意键返回总分显示菜单界面。输入5则返回主菜单,输入6则退出系统。以下就就是分别按照学校名称、学校总分、男团总分、女团总分输出得情况。
按学校名称输出:
按学校总分输出:
按男团总分输出:
按女团总分输出:
(3)、查询信息
输入3进入信息查询界面,用户可根据自己喜好选择按学校编号查询、按项目编号查询或者退出返回主菜单、直接退出系统。
信息查询界面如图所示:
用户可根据自己喜好选择按哪种方式查询,查询结束后,按任意键返回信息查询界面。输入3则返回主菜单,输入4则退出系统。以下就就是分别按照学校编号、项目编号查询得情况。
按学校编号查询:
按项目编号查询:
(4)、调用信息
为了避免每次运行程序时都要输入大量数据,在第一次运行程序后,就已经将信息自动存档,再次运行时,可以先直接调用信息,按任意键返回主菜单,再进行后续操作。
调用得信息如图所示:
(5)关于界面自行设计
(6)退出系统
输入6则退出系统,并有中文提示。如图所示:
四、设计总结
ﻩ在课程设计得过程中,虽然遇到了很多问题,但最终差不多也都一一解决了。有得时候就就是一些很小得逻辑错误,需要得就就是细心。同学之间互相帮助,多个人思考多个力量,遇到自己解决不了得问题,向同学求助,能更好得帮我们解决所面临得难题。由于此次课程设计用到数据文件得知识,而这些知识老师都没讲,自学起来稍微有点困难,但也不就就是完全看不懂,只就就是对一些函数得应用不太熟悉,经过此次课程设计,对文件得读写有了更深得了解,也相应得培养了我得自学能力。
经过C语言和数据结构得学习,我发现数据结构与C语言有很大得不同,C语言不需要考虑存储结构之类得,只需要定义个变量或数组,集中精力于算法之上,而数据结构前期得整体规划和构思非常重要,先确立合理得存储结构,再来编写算法,实际上一旦存储结构确立了,算法得实现相对来说简单很多,难就难在如何确立合理得存储结构。
能够把此次课程设计做出来,就就是一个很大得挑战,但我经过自己得不懈努力,终于完成了,看着自己得作品,心里还就就是说不出得高兴,虽然做得过程很艰难。人生就就就是要把困难踩在脚下。
附录:
源代码:
# include <stdio、h>
# include <stdlib、h>
# include <iostream、h>
# define M 1 //男子项目个数
# define W 1 //女子项目个数
# define N 2 //学校个数
# define NULL 0
void Menu(); //函数声明
typedef struct
{
char proname[10];ﻩﻩﻩﻩ ﻩ//项目名称
ﻩint pronum; //项目编号
int top; ﻩ ﻩ//取前3名或前5名积分,由用户自己定义
ﻩint range[5]; //名次
int mark[5]; //分数
}Pronode; //项目结点类型定义
typedef struct
{
ﻩchar schname[20]; //学校名称
int schnum; //学校编号
int score; //总分
ﻩint Mscore; //男团体总分
int Wscore; //女团体总分
Pronode a[M+W]; ﻩ //项目数组
}Schnode; //学校结点类型定义
Schnode s[N]; //定义一个学校结点类型得结构体数组
void Head() //头菜单界面
{
ﻩcout<<" *************************************************"<<endl;
ﻩcout<<" ***** 欢迎使用 *****"<<endl;
ﻩcout<<"ﻩ ***** 运动会分数统计系统 *****"<<endl;
ﻩcout<<" *************************************************"<<endl;
cout<<endl;
}
void MainMenu() //主菜单界面
{
ﻩcout<<" ﻩ*************************************************"<<endl;
ﻩcout<<"ﻩﻩ***** 主菜单 *****"<<endl;
ﻩcout<<" ﻩ*************************************************"<<endl;
cout<<" ***** 1、输入信息 *****"<<endl;
cout<<" ﻩ***** 2、输出信息 *****"<<endl;
cout<<"ﻩﻩ***** 3、查询信息 *****"<<endl;
ﻩcout<<"ﻩ ***** 4、调用信息 *****"<<endl;
cout<<" ***** 5、关于 *****"<<endl;
cout<<" ﻩ***** 6、退出系统 *****"<<endl;
cout<<"ﻩﻩ*************************************************"<<endl;
ﻩcout<<"ﻩ ***** 注:第一次运行本程序时请选择1号功能 *****"<<endl;
ﻩcout<<"ﻩﻩ*************************************************"<<endl;
}
void SubMenu() //总分显示菜单界面
{
cout<<"ﻩ *************************************************"<<endl;
ﻩcout<<" ***** 运动会总分显示菜单 *****"<<endl;
ﻩcout<<" ﻩ*************************************************"<<endl;
cout<<" ﻩ***** 1、按学校名称输出 *****"<<endl;
ﻩcout<<"ﻩﻩ***** 2、按学校总分输出 *****"<<endl;
cout<<"ﻩﻩ***** 3、按男团总分输出 *****"<<endl;
cout<<"ﻩﻩ***** 4、按女团总分输出 *****"<<endl;
cout<<" ***** 5、退出返回主菜单 *****"<<endl;
ﻩcout<<"ﻩ ***** 6、直接退出本系统 *****"<<endl;
cout<<"ﻩ *************************************************"<<endl;
}
void InitSch() //初始化信息
{
ﻩint i;
for(i=0;i<N;i++)
{
ﻩs[i]、score=0;
s[i]、Mscore=0;
ﻩﻩs[i]、Wscore=0;
}
}
void InfoInput() //信息输入模块
{
int i,j,k,m;
ﻩInitSch();ﻩ ﻩ ﻩ //初始化信息
ﻩfor(i=0;i<N;i++) //输入学校信息
ﻩ{
cout<<"ﻩﻩ学校名称:";
ﻩﻩcin>>s[i]、schname;
ﻩﻩcout<<"ﻩ 学校编号:";
ﻩﻩcin>>s[i]、schnum;
ﻩﻩfor(j=0;j<M+W;j++) //输入各学校内项目信息
ﻩ {
ﻩﻩ cout<<"ﻩﻩ项目名称:";
ﻩ cin>>s[i]、a[j]、proname;
ﻩﻩcout<<"ﻩ 项目编号:";
ﻩ ﻩcin>>s[i]、a[j]、pronum;
ﻩ cout<<"ﻩﻩ取前3名还就就是前5名:";
ﻩcin>>s[i]、a[j]、top;
ﻩﻩcout<<" 此项目获得得名次个数:";
ﻩﻩﻩcin>>k;
ﻩﻩﻩfor(m=0;m<5;m++) //初始化排名和分数
ﻩ {
ﻩs[i]、a[j]、range[m]=0;
ﻩﻩs[i]、a[j]、mark[m]=0;
ﻩ ﻩ}
ﻩﻩfor(m=0;m<k;m++) //输入所获名次信息
ﻩ {
ﻩcout<<"ﻩﻩ名次:";
ﻩ ﻩcin>>s[i]、a[j]、range[m];
ﻩ ﻩif(s[i]、a[j]、top==3) //匹配各名次对应得分数
ﻩﻩﻩ{
ﻩswitch(s[i]、a[j]、range[m])
ﻩ ﻩﻩ {
ﻩﻩ case 0: s[i]、a[j]、mark[m]=0; break;
ﻩﻩﻩﻩ ﻩcase 1: s[i]、a[j]、mark[m]=5; break;
ﻩﻩ case 2: s[i]、a[j]、mark[m]=3; break;
ﻩﻩ ﻩ case 3: s[i]、a[j]、mark[m]=2; break;
ﻩﻩ ﻩ }
ﻩﻩﻩ }
ﻩﻩ else
ﻩﻩﻩ{
ﻩ switch(s[i]、a[j]、range[m])
ﻩ ﻩ {
ﻩﻩ ﻩﻩﻩcase 0: s[i]、a[j]、mark[m]=0; break;
ﻩﻩ ﻩﻩcase 1: s[i]、a[j]、mark[m]=7; break;
ﻩ ﻩ ﻩcase 2: s[i]、a[j]、mark[m]=5; break;
ﻩ ﻩ ﻩcase 3: s[i]、a[j]、mark[m]=3; break;
ﻩﻩ ﻩcase 4: s[i]、a[j]、mark[m]=2; break;
ﻩﻩ case 5: s[i]、a[j]、mark[m]=1; break;
ﻩ ﻩ }
ﻩ ﻩ}
ﻩﻩ s[i]、score=s[i]、score+s[i]、a[j]、mark[m]; //统计学校总分
ﻩ ﻩ if(j<=M-1)
ﻩﻩ s[i]、Mscore=s[i]、Mscore+s[i]、a[j]、mark[m]; //统计男团总分
ﻩ ﻩﻩelse
ﻩﻩ ﻩ s[i]、Wscore=s[i]、Wscore+s[i]、a[j]、mark[m]; //统计女团总分
ﻩ }
ﻩﻩcout<<endl;
}
}ﻩ
}
void Output(int b[]) //输出各学校运动会分数信息
{
int i;
ﻩfor(i=0;i<N;i++)
ﻩ{
ﻩcout<<"ﻩ 学校名称:"<<s[b[i]]、schname<<endl;
ﻩ cout<<"ﻩ 学校编号:"<<s[b[i]]、schnum<<endl;
cout<<" ﻩ学校总分:"<<s[b[i]]、score<<endl;
ﻩcout<<"ﻩﻩ男团总分:"<<s[b[i]]、Mscore<<endl;
cout<<" 女团总分:"<<s[b[i]]、Wscore<<endl;
ﻩ cout<<endl;
}ﻩ
system("pause"); //程序暂停,以显示结果
system("cls"); //清屏
}
void InfoOutput() //信息输出模块
{
ﻩFILE *fp;
int number,i,j,k,b[N];
if((fp=fopen("sport、txt","r"))==NULL) //以读方式打开文本文件
//并判定能否正常打开
ﻩ{
cout<<"ﻩﻩ文件打不开!"<<endl; //不能正常打开文件得处理
exit(0); //调用函数exit终止程序运行
ﻩ}
while(1)
ﻩ{
Head(); //头菜单界面
SubMenu(); //总分显示菜单界面
ﻩcout<<"ﻩ 请选择:";
ﻩ cin>>number;
ﻩswitch(number)
ﻩﻩ{
case 1: //按学校名称输出
ﻩﻩﻩ system("cls");
ﻩ Head(); //头菜单界面
ﻩcout<<" 运动会各学校信息按学校名称输出如下:"<<endl;
ﻩfor(i=0;i<N;i++) //输出各学校运动会分数信息
{
ﻩﻩ cout<<" ﻩ学校名称:"<<s[i]、schname<<endl;
ﻩﻩ cout<<"ﻩ 学校编号:"<<s[i]、schnum<<endl;
ﻩ cout<<"ﻩﻩ学校总分:"<<s[i]、score<<endl;
ﻩ ﻩﻩcout<<"ﻩﻩ男团总分:"<<s[i]、Mscore<<endl;
ﻩﻩﻩcout<<"ﻩ 女团总分:"<<s[i]、Wscore<<endl;
ﻩﻩﻩcout<<endl;
ﻩ }
ﻩ ﻩsystem("pause"); //程序暂停,以显示结果
ﻩﻩﻩ system("cls"); //清屏
ﻩ ﻩ break;
ﻩ ﻩcase 2: //按学校总分输出
ﻩﻩ system("cls");
ﻩ ﻩHead();
展开阅读全文