Advertisement
Guest User

Untitled

a guest
Dec 28th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define TAM 1000
  5.  
  6. void admin(void);
  7. void MENUcinemas(void);
  8. void MENUfilmes(void);
  9. void ADDcinemas(void);
  10. void ADDfilmes(void);
  11. void EDITcinemas(void);
  12. void ELEMcinemas(void);
  13. void add1_numCinemas(void);
  14. int ler_numCinemas();
  15. void lernomeCinemas();
  16. void lerCinemas();
  17. void editarCinema();
  18.  
  19.  
  20. void sala_de_controlo(void) {
  21. printf( " _____ _ _ _____ _ _ \n"
  22. "/ ___| | | | | / __ \\ | | | | \n"
  23. "\\ `--. __ _| | __ _ __| | ___ | / \\/ ___ _ __ | |_ _ __ ___ | | ___ \n"
  24. " `--. \\/ _` | |/ _` | / _` |/ _ \\ | | / _ \\| '_ \\| __| '__/ _ \\| |/ _ \\ \n"
  25. "/\\__/ / (_| | | (_| | | (_| | __/ | \\__/\\ (_) | | | | |_| | | (_) | | (_) |\n"
  26. "\\____/ \\__,_|_|\\__,_| \\__,_|\\___| \\____/\\___/|_| |_|\\__|_| \\___/|_|\\___/ ");
  27.  
  28. char user[TAM];
  29. char pass[TAM];
  30.  
  31.  
  32. printf("\n\n\n\n\nusername: ");
  33. scanf("%s",&user);
  34. printf("\npassword: ");
  35. scanf("%s",&pass);
  36. if (strcmp(user,"admin")==0 && strcmp(pass,"admin123")==0 ) {
  37. printf("Bem-vindo , admin");
  38. admin();
  39.  
  40. } else {
  41. printf("username ou pass errado, volte a tentar\n");
  42. sala_de_controlo();
  43. }
  44.  
  45. }
  46.  
  47.  
  48. void admin() {
  49. int op;
  50. printf("\n\n\t\t\t\t\t\t\t1- Gerir Cinemas");
  51. printf("\n\n\t\t\t\t\t\t\t2- Gerir Filmes\n\n");
  52. scanf("%d",&op);
  53. switch(op) {
  54. case 1:
  55. MENUcinemas();
  56. case 2:
  57. MENUfilmes();
  58.  
  59.  
  60. }
  61. }
  62.  
  63.  
  64. void MENUcinemas(void) {
  65. int op2;
  66. int a;
  67. a = ler_numCinemas(); //le o numero de cinemas atuais
  68. printf("\n\n\t\t\t\t\t\t\tNúmero de cinemas: %d\n",a);
  69. printf("\n\n\t\t\t\t\t\t\t1- Adicionar Cinema");
  70. printf("\n\n\t\t\t\t\t\t\t2- Editar Cinema");
  71. printf("\n\n\t\t\t\t\t\t\t3- Eliminar Cinema\n");
  72. printf("\n\n\t\t\t\t\t\t\t4- Voltar ao menu\n");
  73. scanf("%d",&op2);
  74. switch(op2) {
  75. case 1:
  76. ADDcinemas();
  77. MENUcinemas();
  78. case 2:
  79. EDITcinemas();
  80. MENUcinemas();
  81. case 3:
  82. ELEMcinemas();
  83. MENUcinemas();
  84. case 4:
  85. admin();
  86. default:
  87. printf("Erro, volte a tentar;");
  88. MENUfilmes();
  89. }
  90. }
  91.  
  92. void MENUfilmes(void) {
  93. int op3;
  94.  
  95. printf("\n\n\t\t\t\t\t\t\t1- Adicionar Filmes");
  96. printf("\n\n\t\t\t\t\t\t\t2- Editar Cinemas");
  97. printf("\n\n\t\t\t\t\t\t\t3- Eliminar Cinemas\n");
  98. scanf("%d",&op3);
  99. switch(op3) {
  100. case 1:
  101. ADDfilmes();
  102. }
  103. }
  104.  
  105. void ADDfilmes(void) {
  106. printf("por fazer");
  107. }
  108.  
  109. void ADDcinemas() {
  110.  
  111. char decisao[TAM]; // decisao de gravar ou não os dados escolhidos
  112. struct carac_cinema { //estrutura das características do cinema
  113. char nome[TAM];
  114. int quant;
  115. char local[TAM];
  116. };
  117.  
  118. struct carac_cinema cinema;
  119.  
  120. getchar();
  121. printf("Nome: "); gets(cinema.nome);
  122. printf("Local: ");gets(cinema.local);
  123. printf("Lotação: ");scanf("%d",&cinema.quant);
  124.  
  125. printf("\nNome - %s",cinema.nome);
  126. printf("\nLocal - %s",cinema.local);
  127. printf("\nLotação - %d",cinema.quant);
  128. printf("\nDeseja guardar estas informações?");
  129. printf("\n[S/N]: ");
  130. getchar();
  131. gets(decisao);
  132.  
  133. if(strcmp(decisao,"S")==0 || strcmp(decisao,"s")==0) { //se a resposta for Sim
  134. add1_numCinemas(); //adiciona +1 á contagem de cinemas
  135. FILE *fp; //incialização do processo de gravar as informaçoes no ficheiro txt
  136. fp = fopen("cinemas.txt", "a");
  137. fprintf(fp, "\nnome: %s",cinema.nome);
  138. fprintf(fp, "\nlocal: %s",cinema.local);
  139. fprintf(fp, "\nquantidade: %d",cinema.quant);
  140. fprintf(fp, "\n---------------------------------");
  141. fclose(fp);
  142. printf("\nCinema gravado com sucesso.");
  143. } else { //se a resposta for nao
  144. printf("\nCinema não foi gravado.\n");
  145. admin();
  146. }
  147.  
  148. }
  149.  
  150.  
  151. void EDITcinemas() {
  152. int decisao;
  153. char decisao2[TAM];
  154. printf("Qual cinema deseja editar?\n\n");
  155. lernomeCinemas();
  156. getchar();
  157. scanf("%d",&decisao);
  158. lerCinemas(decisao);
  159. printf("Deseja mesmo alterar estas informações?\n");
  160. printf("[S/N]\n");
  161. scanf("%s",&decisao2);
  162. if(strcmp(decisao2,"S")!=0 || strcmp(decisao2,"s")!=0) {
  163. editarCinema(decisao);
  164. } else {
  165. printf("Cinema não foi alterado.");
  166. admin();
  167. }
  168.  
  169. }
  170.  
  171. void ELEMcinemas() {
  172.  
  173. }
  174.  
  175. int ler_numCinemas() { //função para contar o numero de cinemas atuais
  176. int num_cinemas;
  177. FILE *fp;
  178. fp= fopen("num_cinemas.txt","r");
  179. fscanf(fp,"%d",&num_cinemas);
  180. fclose(fp);
  181. return(num_cinemas);
  182. }
  183.  
  184. void add1_numCinemas() { //função para adicionar mais 1 ao numero de cinemas atuais
  185. int num_cinemas = ler_numCinemas();
  186. FILE *fp;
  187. fp= fopen("num_cinemas.txt","w");
  188. num_cinemas+=1;
  189. fprintf(fp,"%d",num_cinemas);
  190. fclose(fp);
  191. }
  192.  
  193. void lernomeCinemas() { //funcao que le o nome dos cinemas
  194. char cinemas[TAM];
  195. FILE *fp;
  196. fp = fopen("cinemas.txt","r");
  197. char linha[TAM];
  198. char nome[TAM]; // nome do cinema
  199. int num_cinemas = ler_numCinemas();
  200. int i,t;
  201. for(i=1;i<=num_cinemas;i++) {
  202. fgets(linha,sizeof(linha),fp);
  203. linha[strlen(linha)-1]=0;
  204. strcpy(nome, &linha[6]);
  205. printf("\t\t\t%d - %s\n\n",i,nome);
  206. for(t=0;t<3;t++) { //salta no ficheiro txt para os nomes dos cinemas , ignorando outras linhas
  207. fscanf(fp, "%*[^\n]\n", NULL);
  208. }
  209. }
  210. fclose(fp);
  211.  
  212. }
  213.  
  214. void lerCinemas(int a) { //le as caracteristicas dum cinema
  215. struct caract_cinema { //descricao do cinema para editar
  216. char nome[TAM];
  217. char local[TAM];
  218. char quant[TAM];
  219. };
  220. struct caract_cinema editar;
  221. char linha[TAM];
  222. int i,t;
  223. FILE *fp;
  224. fp = fopen("cinemas.txt" , "r");
  225. for (i=1;i<a;i++) { //este ciclo permite ignorar os cinemas que nao queremos
  226. for(t=0;t<4;t++) {
  227. fscanf(fp, "%*[^\n]\n", NULL);
  228. }
  229. }
  230. fgets(linha,sizeof(linha),fp);
  231. linha[strlen(linha)-1]=0;
  232. strcpy(editar.nome, &linha[6]);
  233. fgets(linha,sizeof(linha),fp);
  234. linha[strlen(linha)-1]=0;
  235. strcpy(editar.local, &linha[7]);
  236. fgets(linha,sizeof(linha),fp);
  237. linha[strlen(linha)-1]=0;
  238. strcpy(editar.quant, &linha[12]);
  239. printf("Nome - %s\n",editar.nome);
  240. printf("Local - %s\n",editar.local);
  241. printf("Lotação - %s\n",editar.quant);
  242. fclose(fp);
  243. }
  244.  
  245. void editarCinema(int a) {
  246. struct caract_cinema { //descricao do cinema para editar
  247. char nome[TAM];
  248. char local[TAM];
  249. char quant[TAM];
  250. };
  251. char linha[TAM];
  252. struct caract_cinema editar;
  253. int i,t;
  254. printf("Novo nome: ");
  255. scanf("%s\n",editar.nome);
  256. printf("Novo local: ");
  257. scanf("%s\n",editar.local);
  258. printf("Nova lotação: ");
  259. scanf("%s\n",editar.quant);
  260.  
  261. FILE *fp;
  262. fp = fopen("cinemas.txt","a");
  263. for (i=1;i<a;i++) { //este ciclo permite ignorar os cinemas que nao queremos
  264. for(t=0;t<4;t++) {
  265. fscanf(fp, "%*[^\n]\n", NULL);
  266. }
  267. }
  268. fprintf(fp,"nome: %s",editar.nome);
  269. fprintf(fp,"local: %s",editar.local);
  270. fprintf(fp,"quantidade: %s",editar.quant);
  271. fclose(fp);
  272. printf("\n Cinema alterado com sucesso.");
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement