c语言顺序表操作:定义一个学生对象数据结构,其中每个学生包含学号,姓名,年龄,专业4项数据, 建立一个顺序存储的学生表,编程实现对学生表进行创建、某个学生的信息插入与删除操作,将最终操作后的结果进行显示
时间: 2024-09-07 15:01:07 浏览: 156
在C语言中,顺序表通常可以通过数组来实现。首先,定义一个学生对象数据结构,包含学号、姓名、年龄和专业这四项数据。然后,创建一个顺序存储的学生表,该表实际上是一个学生数组。接下来,编写函数来实现创建学生表、插入学生信息以及删除学生信息的操作。最后,编写一个函数来显示学生表中的所有信息。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
int age; // 年龄
char major[50]; // 专业
} Student;
// 创建学生表
void createStudentList(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("请输入第%d个学生的学号、姓名、年龄、专业:\n", i + 1);
scanf("%d %s %d %s", &students[i].id, students[i].name, &students[i].age, students[i].major);
}
}
// 插入学生信息
int insertStudent(Student students[], int *size, Student newStudent) {
// 检查数组是否有足够空间
if (*size >= MAX_STUDENTS) {
printf("学生表已满,无法插入新学生。\n");
return -1;
}
// 将新学生插入到数组末尾
students[(*size)++] = newStudent;
return 0;
}
// 删除学生信息
int deleteStudent(Student students[], int *size, int id) {
for (int i = 0; i < *size; i++) {
if (students[i].id == id) {
for (int j = i; j < *size - 1; j++) {
students[j] = students[j + 1]; // 后移元素
}
(*size)--; // 减少数组大小
return 0;
}
}
printf("未找到学号为%d的学生。\n", id);
return -1;
}
// 显示学生表信息
void displayStudentList(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("学号:%d, 姓名:%s, 年龄:%d, 专业:%s\n",
students[i].id, students[i].name, students[i].age, students[i].major);
}
}
#define MAX_STUDENTS 100
int main() {
Student students[MAX_STUDENTS];
int size = 0;
// 创建学生表
createStudentList(students, MAX_STUDENTS);
// 插入一个新学生信息
Student newStudent = {1004, "张三", 20, "计算机科学与技术"};
if (insertStudent(students, &size, newStudent) == 0) {
printf("新学生信息插入成功。\n");
}
// 删除一个学生信息
if (deleteStudent(students, &size, 1002) == 0) {
printf("学生信息删除成功。\n");
}
// 显示最终的学生表信息
displayStudentList(students, size);
return 0;
}
```
在上述代码中,`MAX_STUDENTS`定义了顺序表的最大容量,`Student`结构体定义了学生对象的数据结构。`createStudentList`函数用于创建学生表,`insertStudent`函数用于插入新学生信息,`deleteStudent`函数用于删除特定学生信息,`displayStudentList`函数用于显示学生表中的所有学生信息。最后,在`main`函数中,通过调用这些函数来演示顺序表的操作。
阅读全文