当前位置: 首页 > news >正文

C语言作业5(学生管理系统C语言)

成学生管理系统

1> 使用菜单完成

2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入

3> 查看学生信息:输出所有学生姓名以及对应的分数

4> 求出学习最好的学生信息:求最大值

5> 按姓名将所有学生进行升序排序

6> 按成绩将所有学生进行升序排序

要求每个功能使用函数完成

>>>>>>>>>>>实现的函数类型是有参数,无返回值的函数<<<<<<<<<<<<<<<<<<

#include <stdio.h>
#include <string.h>
#define MAX 100void print_menu()
{printf("\t\t======1.录入学生信息===================\n");printf("\t\t======2.查看学生信息===================\n");printf("\t\t======3.查询学习最好的学生信息===========\n");printf("\t\t======4.按姓名将所有学生进行升序排序======\n");printf("\t\t======0.退出==========================\n");
}
// 1.录入学生信息
void enterStudents(int studentsNumber,char names[MAX][30],int scores[MAX])
{for (int i = 0; i < studentsNumber; i++){printf("请输入第%d个学生的姓名:", i + 1);scanf("%s", names[i]);getchar();printf("请输入第%d个学生的成绩:", i + 1);scanf("%d", &scores[i]);}
}// 2.查看学生信息
void viewStudents(int studentsNumber,char names[MAX][30],int scores[MAX])
{printf("学生信息如下:\n");for (int i = 0; i < studentsNumber; i++){printf("学生姓名:%s 学生成绩:%d\n", names[i], scores[i]);}
}// 3.求出学习最好的学生信息(求最大值)
void bestStudents(int studentsNumber,char names[MAX][30],int scores[MAX])
{int maxi = 0;for (int i = 0; i < studentsNumber; i++){if (scores[maxi] < scores[i]){maxi = i;}}printf("成绩最好的学生姓名:%s 学生成绩:%d\n", names[maxi], scores[maxi]);
}// 4.按姓名将所有学生进行升序排序
void nameStudents(int studentsNumber,char names[MAX][30],int scores[MAX])
{char temp[50] = {'0'};int temps = 0;for (int i = 0; i < studentsNumber - 1; i++){for (int j = 0; j < studentsNumber - i - 1; j++){if (strcmp(names[j], names[j + 1]) > 0){strcpy(temp, names[j]);strcpy(names[j],names[j+1]);strcpy(names[j+1], temp);temps = scores[j];scores[j] = scores[j+1];scores[j+1] = temps;}}}for (int i = 0; i < studentsNumber; i++){printf("排序后学生姓名:%s 学生成绩:%d\n", names[i], scores[i]);}
}int main(int argc, char const *argv[])
{char names[MAX][30] = {'0'};int scores[MAX] = {0};int studentsNumber = 0;while (1){int n = 0;print_menu();printf("请输入序号>>");scanf("%d", &n);getchar();switch (n){case 1:printf("请输入学生个数:");scanf("%d", &studentsNumber);getchar();enterStudents(studentsNumber,names,scores);break;case 2:viewStudents(studentsNumber,names,scores);break;case 3:bestStudents(studentsNumber,names,scores);break;case 4:nameStudents(studentsNumber,names,scores);break;case 0:goto END;default:printf("您输入的功能有误,请重新输入\n");break;}}
END:return 0;
}

 以下代码作为纪念,定义了全局变量,没有传参,直接实现函数功能了,总之好像没啥意义

#include <stdio.h>
#include <string.h>
#define MAX 100
char names[MAX][30] = {'0'};
int scores[MAX] = {0};
int studentsNumber = 0;void print_menu()
{printf("\t\t======1.录入学生信息===================\n");printf("\t\t======2.查看学生信息===================\n");printf("\t\t======3.查询学习最好的学生信息===========\n");printf("\t\t======4.按姓名将所有学生进行升序排序======\n");printf("\t\t======0.退出==========================\n");
}
// 1.录入学生信息
void enterStudents(void)
{printf("请输入学生个数:");scanf("%d", &studentsNumber);getchar();for (int i = 0; i < studentsNumber; i++){printf("请输入第%d个学生的姓名:", i + 1);scanf("%s", names[i]);getchar();printf("请输入第%d个学生的成绩:", i + 1);scanf("%d", &scores[i]);}
}// 2.查看学生信息
void viewStudents(void)
{printf("学生信息如下:\n");for (int i = 0; i < studentsNumber; i++){printf("学生姓名:%s 学生成绩:%d\n", names[i], scores[i]);}
}// 3.求出学习最好的学生信息(求最大值)
void bestStudents(void)
{int maxi = 0;for (int i = 0; i < studentsNumber; i++){if (scores[maxi] < scores[i]){maxi = i;}}printf("成绩最好的学生姓名:%s 学生成绩:%d\n", names[maxi], scores[maxi]);
}// 4.按姓名将所有学生进行升序排序
void nameStudents(void)
{char temp[50] = {'0'};int temps = 0;for (int i = 0; i < studentsNumber - 1; i++){for (int j = 0; j < studentsNumber - i - 1; j++){if (strcmp(names[j], names[j + 1]) > 0){strcpy(temp, names[j]);strcpy(names[j],names[j+1]);strcpy(names[j+1], temp);temps = scores[j];scores[j] = scores[j+1];scores[j+1] = temps;}}}for (int i = 0; i < studentsNumber; i++){printf("排序后学生姓名:%s 学生成绩:%d\n", names[i], scores[i]);}
}int main(int argc, char const *argv[])
{while (1){int n = 0;print_menu();printf("请输入序号>>");scanf("%d", &n);getchar();switch (n){case 1:enterStudents();break;case 2:viewStudents();break;case 3:bestStudents();break;case 4:nameStudents();break;case 0:goto END;default:printf("您输入的功能有误,请重新输入\n");break;}}
END:return 0;
}

输出结果如下:

思维导图整理:

http://www.lryc.cn/news/398587.html

相关文章:

  • OS Copilot:新手测评体验
  • PS 2024【最新】中文白嫖版!,安装教程,图文步骤
  • bind方法的使用
  • MySQL数据库基本操作-DDL和DML
  • iOS 应用内存超过多少会收到系统内存警告 ?
  • 【分布式系统】Filebeat+Kafka+ELK 的服务部署
  • Qt Qwt 图表库详解及使用
  • 基于B站视频评论的文本分析,采用包括文本聚类分析、LDA主题分析、网络语义分析
  • 【Qt】xml Dom复制
  • MySQL联合索引最左匹配原则
  • 2024最新最全面的软件测试自动化面试题(含答案)
  • Linux磁盘-MBRGPT
  • kind kubernetes(k8s虚拟环境)使用本地docker的镜像
  • kafka发送消息流程
  • 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人生成器(八)
  • Allegro中show elements不弹窗问题
  • 【C++】继承最全解析(什么是继承?继承有什么用?)
  • STM32-外部中断浅析
  • Spring-Data-Elasticsearch
  • 代码随想录二刷7.22|977.有序数组的平方
  • redis介绍与布署
  • PMON的解读和开发
  • 初识c++(构造函数,析构函数,拷贝构造函数,赋值运算符重载)
  • CANoe:为什么两个VLAN接口不能设置同一个网络的IP地址呢?
  • SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目
  • 性能测试的流程(企业真实流程详解)(二)
  • 使用sklearn的基本流程
  • 力扣题解(乘积为正数的最长子数组长度)
  • PPTP、L2TP、IPSec、IPS 有什么区别?
  • SpringBoot注解--11--@JSONField @JsonProperty