内容组成: 概述 原理 核心代码及解释/技术实现 运行结果及说明
时间: 2024-02-22 08:01:27 浏览: 25
好的,下面是关于基于线性表的学生信息查询小程序的内容:
## 概述
该小程序是基于线性表的学生信息查询系统,用户可以通过输入学生的姓名或学号,查询该学生的信息(包括姓名、学号、性别、年龄、电话等)。该小程序使用C语言编写。
## 原理
该小程序使用线性表来存储学生信息,每个结点存储一个学生的信息。用户可以通过输入学生的姓名或学号来查询该学生的信息。程序会遍历线性表,查找匹配的学生信息并输出。
## 核心代码及解释/技术实现
以下是程序的核心代码及解释:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct student {
char name[20]; // 姓名
char id[10]; // 学号
char sex[5]; // 性别
int age; // 年龄
char phone[20]; // 电话
} Student;
// 定义线性表结构体
typedef struct linearList {
Student data[100]; // 存储学生信息的数组
int length; // 线性表长度
} LinearList;
// 初始化线性表
void initList(LinearList *list) {
list->length = 0;
}
// 插入学生信息
void insertList(LinearList *list, Student stu) {
if (list->length >= 100) {
printf("线性表已满,无法插入!\n");
return;
}
list->data[list->length++] = stu;
}
// 按姓名查找学生信息
void findByName(LinearList list, char *name) {
int flag = 0; // 标记是否找到匹配的学生信息
for (int i = 0; i < list.length; i++) {
if (strcmp(list.data[i].name, name) == 0) {
printf("姓名:%s\n学号:%s\n性别:%s\n年龄:%d\n电话:%s\n",
list.data[i].name, list.data[i].id, list.data[i].sex, list.data[i].age, list.data[i].phone);
flag = 1;
}
}
if (flag == 0) {
printf("未找到匹配的学生信息!\n");
}
}
// 按学号查找学生信息
void findById(LinearList list, char *id) {
int flag = 0; // 标记是否找到匹配的学生信息
for (int i = 0; i < list.length; i++) {
if (strcmp(list.data[i].id, id) == 0) {
printf("姓名:%s\n学号:%s\n性别:%s\n年龄:%d\n电话:%s\n",
list.data[i].name, list.data[i].id, list.data[i].sex, list.data[i].age, list.data[i].phone);
flag = 1;
}
}
if (flag == 0) {
printf("未找到匹配的学生信息!\n");
}
}
// 主函数
int main() {
LinearList list;
initList(&list); // 初始化线性表
// 插入学生信息
Student s1 = {"张三", "1001", "男", 20, "13888888888"};
insertList(&list, s1);
Student s2 = {"李四", "1002", "女", 19, "13999999999"};
insertList(&list, s2);
Student s3 = {"王五", "1003", "男", 21, "13666666666"};
insertList(&list, s3);
// 按姓名查找学生信息
printf("按姓名查找学生信息:\n");
findByName(list, "张三");
findByName(list, "赵六");
// 按学号查找学生信息
printf("按学号查找学生信息:\n");
findById(list, "1002");
findById(list, "1004");
return 0;
}
```
程序中定义了一个学生结构体和一个线性表结构体。学生结构体包含了姓名、学号、性别、年龄、电话等信息。线性表结构体包含了一个存储学生信息的数组和线性表的长度。程序中使用了三个函数来实现线性表的初始化、学生信息的插入和按姓名或学号查找学生信息。在主函数中,先初始化线性表,然后插入三个学生的信息。接着,按姓名和学号分别查找学生信息,并输出结果。
## 运行结果及说明
程序的运行结果如下:
```
按姓名查找学生信息:
姓名:张三
学号:1001
性别:男
年龄:20
电话:13888888888
未找到匹配的学生信息!
按学号查找学生信息:
姓名:李四
学号:1002
性别:女
年龄:19
电话:13999999999
未找到匹配的学生信息!
```
程序首先输出了按姓名查找学生信息的结果,找到了姓名为“张三”的学生信息,但没有找到姓名为“赵六”的学生信息。然后输出了按学号查找学生信息的结果,找到了学号为“1002”的学生信息,但没有找到学号为“1004”的学生信息。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)