怎么用C语言实现校运动会项目管理系统
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,本篇内容主要讲解"怎么用C语言实现校运动会项目管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现校运动会项目管理系统"吧!源码#inc
千家信息网最后更新 2025年02月22日怎么用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安全错误
数据库的锁怎样保障安全
检查服务器证书吊销
软件开发前段和后台的区别
设有学生课程教学数据库
要发挥 网络安全基础性作用
网络文明网络安全心得
网络技术如何培训班
广州大飞网络技术
软件开发者宣言
cs换了服务器压不住枪命令
网络安全国外研究
魔兽世界lm服务器
新出台网络安全规定
网络安全工程师门槛高吗
软件测试与数据库
数据库所有表名 查询
date怎么设置数据库
中国互联网科技产业
怎么找软件开发公司
数据库跳转网页
数据库中的时间用什么数据类型
服务器管理 重要性
软件开发要炒股吗
网络技术工程师穿搭
独秀数据库怎么下载文件
工程软件开发技术上机难吗
振芯科技卫星互联网
动态数据库是什么
删数据库事件
我的世界修仙服务器需要什么
网络安全公益宣传广告