Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define TAM 1000
- void admin(void);
- void MENUcinemas(void);
- void MENUfilmes(void);
- void ADDcinemas(void);
- void ADDfilmes(void);
- void EDITcinemas(void);
- void ELEMcinemas(void);
- void add1_numCinemas(void);
- int ler_numCinemas();
- void lernomeCinemas();
- void lerCinemas();
- void editarCinema();
- void sala_de_controlo(void) {
- printf( " _____ _ _ _____ _ _ \n"
- "/ ___| | | | | / __ \\ | | | | \n"
- "\\ `--. __ _| | __ _ __| | ___ | / \\/ ___ _ __ | |_ _ __ ___ | | ___ \n"
- " `--. \\/ _` | |/ _` | / _` |/ _ \\ | | / _ \\| '_ \\| __| '__/ _ \\| |/ _ \\ \n"
- "/\\__/ / (_| | | (_| | | (_| | __/ | \\__/\\ (_) | | | | |_| | | (_) | | (_) |\n"
- "\\____/ \\__,_|_|\\__,_| \\__,_|\\___| \\____/\\___/|_| |_|\\__|_| \\___/|_|\\___/ ");
- char user[TAM];
- char pass[TAM];
- printf("\n\n\n\n\nusername: ");
- scanf("%s",&user);
- printf("\npassword: ");
- scanf("%s",&pass);
- if (strcmp(user,"admin")==0 && strcmp(pass,"admin123")==0 ) {
- printf("Bem-vindo , admin");
- admin();
- } else {
- printf("username ou pass errado, volte a tentar\n");
- sala_de_controlo();
- }
- }
- void admin() {
- int op;
- printf("\n\n\t\t\t\t\t\t\t1- Gerir Cinemas");
- printf("\n\n\t\t\t\t\t\t\t2- Gerir Filmes\n\n");
- scanf("%d",&op);
- switch(op) {
- case 1:
- MENUcinemas();
- case 2:
- MENUfilmes();
- }
- }
- void MENUcinemas(void) {
- int op2;
- int a;
- a = ler_numCinemas(); //le o numero de cinemas atuais
- printf("\n\n\t\t\t\t\t\t\tNúmero de cinemas: %d\n",a);
- printf("\n\n\t\t\t\t\t\t\t1- Adicionar Cinema");
- printf("\n\n\t\t\t\t\t\t\t2- Editar Cinema");
- printf("\n\n\t\t\t\t\t\t\t3- Eliminar Cinema\n");
- printf("\n\n\t\t\t\t\t\t\t4- Voltar ao menu\n");
- scanf("%d",&op2);
- switch(op2) {
- case 1:
- ADDcinemas();
- MENUcinemas();
- case 2:
- EDITcinemas();
- MENUcinemas();
- case 3:
- ELEMcinemas();
- MENUcinemas();
- case 4:
- admin();
- default:
- printf("Erro, volte a tentar;");
- MENUfilmes();
- }
- }
- void MENUfilmes(void) {
- int op3;
- printf("\n\n\t\t\t\t\t\t\t1- Adicionar Filmes");
- printf("\n\n\t\t\t\t\t\t\t2- Editar Cinemas");
- printf("\n\n\t\t\t\t\t\t\t3- Eliminar Cinemas\n");
- scanf("%d",&op3);
- switch(op3) {
- case 1:
- ADDfilmes();
- }
- }
- void ADDfilmes(void) {
- printf("por fazer");
- }
- void ADDcinemas() {
- char decisao[TAM]; // decisao de gravar ou não os dados escolhidos
- struct carac_cinema { //estrutura das características do cinema
- char nome[TAM];
- int quant;
- char local[TAM];
- };
- struct carac_cinema cinema;
- getchar();
- printf("Nome: "); gets(cinema.nome);
- printf("Local: ");gets(cinema.local);
- printf("Lotação: ");scanf("%d",&cinema.quant);
- printf("\nNome - %s",cinema.nome);
- printf("\nLocal - %s",cinema.local);
- printf("\nLotação - %d",cinema.quant);
- printf("\nDeseja guardar estas informações?");
- printf("\n[S/N]: ");
- getchar();
- gets(decisao);
- if(strcmp(decisao,"S")==0 || strcmp(decisao,"s")==0) { //se a resposta for Sim
- add1_numCinemas(); //adiciona +1 á contagem de cinemas
- FILE *fp; //incialização do processo de gravar as informaçoes no ficheiro txt
- fp = fopen("cinemas.txt", "a");
- fprintf(fp, "\nnome: %s",cinema.nome);
- fprintf(fp, "\nlocal: %s",cinema.local);
- fprintf(fp, "\nquantidade: %d",cinema.quant);
- fprintf(fp, "\n---------------------------------");
- fclose(fp);
- printf("\nCinema gravado com sucesso.");
- } else { //se a resposta for nao
- printf("\nCinema não foi gravado.\n");
- admin();
- }
- }
- void EDITcinemas() {
- int decisao;
- char decisao2[TAM];
- printf("Qual cinema deseja editar?\n\n");
- lernomeCinemas();
- getchar();
- scanf("%d",&decisao);
- lerCinemas(decisao);
- printf("Deseja mesmo alterar estas informações?\n");
- printf("[S/N]\n");
- scanf("%s",&decisao2);
- if(strcmp(decisao2,"S")!=0 || strcmp(decisao2,"s")!=0) {
- editarCinema(decisao);
- } else {
- printf("Cinema não foi alterado.");
- admin();
- }
- }
- void ELEMcinemas() {
- }
- int ler_numCinemas() { //função para contar o numero de cinemas atuais
- int num_cinemas;
- FILE *fp;
- fp= fopen("num_cinemas.txt","r");
- fscanf(fp,"%d",&num_cinemas);
- fclose(fp);
- return(num_cinemas);
- }
- void add1_numCinemas() { //função para adicionar mais 1 ao numero de cinemas atuais
- int num_cinemas = ler_numCinemas();
- FILE *fp;
- fp= fopen("num_cinemas.txt","w");
- num_cinemas+=1;
- fprintf(fp,"%d",num_cinemas);
- fclose(fp);
- }
- void lernomeCinemas() { //funcao que le o nome dos cinemas
- char cinemas[TAM];
- FILE *fp;
- fp = fopen("cinemas.txt","r");
- char linha[TAM];
- char nome[TAM]; // nome do cinema
- int num_cinemas = ler_numCinemas();
- int i,t;
- for(i=1;i<=num_cinemas;i++) {
- fgets(linha,sizeof(linha),fp);
- linha[strlen(linha)-1]=0;
- strcpy(nome, &linha[6]);
- printf("\t\t\t%d - %s\n\n",i,nome);
- for(t=0;t<3;t++) { //salta no ficheiro txt para os nomes dos cinemas , ignorando outras linhas
- fscanf(fp, "%*[^\n]\n", NULL);
- }
- }
- fclose(fp);
- }
- void lerCinemas(int a) { //le as caracteristicas dum cinema
- struct caract_cinema { //descricao do cinema para editar
- char nome[TAM];
- char local[TAM];
- char quant[TAM];
- };
- struct caract_cinema editar;
- char linha[TAM];
- int i,t;
- FILE *fp;
- fp = fopen("cinemas.txt" , "r");
- for (i=1;i<a;i++) { //este ciclo permite ignorar os cinemas que nao queremos
- for(t=0;t<4;t++) {
- fscanf(fp, "%*[^\n]\n", NULL);
- }
- }
- fgets(linha,sizeof(linha),fp);
- linha[strlen(linha)-1]=0;
- strcpy(editar.nome, &linha[6]);
- fgets(linha,sizeof(linha),fp);
- linha[strlen(linha)-1]=0;
- strcpy(editar.local, &linha[7]);
- fgets(linha,sizeof(linha),fp);
- linha[strlen(linha)-1]=0;
- strcpy(editar.quant, &linha[12]);
- printf("Nome - %s\n",editar.nome);
- printf("Local - %s\n",editar.local);
- printf("Lotação - %s\n",editar.quant);
- fclose(fp);
- }
- void editarCinema(int a) {
- struct caract_cinema { //descricao do cinema para editar
- char nome[TAM];
- char local[TAM];
- char quant[TAM];
- };
- char linha[TAM];
- struct caract_cinema editar;
- int i,t;
- printf("Novo nome: ");
- scanf("%s\n",editar.nome);
- printf("Novo local: ");
- scanf("%s\n",editar.local);
- printf("Nova lotação: ");
- scanf("%s\n",editar.quant);
- FILE *fp;
- fp = fopen("cinemas.txt","a");
- for (i=1;i<a;i++) { //este ciclo permite ignorar os cinemas que nao queremos
- for(t=0;t<4;t++) {
- fscanf(fp, "%*[^\n]\n", NULL);
- }
- }
- fprintf(fp,"nome: %s",editar.nome);
- fprintf(fp,"local: %s",editar.local);
- fprintf(fp,"quantidade: %s",editar.quant);
- fclose(fp);
- printf("\n Cinema alterado com sucesso.");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement