用C语言写一个有录入成绩和增删改查功能的学生管理系统
时间: 2023-06-14 13:07:41 浏览: 120
好的,下面是一个简单的学生成绩管理系统,包含了录入成绩和增删改查功能,使用C语言编写。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUMBER 100
struct student {
int id;
char name[20];
int score;
};
struct student students[MAX_STUDENT_NUMBER];
int student_count = 0;
int get_student_index(int id) {
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
return i;
}
}
return -1;
}
void add_student() {
if (student_count == MAX_STUDENT_NUMBER) {
printf("超过最大学生数量!\n");
return;
}
struct student s;
printf("请输入学生ID:");
scanf("%d", &s.id);
if (get_student_index(s.id) != -1) {
printf("该学生已存在!\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", s.name);
printf("请输入学生成绩:");
scanf("%d", &s.score);
students[student_count++] = s;
printf("添加成功!\n");
}
void delete_student() {
int id;
printf("请输入要删除学生的ID:");
scanf("%d", &id);
int index = get_student_index(id);
if (index == -1) {
printf("该学生不存在!\n");
return;
}
for (int i = index; i < student_count - 1; i++) {
students[i] = students[i + 1];
}
student_count--;
printf("删除成功!\n");
}
void update_student() {
int id;
printf("请输入要修改学生的ID:");
scanf("%d", &id);
int index = get_student_index(id);
if (index == -1) {
printf("该学生不存在!\n");
return;
}
struct student *s = &students[index];
printf("请输入学生姓名(留空表示不修改):");
char name[20];
scanf("%s", name);
if (strlen(name) != 0) {
strcpy(s->name, name);
}
printf("请输入学生成绩(留空表示不修改):");
char score_str[10];
scanf("%s", score_str);
if (strlen(score_str) != 0) {
s->score = atoi(score_str);
}
printf("修改成功!\n");
}
void query_student() {
int id;
printf("请输入要查询学生的ID:");
scanf("%d", &id);
int index = get_student_index(id);
if (index == -1) {
printf("该学生不存在!\n");
return;
}
struct student s = students[index];
printf("ID:%d,姓名:%s,成绩:%d\n", s.id, s.name, s.score);
}
void print_menu() {
printf("欢迎使用学生成绩管理系统!\n");
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 修改学生\n");
printf("4. 查询学生\n");
printf("5. 退出\n");
}
int main() {
while (1) {
print_menu();
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
update_student();
break;
case 4:
query_student();
break;
case 5:
return 0;
default:
printf("无效的选项!\n");
break;
}
}
return 0;
}
```
在这个程序中,我们定义了一个 `student` 结构体,包含了学生的ID、姓名和成绩。我们使用一个数组 `students` 来存储所有的学生信息,以及一个变量 `student_count` 来记录当前学生数量。我们还定义了一些函数,分别实现了增加、删除、修改和查询学生信息的功能。
在 `main` 函数中,我们使用一个无限循环来显示主菜单,并根据用户的选择调用不同的函数。当用户选择退出时,程序结束。
以上是一个简单的学生成绩管理系统,你可以根据自己的需要进行修改和完善。
阅读全文