数据结构课程设计:运动会分数统计

运动会分数统计

1.问题描述

参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。

2.设计要求

(1)可以输入各个项目的前三名或前五名的成绩;

(2)能统计各学校总分;

(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;

(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;

(5)数据存入文件并能随时查询;

(6)输入:输入学校的名称,运动项目的名称。

(7)输出:要求有中文提示,各学校分数为整型。

(8)界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

  1. 测试数据

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据进行程序测试,以保证程序的稳定。

例如,对于n=4,m=3,w =2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。

分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tiAh127y-1591407091819)(…/images/aa.jpg)]

完整代码

#include
#include
#include 
#define N 20          /*学校最大数目*/ 
#define M 20          /*男子项目最大数目*/ 
#define W 20          /*女子项目最大数目*/
typedef struct
{ 
	int inum;       /*项目编号*/
    int top;           /*取名次的数目*/
    int range[5];      /*名次*/
    int mark[5];       /*分数*/
}itemnode;             /*存放项目信息*/
typedef struct   
{
	int snum;     /*学校编号*/
    int score;         /*学校总分*/
    int mscore;        /*男团体总分*/
    int wscore;        /*女团体总分*/
    itemnode t[M+W]; /*项目数组*/
}snode;             /*存放学校信息*/
snode a[N];        /* 定义一个学校数组*/
void  menu(int n,int m,int w)   /*菜单函数*/        
{ 
	int c;
    void input(int n,int m,int w);
	void output(int n,int m,int w);
	void sortput(int n,int m,int w);
	void search(int n,int m,int w);
	printf("\t\t\t欢迎使用\t\t\t\t\n\n");   
	printf("\t***********运动会分数统计系统***********\n\n");
    printf("\t\t*******1.信息输入*******\n");
    printf("\t\t*******2.统计输出*******\n");
    printf("\t\t*******3.排序输出*******\n");
    printf("\t\t*******4.信息查询*******\n");
    printf("\t\t*******0.退出系统*******\n\n");
    printf("=======================================================\n\n");
	printf("请选择要实现步骤的编号(0--4):");
    scanf("%d",&c);
	switch(c)
	{ 
	case 1: 
		input(n,m,w);break;
    case 2: 
		output(n,m,w);break;
    case 3: 
		sortput(n,m,w);break;
    case 4: 
		search(n,m,w);break;
    case 0:
		printf("谢谢使用,再见!\n");
        exit(0);
    default: 
		printf("输入错误,请重试!\n");
		menu(n,m,w);
    }
}
void savetofile()                                  /*信息存入文件file*/
{
	FILE *fp;
    int i;
    if((fp=fopen("file.txt","w"))==NULL)
    {
		printf("cannot open the file\n");
		return;
    }
    for(i=0;ia[j].snum)
					{ 
						k=temp[i];
                        temp[i]=temp[j];
                        temp[j]=k;
					}
            }              /* 用冒泡排序方法排序*/
            for(i=0;i

运行结果:
数据结构课程设计:运动会分数统计_第1张图片

数据结构课程设计:运动会分数统计_第2张图片
数据结构课程设计:运动会分数统计_第3张图片

你可能感兴趣的:(数据结构)