运动会分数、积分统计程序

前言:花三天时间帮朋友写的一个运动会分数统计的程序,每段代码都写上了注释方便理解,每个函数都单独负责一个功能模块,顺着看一遍就能明白了。但是由于考研长时间没碰过代码了,很多东西都遗忘了,所以读者可以自己再去优化一下代码。包括但不限于:
1、直接读取指定文本中的数据。
2、函数功能的内聚没有做到最好。
有任何问题欢迎评论区评论或者直接私信,我看到都会回复的。

题目:运动会分数统计

参加运动会有 n n n 个学校,学校编号 1 ∼ n 1 \sim n 1n。比赛分成 m m m 个男子项目,和 w w w 个女子项目,项目编号 1 ∼ m + w 1 \sim m + w 1m+w。不同的项目取前五名前三名获得积分:取前五名分别为: 7 、 5 、 3 、 2 、 1 7、5、3、2、1 75321;取前三名分别为: 5 、 3 、 2 5、3、2 532。哪些项目取前五名或前三名由用户自己设定。( 2 < = n < = 20 ,   1 < = m + w < = 20 2 <= n <= 20,\ 1 <= m + w <= 20 2<=n<=20, 1<=m+w<=20)。分数相同时按编号大小输出。

要求

  1. 可以输入各个项目的前三名或前五名的成绩。
  2. 能统计各学校的积分总分。
  3. 数据存入文件并能随时查询。
  4. 可以按学校编号或名称、学核总分、男女生团体总分排序输出。
  5. 可以按学校编号查询学校某个项目的情况;也可以按项目编号查询取得前三或前五名的学较。

界面要求

有合理的提示,每个功能可以设立菜单。

存储结构

运动会的相关数据要存储在数据文牛中。

测试数据

3 5 5
篮球
铅球
跳远
百米赛跑
四人接力
羽毛球
乒乓球
跳水
4x100
跳远
咒术高专
85 85 90 100 100
85 85 95 100 100
调查兵团
90 100 100 85 85
90 100 90 85 85
鬼杀队
100 95 95 95 95
100 95 100 95 95

完整代码(C)

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct score    // 总分结构类型
{
    int schoolNum, boyEventNum, girlEventNum;   // 学校、男子、女子项目的数量
    char boyEvent[21][110], girlEvent[21][110]; // 男子、女子项目的名称
    int boyTop[21][6], girlTop[21][6];          // 这两个数组记录男、女子每个项目前三名或前五名的编号
    int flag;   // fasle == 0 表明分数还未统计过,需要统计
} ScoreInit;

typedef struct school   // 学校的结构类型
{
    char name[110]; // 该学校名字
    int boyEventGrade[21], girlEventGrade[21];      // 该学校男子、女子项目的成绩
    int boyTotalScore, girlTotalScore, totalScore;  // 该学校男子、女子项目的总得分
} SchoolInit;

// 全局变量定义
ScoreInit Score;                            // 分数结构变量
SchoolInit School[21];
int topThreeScore[4] = {-1, 5, 3, 2};       // 前三名的积分
int topFiveScore[6] = {-1, 7, 5, 3, 2, 1};  // 前五名的积分

void Interface()    // 打印界面的函数 none
{
    printf("\t\t运动会积分统计\n\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("10.退出 \n");
}

void Clear()        // 该函数实现清屏的功能 none
{
    system("cls");
    Interface();
}

void Init()     // 对数组相关数据初始化的函数
{
    Score.flag = 0;
    int i = 0, j, k;    // i, j, k, 用于标记循环次数
    while (i < 21)      // 对前几名数组初始化
    {
        j = 0;
        while (j < 6)
        {
            Score.boyTop[i][j] = 0;
            Score.girlTop[i][j] = 0;
            ++j;
        }
        ++i;
    }

    i = 0;
    while (i < 21)      // 对 School 数组进行初始化
    {
        j = k = 0;
        while (j < 21)
            School[i].boyEventGrade[j++] = 0;
        while (k < 21)
            School[i].girlEventGrade[k++] = 0;
        School[i].boyTotalScore = School[i].girlTotalScore = School[i].totalScore = 0;
        ++i;
    }
}

void GetScoreData()     // 数据读取函数 none
{
    int i = 1, j, k;    // i, j, k, 用于标记循环次数
    printf("请依次输入学校、男子项目和女子项目的数量(均为至少三个):\n");
    scanf("%d%d%d", &Score.schoolNum, &Score.boyEventNum, &Score.girlEventNum);

    i = j = 1;
    printf("请依次输入男子项目、女子项目的名称(每个名称输入后需回车):\n");
    printf("男子项目:\n");
    while (i <= Score.boyEventNum)
        scanf("%s", Score.boyEvent[i++]);
    printf("\n女子项目:\n");
    while (j <= Score.girlEventNum)
        scanf("%s", Score.girlEvent[j++]);

    i = 1;
    printf("\n请依次输入各个学校的名称、男子项目的分数和女子项目的分数:\n");
    while (i <= Score.schoolNum)
    {
        j = k = 1;
        scanf("%s", School[i].name);    // 输入学校的名称
        while (j <= Score.boyEventNum)  // 输入男子项目的分数
            scanf("%d", &School[i].boyEventGrade[j++]);
        while (k <= Score.girlEventNum) // 输入女子项目的分数
            scanf("%d", &School[i].girlEventGrade[k++]);
        printf("\n");
        ++i;
    }
    getchar();
    printf("\n请输入任意键继续...");
    getchar();
    Clear(); // 由于输入的数据比较多,因为执行完输入函数后清一次屏
}

void CountRank(int number, int topNum, int border, int sex) // number 是项目编号,topNum 代表前 topNum 名
{ // border 表示循环的边界值,sex 表示男子还是女子项目 none
    int *A = (int*)malloc(sizeof(int) * border);    // 定义一个长度为 border 的数组,其中的元素是学校的编号
    for (int i = 1; i < border; ++i) A[i] = i;      // 给数组元素赋值

    if (sex == 0) // 如果是男子项目
    {
        int i, j;
        for (i = 2; i < border; ++i)    // 利用直接插入排序
        {   // 将 topNum 个成绩最好的学校的编号移到数组的最前面
            if (School[i].boyEventGrade[number] > School[i - 1].boyEventGrade[number])
            {
                A[0] = A[i];
                for (j = i - 1; A[0] > A[j]; --j)
                    A[j + 1] = A[j];
                A[j + 1] = A[0];
            }
        }
        for (int i = 1; i <= topNum; ++i)   // 将前几名的编号赋值给 top 数组
        {
            Score.boyTop[number][i] = A[i];
            if (topNum == 3)    // 依照名次给各个学校添加总分
                School[A[i]].boyTotalScore += topThreeScore[i];
            else
                School[A[i]].boyTotalScore += topFiveScore[i];
        }
    }
    else
    {
        int i, j;
        for (i = 2; i < border; ++i)    // 利用冒泡排序,只进行 topNum 趟排序
        {
            if (School[i].girlEventGrade[number] > School[i - 1].girlEventGrade[number])
            {
                A[0] = A[i];
                for (j = i - 1; A[0] > A[j]; --j)
                    A[j + 1] = A[j];
                A[j + 1] = A[0];
            }
        }
        for (int i = 1; i <= topNum; ++i)
        {
            Score.girlTop[number][i] = A[i];
            if (topNum == 3) // 依照名次给各个学校添加总分
                School[A[i]].girlTotalScore += topThreeScore[i];
            else
                School[A[i]].girlTotalScore += topFiveScore[i];
        }
    }
}

void CountTotalScore() // 各学校总分统计函数 none
{
    int topNum = 0;
    int i = 1, j = 1, k;
    printf("\n请依次输入各男子项目取前几名的成绩\n");
    while (i <= Score.boyEventNum)
    {
        printf("%s:", Score.boyEvent[i]);
        scanf("%d", &topNum);
        CountRank(i, topNum, Score.schoolNum + 1, 0);
        ++i;
    }
    printf("\n请依次输入各女子项目取前几名的成绩\n");
    while (j <= Score.girlEventNum)
    {
        printf("%s:", Score.girlEvent[j]);
        scanf("%d", &topNum);
        CountRank(j, topNum, Score.schoolNum + 1, 1);
        ++j;
    }
    Score.flag = 1;
}

void EventTotalScoreSort(int sex) // 该函数实现按照各学校的总分进行排序
{
    int *A = (int*)malloc(sizeof(int) * (Score.schoolNum + 1)); // 定义一个长度为 Score.schoolNum + 1 的数组,其中的元素是学校的编号
    for (int i = 1; i <= Score.schoolNum; ++i) // 给数组元素赋值
        A[i] = i;
    if (sex == 0) // 如果是男子项目
    {
        int i, j;
        for (i = 2; i <= Score.schoolNum; ++i) // 直接插入排序
        {
            if (School[i].boyTotalScore > School[i - 1].boyTotalScore)
            {
                A[0] = A[i];
                for (j = i - 1; A[0] > A[j]; --j)
                    A[j + 1] = A[j];
                A[j + 1] = A[0];
            }
        }
        printf("男子项目总分排名是:\n");
        for (int i = 1; i <= Score.schoolNum; ++i)
            printf("%s\n", School[A[i]].name);
    }
    else
    {
        int i, j;
        for (i = 2; i <= Score.schoolNum; ++i) // 直接插入排序
        {
            if (School[i].girlTotalScore > School[i - 1].girlTotalScore)
            {
                A[0] = A[i];
                for (j = i - 1; A[0] > A[j]; --j)
                    A[j + 1] = A[j];
                A[j + 1] = A[0];
            }
        }
        printf("女子项目总分排名是:\n");
        for (int i = 1; i <= Score.schoolNum; ++i)
            printf("%s\n", School[A[i]].name);
    }
}
void SchoolNumberSort()
{
    printf("参赛的学校分别是:\n");
    for (int i = 1; i <= Score.schoolNum; ++i)
        printf("编号%d--%s\n", i, School[i].name);
}

void SchoolQuery() // 该函数依据学校编号查询各项目成绩和总得分 none
{
    int number;
    printf("请输入需要查询的学校编号:");
    scanf("%d", &number);
    int i = 1, j = 1;
    printf("编号%d:%s\n", number, School[number]);
    printf("\n男子项目的成绩如下\n");
    while (i <= Score.boyEventNum)
    {
        printf("%s:%d\n", Score.boyEvent[i], School[number].boyEventGrade[i]);
        ++i;
    }
    printf("\n女子项目的成绩如下\n");
    while (j <= Score.girlEventNum)
    {
        printf("%s:%d\n", Score.girlEvent[j], School[number].girlEventGrade[j]);
        ++j;
    }

    printf("\n男子项目的总得分是:%d\n", School[number].boyTotalScore);
    printf("女子项目的总得分是:%d\n", School[number].girlTotalScore);
}

void EventQuery() // 该函数依据项目的编号查询各学校的成绩排名 none
{
    if (Score.flag)
    {
        int number;
        printf("请输入需要查询的项目编号:");
        scanf("%d", &number);
        printf("\n编号为%d的男子项目%s的排名分别是:", number, Score.boyEvent[number]);
        for (int i = 1; i < 6; ++i) // 依据 top 数组中记录的学校编号输出名字,前提是编号不为0
            if (Score.boyTop[i] != 0)
                printf("%s ", School[Score.boyTop[number][i]].name);
        printf("\n编号为%d的女子项目%s的排名分别是:", number, Score.girlEvent[number]);
        for (int i = 1; i < 6; ++i)
            if (Score.girlTop[i] != 0)
                printf("%s ", School[Score.girlTop[number][i]].name);
        printf("\n");
    }
    else printf("您还未查询过总分!\n");

}

void SaveData() // 该函数将数据存入文件 output.txt 中
{
    if (Score.flag)
    {
        FILE *fp;
        fp = fopen("output.txt", "w"); // 令 fp 指向输出的文件

        // 先输出 Score 中的数据
        fprintf(fp, "学校数量:%d   男子项目数量:%d   女子项目的数量:%d\n", Score.schoolNum, Score.boyEventNum, Score.girlEventNum);
        fprintf(fp, "男子项目有:");
        for (int i = 1; i <= Score.boyEventNum; ++i)
            fprintf(fp, "%s ", Score.boyEvent[i]);
        fprintf(fp, "\n");
        fprintf(fp, "女子项目有:");
        for (int i = 1; i <= Score.girlEventNum; ++i)
            fprintf(fp, "%s ", Score.girlEvent[i]);
        fprintf(fp, "\n\n");

        // 然后按学校顺序输出相关数据
        for (int i = 1; i <= Score.schoolNum; ++i)
        {
            fprintf(fp, "编号%d-%s\n", i, School[i].name); // 输出学校名称
            fprintf(fp, "男子项目成绩为:");
            for (int j = 1; j <= Score.schoolNum; ++j)
                fprintf(fp, "%d ", School[i].boyEventGrade[j]);
            fprintf(fp, "\n女子项目成绩为:");
            for (int j = 1; j <= Score.schoolNum; ++j)
                fprintf(fp, "%d ", School[i].girlEventGrade[j]);
            fprintf(fp, "\n男子项目总得分为:%d\n女子项目总得分为:%d\n\n", School[i].boyTotalScore, School[i].girlTotalScore);
        }

        fclose(fp);
        printf("文件写入完成!\n");
        system("output.txt"); // 打开 output.txt 文件
    }
    else printf("还没统计分数呢!\n");
}

void Exit() // none
{
    exit(0);
}

int main()
{
    Interface(); // 打印界面的函数

    Init(); // 调用初始化函数

    int choice = 0;
    while (1)
    {
        printf("\n请输入您的选择(1-10):\n");
        scanf("%d", &choice);
        if (choice < 1 || choice > 10)
            printf("输入非法!请重新输入!\n");
        switch(choice) // 根据用户输入进入不同的模块
        {
            case 1:
                GetScoreData();
                break;
            case 2:
                CountTotalScore();
                break;
            case 3:
                EventTotalScoreSort(0);
                break;
            case 4:
                EventTotalScoreSort(1);
                break;
            case 5:
                SchoolNumberSort();
                break;
            case 6:
                SchoolQuery();
                break;
            case 7:
                EventQuery();
                break;
            case 8:
                SaveData();
                break;
            case 9:
                Clear();
                break;
            case 10:
                Exit();

        }
    }
}

完整版(C++:2022.12.9 更新)

#include <iostream>
#include <vector>
#include <algorithm>
#include <windows.h>
#include <fstream>
using namespace std;

struct sport    // 运动会信息结构体
{
    // 学校数量,男子项目数量,女子项目数量,项目总数,flag = 0 表明分数尚未统计
    int schoolsNum, menEventsNum, womenEventsNum, eventsTotalNum, flag = 0;
    vector<string> menEventsname, womenEventsname;      // 男子项目名称数组,女子项目名称数组
} Sports;

struct school   // 学校信息结构体
{
    string name;                        // 学校名称
    int menScore, womenScore, number;   // 学校男子项目得分、女子项目得分、学校编号
};

struct event    // 比赛项目信息结构体
{
    vector<pair<int, int>> numGrade;    // grade 保存该项目所有学校的编号成绩数组
    string name;                        // 项目名称
    int number;                         // 项目编号
};

vector<school> Schools;
vector<event> Events;
int topThreeScore[4] = { 5, 3, 2 };       // 前三名的积分
int topFiveScore[6] = { 7, 5, 3, 2, 1 };  // 前五名的积分

void Interface()    // 该函数用于打印程序的菜单界面
{
    cout << "\t运动会分数统计" << endl;
    cout << "1. 添加学校以及各项目成绩" << endl;
    cout << "2. 统计所有学校的得分结果" << endl;
    cout << "3. 按男子项目总分排序输出" << endl;
    cout << "4. 按女子项目总分排序输出" << endl;
    cout << "5. 按学校的编号和名称输出" << endl;
    cout << "6. 按学校编号查询各项目成绩" << endl;
    cout << "7. 按项目编号查询前三或前五" << endl;
    cout << "8. 保存信息" << endl;
    cout << "9. 清屏" << endl;
    cout << "10.退出" << endl;
}

void getSportsData()    // 该函数用于读取运动会以及参加运动会的学校的数据
{
    cout << "请依次输入学校、男子项目和女子项目的数量(数量至少三个):" << endl;
    cin >> Sports.schoolsNum >> Sports.menEventsNum >> Sports.womenEventsNum;
    Sports.eventsTotalNum = Sports.menEventsNum + Sports.womenEventsNum;

    cout << "请依次输入男子项目和女子项目的名称:" << endl;
    for (int i = 0; i < Sports.eventsTotalNum; ++i)
    {
        event temp;                                     // temp 结构变量保存当前输入项目的数据
        cin >> temp.name;                               // 输入项目名称
        temp.number = i + 1;                            // 项目编号比循环下标大1
        Events.push_back(temp);                         // 存入所有项目的数组中
    }

    int grade;                                          // grade 保存输入的成绩
    cout << "\n请依次输入各个学校的名称、男子项目的分数和女子项目的分数:" << endl;
    for (int i = 0; i < Sports.schoolsNum; ++i)         // 循环枚举所有学校
    {
        school temp;                                    // temp 结构变量保存当前输入学校的数据
        cin >> temp.name;                               // 学校名称
        temp.number = i + 1;                            // 学校编号比循环下标大1
        for (int j = 0; j < Sports.eventsTotalNum; ++j)
        {   // 循环枚举所有项目,以学校编号和成绩作为一个 pair 存入项目中
            cin >> grade;
            Events[j].numGrade.push_back(make_pair(temp.number, grade));
        }
        temp.menScore = temp.womenScore = 0;            // 初始化该学校的积分为0
        Schools.push_back(temp);                        // 该学校存入参加运动会的学校数组中
    }
    getchar();                                          // 过滤输入完数据的回车
    cout << "\n输入成功!" << endl;
}

bool compareGrade(pair<int, int> a, pair<int, int> b)    // 谓词:将成绩更高的排在前面
{
    return a.second > b.second;
}

void countTotalScore()  // 该函数用于统计所有学校的积分
{
    if (Sports.flag == 0)   // 尚未统计过分数,统计一下
    {
        int topNum = 0;
        cout << "\n请依次输入各男子项目和女子项目取前几名的成绩(3或5)" << endl;
        for (int i = 0; i < Sports.eventsTotalNum; ++i)
        {   // 循环枚举所有项目
            if (i < Sports.menEventsNum) cout << "男子项目";
            else cout << "女子项目";
            cout << Events[i].number << "-" << Events[i].name << ": ";

            int flag = 0;   // flag = 1 表明输入合法,注意将其与 Sports 中的 flag 区分开
            do { // 该循环检测输入的是否为合法数据,不是的话会让用户重新输入
                cin >> topNum;
                if (topNum > Sports.schoolsNum || (topNum != 3 && topNum != 5))
                {   // 输入的数字必须比参赛学校数小且不能是除了3和5以外的数字
                    cout << "请输入正确数据:";
                    flag = 0;
                }
                else flag = 1;
            } while (flag == 0);
            // 将项目中的编号成绩数组的元素按照成绩由高到低排序
            sort(Events[i].numGrade.begin(), Events[i].numGrade.end(), compareGrade);

            for (int j = 0; j < topNum; ++j)
            {   // 循环枚举前 j 名
                int num = Events[i].numGrade[j].first - 1;                  // 获取第 j 名学校的编号
                int sc = topNum == 3 ? topThreeScore[j] : topFiveScore[j];  // 获取该名次的积分
                if (i < Sports.menEventsNum) Schools[num].menScore += sc;   // 男子项目总得分更新
                else Schools[num].womenScore += sc;                         // 女子项目总得分更新
            }
        }
        Sports.flag = 1;
        cout << "统计成功!" << endl;
    }
    else cout << "已经统计过分数!" << endl;
}

bool compareMan(school a, school b)     // 谓词:将男子项目总分更高的排在前面
{
    return a.menScore > b.menScore;
}

bool compareWoman(school a, school b)   // 谓词:将女子项目总分更高的排在前面
{
    return a.womenScore > b.womenScore;
}

void aggregateEventScore(int gender)    // 该函数根据项目总分排名打印学校编号和名称
{
    if (gender == 0)
    {
        cout << "男子项目总分排名是:" << endl;
        sort(Schools.begin(), Schools.end(), compareMan);   // 对数组按男子项目总分进行排序
        for (auto i : Schools) cout << i.number << "-" << i.name << "\t分数:" << i.menScore << endl;
    }
    else
    {
        cout << "女子项目总分排名是:" << endl;
        sort(Schools.begin(), Schools.end(), compareWoman); // 对数组按女子项目总分进行排序
        for (auto i : Schools) cout << i.number << "-" << i.name << "\t分数:" << i.womenScore << endl;
    }
}

bool compareSchoolNumber(school a, school b)    // 谓词:学校编号更小的排在前面
{
    return a.number < b.number;
}

void schoolsNumberSort()    // 该函数打印所有参赛的学校和编号
{
    cout << "参赛的学校分别是:" << endl;
    sort(Schools.begin(), Schools.end(), compareSchoolNumber);    // 按学校编号由小到大排序
    for (auto i : Schools) cout << i.number << "-" << i.name <<endl;
}

void schoolNumberQuery()    // 该函数根据学校编号打印其各项目成绩
{
    int num;
    cout << "请输入学校编号:";
    cin >> num;
    for (auto i : Schools)                                  // 遍历学校数组,找到编号为 num 的学校并打印其名称
        if (i.number == num) cout << num << "-" <<i.name << endl;

    cout << "\n男子项目成绩如下" << endl;
    for (int i = 0; i < Sports.menEventsNum; ++i)
    {   // 枚举所有男子项目
        cout << Events[i].name << ": ";                     // 打印男子项目名称
        for (auto j : Events[i].numGrade)                   // 遍历该项目下的编号成绩数组
            if (j.first == num) cout << j.second << endl;   // 打印该项目的成绩
    }
    cout << "\n女子项目成绩如下" << endl;
    for (int i = Sports.menEventsNum; i < Sports.eventsTotalNum; ++i)
    {   // 枚举所有女子项目
        cout << Events[i].name << ": ";                     // 打印女子项目名称
        for (auto j : Events[i].numGrade)                   // 遍历该项目下的编号成绩数组
            if (j.first == num) cout << j.second << endl;   // 打印该项目的成绩
    }
}

void EventQuery()   // 该函数根据项目编号,按照成绩由大到小打印各学校名称
{
    int num;
    cout << "请输入项目编号:";
    cin >> num;
    cout << Events[num - 1].name << endl;                           // 注意编号要比其在数组中的下标大1
    // 将项目中的编号成绩数组的元素按照成绩由高到低排序
    sort(Events[num - 1].numGrade.begin(), Events[num - 1].numGrade.end(), compareGrade);
    sort(Schools.begin(), Schools.end(), compareSchoolNumber);      // 按学校编号由小到大排序
    for (auto i : Events[num - 1].numGrade)                         // 枚举指定项目的编号成绩数组
        cout << i.first << Schools[i.first - 1].name << " : " << i.second << endl;
}

void saveData()
{
    char outPutFile[] = "Data.txt";
    //string outPutFile = "Data.txt";
    ofstream out(outPutFile);
    out << "男子项目数量:" << Sports.menEventsNum << endl;
    out << "男子项目有:" << endl;
    for (int i = 0; i < Sports.menEventsNum; ++i) out << Events[i].number << "-" << Events[i].name << endl;
    out << "\n女子项目数量:" << Sports.womenEventsNum << endl;
    out << "女子项目有:" << endl;
    for (int i = Sports.menEventsNum; i < Sports.eventsTotalNum; ++i) out << Events[i].number << "-" << Events[i].name << endl;
    out << "\n学校数量:" << Sports.schoolsNum << endl;

    sort(Schools.begin(), Schools.end(), compareSchoolNumber);      // 按学校编号由小到大排序
    for (auto i : Schools)                                          // 枚举每个学校 i
    {
        out << i.number << "-" << i.name << endl;                   // 打印学校编号和名称
        for (auto j : Events)                                       // 枚举每个项目 j
        {
            out << j.number << "-" <<j.name << ":";                // 打印项目编号和名称
            for (auto k : j.numGrade)                               // 枚举项目 j 下的编号成绩数组
                if (k.first == i.number) out << k.second << endl;   // 打印该项目的成绩
        }
        out << "男子项目总得分:" << i.menScore << endl;
        out << "女子项目总得分:" << i.womenScore << endl;
        out << endl;
    }
    out.close();        // 需要先关闭文件后才能打开并显示文本文件
    cout << "保存成功!" << endl;
    system(outPutFile);
}

void clearScreen()      // 该函数实现清屏
{
    cout << "清除成功!等待界面刷新..." << endl;
    Sleep(1000);
    system("cls");
    Interface();
}

void exitProcedure()    // 该函数结束程序执行
{
    exit(0);
}

int main()
{
    Interface();

    int choice;
    while (1)
    {
        cout << "\n请输入您的选择(1-10):";
        cin >> choice;
        if (choice < 1 || choice > 10)
            cout << "输入非法!请重新输入!" << endl;
        switch (choice) // 根据用户输入进入不同的模块
        {
            case 1:
                getSportsData();
                break;
            case 2:
                countTotalScore();
                break;
            case 3:
                aggregateEventScore(0);
                break;
            case 4:
                aggregateEventScore(1);
                break;
            case 5:
                schoolsNumberSort();
                break;
            case 6:
                schoolNumberQuery();
                break;
            case 7:
                EventQuery();
                break;
            case 8:
                saveData();
                break;
            case 9:
                clearScreen();
                break;
            case 10:
                exitProcedure();
        }
    }

    return 0;
}

希望本篇博客能对你有所帮助,也希望看官能动动小手点个赞哟~~。

  • 13
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值