Programación en lenguaje C, consulta de información de planta. Hay información sobre diez tipos de plantas. Según el nombre de la planta se puede consultar la familia, el género, las características morfológicas y el valor de utilización de la planta.
Formato de archivo de texto: una planta por línea: nombre de la planta en blanco ¿familia y género? ¿espacio? ¿Características morfológicas? ¿espacio? Utilice la entrada de valor.
¿Babel Sedum? ¿Sedum del género Sedum? ¿Hierba suculenta perenne? El paisajismo tiene propiedades medicinales.
¿Magnolia? Magnoliaceae subgénero Magnoliaceae? ¿Árboles de hoja caduca? Paisajismo.
¿Ginkgo? ¿Ginkgo de la familia Ginkgo? ¿Árboles de hoja caduca? Comestibles, medicinales, paisajísticas.
¿Sophora japónica? ¿Langosta leguminosa de cinco hojas? Paisajismo.
¿Arce rojo? ¿Aceráceas? ¿Pequeño árbol de hoja caduca? Paisajismo.
¿Begonia? ¿Pertenece al género Apple de la familia de las Rosáceas? ¿Pequeño árbol de hoja caduca? Paisajismo.
¿Pensamientos? ¿Violáceas? ¿Hierbas perennes? Tiene valor medicinal y se utiliza principalmente para paisajismo en China.
¿Ross? ¿Rosáceas? ¿Arbusto bajo semi-perenne? Paisajismo.
¿Álamo temblón? ¿Álamo de la familia Salicaceae? ¿Árboles o arbustos? Paisajismo.
¿Granado? ¿Granada? ¿Arbusto de hoja caduca o árbol pequeño? Paisajismo, frutos comestibles, fines medicinales. # incluir ltstdio.h gt
# incluir ltstdlib.h gt
# incluir ltstring.h gt
typedef? estructura? Planta
{
¿Carbón? Nombre[20];
¿Carácter? Género[50];
¿Comarca? Chara[1000];
¿Chara? valor[100];
estructura? ¿planta? *Siguiente;
}Plantar;
¿Plantar? *readFile(file?*FP); //Devuelve el puntero del nodo principal.
¿Plantas? *findByName(PLANTA? *plantHead, char? nombre[]);
int? Señor()
{
¿Ciel? Nombre[20];
¿Planta? *plantHead=NULL, *plantFind=NULL
¿Archivo? * fp = NULL
if((fp=fopen("C:\list.txt","rt")= = NULL)
{
printf("¿No puedes? ¿Abrir? ¿Archivo? ¿Tachar? ¿Tienes una clave? ¡Salir!"
Salir
}
plant head = readFile(FP);
Printf("Ingrese el nombre de la planta que está buscando:");
scanf("s ", nombre);
plantFind=findByName(plantHead, nombre);
Printf("Pertenece a s: s\nCaracterísticas morfológicas: s\nValor de uso: s", plant find-gt; nombre, plant find-gt ;género,plant find->charas,plant find- gt;value);
¿Devolver 0;
}
¿Planta? *plantHead, char? nombre[])
{
mientras(planthead->; next!=null)
{
if (!strcmp(cabeza de planta- gt; siguiente-gt; nombre, nombre))
return? cabeza de planta-> siguiente;
cabeza de planta = cabeza de planta- gt ;Siguiente;
}
¿Regresar? NULL
}
¿Planta? *readFile(file?*fp )//Devolver el puntero del nodo principal.
{
¿Plantas? *plantNew=NULL, *plantHead=NULL, *plantTail = NULL
printf("-\ n ");
fseek(fp,?0,?SEEK_SET); El puntero de flujo de archivos se restablece al principio
plantHead=(Plant?*)malloc(sizeof(PLANT));
plant head->;
plantNew=(Plant?*)malloc(sizeof(PLANT));
planta nueva- gt; next = NULL
while(fscanf(fp, " s? s ? s? s ", planta nueva- gt; nombre, planta nueva- gt; género, planta nueva- gt; valor)!=-1)
{ p>
if(planta) head- gt; next==NULL)
plant head->; next = plantNew
Otro
plant tail- >;next = plantNew
plantTail = plantNew
Printf("Leer información: Nombre: s? Familia: s? Función: s? Valor: s\n ", planta nueva - gt; nombre, planta nueva- gt ; género, planta nueva->; charas, planta nueva- gt;
planta Nueva=(Planta?*)malloc(tamañode(PLANTA));
planta nueva- gt; next = NULL
}
Gratis (planta nueva);
printf("-lectura de datos completada -\ n ");
¿Regresar? cabeza de planta
}