C语言实现查询搜索功能,查询搜索链表 (1)系统可以根据用户输入的起止日期查询家庭消费记录; (2)用户可以按消费金额查找消费记录; (3)可查询任一家庭成员在某个起止日期的消费记录; (4)可查询任一消费品类在某个起止日期的消费记录;
时间: 2023-02-13 15:32:19 浏览: 51
下面是一个 C 语言代码示例,它实现了一个查询搜索功能,可以在链表中根据起止日期、消费金额、家庭成员、消费品类等条件查询消费记录。请注意,这只是一个示例代码,可能需要您自行修改和完善。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50 // 姓名的最大长度
#define MAX_TYPE_LEN 50 // 品类的最大长度
// 定义消费记录结构体
typedef struct {
char name[MAX_NAME_LEN]; // 家庭成员姓名
char type[MAX_TYPE_LEN]; // 消费品类
float amount; // 消费金额
int year; // 消费年份
int month; // 消费月份
int day; // 消费日
} Record;
// 定义链表节点结构体
typedef struct Node {
Record data; // 数据域
struct Node *next; // 指针域
} Node;
// 初始化链表
Node *initList() {
Node *head = (Node *)malloc(sizeof(Node));
head->next = NULL;
return head;
}
// 将新的消费记录插入链表
void insertRecord(Node *head, Record data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = head->next;
head->next = newNode;
}
// 查询搜索函数
void search(Node *head, int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay, char *name, char *type, float minAmount, float maxAmount) {
Node *p = head->next;
while (p != NULL) {
// 判断起止日期
if (p->data.year < start