Alex16 Posted March 29, 2012 Report Share Posted March 29, 2012 bom, tenho este programa que comecei a desenvolver a uns dias atrás, mas dá erro eu sou nova na área de programação e não percebo na muito bem. ENUNCIADO: Escreva um pequeno programa que implemente uma base de dados, que terá a capacidade de: - guardar dados de uma nova pessoa: • Nome (40 caracteres) • Morada (60 caracteres) • Localidade (25caracteres) • Codigo_p (8 caracteres) • Num_tel (9 caracteres) - ler os dados de todas as pessoas guardadas em disco e mostrá-los um a um. O programa deverá usar um menu com as seguintes opções: Menu N- Introduz dados de nova pessoa L- Listar dados de todas as pessoas S- Sair PROGRAMA: #include <stdio.h> #include <stdlib.h> #define Fich "dados.dat" char opc; char p; char dados; struct pDados { int p; char Nome [40]; char Morada [60]; char Localidade [25]; int CodigoPostal[8]; int Telemovel [9]; } main () { FILE *arq; int p; char dados; char Nome; arq=fopen("dados.dat", "ab"); dados &p; printf("Digite o Nome: "); gets (p.Nome); printf("Digite a Morada: "); gets (p.Morada); printf("Digite a Localidade: "); gets (p.Localidade); printf("Digite o Codigo Postal: "); gets (p.Codigo Postal); printf("Digite o Numero de Telemovel: "); gets (p.Telemovel); FWRITE(&p, sizeof (dados), 1, arq); FCLOSE(arq); return 0; } Function Menu () Printf ("\n Menu \n\n "); Printf ("\n N - Intrudizir dados \n\n "); Printf ("\n L - Leitura dos dados \n\n "); Printf ("\n S - Sair \n\n "); Printf("Qual é a opção? "); Scanf ("%c" , opc); Do { Switch (opc) { Case 'n': Case 'N': Introduzir dados de uma nova pessoa () Case 'l': Case 'L': Listar dados () Case 's': Case 'S': exit(1); default Printf("Erro!!"); While (opc!='N') or (opc!= 'n'); } Function Listar Dados () int main () { FILE*arq; arq=FOPEN("dados.txt", "rb"); dados p; while (FREAD (&p, sizeof(dados), 1, arq) !=o) { Printf ("Nome: %c ", p.nome); Printf ("Morada: %c ", p.morada); Printf ("Localidade: "%c , p.localidade); Printf ("codigo Postal: %d ", p.nome); Printf ("Telemovel: %d ", p.telemovel); } FCLOSE (arq); Return o; int main () { FILE *F; FCLOSE(F); } Vai dar erro logo aqui " gets (p.Nome); " espero que possam dar uma ajuda Edit: GeSHi adicionado (pmg) Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 29, 2012 Report Share Posted March 29, 2012 epa ... eu ja vi esse enunciado em algum lugar.... ve bem o código ... int p; ... gets (p.Nome); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Alex16 Posted March 29, 2012 Author Report Share Posted March 29, 2012 é provável, é um trabalho final de programação que estou a realizar, e tb já me pediram ajuda em algo parecido mas era para cd's ou lista telefonica mas ja para resolver e chegar ate aqui foi oque foi :s Link to comment Share on other sites More sharing options...
pmg Posted March 29, 2012 Report Share Posted March 29, 2012 Tens tres main? Ou fui eu que dei cabo do programa quando adicionei o GeSHi, e o que agora é um bloco de codigo era suposto serem 3 blocos? Reve o teu post, corrige se necessario e aceita as minhas desculpas. Usas muitos identificadores que nao existem em C (FWRITE, FCLOSE, Printf, Scanf, Switch, Case, While, Fopen, FREAD). Corrige isso tambem. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 29, 2012 Report Share Posted March 29, 2012 é provável, é um trabalho final de programação que estou a realizar, e tb já me pediram ajuda em algo parecido mas era para cd's ou lista telefonica mas ja para resolver e chegar ate aqui foi oque foi :s estas a dizer que não só não é o teu primeiro programa como te pedem ajuda para resolver problemas ???? ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Alex16 Posted March 29, 2012 Author Report Share Posted March 29, 2012 pois, e afinal ja vi tb um enunciado igualzinho ao meu s: estou tao confusa! #include <stdio.h> #include <stdlib.h> #define Fich "dados.dat" char opc; char p; char dados; struct Dados { int p; char Nome [40]; char Morada [60]; char Localidade [25]; int CodigoPostal[8]; int Telemovel [9]; } main () FILE *arq; int p; char dados; char Nome; char Morada; char Localidade; int CodigoPostal; int Telemovel; arq=fopen("dados.dat", "ab"); dados &p; printf("Digite o Nome: "); scanf ("%c", Nome); printf("Digite a Morada: "); scanf ("%c", Morada); printf("Digite a Localidade: "); scanf ("%c", Localidade); printf("Digite o Codigo Postal: "); scanf ("%d", CodigoPostal); printf("Digite o Numero de Telemovel: "); scanf("%d", Telemovel); FWRITE(&p, sizeof (dados), 1, arq); FCLOSE(arq); return ; } Function Menu () Printf ("\n Menu \n\n "); Printf ("\n N - Intrudizir dados \n\n "); Printf ("\n L - Leitura dos dados \n\n "); Printf ("\n S - Sair \n\n "); Printf("Qual é a opção? "); Scanf ("%c" , opc); Do { Switch (opc) { Case 'n': Case 'N': Introduzir dados de uma nova pessoa () Case 'l': Case 'L': Listar dados () Case 's': Case 'S': exit(1); default Printf("Erro!!"); While (opc!='N') or (opc!= 'n'); } Function Listar Dados () int main () { FILE*arq; arq=FOPEN("dados.txt", "rb"); dados p; while (FREAD (&p, sizeof(dados), 1, arq) !=o) { Printf ("Nome: %c ", p.nome); Printf ("Morada: %c ", p.morada); Printf ("Localidade: "%c , p.localidade); Printf ("codigo Postal: %d ", p.nome); Printf ("Telemovel: %d ", p.telemovel); } FCLOSE (arq); Return o; int main () { FILE *F; FCLOSE(F); } agr da erro arq=fopen("dados.dat", "ab"); OMG! Link to comment Share on other sites More sharing options...
pikax Posted March 29, 2012 Report Share Posted March 29, 2012 Essa indentação está... quer dizer, nem existe sequer... Esse código tem tanto erro junto, que.... Já agora isso é suposto estar em C? é que vejo "Function Listar Dados ()","main ()", etc... Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 29, 2012 Report Share Posted March 29, 2012 epá ... o código está num estado que só posso recomendar uma única coisa : recomeça com um "Hello, World!" ... faz uma linha de cada vez, compila e ve o que o compilador diz : se não se queixa, porreiro, se disser algo, corrige. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts