iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现校运动会项目管理系统
  • 577
分享到

C语言实现校运动会项目管理系统

2024-04-02 19:04:59 577人浏览 泡泡鱼
摘要

本文实例为大家分享了C语言实现校运动会项目管理系统的具体代码,供大家参考,具体内容如下 源码 #include <stdio.h> #include <stdlib

本文实例为大家分享了C语言实现校运动会项目管理系统的具体代码,供大家参考,具体内容如下

源码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3 //参与运动会的学院数目
//定义一个结构体
typedef struct project
{
    char xiangmu[40];     //比赛项目名称
    char name[N][40];     //学院名称
    float score[N];       //单项成绩
    int no[N];            //单项名次
    struct project *next; //指向下一节点的指针
} Proj;

typedef struct sumno
{
    char name[40];
    float sum;
} SumNo;
//函数声明放在这里
void ListCreate(Proj *L, int n); //创建链表节点
void ListSearch(Proj *L);        //查找某个运动会项目信息
void ListModify(Proj *L);        //修改某个运动会项目信息
void ListDelete(Proj *L);        //删除某个运动会项目信息
void Input(Proj *p, int i);      //输入运动会项目信息
void Output(Proj *L);            //输出每个运动会项目的学院成绩排名信息
void PerRank(Proj *L);           //计算每个运动会项目的学院成绩排名并输出
void SumRank(Proj *L);           //所有项目每个学院的总成绩和排名
void Menu();                     //校运动会项目管理系统的菜单

//校运动会项目管理系统的主函数入口
int main()
{
    int item, n;                      //item用于接收输入的命令,n用于接收输入的项目数
    Proj *L = NULL;                   //初始化一个头节点
    L = (Proj *)malloc(sizeof(Proj)); //为头节点开辟内存空间
    L->next = NULL;                   //将头节点的指针域置空
    do
    {
        Menu(); //菜单
        printf("请输入相应的数字,进行相应的操作:\n");
        scanf("%d", &item);
        system("cls");
        switch (item)
        {
        case 1:
            printf("请输入您要录入的项目数目:");
            scanf("%d", &n);
            ListCreate(L, n); //创建项目链表节点
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 2:
            ListSearch(L); //查找项目的相关信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 3:
            ListModify(L); //修改项目信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 4:
            ListDelete(L); //删除项目的信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 5:
            PerRank(L); //计算每个运动会项目的学院成绩排名
            Output(L);  //输出每个运动会项目的学院成绩排名信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 6:
            SumRank(L); //所有项目每个学院的总成绩和排名
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 0:
            printf("即将退出校运动会项目管理系统....."); //退出校运动会项目管理系统
            exit(0);
        default:
            printf("您输入的指令不正确,请重新输入");
        }
        printf("\n\n");
    } while (item);
    return 0;
}

//创建链表,将新生成的节点插入到链表的表头
void ListCreate(Proj *L, int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        Proj *p;
        //将新生成的节点插入到链表中
        p = NULL;
        p = (Proj *)malloc(sizeof(Proj));
        Input(p, i);
        p->next = L->next;
        L->next = p;
    }
}

//查找项目信息
void ListSearch(Proj *L)
{
    int k;
    char n[40];
    Proj *p = L->next;
    if (p == NULL)
        printf("数据为空,无法查找!");
    else
    {
        printf("请输入您要查找的项目名称:");
        scanf("%s", n);
        while (strcmp(p->xiangmu, n) != 0)
        {
            p = p->next;
            if (p == NULL)
            {
                printf("没有找到相关信息\n");
                return;
            }
        }
        PerRank(L);
        printf("该项目的相关信息如下:\n");
        printf("学院名称\t单项成绩\t单项名次\n\n");
        for (k = 0; k < N; k++)
        {
            printf("%s\t\t", *((p->name) + k));
            printf("%.2f\t\t", *((p->score) + k));
            printf("%d\t\n", *((p->no) + k));
        }
        printf("\n\n");
    }
}

//修改项目的相关信息
void ListModify(Proj *L)
{
    int item, k, a;
    char n[40], m[40];
    Proj *p = L->next;
    if (p == NULL)
        printf("数据为空,无法修改!");
    else
    {
        printf("请输入您要修改的项目名称:");
        scanf("%s", n);
        while (strcmp(p->xiangmu, n) != 0)
        {
            p = p->next;
            if (p == NULL)
            {
                printf("没有找到相关信息\n");
                return;
            }
        }
        printf("您是否需要修改项目名称(是输入1,不是输入0):");
        scanf("%d", &a);
        if (a == 1)
        {
            printf("请输入您修改后的项目名称:");
            scanf("%s", m);
            strcpy(p->xiangmu, m);
            printf("修改成功!");
        }
        else if (a == 0)
        {
            printf("请输入您要修改的学院:");
            scanf("%s", n);
            for (k = 0; k < N; k++)
            {
                if (strcmp(*((p->name) + k), n) == 0)
                    break;
            }
            printf("请输入你要修改的项目信息类型:\n");
            printf("1、学院名称\n2、该学院该项目的成绩\n");
            scanf("%d", &item);
            switch (item)
            {
            case 1:
                printf("请输入修改后的学院名称:");
                scanf("%s", m);
                strcpy(*((p->name) + k), m);
                printf("修改成功");
                break;
            case 2:
                printf("请输入您修改后的该学院该项目的成绩:");
                scanf("%f", (p->score) + k);
                printf("修改成功");
                break;
            default:
                printf("您输入的指令错误!");
                break;
            }
        }
        else
            printf("您输入错误!");
    }
}

//删除项目的相关信息
void ListDelete(Proj *L)
{
    char n[40];
    Proj *p = L->next, *pre = L; //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点
    if (p == NULL)
        printf("数据为空,无法删除!");
    else
    {
        printf("请输入您要删除的项目名称:");
        scanf("%s", n);
        while (strcmp(p->xiangmu, n) != 0)
        {
            pre = p;
            p = pre->next;
            if (p == NULL)
            {
                printf("没有找到相关信息,无法删除\n");
                return;
            }
        }
        pre->next = p->next;
        free(p);
        printf("删除成功");
    }
}

//计算每个运动会项目的学院成绩排名
void PerRank(Proj *L)
{
    int i, j, k;
    float t;
    char na[40] = {' '};
    Proj *p = L->next;
    if (p == NULL)
        printf("数据为空,无法排序!");
    else
    {
        while (p != NULL)
        {
            for (i = 0; i < N; i++)
            {
                for (j = 0; j < N - i - 1; j++)
                {
                    if (*((p->score) + j) < *((p->score) + j + 1))
                    {
                        t = *((p->score) + j);
                        *((p->score) + j) = *((p->score) + j + 1);
                        *((p->score) + j + 1) = t;
                        strcpy(na, *((p->name) + j));
                        strcpy(*((p->name) + j), *((p->name) + j + 1));
                        strcpy(*((p->name) + j + 1), na);
                    }
                }
            }
            for (k = 0; k < N; k++)
                *((p->no) + k) = k + 1;
            p = p->next;
        }
    }
}

