怎么用C语言实现校运动会项目管理系统
发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,本篇内容主要讲解"怎么用C语言实现校运动会项目管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现校运动会项目管理系统"吧!源码#inc
千家信息网最后更新 2025年11月19日怎么用C语言实现校运动会项目管理系统
本篇内容主要讲解"怎么用C语言实现校运动会项目管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现校运动会项目管理系统"吧!
源码
#include#include #include #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 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");}
主菜单截图
到此,相信大家对"怎么用C语言实现校运动会项目管理系统"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
项目
运动会
运动
信息
输入
学院
名称
成绩
系统
管理系统
管理
节点
菜单
单项
总成
总成绩
数据
成功
目的
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器机房建设方案
2010年全国党员数据库
软件开发工作目标设定
阿里云服务器 cpu
戴尔e08s服务器价格
mdf数据库编辑器
网络安全班会的心得
数据库压测
如何防范网络安全及社会安全
数据库创建设备表
ftp服务器工具 xp
程序在服务器上需要域名才能打开
职中计算机专业软件开发选什么
链工宝网络安全月知识竞赛
重庆服务器回收平台云空间
常熟原则软件开发推荐咨询
安徽数据库日志审计安装方式
医学小软件开发费用大概多少
数据库2008误操作还原
销售目标设定数据库
网络安全风险管理师资培训证书
青岛海阔网络技术有限公司
大连服务器数据迁移
中兴软件开发要本科生吗
国家维护网络安全的原因
软件开发的成本预算
中高端服务器操作
百度视频服务器怎么连
数据库加性别
服务器装机用哪个软件