部分文档内容如下所示
中文名称:玉米
英文名称:corn
养生功效:补中开胃,益肺宁心,延缓衰老
营养与功效:玉米含有丰富的营养成分。其中,纤维素
专家提醒:玉米发霉后会产生致癌物,所以发霉
养生保健。
食疗验方:玉米须——玉米须30克,车前子15克,甘草
#
中文名称:小米
英文名称:millet
养生功效:健胃除
营养与功效:小米中因富含丰富的维生素B1、维生素B12等营养成分
专家提醒:小米中蛋白质的营养价值并不比大米好
相关链接:色素小米的危害∶在农贸市场上曾出现过染
养生保健食谱:
避免题目过长,省略一些内容,#号是真实存在在文档中
#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){
// 保存食材信息到文件
}
Food *DeleteFood(SqList &L, char *name){
// 根据中文名称删除指定食材信息
// 如果删除成功,返回该食材的信息,否则,返回NULL
}
void Print(Food *food){
// 输出被删除食材的信息
}
bool check(SqList &L, char *name){
for (int i = 0; i < L.length; i++){
if (strcmp(name, L.elem[i].name) == 0){
return false;
}
}
return true;
}
int main(){
SqList L;
InitList(L);
string originFilename = "/data/workspace/myshixun/1.1.2-食材信息删除/food.txt";
string newFilename = "/data/workspace/myshixun/1.1.2-食材信息删除/new_food.txt";
char name[100];
cin >> name;
ReadFile(L, originFilename);
Food *food = DeleteFood(L, name);
if (food){
SaveFile(L, newFilename);
ReadFile(L, newFilename);
if (check(L, name))
Print(food);
else
cout << "删除失败" << endl;
}
else{
cout << "删除失败" << endl;
}
FreeList(L);
return 0;
}
//输入要删除的食材中文名称,将该食材的全部信息从food.txt中删除,同时要求输出已删除食材对应的全部信息。(注:需要判断该中文名称是否存在于food.txt中,若存在,则执行删除操作,否则,输出“删除失败”。)