做一个基于c语言的学生信息管理系统,功能包括1. 建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩; 2. 数据输入:输入学生的各项信息; 3. 数据修改:根据输入学生的学号可以选择修改该学生的信息; 4. 数据处理:可以选择处理方式为:排序、查询。其中: a) 排序:按学号排序 b) 查询:根据学号查询成绩 5. 数据输出:输出学生的相应结果信息; 6. 退出:退出整个学生信息管理系统。
时间: 2024-03-17 17:44:16 浏览: 64
好的,这是一个比较典型的学生信息管理系统,以下是一个基于C语言的简单实现代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生数
// 学生信息结构体
struct student {
char id[20];
char name[20];
char gender[10];
char class[20];
int scores[3];
};
int main() {
int option; // 用户选择的操作
int student_num = 0; // 学生数量
struct student students[MAX_STUDENT_NUM]; // 学生信息数组
while (1) {
printf("\n");
printf("1. 建立学生信息\n");
printf("2. 数据输入\n");
printf("3. 数据修改\n");
printf("4. 数据处理\n");
printf("5. 数据输出\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &option);
switch (option) {
case 1: // 建立学生信息
if (student_num >= MAX_STUDENT_NUM) {
printf("学生数量已达上限,无法再添加新学生。\n");
break;
}
printf("请输入学生学号:");
scanf("%s", students[student_num].id);
printf("请输入学生姓名:");
scanf("%s", students[student_num].name);
printf("请输入学生性别:");
scanf("%s", students[student_num].gender);
printf("请输入学生班级:");
scanf("%s", students[student_num].class);
printf("请输入学生3门课程的成绩:");
scanf("%d %d %d", &students[student_num].scores[0], &students[student_num].scores[1], &students[student_num].scores[2]);
student_num++;
printf("学生信息已添加。\n");
break;
case 2: // 数据输入
printf("请输入学生学号:");
char input_id[20];
scanf("%s", input_id);
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].id, input_id) == 0) {
printf("请输入修改后的学生姓名:");
scanf("%s", students[i].name);
printf("请输入修改后的学生性别:");
scanf("%s", students[i].gender);
printf("请输入修改后的学生班级:");
scanf("%s", students[i].class);
printf("请输入修改后的学生3门课程的成绩:");
scanf("%d %d %d", &students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
printf("学生信息已修改。\n");
break;
}
}
break;
case 3: // 数据修改
printf("请选择处理方式:\n");
printf("1. 按学号排序\n");
printf("2. 根据学号查询成绩\n");
printf("请选择操作:");
int process_option;
scanf("%d", &process_option);
switch (process_option) {
case 1: // 按学号排序
for (int i = 0; i < student_num - 1; i++) {
for (int j = i + 1; j < student_num; j++) {
if (strcmp(students[i].id, students[j].id) > 0) {
struct student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
printf("按学号排序完成。\n");
break;
case 2: // 根据学号查询成绩
printf("请输入学生学号:");
char query_id[20];
scanf("%s", query_id);
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].id, query_id) == 0) {
printf("学号:%s\n", students[i].id);
printf("姓名:%s\n", students[i].name);
printf("性别:%s\n", students[i].gender);
printf("班级:%s\n", students[i].class);
printf("数学成绩:%d\n", students[i].scores[0]);
printf("语文成绩:%d\n", students[i].scores[1]);
printf("英语成绩:%d\n", students[i].scores[2]);
break;
}
}
break;
default:
printf("无效的操作。\n");
break;
}
break;
case 4: // 数据处理
printf("学生信息如下:\n");
for (int i = 0; i < student_num; i++) {
printf("学号:%s\n", students[i].id);
printf("姓名:%s\n", students[i].name);
printf("性别:%s\n", students[i].gender);
printf("班级:%s\n", students[i].class);
printf("数学成绩:%d\n", students[i].scores[0]);
printf("语文成绩:%d\n", students[i].scores[1]);
printf("英语成绩:%d\n", students[i].scores[2]);
printf("\n");
}
break;
case 5: // 数据输出
printf("感谢使用学生信息管理系统,再见!\n");
exit(0);
break;
default:
printf("无效的操作。\n");
break;
}
}
return 0;
}
```
以上代码实现了基本的学生信息管理系统功能,可以按照需求进行修改和扩展。
阅读全文