C语言学生信息管理系统
时间: 2023-06-20 07:04:52 浏览: 49
好的,那你需要一个学生信息的数据结构,比如:
```c
typedef struct {
char name[20];
int age;
char gender[10];
char id[20];
float score;
} Student;
```
然后你可以定义一个数组来存储多个学生的信息:
```c
#define MAX_STUDENTS 100
Student students[MAX_STUDENTS];
int num_students = 0;
```
接着你可以编写一些函数来实现学生信息的增删改查操作:
```c
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("Error: student database full!\n");
return;
}
Student s;
printf("Enter student name: ");
scanf("%s", s.name);
printf("Enter student age: ");
scanf("%d", &s.age);
printf("Enter student gender: ");
scanf("%s", s.gender);
printf("Enter student ID: ");
scanf("%s", s.id);
printf("Enter student score: ");
scanf("%f", &s.score);
students[num_students++] = s;
printf("Student added successfully!\n");
}
void print_student(Student s) {
printf("%s\t%d\t%s\t%s\t%.2f\n", s.name, s.age, s.gender, s.id, s.score);
}
void list_students() {
if (num_students == 0) {
printf("No students to show!\n");
return;
}
printf("Name\tAge\tGender\tID\tScore\n");
for (int i = 0; i < num_students; i++) {
print_student(students[i]);
}
}
void search_student() {
char id[20];
printf("Enter student ID: ");
scanf("%s", id);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("Student found:\n");
print_student(students[i]);
return;
}
}
printf("Student not found!\n");
}
void delete_student() {
char id[20];
printf("Enter student ID: ");
scanf("%s", id);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
for (int j = i + 1; j < num_students; j++) {
students[j - 1] = students[j];
}
num_students--;
printf("Student deleted successfully!\n");
return;
}
}
printf("Student not found!\n");
}
void update_student() {
char id[20];
printf("Enter student ID: ");
scanf("%s", id);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("Enter new student name (press enter to skip): ");
scanf("%s", students[i].name);
printf("Enter new student age (press 0 to skip): ");
scanf("%d", &students[i].age);
printf("Enter new student gender (press enter to skip): ");
scanf("%s", students[i].gender);
printf("Enter new student score (press 0.0 to skip): ");
scanf("%f", &students[i].score);
printf("Student updated successfully!\n");
return;
}
}
printf("Student not found!\n");
}
```
最后,在`main`函数中编写一个简单的菜单来调用这些函数:
```c
int main() {
int choice;
while (1) {
printf("1. Add student\n");
printf("2. List students\n");
printf("3. Search student\n");
printf("4. Delete student\n");
printf("5. Update student\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
list_students();
break;
case 3:
search_student();
break;
case 4:
delete_student();
break;
case 5:
update_student();
break;
case 6:
return 0;
default:
printf("Invalid choice!\n");
}
}
}
```
这样,你就完成了一个简单的学生信息管理系统。