```
#include <bits/stdc++.h>
#define MAXSIZE 10000
using namespace std;
typedef struct{
char name[100]; // 中文名称
char sname[100]; // 英文名称
char health[10000]; // 养生功效
char nutrition[10000]; // 营养与功效
char expert[10000]; // 专家提醒
char link[10000]; // 相关链接
string recipe[30]; // 养生保健食谱
int recipe_size = 0; // 食谱数量
string therapy[30]; // 食疗验方
int therapy_size = 0; // 验方数量
} Food;
typedef struct{
Food *elem; // 指向数组的指针
int length; // 数组的长度
} SqList;
void InitList(SqList &L){
// 使用动态内存分配new进行初始化
L.elem=new Food[MAXSIZE];
L.length=0;
}
void FreeList(SqList &L){
// 释放内存
if(L.elem!=NULL){
free(L.elem);
}
L.elem = NULL;
L.length = 0;
}
void ReadFile(SqList &L, string filename){
// 从文件中读取食材信息,将其按顺序存入L.elem指向的数组中
}
void SaveFile(SqList &L, string filename){
// 保存食材信息到文件
}
bool InsertFood(SqList &L){
// 插入食材信息,输入食材中文名称、英文名称、养生功效、营养与功效、养生保健食谱和食疗验方信息
// 如果插入成功,返回true,否则,返回false
}
void Print(SqList &L){
// 输出食材信息
}
int main(){
SqList L;
InitList(L);
string originFilename = "/data/workspace/myshixun/1.1.1-食材信息增加/food.txt";
string newFilename = "/data/workspace/myshixun/1.1.1-食材信息增加/new_food.txt";
ReadFile(L, originFilename);
if (InsertFood(L)){
SaveFile(L, newFilename);
ReadFile(L, newFilename);
Print(L);
}
else{
cout << "增加失败" << endl;
}
FreeList(L);
return 0;
}
```输入食材中文名称、英文名称、养生功效、营养与功效、专家提醒、相关链接、食谱数量、养生保健食谱、验方数量和食疗验方信息,将该食材的基本信息添加到food.txt中的最后。新增成功后,输出food.txt的最后一行即新增食材信息。(注:由于食材中文名称是唯一的,因此在增加时需要判断该中文名称是否存在于food.txt中,若存在,则输出“增加失败”。)