c语言实现学生信息录入查询
时间: 2023-08-18 20:44:06 浏览: 102
好的,我可以为您提供一个简单的学生信息录入和查询的示例代码,它可以使用C语言实现。在这个示例中,我们将使用结构体来表示每个学生的信息,并使用动态内存分配来存储它们。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
typedef struct {
char name[MAX_NAME_LEN];
int age;
int score;
} student_t;
int main() {
int num_students = 0;
student_t *students = NULL;
while (1) {
printf("Please choose an option:\n");
printf("1. Add a student\n");
printf("2. Search for a student\n");
printf("3. Quit\n");
int choice;
scanf("%d", &choice);
if (choice == 1) {
// Add a student
num_students++;
students = realloc(students, sizeof(student_t) * num_students);
printf("Name: ");
scanf("%s", students[num_students - 1].name);
printf("Age: ");
scanf("%d", &students[num_students - 1].age);
printf("Score: ");
scanf("%d", &students[num_students - 1].score);
} else if (choice == 2) {
// Search for a student
char name[MAX_NAME_LEN];
printf("Enter the name of the student you want to search: ");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("Name: %s\n", students[i].name);
printf("Age: %d\n", students[i].age);
printf("Score: %d\n", students[i].score);
break;
}
if (i == num_students - 1) {
printf("The student was not found.\n");
}
}
} else if (choice == 3) {
// Quit
break;
} else {
printf("Invalid choice. Please try again.\n");
}
}
// Free memory
free(students);
return 0;
}
```
在这个示例中,我们使用一个数组来存储学生的信息,每个学生都被表示为一个结构体。我们使用动态内存分配来动态增加学生的数量,并使用realloc函数来重新分配数组的内存。
当用户选择添加学生时,我们通过scanf函数从标准输入读取学生的姓名、年龄和分数,并将其存储在数组的最后一个元素中。
当用户选择搜索学生时,我们通过scanf函数从标准输入读取要搜索的学生的姓名,并遍历数组以查找该学生。如果找到了该学生,我们打印出他的姓名、年龄和分数。如果没有找到该学生,我们打印出一个错误消息。
当用户选择退出时,我们释放动态分配的内存,并退出程序。
希望这个示例可以帮助您理解如何使用C语言来实现一个简单的学生信息录入和查询系统。
阅读全文