题目:学生基本信息管理c语言代码 内容:给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。具体功能如下: 主要功能: (1)具有对学生信息的增、删(按学号)、查(按学号、姓名)、改(按学号)功 能。 (2)按总分高低次序,打印出名次表,总分相同的为同一名次; (3)按名次打印出每个学生的学号、姓名、总分以及各科成缋。 (4)输出每科课程的平均成绩。

时间: 2024-02-15 07:06:12 浏览: 33
以下是学生基本信息管理的C语言代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STUDENT_NUMBER 100 #define NAME_LENGTH 20 typedef struct { int id; char name[NAME_LENGTH]; int score[3]; int totalScore; int rank; } Student; Student students[MAX_STUDENT_NUMBER]; int studentCount = 0; void addStudent() { if (studentCount >= MAX_STUDENT_NUMBER) { printf("无法添加更多学生\n"); return; } printf("请输入学生信息:\n"); Student student; printf("学号:"); scanf("%d", &student.id); printf("姓名:"); scanf("%s", student.name); printf("三门课程成绩:"); scanf("%d %d %d", &student.score[0], &student.score[1], &student.score[2]); student.totalScore = student.score[0] + student.score[1] + student.score[2]; student.rank = 1; students[studentCount] = student; studentCount++; printf("添加成功\n"); } void deleteStudent() { int id; printf("请输入要删除学生的学号:"); scanf("%d", &id); int index = -1; for (int i = 0; i < studentCount; i++) { if (students[i].id == id) { index = i; break; } } if (index == -1) { printf("未找到对应学生\n"); return; } for (int i = index; i < studentCount - 1; i++) { students[i] = students[i + 1]; } studentCount--; printf("删除成功\n"); } void searchStudentById() { int id; printf("请输入要查询学生的学号:"); scanf("%d", &id); for (int i = 0; i < studentCount; i++) { if (students[i].id == id) { printf("学号:%d,姓名:%s,三门课程成绩:%d %d %d,总分:%d\n", students[i].id, students[i].name, students[i].score[0], students[i].score[1], students[i].score[2], students[i].totalScore); return; } } printf("未找到对应学生\n"); } void searchStudentByName() { char name[NAME_LENGTH]; printf("请输入要查询学生的姓名:"); scanf("%s", name); for (int i = 0; i < studentCount; i++) { if (strcmp(students[i].name, name) == 0) { printf("学号:%d,姓名:%s,三门课程成绩:%d %d %d,总分:%d\n", students[i].id, students[i].name, students[i].score[0], students[i].score[1], students[i].score[2], students[i].totalScore); } } } void updateStudent() { int id; printf("请输入要修改学生的学号:"); scanf("%d", &id); int index = -1; for (int i = 0; i < studentCount; i++) { if (students[i].id == id) { index = i; break; } } if (index == -1) { printf("未找到对应学生\n"); return; } printf("请输入学生信息:\n"); Student student; printf("学号:"); scanf("%d", &student.id); printf("姓名:"); scanf("%s", student.name); printf("三门课程成绩:"); scanf("%d %d %d", &student.score[0], &student.score[1], &student.score[2]); student.totalScore = student.score[0] + student.score[1] + student.score[2]; student.rank = 1; students[index] = student; printf("修改成功\n"); } void printRank() { for (int i = 0; i < studentCount; i++) { students[i].rank = 1; for (int j = 0; j < studentCount; j++) { if (students[j].totalScore > students[i].totalScore) { students[i].rank++; } } } printf("名次 学号 姓名 总分\n"); for (int i = 0; i < studentCount; i++) { printf("%d %d %s %d\n", students[i].rank, students[i].id, students[i].name, students[i].totalScore); } } void printStudent() { printf("请输入要查询的名次:"); int rank; scanf("%d", &rank); printf("学号:%d,姓名:%s,三门课程成绩:%d %d %d,总分:%d\n", students[rank - 1].id, students[rank - 1].name, students[rank - 1].score[0], students[rank - 1].score[1], students[rank - 1].score[2], students[rank - 1].totalScore); } void printAverageScore() { float averageScore[3] = {0}; for (int i = 0; i < studentCount; i++) { for (int j = 0; j < 3; j++) { averageScore[j] += students[i].score[j]; } } for (int i = 0; i < 3; i++) { printf("第%d门课程平均成绩:%.2f\n", i + 1, averageScore[i] / studentCount); } } int main() { int choice; while (1) { printf("\n"); printf("请选择操作:\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"); scanf("%d", &choice); switch (choice) { case 1: addStudent(); break; case 2: deleteStudent(); break; case 3: searchStudentById(); break; case 4: searchStudentByName(); break; case 5: updateStudent(); break; case 6: printRank(); break; case 7: printStudent(); break; case 8: printAverageScore(); break; case 9: exit(0); default: printf("无效的操作\n"); break; } } return 0; } ``` 这个程序实现了对学生信息的增、删、查、改、打印名次表、打印学生信息和打印课程平均成绩等功能。具体实现细节可以参考代码注释。

相关推荐

