| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
bazofia
Registrado: 05 Oct 2011 Mensajes: 2
| Publicado: 05/10/2011 10:08 am | | | Título: [Ayuda]Diccionario de sinonimos, antonimos, paronimos en C |
| Hola, soy nuevo en el foro, y necesito ayuda con un programa que me mandaron como proyecto para el instituto en el que tengo que crear un programa que guarde palabras, varios sinonimos, un solo antonimo y un solo paronimo... tiene que tener un menu que permita al usuario agregar palabras (altas) dar de baja palabras, modificar (por errores ortograficos), consultar una palabra, y listar todas.
estoy trancado con el tema de los archivos binarios.. no tengo idea del tema porque falte a clase ya que estaba enfermo. les dejo lo que tengo hecho hasta ahora, hay funciones que las tengo con // porque aun no estan declaradas... me tira como 8 errores, a ver si me pueden auxiliar.
MUCHAS GRACIAS
ARREGLE EL CODIGO, PERO SI ME PUEDEN AYUDAR CON ALGUNA DE LAS FUNCIONES QUE FALTAN, LES AGRADEZCO
| Código: |
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h>
void alta(int); /*void baja(); void modificar(); void consultar(); void listarSin(int); void listarAnt(); void listarPar();*/ void subMenu(); int total();
#define LARGO 100 #define DICCIONARIO "c:\dicc.bin"
struct dato{ char palabra[20]; char sinonimo1[20],sinonimo2[20],sinonimo3[20]; char antonimo[20]; char paronimo[20]; int borrado; }diccionario[LARGO];
FILE *archivo = NULL;
void main(){ int opcion=0,pos=total(); char salir='n'; while (salir!='s'){ clrscr(); printf("\n DICCIONARIO \n"); printf("1) Ingresar \n"); printf("2) Eliminar \n"); printf("3) Modificar \n"); printf("4) Consultar \n"); printf("5) Listar \n"); printf("0) Salir \n"); opcion=getch(); switch(opcion){ case '1': pos=total(); pos++; alta(pos); break; case '2': //baja(); break; case '3': //modificar(); break; case '4': //consultar(); break; case '5': subMenu(); break; case '0': printf("\n ¨Esta seguro que desea salir? (s/n)"); salir=getch(); clrscr(); break; default:printf("\n opcion incorrecta"); getch(); clrscr(); break; }//fin switch }//fin while }//fin void main
void subMenu(){ clrscr(); int opc; char salir='n'; printf("\n Listar Palabras existentes \n"); printf("\n1) Listar sinonimos"); printf("\n2) Listar antonimos"); printf("\n3) Listar paronimos"); printf("\n4) Listar: sinonimos, antonimos y paronimos"); printf("\n0) Volver al menu principal"); opc=getch(); clrscr(); while(salir!='s'){ switch(opc){ case '1': //listarSin(); break; case '2': //listarAnt(); break; case '3': //listarPar(); break; case '4': //listarSin(); //listarAnt(); //listarPar(); break; case '0': printf("\n ¨Desea volver al menu principal (s/n)?"); salir=getch(); break; default:printf("\n OPCION INCORRECTA"); getch(); break; }//Fin switch submenu }//fin while }//fin subMenu
int total(){ clrscr(); int total; archivo=NULL; archivo=fopen(DICCIONARIO,"rb");//abro el archivo diccionario.bin como solo lectura if(archivo==NULL){ printf("\n Error al abrir el archivo"); fclose(archivo); } else{ fseek(archivo,0,SEEK_END); total=ftell(archivo) / sizeof(struct dato);//divido el tama¤o del archivo entre el tama¤o de la estructura para saber cuantas hay } return total;//devuelvo el valor de la variable total(int) }
void alta(int pos){ char opc=' ',confirmar=' '; archivo=NULL; clrscr(); printf("\n Ingresar palabra/s \n"); printf("\n Palabra: "); gets(diccionario[pos].palabra); clrscr(); printf("\n ¨Desea ingresar un sinonimo? (s/n)"); opc='a'; // while(opc!='s' || opc!='n'){ opc=getch(); if(opc=='s'){ clrscr(); printf("ingrese un sinonimo: "); gets(diccionario[pos].sinonimo1); opc=' '; clrscr(); printf("\n¨Desea ingresar otro sinonimo? (s/n)"); opc=getch(); if(opc=='s'){ clrscr(); printf("ingrese otro sinonimo: "); gets(diccionario[pos].sinonimo2); opc=' '; clrscr(); printf("\n¨Desea ingresar otro sinonimo? (s/n)"); opc=getch(); if(opc=='s'){ clrscr(); printf("ingrese otro sinonimo: "); gets(diccionario[pos].sinonimo3); }//if3 }//if2 }//if1 // }//while
clrscr(); printf(" Ingrese un antonimo: "); gets(diccionario[pos].antonimo); printf("\n Ingrese un paronimo o presione enter para no ingresar nada: "); gets(diccionario[pos].paronimo); clrscr(); printf(" Usted ingreso\n"); printf("\n\n Palabra: %s \n Sinonimos: %s, %s, %s\n Antonimo: %s\n Paronimo: %s", diccionario[pos].palabra, diccionario[pos].sinonimo1, diccionario[pos].sinonimo2, diccionario[pos].sinonimo3, diccionario[pos].antonimo, diccionario[pos].paronimo); printf("\n\n Esta seguro que desea agregar estos datos al diccionario(s/n)"); confirmar=getch(); if(confirmar=='n'){ printf("\n Los datos no se escribieron en el archivo"); }//IF else{ if(confirmar=='s'){ archivo=fopen(DICCIONARIO,"ab+"); fwrite(&diccionario[pos],sizeof(struct dato),1,archivo); fclose(archivo); }//if }//else }//funcion
|  |
| | Volver arriba | |  | _Leo_
Registrado: 20 Oct 2005 Mensajes: 399 Ubicación: Buenos Aires, Argentina
| Publicado: 10/10/2011 6:00 pm | | | Título: |
| Hay un foro llamado Trabajos de clase, para este tipo de pedidos. Y en todo caso es preferible que hagas preguntas puntuales. _________________ _Leo_ Daphne - administrador de tareas Cine, tecnología, sociedad |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |