Tabla Periódica en C

Páginas: 5 (1127 palabras) Publicado: 2 de junio de 2015
#include
#include
#include

//Estructura de la tabla
struct tabla
{
char elemento [20];
char simbolo [15];
char fusion [15];
char masa [15];
char ebullicion [15];
char densidad [15];
char volumen [15];
char radio[15];
char potencial [15];
char afinidad [15];
char electronegatividad [15];
};

//Creamos y dimensionamos
struct tabla tabla_elementos[120];

//Prototipo de funciones
void llenar_estructura(struct tabla tabla_elementos[], int campo_cont, int nro_elemento, char *campo);
void mostrar_estructura(struct tabla tabla_elementos[], int cuantos);
voidbuscar_elemento_en_estructura(struct tabla tabla_elementos[], int cuantos, char elemento[20]);
void mostrar_elemento_por_numero_en_estructura(struct tabla tabla_elementos[], int elemento);
int hallar(const char *cad, const char *subcad);

//Procedimiento principal
int main()
{
//abrimos el fichero para lectura
FILE *archivo = fopen("tabla_periodica_ansi.txt", "r");
//Controlamos error
if(archivo==NULL)
{
perror ("Error al abrir tabla_periodica_ansi.txt");
return -1;
}
//Para cargar cada linea
char cadena[1000];
int x, y, t = 0;
int campo_cont = 1;
int elementos_cont = 0;
char campo[20];
int caracter = 0;
//Aquí tratamos cada linea la analizamos, y llenamos la estructura
//en sus respectivos campos.
while(fgets(cadena, 1000, archivo) != NULL)
{
/* Aquí analizamos la línea leída */
for(x =0; x < 1000; x++)
{
//Si el caracter es un tabulador
//y el siguiente no es un tabulador
if (cadena[x] == '\t')
{
//Bucle desde y igual a t(tabulador)
//que la primer vez es igual a cero, hasta el//valor de x que es donde se hallo el sig. tabulador
for(y=t; y {
//Vamos conformando el contenido del campo
campo[caracter] = cadena[y];
caracter++;
}
//Finalizamos la entrada el campo
campo[caracter]='\0';
//Inicializamos a cero elcaracter del siguiente campo
caracter=0;
//Aquí aumentamos t hasta x +1
//para el siguiente campo.
t=x+1;
//Enviamos para ir llenando la tabla por medio de esta función
llenar_estructura(tabla_elementos, campo_cont, elementos_cont, campo);
//Contamos en que campo estamos.campo_cont++;
}
//Si hallamos el fin de cadena salimos del for
//porque al tener 1000 caracteres puede quedar
//basura de lineas mas largas.
if (cadena[x]=='\n')
{
break;
}
}
//Reinicializamos t a cero para la siguiente linea.
t=0;
elementos_cont++;
campo_cont =1;
}

//Variable para las opciones
int opcion;
char palabra_a_buscar[20];
int elemento_por_numero=0;
//Ciclo
do
{
//Limpiamos la pantalla
system("cls");
//Presentamos el menú
printf(" |----------------------------------------|\n");
printf(" | Faltan ultimos elementos |\n");
printf("|----------------------------------------|\n");
printf(" | TABLA PERIODICA POR ELINV |\n");
printf(" | ------------------------- |\n");
printf(" | 1-Mostrar todos los elementos. |\n");
printf(" | 2-Buscar un elemento por su nombre |\n");
printf(" | 3-Buscar un elemento por numero |\n");
printf(" |...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tabla periodica
  • Tabla Periodica
  • Tabla Periodica
  • Tabla periodica
  • La tabla periodica
  • Tabla periodica
  • Tabla periodica
  • tabla periodica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS