Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "cinemas.h"
  4.  
  5. int ncinemas=0, ngeneros=0, nfilmes=0, natores=0;
  6.  
  7. void Menu()
  8. {
  9. char ch;
  10.  
  11. system("cls");
  12.  
  13. printf(" Programa Realizado por Pedro Ramalho e Alexandre Alves!\n");
  14. printf(" -----------------------------------------------\n");
  15. printf(" |||||||||||||||||||||||||||||||||||||||||||||||\n");
  16. printf(" |||-----------------------------------------|||\n");
  17. printf(" ||| ******************** |||\n");
  18. printf(" ||| * ZON LUSOMUNDO * |||\n");
  19. printf(" ||| ******************** |||\n");
  20. printf(" |||-----------------------------------------|||\n");
  21. printf(" |||||||||||||||||||||||||||||||||||||||||||||||\n");
  22. printf(" -----------------------------------------------\n\n\n\n");
  23.  
  24.  
  25.  
  26.  
  27. printf("1-menu_Cinemas\n");
  28. printf("2-menu_Atores\n");
  29. printf("3-Gravar_dados_para_ficheiro\n");
  30. printf("4-Carregar_dados_para_ficheiro\n");
  31. printf("s-Sair\n");
  32.  
  33.  
  34.  
  35. do
  36. {
  37. printf("Escolha uma opçao: \n");
  38. fflush(stdin);
  39. ch=getchar();
  40.  
  41. switch(ch)
  42. {
  43. case '1':
  44. Menu_cinemas();
  45. break;
  46. case '2':
  47. Menu_atores();
  48. break;
  49. case '3':
  50. //Gravar_dados_para_ficheiro();
  51. break;
  52. case '4':
  53. //Carregar_dados_para_ficheiro();
  54. case 's':
  55. case 'S':
  56. exit(0);
  57. break;
  58. default:
  59. printf("Opçao invalida!\n");
  60. }
  61. }
  62. while(ch != 's' || ch != 'S');
  63.  
  64. }
  65.  
  66. void Menu_cinemas()
  67. {
  68. char cin;
  69. printf("1-criar cinemas\n");
  70. printf("2-Criar generos de filmes\n");
  71. printf("3-Criar filmes\n");
  72. printf("4-Editar filmes\n");
  73. printf("5-Listar Cinemas\n");
  74. printf("6-Listar Filmes\n");
  75. printf("7-Listar generos\n");
  76. printf("8-Eliminar Filme\n");
  77. printf("S-Voltar\n");
  78.  
  79.  
  80. do
  81. {
  82. printf("Escolha uma opçao: \n");
  83. fflush(stdin);
  84. cin=getchar();
  85.  
  86. switch(cin)
  87. {
  88. case '1':
  89. criar_cinemas();
  90. break;
  91. case '2':
  92. criar_generos();
  93. break;
  94. case '3':
  95. criar_filmes();
  96. break;
  97. case '4':
  98. editar_filmes();
  99. break;
  100. case '5':
  101. listar_cinemas();
  102. break;
  103. case '6':
  104. listar_filmes();
  105. break;
  106. case '7':
  107. listar_generos();
  108. break;
  109. case '8':
  110. //Eliminar_filme();
  111. break;
  112. case 's':
  113. Menu();
  114. default:
  115. printf("Opçao invalida!\n");
  116.  
  117. }
  118. }
  119. while(cin != 's' || cin != 'S');
  120. }
  121.  
  122.  
  123. void Menu_atores()
  124. {
  125. int act=0;
  126.  
  127. printf("1-criar Atores\n");
  128. printf("2-listar ator\n");
  129. printf("3-Editar Atores\n");
  130. printf("4-Eliminar ator\n");
  131. printf("5-listar ator filmes\n");
  132. printf("S-Voltar\n");
  133.  
  134. do
  135. {
  136. printf("Escolha uma opçao: \n");
  137. fflush(stdin);
  138. act=getchar();
  139.  
  140. switch(act)
  141. {
  142. case '1':
  143. criar_atores();
  144. break;
  145. case '2':
  146. listar_atores();
  147. break;
  148. case '3':
  149. editar_atores();
  150. break;
  151. case '4':
  152. // eliminar_ator();
  153. break;
  154. case '5':
  155. //listar_ator_filmes();
  156. break;
  157. case 's':
  158. Menu();
  159. break;
  160. default:
  161. printf("Opçao invalida!\n");
  162.  
  163. }
  164. }
  165. while(act != 's' || act != 'S');
  166.  
  167. }
  168.  
  169.  
  170. void criar_cinemas()
  171. {
  172. int i;
  173. printf("Introduza o numero de cinemas \n");
  174. scanf("%d",&ncinemas);
  175.  
  176.  
  177. for(i=0; i<ncinemas; i++)
  178. {
  179. printf("\nIntroduza o nome do cinema %d\n", i+1);
  180. scanf("%s",&todos_cinemas[i].nome[0]);
  181. todos_cinemas[i].idcinema = i;
  182. }
  183.  
  184. Menu_cinemas();
  185. }
  186.  
  187.  
  188. void criar_filmes()
  189. {
  190. int i,cinemaid;
  191. printf("Introduza o numero de filmes que quer criar \n");
  192. scanf("%d",&nfilmes);
  193.  
  194. for(i=0; i<nfilmes; i++)
  195. {
  196. printf("Indique o ID do Cinema em que deseja Criar\n");
  197. scanf("%d",&cinemaid);
  198.  
  199. todos_cinemas[cinemaid].numfil++;
  200.  
  201. printf("\nIntroduza o nome do filme %d\n",i+1);
  202. scanf("%s",&todos_cinemas[cinemaid].filmes[i].nome[0]);
  203.  
  204. printf("\nIntroduza a idade minima requerida para ver o filme %d\n", i+1);
  205. scanf("%d",&todos_cinemas[cinemaid].filmes[i].idade_minima);
  206.  
  207. printf("\nIntroduza o tempo em horas do filme %d\n", i+1);
  208. scanf("%d",&todos_cinemas[cinemaid].filmes[i].horas);
  209.  
  210. printf("\nIntroduza o tempo em minutos do filme %d\n", i+1);
  211. scanf("%d",&todos_cinemas[cinemaid].filmes[i].minutos);
  212.  
  213. }
  214. }
  215.  
  216. void editar_filmes()
  217. {
  218. int i=0,cinemaid;
  219. printf("Introduza o id do filme que pretende alterar: \n");
  220. scanf("%d",&cinemaid);
  221.  
  222. printf("\nIntroduza o nome do filme %d\n",i+1);
  223. scanf("%s",&todos_cinemas[cinemaid].filmes[i].nome);
  224.  
  225. printf("\nIntroduza a idade minima requerida para ver do filme %d\n",i+1);
  226. scanf("%d",&todos_cinemas[cinemaid].filmes[i].idade_minima);
  227.  
  228. printf("\nIntroduza o tempo em horas do filme %d\n",i+1);
  229. scanf("%d",&todos_cinemas[cinemaid].filmes[i].horas);
  230.  
  231. printf("\nIntroduza o tempo em minutos do filme %d\n",i+1);
  232. scanf("%d",&todos_cinemas[cinemaid].filmes[i].minutos);
  233.  
  234. Menu_cinemas();
  235. }
  236.  
  237. void criar_atores()
  238. {
  239. int a;
  240.  
  241. printf("Introduza o numero de atores que quer criar: \n");
  242. scanf("%d",&natores);
  243.  
  244. for(a=0; a<natores; a++)
  245.  
  246. {
  247. printf("Introduza o nome do ator: %d\n",a+1);
  248. scanf("%s",&todos_atores[a].nome);
  249.  
  250. printf("Introduza a Idade do ator: %d\n",a+1);
  251. scanf("%d",&todos_atores[a].idade);
  252.  
  253. printf("Introduza o sexo do ator: %d\n",a+1);
  254. scanf("%s",&todos_atores[a].sexo);
  255.  
  256. }
  257. Menu_atores();
  258. }
  259.  
  260. void editar_atores()
  261. {
  262. int a=0, novo_id=0;
  263. char nome_ator[TAM];
  264. printf("Introduza o nome do ator que pretende alterar: \n");
  265. scanf("%s",nome_ator);
  266.  
  267. for(a=0; a<natores;a++)
  268. {
  269. if(strcmp(todos_atores[a].nome, nome_ator)==0)
  270. {
  271. novo_id = a;
  272. break;
  273. }else
  274. printf("Nome nao Reconhecido\n");
  275. Menu_atores();
  276. }
  277.  
  278. printf("Introduza o nome do ator: %d\n",novo_id+1);
  279. scanf("%s",&todos_atores[novo_id].nome);
  280.  
  281. printf("Introduza a idade do ator: %d\n",novo_id+1);
  282. scanf("%d",&todos_atores[novo_id].idade);
  283.  
  284. printf("Introduza o sexo do ator: %d\n",novo_id+1);
  285. scanf("%s",&todos_atores[novo_id].sexo);
  286.  
  287.  
  288. Menu_atores();
  289. }
  290.  
  291.  
  292. void criar_generos()
  293. {
  294. int i=ngeneros;
  295. printf("\n Introduza o nome do genero que quer criar:\n");
  296. scanf("%s",&todos_generos[i].nome);
  297. todos_generos[i].idgenero=i;
  298. ngeneros++;
  299.  
  300.  
  301. Menu_cinemas();
  302. }
  303.  
  304. void listar_cinemas()
  305. {
  306. int i;
  307. if (ncinemas==0)
  308. {
  309. printf("\nNao tem cinemas.\n");
  310. Menu_cinemas();
  311. }
  312. for(i=0; i<ncinemas; i++)
  313. {
  314. printf("\nCinema num %d - Nome: %s\n",todos_cinemas[i].idcinema,todos_cinemas[i].nome);
  315. }
  316. }
  317.  
  318. void listar_generos()
  319. {
  320. int i;
  321. if (ngeneros==0)
  322. {
  323. printf("\nNao tem generos.\n");
  324. Menu_cinemas();
  325. }
  326. for(i=0; i<ngeneros; i++)
  327. {
  328. printf("\nGenero num %d - Nome: %s\n",todos_generos[i].idgenero,todos_generos[i].nome);
  329. }
  330. }
  331.  
  332. void listar_filmes()
  333. {
  334. int i,j;
  335. if (nfilmes==0)
  336. {
  337. printf("\nNao tem filmes.\n");
  338. Menu_cinemas();
  339. }
  340.  
  341. for(i=0; i<ncinemas; i++)
  342. {
  343. for(j=0; j<nfilmes; j++)
  344. {
  345. printf("\ncinema %d : Filme - Nome: %s\n",todos_cinemas[i].idcinema ,todos_cinemas[i].filmes[j].nome);
  346. }
  347. }
  348. }
  349.  
  350. void listar_atores()
  351. {
  352. int i,j;
  353. if (natores==0)
  354. {
  355. printf("\nNao tem atores.\n");
  356. Menu_cinemas();
  357. }
  358.  
  359. for(i=0; i<natores; i++)
  360. {
  361. printf("\nAtor - Nome: %s\n",todos_atores[i].nome);
  362. }
  363. Menu_atores();
  364. }
  365.  
  366. /*void listar_filmes_ator(int cinemas)
  367. {
  368. listar_atores();
  369. char nome[TAM];
  370. printf("Nome do ator: ");
  371. gets(nome);
  372.  
  373.  
  374. FILME filmes;
  375.  
  376. for (int i=0; i<n_cinemas; i++)
  377. {
  378. filmes = cinemas[index.c].filmes;
  379.  
  380. for (int j=0; j<cinemas[index.c].n_filmes; j++)
  381. {
  382.  
  383. for(int k=0; k<filmes[index.f].n_atores; k++)
  384. {
  385.  
  386. if(strcmp(filmes[indes.f].todos_atores[index.a].nome, nome) == 0)
  387. {
  388. printf("%s\n", filmes[index.f].nome);
  389. }
  390. }
  391. }
  392. }Menu_atores();
  393. }
  394. void eliminar_filme()
  395. {
  396.  
  397. int f_id, c_id;
  398. listar_cinemas();
  399. printf("Insira o id do cinema para eliminar o filme: ");
  400. scanf("%d", & c_id);
  401. listar_filmes();
  402. printf("Insira o id do filme a eliminar: ");
  403. scanf("%d", &f_id);
  404.  
  405. CINEMA * cinema = &cinemas[c_id];
  406. FILME * filmes = &todos_cinemas->filmes[f_id];
  407.  
  408.  
  409. for (int i = f_id, j = f_id + 1; j < todos_cinemas->n_filmes; i++, j++){
  410. filmes[i] = filmes[j];
  411. }
  412.  
  413. todos_cinemas->n_filmes--;
  414.  
  415. filmes = &filmes[todos_cinemas->n_filmes];
  416. filmes = NULL;
  417.  
  418. Menu_cinemas();
  419. }
  420. void eliminar_ator(){
  421. listar_atores();
  422.  
  423. char nome[TAM];
  424. printf("Nome do ator para eliminar: ");
  425. scanf("%s",&a_nome);
  426.  
  427.  
  428. CINEMA * cinema;
  429. FILME * filme;
  430.  
  431. for(int i = 0; i< n_cinemas; i++){
  432. todos_cinemas = &cinemas[i];
  433.  
  434. for (int j = 0; j<todos_cinemas->n_filmes; j++){
  435. filmes = &todos_cinemas->filmes[j];
  436.  
  437. for (int k=0; k<filmes->n_atores; k++){
  438. if (strcmp(filmes->atores[k].nome, nome) == 0){
  439.  
  440. for (int a = k, t = k + 1; (t <(filmes->n_atores)); a++, t++){
  441. filmes->atores[a] = filmes->atores[t];
  442. }
  443.  
  444. filmes->n_atores--;
  445.  
  446. ATORES * atores = &filmes->atores[filmes->n_atores];
  447. atores = NULL;
  448. }
  449.  
  450. }
  451.  
  452. }
  453. }Menu_atores();
  454. }
  455. void gravar_dados_para_ficheiro()
  456. {
  457. FILE * fp = NULL;
  458.  
  459.  
  460. fp = fopen("/Users/Pedro/Documents/Cinema_projecto/Cinema/cinemas.txt", "w");
  461.  
  462. if (fp == NULL)
  463. {
  464. printf("Erro abrir ficheiro.\n");
  465. return;
  466. }
  467.  
  468. CINEMA todos_cinemas;
  469. FILME filmes;
  470. ATORES todos_atores;
  471. GENEROS todos_generos;
  472. fprintf(fp, "%d\n", n_cinemas);
  473. for (int i = 0; i<n_cinemas; i++)
  474. {
  475. cinema = cinemas;
  476. fprintf(fp, "%d\n", todos_cinemas.n_filmes);
  477. fprintf(fp, "%s\n", todos_cinemas.nome);
  478. fprintf(fp, "%d\n", filmes.n_generos);
  479. for(int p = 0; p<filmes.n_generos; p++)
  480. {
  481. todos_generos = filmes.todos_generos;
  482. fprintf(fp, "%s\n", todos_generos.nome);
  483. for (int j = 0; j<todos_cinemas.n_filmes; j++)
  484. {
  485. filme = todos_cinemas.filmes[j];
  486. fprintf(fp, "%s\n", filmes.nome);
  487. fprintf(fp, "%s\n", filme.genero);
  488. fprintf(fp, "%s\n", filme.idade_minima);
  489. fprintf(fp, "%s\n", filme.horas);
  490. fprintf(fp, "%d\n", filme.minutos);
  491. for (int k = 0; k<filmes.n_atores; k++)
  492. {
  493. todos_atores = filmes.todos_atores[k];
  494. fprintf(fp, "%s\n", todos_atores.nome);
  495. }
  496. }
  497. }
  498. }
  499. fclose(fp);
  500. }
  501. }
  502. void carregar_dados_para_ficheiro()
  503. {
  504. FILE * fp = NULL;
  505.  
  506. fp = fopen("/Users/Pedro/Documents/Cinema_projecto/cinema/Cinemas.txt", "r");
  507. if (fp == NULL)
  508. {
  509. printf("Erro abrir ficheiro.\n");
  510. return;
  511.  
  512. }
  513.  
  514. CINEMA * cinema;
  515. FILME * filme;
  516.  
  517. char str[300];
  518. readLine(fp, str);
  519. n_cinemas = atores(str);
  520.  
  521. for (int i = 0; i < n_cinemas; i++)
  522. {
  523. readLine(fp, str);
  524. todos_cinemas = &cinemas;
  525. todos_cinemas->n_filmes = atores(str);
  526. readLine(fp, str);
  527. strcpy(todos_cinemas->nome, str);
  528. filmes->n_generos = atores(str);
  529. for( int p = 0; p < filmes->n_generos; p++)
  530. {
  531. readLine(fp, str);
  532. strcpy(filmes->todos_generos[index_a].nome, str);
  533. for (int j = 0; j<todos_cinemas->n_filmes; j++)
  534. {
  535. filmes = &todos_cinemas->filmes[j];
  536. readLine(fp, str);
  537. strcpy(filmes.nome, str);
  538. readLine(fp, str);
  539. strcpy(filmes-genero, str);
  540. readLine(fp, str);
  541. strcpy(filmes->idade_minima, str);
  542. readLine(fp, str);
  543. strcpy(filmes->horas, str);
  544. readLine(fp, str);
  545. strcpy(filmes->minutos, str);
  546. readLine(fp, str);
  547. filme->numero_atores = atores(str);
  548. for (int k = 0; k<filmes->n_atores; k++)
  549. {
  550. readLine(fp, str);
  551. strcpy(filmes->atores[k].nome, str);
  552. }
  553. }
  554. }
  555. }
  556. fclose(fp);
  557.  
  558. }
  559.  
  560. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement