C语言班级成绩管理系统结构体数组
时间: 2023-09-27 22:09:52 浏览: 62
C语言班级成绩管理系统使用了结构体数组来实现。在这个系统中,使用了名为"Dev-C"的软件来开发和编译代码。系统的测试页面及结构体信息可以在专栏《资源》下的《C语言系统资源测试》中找到。代码总共有664行,并且采用了有序的排版和注释,以方便初学者下载和学习。系统提供了一些功能选项,通过使用printf函数来显示这些选项,例如“1,添加学生 2,删除学生 3,查找学生 4,按成绩排序 5,按学号排序 6,输出 7,退出”。在添加学生信息的过程中,使用了scanf函数来获取学生的学号、姓名和成绩。而在输出学生信息时,使用了printf函数来显示学生的学号、姓名和成绩。这些结构体数组用于存储学生的信息,并提供了相应的功能以进行管理和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
相关问题
c语言实现班级成绩管理系统
好的,班级成绩管理系统可以分为以下几个部分来实现:
1. 学生信息管理:包括学生的姓名、学号、班级等基本信息,可以使用结构体数组来存储学生信息;
2. 成绩信息管理:包括学生的各科成绩,可以使用二维数组来存储;
3. 成绩统计与分析:可以计算出班级的平均成绩、最高分、最低分等指标,也可以输出某个学生的成绩单;
4. 数据的增删改查:可以添加新的学生信息、删除已有的学生信息、修改学生信息等操作。
以下是一个简单的班级成绩管理系统的代码实现,供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[20]; // 学生姓名
char id[20]; // 学生学号
char cls[20]; // 学生班级
float score[3]; // 学生各科成绩
} Student;
// 定义全局变量
int num = 0; // 学生总数
Student stu[100]; // 学生信息数组
// 显示菜单
void showMenu() {
printf("========== 班级成绩管理系统 ==========\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 成绩统计与分析\n");
printf("0. 退出系统\n");
printf("=====================================\n");
}
// 添加学生信息
void addStudent() {
printf("请输入学生姓名:");
scanf("%s", stu[num].name);
printf("请输入学生学号:");
scanf("%s", stu[num].id);
printf("请输入学生班级:");
scanf("%s", stu[num].cls);
printf("请输入学生数学成绩:");
scanf("%f", &stu[num].score[0]);
printf("请输入学生语文成绩:");
scanf("%f", &stu[num].score[1]);
printf("请输入学生英语成绩:");
scanf("%f", &stu[num].score[2]);
num++;
printf("添加成功!\n");
}
// 删除学生信息
void delStudent() {
char id[20];
int i, j;
printf("请输入要删除的学生学号:");
scanf("%s", id);
for (i = 0; i < num; i++) {
if (strcmp(stu[i].id, id) == 0) {
for (j = i; j < num - 1; j++) {
stu[j] = stu[j + 1];
}
num--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
// 修改学生信息
void modifyStudent() {
char id[20];
int i;
printf("请输入要修改的学生学号:");
scanf("%s", id);
for (i = 0; i < num; i++) {
if (strcmp(stu[i].id, id) == 0) {
printf("请输入学生姓名:");
scanf("%s", stu[i].name);
printf("请输入学生班级:");
scanf("%s", stu[i].cls);
printf("请输入学生数学成绩:");
scanf("%f", &stu[i].score[0]);
printf("请输入学生语文成绩:");
scanf("%f", &stu[i].score[1]);
printf("请输入学生英语成绩:");
scanf("%f", &stu[i].score[2]);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
// 查询学生信息
void queryStudent() {
char id[20];
int i;
printf("请输入要查询的学生学号:");
scanf("%s", id);
for (i = 0; i < num; i++) {
if (strcmp(stu[i].id, id) == 0) {
printf("姓名:%s\n", stu[i].name);
printf("学号:%s\n", stu[i].id);
printf("班级:%s\n", stu[i].cls);
printf("数学成绩:%.1f\n", stu[i].score[0]);
printf("语文成绩:%.1f\n", stu[i].score[1]);
printf("英语成绩:%.1f\n", stu[i].score[2]);
return;
}
}
printf("未找到该学生信息!\n");
}
// 成绩统计与分析
void statStudent() {
int i, j;
float sum[3] = {0}; // 各科总分
float avg[3] = {0}; // 各科平均分
float max[3] = {0}; // 各科最高分
float min[3] = {100.0}; // 各科最低分
for (i = 0; i < num; i++) {
for (j = 0; j < 3; j++) {
sum[j] += stu[i].score[j];
if (stu[i].score[j] > max[j]) {
max[j] = stu[i].score[j];
}
if (stu[i].score[j] < min[j]) {
min[j] = stu[i].score[j];
}
}
}
for (j = 0; j < 3; j++) {
avg[j] = sum[j] / num;
printf("科目%d总分:%.1f,平均分:%.1f,最高分:%.1f,最低分:%.1f\n",
j + 1, sum[j], avg[j], max[j], min[j]);
}
}
int main() {
int choice;
while (1) {
showMenu();
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("谢谢使用,再见!\n");
return 0;
case 1:
addStudent();
break;
case 2:
delStudent();
break;
case 3:
modifyStudent();
break;
case 4:
queryStudent();
break;
case 5:
statStudent();
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
}
```
这是一个简单的班级成绩管理系统的代码实现,可以根据需要进行修改和完善。
用c语言写班级成绩管理系统
好的,班级成绩管理系统可以包括以下功能:
1. 输入学生信息和成绩
2. 查看某个学生的成绩
3. 查看整个班级的成绩排名
4. 修改学生的成绩信息
5. 删除某个学生的成绩信息
下面是一个用C语言实现班级成绩管理系统的简单例子:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 50
#define MAX_NAME_LEN 50
struct Student {
char name[MAX_NAME_LEN];
int score;
};
struct Student students[MAX_STUDENTS];
int num_students = 0;
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("班级人数已满,无法添加学生!\n");
return;
}
printf("请输入学生姓名和成绩,用空格分隔:\n");
scanf("%s %d", students[num_students].name, &students[num_students].score);
num_students++;
}
void view_student() {
char name[MAX_NAME_LEN];
printf("请输入要查看的学生姓名:\n");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("%s的成绩是:%d\n", students[i].name, students[i].score);
return;
}
}
printf("没有找到该学生!\n");
}
void view_ranking() {
struct Student temp;
for (int i = 0; i < num_students; i++) {
for (int j = i + 1; j < num_students; j++) {
if (students[i].score < students[j].score) {
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
printf("班级成绩排名如下:\n");
for (int i = 0; i < num_students; i++) {
printf("%s:%d\n", students[i].name, students[i].score);
}
}
void modify_student() {
char name[MAX_NAME_LEN];
printf("请输入要修改的学生姓名:\n");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("请输入修改后的成绩:\n");
scanf("%d", &students[i].score);
printf("修改成功!\n");
return;
}
}
printf("没有找到该学生!\n");
}
void delete_student() {
char name[MAX_NAME_LEN];
printf("请输入要删除的学生姓名:\n");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
printf("删除成功!\n");
return;
}
}
printf("没有找到该学生!\n");
}
int main() {
int choice;
while (1) {
printf("请选择要执行的操作:\n");
printf("1. 添加学生\n");
printf("2. 查看学生成绩\n");
printf("3. 查看班级成绩排名\n");
printf("4. 修改学生成绩\n");
printf("5. 删除学生成绩\n");
printf("6. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
view_student();
break;
case 3:
view_ranking();
break;
case 4:
modify_student();
break;
case 5:
delete_student();
break;
case 6:
printf("谢谢使用!\n");
return 0;
default:
printf("无效的选择,请重新输入!\n");
break;
}
}
}
```
这个例子中,我们定义了一个结构体 `Student` 表示学生的姓名和成绩,使用数组 `students` 存储所有学生的信息。然后,我们实现了各种功能的函数,例如 `add_student` 添加学生信息、`view_student` 查看单个学生的成绩、`view_ranking` 查看整个班级的成绩排名等等。在 `main` 函数中,我们使用了一个循环来不断接收用户的选择,然后调用相应的函数来执行操作。