//所有项目每个学院的总成绩和排名;
void SumRank(Proj *L)
{
    int i, j, k;
    float t;
    SumNo s[N],s0;
    Proj *p = L->next;
    for (i = 0; i < N; i++)
    {
        strcpy(s[i].name, *((p->name) + N - i - 1));
        s[i].sum = 0;
    }
    if (p == NULL)
        printf("数据为空!");
    else
    {
        while (p != NULL)
        {
            for(i=0;i<N;i++)
                s[i].sum += *((p->score) + i);
            p = p->next;
        }
        for (j = 0; j < N; j++)
        {
            for (k = 0; k < N - j - 1; k++)
            {
                if(s[k].sum>s[k+1].sum){
                    s0 = s[k];
                    s[k] = s[k + 1];
                    s[k + 1]= s0;
                }
            }
        }
        p = L->next;
        printf("学院名称\t总成绩\t\t总排名\n");
        for (i = N - 1; i >= 0; i--)
        {
            printf("%s\t\t", s[i].name);
            printf("%.2f\t\t", s[i].sum);
            printf("%d\t\t", N - i);
            printf("\n");
        }
    }
}
//输入项目的相关信息
void Input(Proj *p, int i)
{
    int j;
    printf("请输入第%d个比赛项目名称:", i + 1);
    scanf("%s", p->xiangmu);
    for (j = 0; j < N; j++)
    {
        printf("请输入第%d个学院的名称:", j + 1);
        scanf("%s", (p->name) + j);
        printf("请输入该学院的该项目的成绩:");
        scanf("%f", (p->score) + j);
    }
}

//输出全部项目信息
void Output(Proj *L)
{
    int k;
    Proj *p = L->next;
    while (p != NULL)
    {
        printf("\t\t项目:%s\n\n", p->xiangmu);
        printf("学院名称\t单项成绩\t单项名次\n\n");
        for (k = 0; k < N; k++)
        {
            printf("%s\t\t", *((p->name) + k));
            printf("%.2f\t\t", *((p->score) + k));
            printf("%d\t\n", *((p->no) + k));
        }
        printf("\n\n");
        p = p->next;
    }
}
//校运动会项目管理系统的菜单
void Menu()
{
    printf("\n\n");
    printf("\t\t\t===================校运动会项目管理系统==================\n");
    printf("\t\t\t* 作者:XXX  班级:人工智能XXXX  学号:XXXXXXXXX            *\n");
    printf("\t\t\t*                                                       *\n");
    printf("\t\t\t*          1>. 录入运动会项目信息                       *\n");
    printf("\t\t\t*          2>. 查找某个运动会项目信息                   *\n");
    printf("\t\t\t*          3>. 修改某个运动会项目信息                   *\n");
    printf("\t\t\t*          4>. 删除某个运动会醒目信息                   *\n");
    printf("\t\t\t*          5>. 每个运动会项目的学院成绩排名             *\n");
    printf("\t\t\t*          6>. 所有项目每个学院的总成绩和排名           *\n");
    printf("\t\t\t*          0>. 退出管理系统                             *\n");
    printf("\t\t\t*                                        欢迎使用本系统!*\n");
    printf("\t\t\t=========================================================\n");
    printf("\t\t\t输入选项,按回车进入选项:                                \n");
}

主菜单截图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言实现校运动会项目管理系统

本文链接: https://www.lsjlt.com/news/140640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现校运动会项目管理系统
    本文实例为大家分享了C语言实现校运动会项目管理系统的具体代码,供大家参考,具体内容如下 源码 #include <stdio.h> #include <stdlib...
    99+
    2022-11-13
  • 怎么用C语言实现校运动会项目管理系统
    本篇内容主要讲解“怎么用C语言实现校运动会项目管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现校运动会项目管理系统”吧!源码#include <stdio....
    99+
    2023-06-29
  • C语言实现运动会管理系统
    本文实例为大家分享了C语言实现运动会管理系统的具体代码,供大家参考,具体内容如下 问题描述: (1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数; (2) ...
    99+
    2022-11-13
  • C语言实现会员管理系统
    本文实例为大家分享了C语言实现会员管理系统的具体代码,供大家参考,具体内容如下 会员信息包括:会员号(6位数,唯一),姓名,身份证号,联系电话,状态(1表示正常,0表示挂失)。 会员...
    99+
    2022-11-13
  • C语言实现学生成绩管理系统项目
    本文实例为大家分享了C语言实现学生成绩管理系统项目,供大家参考,具体内容如下 1、数据结构:学生信息:学号、姓名、年龄、性别、3课成绩 2、功能: (1)  增加学生记录(...
    99+
    2022-11-13
  • C语言如何实现会员管理系统
    本文小编为大家详细介绍“C语言如何实现会员管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现会员管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。会员信息包括:会员号(6位数,唯一),姓名...
    99+
    2023-06-29
  • C语言实现简单学生成绩管理系统项目
    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 系统界面及相关要求 1)系统运行,打开如下界面。列出系统帮助菜单(即命令菜单),提示输入命令。 ...
    99+
    2022-11-13
  • C语言实现电话簿项目管理
    本文实例为大家分享了C语言实现电话簿项目管理的具体代码,供大家参考,具体内容如下 1.前言 在C语言的学习,经常有一个需要完成的项目就是电话簿的管理,在刚学习玩C语言基本内容后,面对...
    99+
    2022-11-12
  • C++实现通讯录管理系统项目
    本文实例为大家分享了C++实现通讯录管理系统的具体代码,供大家参考,具体内容如下 1、通讯录设计要点 1:添加联系人:向通讯录中添加新人(包括:性别,年龄,联系电话,家庭住址),并且...
    99+
    2022-11-13
  • C语言实现学籍管理系统
    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 设计一个学籍管理系统,基本功能包括: 1.输入学生基本信息2.查询学生信息(1.按学号2.按姓名)3....
    99+
    2022-11-13
  • C语言实现设备管理系统
    本文实例为大家分享了C语言实现设备管理系统的具体代码,供大家参考,具体内容如下 一、任务概述 设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间统一部门购买的若干相同...
    99+
    2022-11-13
  • C语言实现餐厅管理系统
    本文实例为大家分享了C语言实现餐厅管理系统的具体代码,供大家参考,具体内容如下 在学习完C语言之后,写了一个小程序,涉及到单链表,文件,排序,等内容。 这个对新手指针,函数等方面的掌...
    99+
    2022-11-13
  • C语言实现客房管理系统
    本文实例为大家分享了C语言实现客房管理系统的具体代码,供大家参考,具体内容如下 总体设计 下面来分析一下整个系统,根据上面的要求分析,可将这个系统设计为五大模块(见下图):登记模块,...
    99+
    2022-11-13
  • C语言实现销售管理系统
    本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下 这是题目,没用到文件相关的函数,所以不能保存在本地,每次读入都得重新输入。 #include<...
    99+
    2022-11-13
  • C语言实现考勤管理系统
    这些天因为补修c语言课设,在花费了一段时间后写完了这个课设,课设的要求如下: 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假...
    99+
    2022-11-13
  • C语言实现停车管理系统
    本题为大家分享了C语言实现停车管理系统的具体代码,供大家参考,具体内容如下 设计题目 设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2022-11-13
  • C语言实现教务管理系统
    本文实例为大家分享了C语言实现教务管理系统的具体代码,供大家参考,具体内容如下 目前已完成教师管理系统部分,学生管理系统待完成: 实现效果如图: 主界面: 教师端—&...
    99+
    2022-11-13
  • C语言实现车票管理系统
    本文实例为大家分享了C语言实现车票管理系统的具体代码,供大家参考,具体内容如下 一、项目简介 设计一个车票管理系统实现录入、查看班次信息,售票,退票等基本功能。设计中要求综合运用所学...
    99+
    2022-11-13
  • C语言实现酒店管理系统
    本文实例为大家分享了C语言实现酒店管理系统的具体代码,供大家参考,具体内容如下 系统框架: 代码: #include <stdio.h> #include <st...
    99+
    2022-11-13
  • C语言实现宿舍管理系统
    本文实例为大家分享了C语言实现宿舍管理系统的具体代码,供大家参考,具体内容如下 本次大一课设的作品,从空项目开始写的,全部在txt文件中增改删。变量命名太土了,代码格式还有待优化,望...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作