#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct evento {
int id;
char nome[50];
char data[15];
char datafim[15];
int qtdepart;
}e;
struct participante {
int idparticipante;
char nome[50];
char cpf[20];
float rg;
}p;
struct palestra {
int idpalestra;
char nome[50];
char palestrante[50];
char data[15];
char hora[8];
int idevento;
}pa;
void menuPrincipal();
void CadastrarEvento();
void CadastrarPalestra();
void CadastrarParticipante();
void VisualizarEvento();
void VisualizarPalestra();
void VisualizarParticipante();
void deletaEvento();
void deletaParticipante();
void deletaPalestra();
void SairPrograma();
int main() {
int contadorparti=0;
menuPrincipal();
getch();
return 1;
system("pause");
system("cls");
}
void menuPrincipal() {
char opcao;
int saida = 1;
do {
printf("\n============================== MENU PRINCIPAL =============================\n");
printf("\n 1:Cadastrar Evento");
printf("\n 2:Cadastrar Palestra");
printf("\n 3:Cadastrar Participante");
printf("\n 4:Visualizar Evento");
printf("\n 5:Visualizar Palestra");
printf("\n 6:Visualizar Participante");
printf("\n 7:Deletar Evento");
printf("\n 8:Deletar Participante");
printf("\n 9:Deletar Palestra");
printf("\n 0:Sair do Programa\n\n");
printf("\n Digite Uma Opcao: ");
opcao = getch();
switch(opcao) {
case '1':
CadastrarEvento();
break;
case '2':
CadastrarPalestra();
break;
case '3':
CadastrarParticipante();
break;
case '4':
VisualizarEvento();
break;
case '5':
VisualizarPalestra();
break;
case '6':
VisualizarParticipante();
break;
case '7':
deletaEvento();
break;
case '8':
deletaParticipante();
break;
case '9':
deletaPalestra();
break;
case '0':
SairPrograma();
break;
default:
printf("\n\n\tOpcao Invalida, Tente Novamente!\n\n");
system("pause");
system("cls");
menuPrincipal();
break;
}
} while (saida);
}
// ============ FUNCOES DE CADASTRO!!!!!! =======================
void CadastrarEvento() {
char confirmar;
FILE *arq;
printf("\n=========================== CADASTRAR EVENTO =================================\n");
fflush(stdin);
printf("\nId do Evento: ");
scanf("%d",&e.id);
fflush(stdin);
printf("\nNome do Evento: ");
gets(e.nome);
fflush(stdin);
printf("\nQuantidade maxima de Participantes: ");
scanf("%d",&e.qtdepart);
fflush(stdin);
printf("\nData do Evento Inicial <dd/mm/aaaa>: ");
gets(e.data);
fflush(stdin);
printf("\nData do Final do Evento <dd/mm/aaaa>: ");
gets(e.datafim);
if (strcmp(e.data, e.datafim))
printf("\n*Obs: O Evento Terminara em: %s", e.datafim);
else
printf("\n*Obs: O Evento Termina no Mesmo Dia");
fflush(stdin);
do {
printf("\n\nDeseja Confirmar o cadastro do Evento[s\\n]: ");
confirmar = getche();
} while ((confirmar != 's') && (confirmar != 'n'));
if (confirmar == 's') {
arq = fopen("evento.txt", "w");
if (!arq) {
printf("Error 432423.");
} else {
fwrite(&e, sizeof(e), 1, arq);
fclose(arq);
}
}
}
void CadastrarParticipante() {
char confirmar;
FILE *arq;
printf("\n\n========================= CADASTRAR PARTICIPANTE ==========================\n");
fflush(stdin);
printf("\nId do Participante: ");
scanf("%d",&p.idparticipante);
fflush(stdin);
printf("\nNome do Participante: ");
gets(p.nome);
fflush(stdin);
printf("\nCPF: ");
gets(p.cpf);
fflush(stdin);
printf("\nRG: ");
scanf("%f",&p.rg);
fflush(stdin);
do {
printf("\n\nDeseja Confirmar o cadastro do Participante[s\\n]: ");
confirmar = getche();
} while ((confirmar != 's') && (confirmar != 'n'));
if (confirmar == 's') {
arq = fopen("part.txt", "w");
if (!arq) {
printf("Error 432423.");
} else {
fwrite(&p, sizeof(p), 1, arq);
fclose(arq);
}
}
}
void CadastrarPalestra() {
char confirmar,confipalestra;
FILE *arq,*ler;
int i;
{
printf("\n\n======================== CADASTRAR PALESTRA ===============================\n");
fflush(stdin);
printf("\nId do Evento: ");
scanf("%d",&pa.idevento);
//ler = fopen("palestra.txt","rb");
//fread(&e.id, sizeof(e.id), 1, ler);
if (pa.idevento == e.id) {
printf("Evento Existe ... \n\n!");
}
else {
printf("Evento nao Existe");
CadastrarPalestra();
}
fflush(stdin);
printf("\nId da Palestra: ");
scanf("%d",&pa.idpalestra);
fflush(stdin);
printf("\nNome do Palestra: ");
gets(pa.nome);
fflush(stdin);
printf("\nNome do Palestrante: ");
gets(pa.palestrante);
fflush(stdin);
printf("\nData da Palestra <dd/mm/aaaa>: ");
gets(pa.data);
fflush(stdin);
printf("\nHora da Palestra: ");
gets(pa.hora);
fflush(stdin);
do {
printf("\n\nDeseja Confirmar o Cadastro da Palestra[s\\n]: ");
confirmar = getche();
} while ((confirmar != 's') && (confirmar != 'n'));
if (confirmar == 's') {
arq = fopen("palestra.txt", "w");
if (!arq) {
printf("Error 432423.");
} else {
fwrite(&pa, sizeof(pa), 1, arq);
fclose(arq);
}
}
}
}
// ============ FUNCOES DE VISUALIZAR!!!!!! =======================
void VisualizarEvento() {
FILE *arq;
FILE *temp;
arq= fopen ("evento.txt", "r");
if (! arq )
printf ("\n\nErro ao abrir arquivo !");
else{
printf ("\n\n======================== VISUALIZAR EVENTO ===============================\n");
do{
/* o dado é lido e armazenado na estrutura */
fread (&e , sizeof (e), 1, arq );
printf ("\nId: %d", e.id );
printf ("\nNome: %s", e.nome );
printf ("\nData Inicio: %s", e.data );
printf ("\nData Fim: %s", e.datafim );
printf ("\nQuantidade Participantes: %d\n\n", e.qtdepart );
if (!feof(arq)) break;
}while (!feof(arq));
fclose (arq);
}
}
void VisualizarPalestra() {
int i;
FILE *arq;
arq= fopen ("palestra.txt", "r");
if (! arq )
printf ("Erro ao abrir arquivo !");
else{
printf ("\n========================VISUALIZAR PALESTRA===============================\n");
do{
/* o dado é lido e armazenado na estrutura */
fread (&pa , sizeof (pa), 1, arq );
printf ("\nId Palestra: %d", pa.idpalestra );
printf ("\nNome: %s", pa.nome );
printf ("\nData Inicio: %s", pa.palestrante );
printf ("\nData Fim: %s", pa.data );
printf ("\nHora: %d", pa.hora );
printf ("\nEvento: %d\n\n", pa.idevento);
if (!feof(arq)) break;
} while (!feof(arq));
fclose (arq);
}
}
void VisualizarParticipante() {
FILE *arq;
arq= fopen ("part.txt", "r");
if (! arq )
printf ("Erro ao abrir arquivo !");
else{
printf ("\n========================VISUALIZAR PARTICIPANTE=========================\n");
do{
/* o dado é lido e armazenado na estrutura */
fread (&p , sizeof (p), 1, arq );
printf ("\nId Participante: %d", p.idparticipante );
printf ("\nNome: %s", p.nome );
printf ("\nCPF: %s", p.cpf );
printf ("\nRG: %f", p.rg );
if (!feof(arq)) break;
} while (!feof(arq));
fclose (arq);
}
}
// ============ FUNCOES DE REMOVER!!!!!! =======================
void deletaEvento() {
FILE *arq, *aux;
arq = fopen("evento.txt", "rb");
aux = fopen("aux.txt", "w");
int dado, excluir;
printf("Dado a ser Excluido:");
scanf("%d",&excluir);
fread(&e, sizeof(e), 1, arq); //ler do arquivo o primeiro dado
while (!feof(arq))
{
if (e.id != excluir) //if o dado a ser excluído for diferente do dado que vc leu, então...
{
fwrite(&e, sizeof(e), 1, aux);
fread(&e, sizeof(e), 1, arq);
}
fclose(arq);
fclose(aux);
remove("evento.txt");
rename("aux.txt", "evento.txt"); //renomeia arq para aux
}
}
void deletaPalestra() {
FILE *arq, *aux;
arq = fopen("palestra.txt", "rb");
aux = fopen("aux.txt", "ab");
int excluir;
printf("Dado a ser Excluido:");
scanf("%d",&excluir);
fread(&pa, sizeof(pa), 1, arq);
while (!feof(arq))
{
if (pa.idpalestra != excluir)
{
fwrite(&pa, sizeof(pa), 1, aux);
fread(&pa, sizeof(pa), 1, arq);
}
fclose(arq);
fclose(aux);
remove("palestra.txt");
rename("aux.txt", "palestra.txt");
}
}
void deletaParticipante() {
FILE *arq, *aux;
arq = fopen("part.txt", "rb");
aux = fopen("aux.txt", "ab");
int excluir;
printf("Dado a ser Excluido:");
scanf("%d",&excluir);
fread(&p, sizeof(p), 1, arq);
while (!feof(arq))
{
if (p.idparticipante != excluir)
{
fwrite(&p, sizeof(p), 1, aux);
fread(&p, sizeof(p), 1, arq);
}
fclose(arq);
fclose(aux);
remove("part.txt");
rename("aux.txt", "part.txt");
}
}
// ============ SAIR DO PROGRAMA!!!!!! =======================
void SairPrograma() {
printf("\n\n\n\n\t\tObrigado... E volte sempre!");
getch();
exit(0);
}Nao to conseguindo remover o evento, digito o id selecionado para remover e nao consigo, eu so queria remover akele id e nao toda a estrutura :S
help me



Postagens
Não informado

