当前位置:   article > 正文

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

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

摘 要
设计了一个运动会分数统计系统,该系统可以简单的统计有关于运动会的信息。本系统采用VC++作为软件开发环境,运用了排序算法和线性表的顺序存储等算法。实现了对运动会数据的存储与排序运算。操作简单,界面清晰,易于为用户所接受。
关键词:算法;运动会;系统
1 课题描述
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
功能要求:
1)输入各个项目的前三名或前五名的成绩;
2)统计各学校总分,
3)按学校编号或名称、学校总分、男女团体总分排序输出;
4)按学校编号查询学校某个项目的情况;可以按项目编号查询取得 前三或前五名的学校。
5)数据存入文件并能随时查询
6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称
输出形式:有合理的提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
2 问题分析和任务定义
本程序的要求是对运动会信息的统计与分析。要求我们可以将比赛的按各个比赛项目划分,还可以按照学校来划分。还要求有排序的部分,要求成绩可以按照学校、男团和女团排序。并且可以将数据存入文件,也可以从文件里读出数据。限制条件为,各学校的分数的类型都要是整形的,数据都要存储在文件中。

3逻辑设计
(1)结构体
项目{名字,名次,获奖人数,获奖人姓名,获奖排名,得分,性别}
学校{名字,学校总分,男团总分,女团总分,项目}
(2)主函数
包括登录欢迎程序,主菜单,输入程序,查询程序,存读文件程序,退出程序
(3)调用关系图

4 详细设计
(1)项目数据表
本数据表主要是存储每个项目的名字、要取的名次、取得各个名次学生的姓名以及取得的名次和获得的分数
typedef struct//存储项目信息的结构体
{
char name[20];//存储项目的姓名
int top;//存储项目名次的选择
int num;//存储有几个有名次的
int ranking[6];//存储名次
int grade[6];//存储分数
char d[20][20];//存储同学的姓名
int gender;//存储性别
} project;

(2)学校数据表
本数据表主要是介绍各参赛学校的总体情况,包括学校的名字、取得的总分、男团的总分、女团的总分、包括各个项目的数组。
typedef struct//存储学校的信息
{
char name[20];//存学校的姓名
int school;//存学校的总成绩
int man;//存男团的总成绩
int woman;//存女团的总成绩
project b[M+W];//存这个学校的项目
} school;
(3)函数介绍
1、void start() 功能:初始页面
2、void menu() 功能:菜单
3、void Initialization()功能:初始化函数,初始化学校的总分等
4、void input() 功能:输入函数
5、void output() 功能:输出学校信息函数
6、void sortmenu() 功能:排序的菜单
7、void sortput() 功能:排序的函数
8、void outschool() 功能:输出学校的总分
9、void projectout() 功能:输出项目信息的函数
10、void savefile() 功能:存文件的函数
11、void readfile() 功能:读文件的函数
12、void xuexiao() 功能:查询某个学校或者项目的函数
13、void command()功能:命令函数
14、int main()功能:主函数
5 程序编码

#include <iostream>
#include<algorithm>
#include<queue>
#include<stdio.h>
#include<string.h>
#include<map>
#include<stdlib.h>
using namespace std;
#define M 31
#define W 21
#define S 51
typedef struct//存储项目信息的结构体
{
char name[20];//存储项目的姓名
int top;//存储项目名次的选择
int num;//存储有几个有名次的
int ranking[6];//存储名次
int grade[6];//存储分数
char d[20][20];//存储同学的姓名
int gender;//存储性别
} project;
typedef struct//存储学校的信息
{
   char name[20];//存学校的姓名
int school;//存学校的总成绩
    int man;//存男团的总成绩
    int woman;//存女团的总成绩
    project b[M+W];//存这个学校的项目
} school;
school a[S];
int nom,item;
bool cmp1(school c,school d)//排序
{
    return c.school>d.school;
}
bool cmp2(school c,school d)
{
return c.man>d.man;
}
bool cmp3(school c,school d)
{
    return c.woman>d.woman;
}
void start()//初始页面
{
    int i;
    for(i=0; i<10; i++)
        printf("\n");
printf("          *****************************************************\n");
printf("          **                                                 **\n");
    printf("          >>>>>>>>>>>>>>欢迎使用运动会分数统计项目<<<<<<<<<<<<<\n");
    printf("          **                                                 **\n");
    printf("          *****************************************************\n");
    printf("按任意键进入系统.........");
    getchar();
    return ;
}
void menu()//菜单
{
    printf("******************************************************\n");
    printf("                   1:录入运动会信息                   \n");
    printf("                   2:输出各学校的信息                 \n");
    printf("                   3:输出排序后的信息                 \n");
    printf("                   4:输出各项目的信息                 \n");
    printf("                   5:输出各学校的总分                 \n");
    printf("                   6:将信息存入文件                   \n");
    printf("                   7:将信息从文件中读出               \n");
    printf("                   8:查询某学校的信息或者某项目的信息 \n");
    printf("                   9:退出程序                         \n");
    printf("******************************************************\n");
}
void Initialization()//初始化函数,初始化学校的总分等
{
    int i,j,k;
    for(i=1; i<=nom; i++)
    {
        a[i].school=0;
        a[i].man=0;
        a[i].woman=0;
        for(j=1; j<=item; j++)
        {
            a[i].b[j].top=0;
            a[i].b[j].gender=0;
            a[i].b[j].num=0;
            for(k=1; k<=5; k++)
            {
                a[i].b[j].ranking[k]=0;
                a[i].b[j].grade[k]=0;

            }
        }
    }
    return ;
}
void input()//输入函数
{
    printf("请输入学校的总个数: ");
    scanf("%d",&nom);
    printf("\n");
    printf("请输入项目的总个数: ");
    scanf("%d",&item);
    printf("\n");
    int i,j,k;
    Initialization();
    for(i=1; i<=nom; i++)
    {
        printf("请输入学校的名称:");
        scanf("%s",&a[i].name);
        printf("\n");

        for(j=1; j<=item; j++)
        {
            printf("请输入项目的名称:");
            scanf("%s",a[i].b[j].name);
            printf("\n");
            printf("请输入是男子项目还是女子项目 (男子输1,女子输2):");
            scanf("%d",&a[i].b[j].gender);
            printf("\n");
            int sum=0;
            if(a[i].b[j].gender==1)
            {
                printf("请输入此项目取前几名(3或5):");
                scanf("%d",&a[i].b[j].top);
                printf("\n");
                printf("请输入该学校在此项目取得名次的人数:");
                scanf("%d",&a[i].b[j].num);
                printf("\n");
                for(k=1; k<=a[i].b[j].num; k++)
                {
                    printf("请输入获得的名次情况和获得名次的人名:");
                    scanf("%d %s",&a[i].b[j].ranking[k],&a[i].b[j].d[k]);

                    printf("\n");
                    if(a[i].b[j].top==3)
                    {
                        if(a[i].b[j].ranking[k]==1)
                        {
                            a[i].b[j].grade[k]=5;
                        }
                        else if(a[i].b[j].ranking[k]==2)
                        {
                            a[i].b[j].grade[k]=3;
                        }
                        else if(a[i].b[j].ranking[k]==3)
                        {
                            a[i].b[j].grade[k]=2;
                        }
                        else
                            a[i].b[j].grade[k]=0;

                    }
                    else if(a[i].b[j].top==5)
                    {
                        if(a[i].b[j].ranking[k]==1)
                        {
                            a[i].b[j].grade[k]=7;
                        }
                        else if(a[i].b[j].ranking[k]==2)
                        {
                            a[i].b[j].grade[k]=5;
                        }
                        else if(a[i].b[j].ranking[k]==3)
                        {
                            a[i].b[j].grade[k]=3;
                        }
                        else if(a[i].b[j].ranking[k]==4)
                        {
                            a[i].b[j].grade[k]=2;
                        }
                        else if(a[i].b[j].ranking[k]==5)
                        {
                            a[i].b[j].grade[k]=1;
                        }
                        else
                            a[i].b[j].grade[k]=0;

                    }
                    else
                    {
                        printf("规定的名次不符合要求\n");
                        j--;
                        continue;
                    }
                }
                for(k=1; k<=a[i].b[j].num; k++)
                    sum+=a[i].b[j].grade[k];
                a[i].school+=sum;
                a[i].man+=sum;
            }
            else
            {
                printf("请输入此项目取前几名(3或5):");
                scanf("%d",&a[i].b[j].top);
                printf("\n");
                printf("请输入该学校在此项目取得名次的人数:");
                scanf("%d",&a[i].b[j].num);
                printf("\n");
                for(k=1; k<=a[i].b[j].num; k++)
                {
                    printf("请输入获得的名次情况和获得名次的人名:");
                    scanf("%d %s",&a[i].b[j].ranking[k],&a[i].b[j].d[k]);
                    printf("\n");
                    if(a[i].b[j].top==3)
                    {
                        if(a[i].b[j].ranking[k]==1)
                        {
                            a[i].b[j].grade[k]=5;
                        }
                        else if(a[i].b[j].ranking[k]==2)
                        {
                            a[i].b[j].grade[k]=3;
                        }
                        else if(a[i].b[j].ranking[k]==3)
                        {
                            a[i].b[j].grade[k]=2;
                        }
                        else
                            a[i].b[j].grade[k]=0;

                    }
                    else if(a[i].b[j].top==5)
                    {
                        if(a[i].b[j].ranking[k]==1)
                        {
                            a[i].b[j].grade[k]=7;
                        }
                        else if(a[i].b[j].ranking[k]==2)
                        {
                            a[i].b[j].grade[k]=5;
                        }
                        else if(a[i].b[j].ranking[k]==3)
                        {
                            a[i].b[j].grade[k]=3;
                        }
                        else if(a[i].b[j].ranking[k]==4)
                        {
                            a[i].b[j].grade[k]=2;
                        }
           else if(a[i].b[j].ranking[k]==5)
                        {
                            a[i].b[j].grade[k]=1;
                        }
                        else
                            a[i].b[j].grade[k]=0;

                    }
                    else
                    {
                        printf("规定的名次不符合要求\n");
                        j--;
                        continue;
                    }
                }
                for(k=1; k<=a[i].b[j].num; k++)
                    sum+=a[i].b[j].grade[k];
                a[i].school+=sum;
                a[i].woman+=sum;
            }
        }

    }
    return ;
}
void output()//输出学校信息函数
{
    int i,j,k;
    printf("学校         项目       性别       名次个数     获得名次数       名次       姓名\n");
    for(i=1; i<=nom; i++)
    {
        for(j=1; j<=item; j++)
        {

            for(k=1; k<=a[i].b[j].num; k++)
            {
                if(a[i].b[j].gender==1)
                    printf("%-13s%-8s   男子       %-15d%-15d%-10d%s\n",a[i].name,a[i].b[j].name,a[i].b[j].top,a[i].b[j].num,a[i].b[j].ranking[k],a[i].b[j].d[k]);
                else
                    printf("%-13s%-8s   女子       %-15d%-15d%-10d%s\n",a[i].name,a[i].b[j].name,a[i].b[j].top,a[i].b[j].num,a[i].b[j].ranking[k],a[i].b[j].d[k]);
            }
        }
    }
    printf("按任意键继续.........\n");
    getchar();
    getchar();
    return ;
}
void sortmenu()//排序菜单
{
    printf("***********************************************\n");
    printf("              1:按照学校的名次排序             \n");
    printf("              2:按照男团的名次排序             \n");
    printf("              3:按照女团的名次排序             \n");
    printf("              4:按照学校的编号输出             \n");
    printf("              5:退出排序系统                   \n");
    printf("***********************************************\n");
}
void sortput()//排序的函数
{

    while(1)
    {
        system("cls");
        sortmenu();
        printf("请输入命令:");
        int com,i;
        scanf("%d",&com);
        printf("\n");
        if(com==4)
        {
            output();
        }
        else if(com==1)
        {
            printf("按照学校的名次排序为:\n");
            sort(a+1,a+nom,cmp1);
            for(i=1; i<=nom; i++)
            {
                printf("排名第%d的学校为:%s\n",i,a[i].name);
            }
            printf("按任意键继续.......\n");
            getchar();
            getchar();
        }
        else if(com==2)
        {
            printf("按照男团的名次排序为:\n");
            sort(a+1,a+nom,cmp2);
            for(i=1; i<=nom; i++)
            {
                printf("排名第%d的学校为:%s\n",i,a[i].name);
            }
            printf("按任意键继续.......\n");
            getchar();
            getchar();
        }
        else if(com==3)
        {
            printf("按照女团的名次排序为:\n");
            sort(a+1,a+nom,cmp3);
            for(i=1; i<=nom; i++)
            {
                printf("排名第%d的学校为:%s\n",i,a[i].name);
            }
            printf("按任意键继续.......\n");
            getchar();
            getchar();
        }
        else if(com==5)
            break;
        else
            printf("无效的命令\n");
    }

}
void outschool()//输出学校的总分
{
    int i;
    for(i=1; i<=nom; i++)
        printf("%s学校的总分为%d\n",a[i].name,a[i].school);
    printf("按任意键继续.........\n");
   getchar();
    getchar();
}
void projectout()//输出项目信息的函数
{
    int i,j,k,p,q;
    for(i=1; i<=item; i++)
    {
        printf("                           %s该项目的排名\n",a[1].b[i].name);
        printf("                      学校      名次      姓名\n");
        for(j=1; j<=a[1].b[i].top; j++)
        {
            for(k=1; k<=nom; k++)
            {
                for(p=1; p<=item; p++)
                {
                    if(strcmp(a[k].b[p].name,a[1].b[i].name)==0)
                    {
                        for(q=1; q<=a[k].b[p].num; q++)
                        {
                            if(a[k].b[p].ranking[q]==j)
                            {
                                printf("                      %-10s%-10d%s\n",a[k].name,j,a[k].b[p].d[q]);
                            }
                        }
                    }

                }
            }
        }
        printf("\n");
    }
    printf("按任意键继续......\n");
    getchar();
    getchar();

}
void savefile()//存文件的函数
{
    FILE *fp;
    int i;
    if((fp=fopen("file.txt","w"))==NULL)
    {
        printf("打不开文件\n");

    }
    else
    {
        fwrite(&nom,sizeof(int),1,fp);
        fwrite(&item,sizeof(int),1,fp);
        for(i=1; i<=nom; i++)
        {
            if(fwrite(&a[i],sizeof(school),1,fp)!=1)
                printf("不能打开文件\n");
        }
    }
    fclose(fp);
    printf("按任意键继续.........");
    getchar();
    getchar();
}
void readfile()//读文件的函数
{
    int i;
    FILE *fp;
    if((fp=fopen("file.txt","rb"))==NULL)
    {
        printf("不能打开文件\n");
    }
    else
    {
        fread(&nom,sizeof(int),1,fp);
        fread(&item,sizeof(int),1,fp);
        for(i=1; i<=nom; i++)
        {
            fread(&a[i],sizeof(school),1,fp);
        }
    }
    printf("按任意键继续.........");
    getchar();
    getchar();
}
void xuexiao()//查询某个学校或者项目的函数
{
    system("cls");
    printf("请输入你要查找学校还是项目(学校输1,项目输2):");
    int com;
    scanf("%d",&com);
    printf("\n");
    int i,j,k,p,q;
    if(com==1)
    {
        printf("请输入要查找的学校的名称:");
        char s[20];
        scanf("%s",s);
        printf("\n");
        for(i=1; i<=nom; i++)
        {
if(strcmp(s,a[i].name)==0)
            {
printf("学校         项目       性别       名次个数     获得名次数       名次       姓名\n");
                for(j=1; j<=item; j++)
                {

                    for(k=1; k<=a[i].b[j].num; k++)
                    {
                        if(a[i].b[j].gender==1)
printf("%-13s%-8s   男子       %-15d%-15d%-10d%s\n",a[i].name,a[i].b[j].name,a[i].b[j].top,a[i].b[j].num,a[i].b[j].ranking[k],a[i].b[j].d[k]);
                        else
                            printf("%-13s%-8s   女子       %-15d%-15d%-10d%s\n",a[i].name,a[i].b[j].name,a[i].b[j].top,a[i].b[j].num,a[i].b[j].ranking[k],a[i].b[j].d[k]);
                    }
                }
                break;
            }
        }
        if(i==nom+1)
        {
            printf("没有找到你要查找的学校\n");
        }
    }
    else
    {
        int flag=0;
        printf("请输入要查找的项目的名称:");
        char s[20];
        scanf("%s",s);
        printf("\n");
        int d;
        for(j=1; j<=item; j++)
        {
            if(strcmp(a[1].b[j].name,s)==0)
            {
     printf("                           %s该项目的排名\n",a[1].b[i].name);
                printf("                      学校      名次      姓名\n");
                for(d=1; d<=a[1].b[j].top; d++)
                {
                    for(k=1; k<=nom; k++)
                    {
                        for(p=1; p<=item; p++)
                        {
                            if(strcmp(a[k].b[p].name,s)==0)
                            {
                                for(q=1; q<=a[k].b[p].num; q++)
                                {
                                    if(a[k].b[p].ranking[q]==d)
                                    {
                                        printf("                      %-10s%-10d%s\n",a[k].name,d,a[k].b[p].d[q]);
                                    }
                                }
                            }

                        }
                    }
                }
                flag=1;
                break;
            }
            if(flag)
                break;
        }
    }
    printf("按任意键继续......");
    getchar();
    getchar();
}
void command()//命令函数
{
    int com;
    while(1)
    {
        system("cls");
        menu();
        printf("请输入要执行的命令\n");

        scanf("%d",&com);
        if(com==1)
            input();
        else if(com==2)
            output();
        else if(com==3)
            sortput();
        else if(com==4)
            projectout();
        else if(com==5)
            outschool();
        else if(com==6)
            savefile();
        else if(com==7)
            readfile();
        else if(com==8)
            xuexiao();
        else if(com==9)
            return ;
        else
            printf("无效的命令\n");
    }
}
int main()//主函数
{
    start();
    system("cls");
    command(); 
return 0;
}    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564

7 结果分析
本程序的时间复杂度大约为O(N3),主要是在程序的输入和输出。空间复杂度大约为O(N2);
程序的问题及解决过程:开始时程序没有查询学校和项目信息的功能。之后添加了这个功能,用了名字匹配的功能,可以查询相关学校和项目。还有之前的输出格式不好,之后进行了一些改进,比以前好多了。

8 总结
这次的程序设计完成了关于运动会的信息的存储,可以按照学校编号输出,也可以按照排序输出,还可以查询学校或者项目的相关信息。程序中用到了排序算法,在查询学校中用到了匹配。在设计的过程当中遇到了很多的问题,最后通过思考和查找资料等方法将其解决。在设计的过程当中学到了很多,也发现解决一个问题需要有耐心、恒心。通过这次程序设计,使我加深了对数据结构的理解,也提高了自己解决问题的能力。

参考文献
[1] 刘晓华,唐焕玲,肖进杰.数据结构(C语言版)[M].北京:清华大学出版社,2015
[2] 王金鹏.C语言可以这样学[M]. 北京:清华大学出版社,2016

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/812896
推荐阅读
相关标签
  

闽ICP备14008679号