c语言编程,植物信息查询。有十种植物信息。根据植物名称,可以查询植物的科、属、形态特征和利用价值。
Txt文件格式每行一个植物:植物名称空白科属?空间?形态特征?空间?使用值输入。
巴别景天?景天属的景天?多年生肉质草本植物?园林绿化有药用价值。
木兰花?木兰科木兰亚属木兰属?落叶树?景观美化。
银杏?银杏科的银杏?落叶树?食用,药用,景观美化。
槐花?豆科五叶蝗?景观美化。
红枫?槭树科?小落叶树?景观美化。
海棠?属于蔷薇科苹果属?小落叶树?景观美化。
三色堇?堇菜科堇菜?多年生草本植物?具有药用价值,中国多用于园林绿化。
罗斯?蔷薇科蔷薇?半常绿低矮灌木?景观美化。
白杨?杨柳科的杨?树木还是灌木?景观美化。
石榴树?石榴?落叶灌木还是小树?园林绿化,水果食用,药用。# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
typedef?struct?植物
{
夏尔?名称[20];
夏尔?属[50];
夏尔?轮藻[1000];
夏尔?值[100];
struct?植物?*下一个;
}植物;
植物?*readFile(文件?* FP);//返回头节点指针。
植物?*findByName(PLANT?*plantHead,char?name[]);
int?主()
{
夏尔?名称[20];
植物?*plantHead=NULL,* plantFind = NULL
文件?* fp = NULL
if((fp=fopen("C:\\list.txt "," rt+")= = NULL)
{
printf("不能?开放?文件?罢工?有吗?钥匙?退出!”);
退出(1);
}
plant head = readFile(FP);
Printf("请输入您要查找的植物名称:");
scanf("%s ",名称);
plantFind=findByName(plantHead,name);
Printf("属于% s:% s \ n形态特征:% s \ n使用值:% s ",plant find-& gt;名称,植物查找-& gt;属,plant find->;charas,plant find-& gt;值);
回归?0;
}
植物?*findByName(PLANT?*plantHead,char?姓名[])
{
while(plant head->;下一个!=空)
{
如果(!strcmp(plant head-& gt;下一个-& gt;名字,名字))
回归?plant head->;接下来;
plant head = plant head-& gt;接下来;
}
回归?NULL
}
植物?*readFile(文件?*fp)//返回头节点指针。
{
植物?*plantNew=NULL,*plantHead=NULL,* plantTail = NULL
printf("-\ n ");
fseek(fp,?0,?SEEK _ SET);//文件流指针被重置到开头
plantHead=(植物?*)malloc(sizeof(PLANT));
plant head->;next = NULL
plantNew=(植物?*)malloc(sizeof(PLANT));
plant new-& gt;next = NULL
while(fscanf(fp," %s?%s?%s?%s ",plant new-& gt;名称,plant new-& gt;属,植物新->;charas,plant new-& gt;值)!=-1)
{
if(plant head-& gt;next==NULL)
plant head->;next = plantNew
其他
plant tail->;next = plantNew
plantTail = plantNew
Printf("读取信息:名称:%s?家庭:%s?功能:%s?值:%s\n ",plant new-& gt;名称,plant new-& gt;属,植物新->;charas,plant new-& gt;值);
plantNew=(植物?*)malloc(sizeof(PLANT));
plant new-& gt;next = NULL
}
免费(plant new);
printf("-数据读取完成-\ n ");
回归?plantHead
}