学生信息管理系统c语言设计
时间: 2023-07-24 08:52:45 浏览: 41
学生信息管理系统是一种常见的应用场景,以下是一个简单的C语言设计示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
#define MAX_NAME_LEN 20
typedef struct {
char name[MAX_NAME_LEN];
int age;
int score;
} Student;
Student students[MAX_STUDENT_NUM];
int current_student_num = 0;
int add_student() {
if (current_student_num >= MAX_STUDENT_NUM) {
printf("Error: Student list is full!");
return -1;
}
printf("Please input student name, age and score:\n");
scanf("%s %d %d", students[current_student_num].name, &students[current_student_num].age, &students[current_student_num].score);
current_student_num++;
printf("Add student successfully!\n");
return 0;
}
int delete_student(char* name) {
int i;
for (i = 0; i < current_student_num; i++) {
if (strcmp(students[i].name, name) == 0) {
break;
}
}
if (i >= current_student_num) {
printf("Error: Student not found!");
return -1;
}
// Move the remaining students forward
for (; i < current_student_num - 1; i++) {
strcpy(students[i].name, students[i + 1].name);
students[i].age = students[i + 1].age;
students[i].score = students[i + 1].score;
}
current_student_num--;
printf("Delete student successfully!\n");
return 0;
}
int query_student(char* name) {
int i;
for (i = 0; i < current_student_num; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("Name: %s, Age: %d, Score: %d\n", students[i].name, students[i].age, students[i].score);
return 0;
}
}
printf("Error: Student not found!");
return -1;
}
int modify_student(char* name) {
int i;
for (i = 0; i < current_student_num; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("Please input new age and score:\n");
scanf("%d %d", &students[i].age, &students[i].score);
printf("Modify student successfully!\n");
return 0;
}
}
printf("Error: Student not found!");
return -1;
}
int list_students() {
int i;
for (i = 0; i < current_student_num; i++) {
printf("Name: %s, Age: %d, Score: %d\n", students[i].name, students[i].age, students[i].score);
}
return 0;
}
int main() {
int cmd;
char name[MAX_NAME_LEN];
while (1) {
printf("Please input command (1: Add, 2: Delete, 3: Query, 4: Modify, 5: List, 6: Exit):\n");
scanf("%d", &cmd);
switch (cmd) {
case 1:
add_student();
break;
case 2:
printf("Please input student name:\n");
scanf("%s", name);
delete_student(name);
break;
case 3:
printf("Please input student name:\n");
scanf("%s", name);
query_student(name);
break;
case 4:
printf("Please input student name:\n");
scanf("%s", name);
modify_student(name);
break;
case 5:
list_students();
break;
case 6:
exit(0);
default:
printf("Invalid command!\n");
break;
}
}
return 0;
}
```
这个示例中定义了一个结构体 `Student` 表示学生信息,并使用一个数组 `students` 存储所有学生信息。`current_student_num` 记录当前学生数目,最多不超过 `MAX_STUDENT_NUM`。主函数中使用一个循环不断读取用户输入的命令,包括添加、删除、查询、修改和列出学生信息等操作。具体实现细节详见代码注释。