【问题描述】设计并实现一个简单的学生成绩管理系统,学生成绩信息包括学号、姓名和成绩(成绩为整数)。用带头结点的单链表管理学生成绩表,每个学生的信息依次从键盘输入。根据功能要求设计相应的链表基本操作函数。具体功能要求如下: (1) 输入学生信息,按输入顺序建立一个带头结点的单链表,直到输入学号为0结束; (2) 在链表的尾部添加一个结点,然后以列表形式输出插入新结点后链表的所有学生基本信息; (3) 在链表的指定位置插入一个结点,如果插入成功,则输出插入新结点后链表的所有学生基本信息;否则输出Insert Failure。 【输入形式】首先输入若干行学生信息(每个学生的基本信息之间以空格分开),每行输入一个学生基本信息,输入学号0表示创建结束。接下来一行输入插入学生基本信息,以空格分开。接下来一行输入插入的位置和插入学生的基本信息 【输出形式】以列表形式输出创建的链表,每个学生的基本信息以空格分开。接下来一行输出在尾结点插入学生后的所有结点信息,接下来根据插入成功与否输出结果。 【样例输入1】 1101 Jhon 96 1103 Tomas 85 1104 Danny 78 0 1105 Shirry 65 2 1102 Katte 91 【样例输出1】 1101 Jhon 96 1103 Tomas 85 1104 Danny 78 1105 Shirry 65 1101 Jhon 96 1102 Katte 91 1103 Tomas 85 1104 Danny 78 1105 Shirry 65 【样例输入2】 1101 Jhon 96 1103 Tomas 85 1104 Danny 78 0 1105 Shirry 65 6 1102 Katte 91 【样例输出2】 1101 Jhon 96 1103 Tomas 85 1104 Danny 78 1105 Shirry 65 Insert Failure使用c语言编译

最新推荐

recommend-type

96_基于Android的美食推荐 APP-源码.zip

提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
recommend-type

南京大学分布式系统课程实验.zip

南京大学分布式系统课程实验.zip
recommend-type

mysql开发教程&案例&相关项目概要介绍.docx

MySQL作为一款广泛使用的开源关系型数据库管理系统,在软件开发中扮演着核心角色。以下是对MySQL开发教程、案例及相关项目概要的综合介绍: ### MySQL开发教程概览 **黑马程序员MySQL全套教程** - **目标群体**:适合零基础至进阶水平的学习者,特别是希望从事IT行业并期望通过MySQL技能提高薪资的学员。 - **课程内容**: - **学前须知**:要求学员具备Python基础知识及网络多线程知识。 - **开发工具**:使用Navicat(MySQL的图形化界面客户端)及MySQL自身的客户端与服务端(推荐版本5.0左右)。 - **课程重点**:涵盖MySQL的图形界面操作、终端CRUD操作,以及通过Python与MySQL交互实现黑马订单管理系统的开发,包括查询、增加、删除、修改订单等功能。 - **课程目标**: - 理解数据库分类、MySQL的应用场景。 - 安装并使用Navicat进行数据操作。 - 安装MySQL并进行终端的数据库操作。 - Python与MySQL的交互编程。 - 完成黑马订单管理系统的实战项目。
recommend-type

儿童节 python庆祝代码简要介绍-20240601.docx

为了庆祝儿童节,我们可以用Python编写一个简单而有趣的程序,比如一个猜数字的小游戏,这非常适合孩子们玩耍。游戏规则很简单:计算机随机生成一个1到50之间的数字,玩家尝试猜测这个数字,计算机会根据玩家的输入给出提示(太高、太低或猜对了),直到猜中为止。下面是一个实现这个小游戏的Python代码示例: ```python import random print("我想了一个1到50之间的数字,你能猜到是多少吗?") # 生成一个1到50之间的随机数作为答案 secret_number = random.randint(1, 50) guesses_taken = 0 # 开始猜测循环 while True: try: # 获取玩家的输入并确保它是一个有效的整数 guess = int(input("请输入你的猜测:")) guesses_taken += 1 if guess < secret_number: print
recommend-type

MySQLTuner,一个用Perl编写的脚本,它允许你快速审查MySQL安装情况,并进行调整以提高性能和稳定性

MySQLTuner是一个用Perl编写的脚本,它允许你快速审查MySQL安装情况,并进行调整以提高性能和稳定性。它会检索当前的配置变量和状态数据,并以简洁的格式呈现,同时提供一些基本的性能建议。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

从键盘输入一段英文字符串,其中包含多个字母‘h',请编写程序利用正则表达式,将英文字符串中的’h'全部改为‘H’

好的,我可以帮您解决这个问题。 您可以使用 Python 编写一个程序来实现这个功能。具体步骤如下: 1. 首先导入 re 模块,这个模块是 Python 中用于处理正则表达式的模块。 2. 然后定义一个包含英文字符串的变量,例如: text = "This is a string containing multiple h's." 3. 接下来,使用 re.sub() 方法来进行替换操作。re.sub() 方法的第一个参数是正则表达式,第二个参数是替换的字符或字符串,第三个参数是被替换的字符串。在这个例子里,我们需要将所有的小写字母 h 替换成大写字母 H,所以正则表达式可以写成
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。