使用c实现,解析下列内容以链表形式(链表请自行实现, 不要使用库所提供的模板, name & country字段不能 使用数组进行存储)进行管理, 功能要求:
1). 按顺序打印所有节点的内容;
2). 对节点进行名字按字母排序后打印出来;
3). 实现控制窗口,供按照姓名,国籍查找节点并显示;
4). 实现控制窗口,供按照姓名进行删除节点;
4). 实现控制窗口,供添加节点内容,并重新进行排序显示;
5). 退出程序时要求将现有信息写入文本,进行保存;
6). 最终在程序结束时释放所有资源, 并用valgrind进行查看内 存释放情况.(不能有任何内存泄漏及内存使用警告)
内容:
name;number;age;country
Alfred;8100;34;USA
Gypsy;8134;27;UK
Dats;709314;52;Mozambique
Manhattan;9047967;36;Sudan
Finlay;124679;24;USA
Yedda;8098;31;Dubai
Akashi;34501;41;Japan
Tatum;9034561;29;UK
Will;589620;37;China
数据处理:替换掉信息里的分号
name;number;age;country
Alfred 8100 34 USA
Gypsy 8134 27 UK
Dats 709314 52 Mozambique
Manhattan 9047967 36 Sudan
Finlay 124679 24 USA
Yedda 8098 31 Dubai
Akashi 34501 41 Japan
Tatum 9034561 29 UK
Will 589620 37 China
MMP 66029 23 China
oiu 654321 23 USA
采用多文件编程,
fasion.h头文件
//头文件卫士
#ifndef _MMP_OPEN__C_
#define _MMP_OPEN__C_
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
//信息结构体
typedef struct DATA{
char *name;
int number;
int age;
char *country;
}DATA;
//定义一个双向链表
typedef struct DNode{
DATA data;
struct DNode *prev;
struct DNode *next;
}DNode;
typedef struct DLink{
DNode *head;
DNode *tail;
}DLink;
extern DLink link;//定义链表
extern char srr[25];//读取开头那信息列表
void init(DLink *dlink);//初始化
void destroy(DLink *dlink);//清空数据销毁内存
bool isEmpty(DLink *dlink);//是否为空
size_t size(DLink dlink);//求得有多少个数据
void insertBack(DLink* dlink,DATA data);//从后面插入数据
void traveFront(DLink *dlink);//从前往后遍历
void findByName(DLink dlink,char *Name);//按名字查找
void findByCountry(DLink dlink,char *Country);//按国籍显示
void deleteByName(DLink *dlink,char *Name);//按名字删除
void printByDat