Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.41 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. #define TAM_NOME 100
  7. #define TAM_ID 50
  8.  
  9. struct atores
  10. {
  11. char nome[50];
  12. int idade;
  13.  
  14.  
  15. }ATORES [100];
  16.  
  17. struct filme
  18. {
  19. char nome[50], sinopse[1000], realizador[50];
  20. int idade_minima,duracao;
  21. struct atores ATORES[50];
  22. }FILME[50];
  23.  
  24. struct genero
  25. {
  26. char nome[50];
  27. int numero_gen, numero_filme;
  28. struct filme FILME[50];
  29. }GENERO[50];
  30.  
  31. struct cinema
  32. {
  33. int numero_cinemas;
  34. char nome_cinema[TAM_NOME];
  35. struct genero GENERO[50];
  36. int num_cinema, numero_gen;
  37. }CINEMA[50];
  38.  
  39.  
  40. void listar_cinemas(int cinema);
  41. void inserir_genero(int id_cin);
  42. void listar_generos(int cinema);
  43. void listar_todos_generos(int cinema);
  44. void listar_generos_por_cinema(int id_cin);
  45. void inserir_cinema(int cinema);
  46. void clearScreen(void);
  47. void inserir_filme(int cin,int id_filme);
  48. void listar_filmes(int cin,int id_cin);
  49. void editar_filmes(int id_filme);
  50. void listar_todos_filmes(int id_filme);
  51. void gravar_em_txt(int cinema);
  52. void eliminarFilme(int filmes);
  53.  
  54.  
  55.  
  56.  
  57.  
  58. int main(int argc, const char * argv[]) {
  59.  
  60. int opc;
  61. int cinema = 0,cin = 0,id_filme;
  62.  
  63. do {
  64. printf("\n===============================");
  65. printf("\n= Cinemas =");
  66. printf("\n===============================");
  67. printf("\n[1]. Novo Cinema");
  68. printf("\n[2]. Mostrar Cinemas\n");
  69. printf("\n===============================");
  70. printf("\n= Generos =");
  71. printf("\n===============================");
  72. printf("\n[3]. Mostrar Generos");
  73. printf("\n[4]. Adicionar Genero\n");
  74. printf("\n===============================");
  75. printf("\n= Filmes =");
  76. printf("\n===============================");
  77. printf("\n[5]. Mostrar Filmes");
  78. printf("\n[6]. Adicionar Filme");
  79. //printf("\n[7]. Gravar");
  80. printf("\n[7]. Editar Filme");
  81. printf("\n[8]. Apagar Filme\n\n");
  82. printf("\n[9]. Exit");
  83. printf("\n=============================");
  84. printf("\nInsira a sua opcao: ");
  85. fflush(stdin);
  86. scanf("%d", &opc);
  87.  
  88. switch(opc)
  89. {
  90. case 1:
  91. if(cinema!=0)
  92. {
  93. system("cls");
  94. listar_cinemas(cinema);
  95. printf("Insira um cinema que nao se encontre na lista!\n\n");
  96. }
  97. inserir_cinema(cinema);
  98. cinema++;
  99. break;
  100.  
  101. case 2:
  102. system("cls");
  103. listar_cinemas(cinema);
  104. system( "read -n 1 -s -p \"Carrega numa tecla para voltar ao menu...\"" );
  105. break;
  106.  
  107. case 3:
  108. system("cls");
  109. listar_generos(cinema);
  110. break;
  111.  
  112. case 4:
  113. system("cls");
  114. listar_cinemas(cinema);
  115. printf("escolha o numero do cinema: ");
  116. scanf("%d",&cin);
  117. system("cls");
  118. inserir_genero(cin);
  119. break;
  120.  
  121. case 5:
  122. system("cls");
  123. listar_cinemas(cinema);
  124. printf("escolha o numero do cinema onde quer procurar o filme: ");
  125. scanf("%d",&cin);
  126. system("cls");
  127. listar_generos_por_cinema(cin);
  128. printf("agora escolha o genero onde se encontra o/os filme/s: ");
  129. scanf("%d",&id_filme);
  130. listar_filmes(id_filme);
  131. system("PAUSE");
  132. //system( "read -n 1 -s -p \"Carrega numa tecla para voltar ao menu...\"" );
  133. break;
  134.  
  135. case 6:
  136. system("cls");
  137. listar_cinemas(cinema);
  138. printf("Escolha o numero do cinema em que deseja inserir o filme: ");
  139. scanf("%d",&cin);
  140. system("cls");
  141. listar_generos_por_cinema(cin);
  142. printf("Escolha o numero do genero onde deseja inserir o filme: ");
  143. scanf("%d",&id_filme);
  144. inserir_filme(id_filme);
  145. break;
  146.  
  147. case 7:
  148. system("cls");
  149. editar_filmes(cinema);
  150. break;
  151.  
  152. case 8:
  153. listar_cinemas(cinema);
  154. printf("escolha o numero do cinema em que deseja eliminar o filme: ");
  155. scanf("%d",&cin);
  156. system("cls");
  157. listar_generos_por_cinema(cin);
  158. printf("escolha o numero do genero onde deseja eliminar o filme: ");
  159. scanf("%d",&id_filme);
  160. eliminarFilme(id_filme);
  161. case 9:
  162. clearScreen();
  163. printf("Programa fechado.");
  164. return 0;
  165. break;
  166. default:
  167. printf("Operaçao invalida");
  168. }
  169. if(opc!=0)
  170. {
  171. printf("\n\nPrima qualquer tecla para voltar ao menu...\n");
  172. getchar();
  173. }
  174. } while(opc!=0);
  175.  
  176. return 0;
  177. }
  178.  
  179. void inserir_cinema(int cinema)
  180. {
  181. printf("Que nome deseja dar ao cinema numero: %d?\n-->", cinema+1);
  182. scanf(" %[^\n]s", CINEMA[cinema].nome_cinema);
  183. clearScreen();
  184. }
  185.  
  186. void listar_cinemas(int cinema)
  187. {
  188. printf("\n===============================");
  189. printf("\n= Lista de Cinemas =");
  190. printf("\n===============================\n");
  191. int i;
  192. for (i=0; i<cinema; i++)
  193. {
  194. printf("Nome do cinema %d : %s \n",i+1, CINEMA[i].nome_cinema); //i+1 pois decidimos que as categorias nao come¡am do numero 0 mas sim do 1
  195. }
  196. }
  197.  
  198. void inserir_genero(int id_cin)
  199. {
  200. printf("\n===============================");
  201. printf("\n= Inserir Genero =");
  202. printf("\n===============================\n");
  203.  
  204. int opc2,i;
  205. printf("Quantos generos deseja inserir?\n");
  206. scanf("%d",&opc2);
  207.  
  208. for(i=0;i<opc2;i++)
  209. {
  210. printf("Qual o nome do genero %d?\n--> ",CINEMA[(id_cin-1)].numero_gen+1);
  211. scanf(" %[^\n]s",CINEMA[(id_cin-1)].GENERO[i].nome);
  212. CINEMA[(id_cin-1)].numero_gen++;
  213. }
  214. clearScreen();
  215. }
  216.  
  217. void listar_generos(int cinema)
  218. {
  219. int opc = -1,id_cin;
  220.  
  221. printf("\n===============================");
  222. printf("\n= Lista de Generos =");
  223. printf("\n===============================\n");
  224.  
  225. while(opc!=0)
  226. {
  227. //printf("[1] -Listar Todos.\n");
  228. printf("[1] -Listar generos\n");
  229. printf("[2] -Voltar ao Menu Inicial\n");
  230. scanf("%d",&opc);
  231.  
  232. switch(opc)
  233. {
  234. /*case 1:
  235. clearScreen();
  236. listar_todos_generos(cinema);
  237. break;
  238. */
  239. case 1:
  240. clearScreen();
  241. listar_cinemas(cinema);
  242. printf("Introduza o cinema que deseja ver: ");
  243. scanf("%d",&id_cin);
  244. listar_generos_por_cinema(id_cin);
  245. system("PAUSE");
  246. system("cls");
  247. //system( "read -n 1 -s -p \"Carrega numa tecla para voltar ao menu...\"" );
  248. return;
  249. break;
  250.  
  251. case 2:
  252. return;
  253. }
  254. }
  255. }
  256.  
  257. /*void listar_todos_generos(int cinema)
  258. {
  259. int i,j;
  260.  
  261. for(i=0;i<cinema;i++)
  262. {
  263. printf("Nome do cinema %d - %s",i+1,CINEMA[cinema].nome_cinema);
  264. for(j=0;j<CINEMA[cinema].num_cinema;j++)
  265. {
  266. printf("Genero %d : %s \n", j+1,CINEMA[cinema].GENERO[j].nome);
  267. }
  268. }
  269. }*/
  270.  
  271. void listar_generos_por_cinema(int id_cin)
  272. {
  273. printf("\n===============================");
  274. printf("\n= Lista de Generos =");
  275. printf("\n===============================\n");
  276.  
  277. int j;
  278. printf("Nome do Cinema %d - %s\n",id_cin, CINEMA[(id_cin-1)].nome_cinema);
  279. for (j=0 ; j<CINEMA[(id_cin-1)].numero_gen;j++)
  280. {
  281. printf("Genero %d: %s \n",j+1, CINEMA[(id_cin-1)].GENERO[j].nome);
  282. }
  283. printf("\n");
  284. }
  285.  
  286.  
  287. void inserir_filme(int cin,int id_filme)
  288. {
  289. printf("\n===============================");
  290. printf("\n= Adicionar Filme =");
  291. printf("\n===============================\n");
  292.  
  293.  
  294. int i,qtd_filmes;
  295. printf("Quantos filmes deseja inserir?");
  296. scanf("%d",&qtd_filmes);
  297. for(i=0;i<qtd_filmes;i++)
  298. {
  299. printf("Qual o Nome do Filme?\n --> ");
  300. scanf(" %[^\n]s",CINEMA[cin-1].GENERO[id_filme-1].FILME[i].nome); //[^\n] fica a aguradar que seja pressionado enter como fim de texto
  301. printf("Qual a duracao do filme em minutos?\n -->");
  302. scanf(" %d", &GENERO[id_filme-1].FILME[GENERO[(id_filme-1)].numero_filme].duracao);
  303. printf("Qual a idade minima de vizualizacao do filme?\n -->");
  304. scanf(" %d", &GENERO[id_filme-1].FILME[GENERO[(id_filme-1)].numero_filme].idade_minima);
  305. printf("Adicione uma pequena sinopse:\n --> ");
  306. scanf(" %[^\n]s",GENERO[id_filme-1].FILME[GENERO[(id_filme-1)].numero_filme].sinopse);
  307. printf("Qual e o realizador?\n --> ");
  308. scanf(" %[^\n]s",GENERO[id_filme-1].FILME[GENERO[(id_filme-1)].numero_filme].realizador);
  309. GENERO[(id_filme-1)].numero_filme++;
  310. }
  311. }
  312.  
  313. void listar_filmes(int cin, int id_filme)
  314. {
  315. printf("\n===============================");
  316. printf("\n= Lista de Filmes =");
  317. printf("\n===============================\n");
  318.  
  319. int i;
  320. for(i=0;i<GENERO[id_filme-1].numero_filme;i++)
  321. {
  322. printf("Filme %d:\n\n Nome: %s\n Duracao do Filme: %d minutos\n Idade Minima: %d\n Sinopse: %s\n Realizador: %s \n\n",i+1,GENERO[id_filme-1].FILME[i].nome,GENERO[id_filme-1].FILME[i].duracao,GENERO[id_filme-1].FILME[i].idade_minima, GENERO[id_filme-1].FILME[i].sinopse, GENERO[id_filme-1].FILME[i].realizador);
  323. }
  324. }
  325.  
  326.  
  327. /*void listar_todos_filmes(int id_filme)
  328. {
  329. printf("\n===============================");
  330. printf("\n= Lista de Filmes =");
  331. printf("\n===============================\n");
  332.  
  333.  
  334. int i,j,w;
  335. for(i=0;i<id_filme;i++)
  336. {
  337. printf("Nome do Cinema %d : %s",(id_filme-1),CINEMA[(id_filme-1)].nome_cinema);
  338. for(j=0;j<CINEMA[(id_filme-1)].num_cinema;j++)
  339. {
  340. printf("Nome do Genero %d : %s",j+1,CINEMA[(id_filme-1)].GENERO[j].nome);
  341. for(w=0;w<GENERO[(id_filme-1)].numero_filme;w++)
  342. {
  343. printf("Filme %d:\n\n Nome : %s\n DuraÁ„o do Filme: %d\n Idade Minima: %d \n\n",i+1,GENERO[(id_filme-1)].FILME[i].nome,GENERO[(id_filme-1)].FILME[i].duracao,GENERO[(id_filme-1)].FILME[i].idade_minima);
  344. }
  345. }
  346. }
  347. }*/
  348.  
  349. void editar_filmes(int cinema)
  350. {
  351. printf("\n===============================");
  352. printf("\n= Editar Filme =");
  353. printf("\n===============================\n");
  354.  
  355. int cin,id_filme;
  356.  
  357. listar_cinemas(cinema);
  358. printf("Escolha o numero do cinema em que deseja alterar o filme\n");
  359. scanf("%d",&cin);
  360. listar_generos_por_cinema(cin);
  361. printf("Escolha o numero do genero onde deseja alterar o filme\n");
  362. scanf("%d",&id_filme);
  363. printf("Alterar Filme:\n\n");
  364. listar_filmes(id_filme);
  365. printf("Insira o numero do filme que deseja alterar:");
  366. scanf("%d",&id_filme);
  367. id_filme=id_filme-1;
  368. printf("Qual o Nome do Filme?:\n-->");
  369. scanf(" %[^\n]s",GENERO[cinema].FILME[GENERO[id_filme].numero_filme].nome);
  370. printf("Qual a duracao do filme em minutos?:\n-->");
  371. scanf(" %d",&GENERO[cinema].FILME[GENERO[id_filme].numero_filme].duracao );
  372. printf("Qual a idade minima de vizualizacao do filme?\n-->");
  373. scanf(" %d", &GENERO[cinema].FILME[GENERO[id_filme].numero_filme].idade_minima);
  374. printf("Adicione uma pequena Sinopse:\n-->");
  375. scanf(" %[^\n]s",GENERO[cinema].FILME[GENERO[id_filme].numero_filme].sinopse);
  376. printf("Qual o Nome do Realizador?:\n-->");
  377. scanf(" %[^\n]s",GENERO[cinema].FILME[GENERO[id_filme].numero_filme].realizador);
  378. }
  379.  
  380. void eliminarFilme(int filmes)
  381. {
  382. printf("\n===============================");
  383. printf("\n= Eliminar Filme =");
  384. printf("\n===============================\n");
  385.  
  386. int id_genero, id_filme;
  387.  
  388. listar_filmes(filmes);
  389.  
  390. printf("Introduza o filme que quer eliminar ");
  391.  
  392. scanf("%d", &id_filme);
  393.  
  394. id_filme=id_filme-1; //o numero inserido pelo utilizador corresponde a um valor acima do indice de posição do vetor FILME
  395.  
  396. strcpy(GENERO[(filmes-1)].FILME[id_filme].nome, GENERO[(filmes-1)].FILME[GENERO[(filmes-1)].numero_filme-1].nome);
  397.  
  398.  
  399. GENERO[(filmes-1)].FILME[id_filme].duracao = GENERO[(filmes-1)].FILME[GENERO[(filmes-1)].numero_filme-1].duracao;
  400.  
  401. GENERO[(filmes-1)].FILME[id_filme].idade_minima, GENERO[(filmes-1)].FILME[GENERO[filmes-1].numero_filme-1].idade_minima;
  402.  
  403. strcpy(GENERO[(filmes-1)].FILME[id_filme].sinopse, GENERO[(filmes-1)].FILME[GENERO[(filmes-1)].numero_filme-1].sinopse);
  404.  
  405. strcpy(GENERO[(filmes-1)].FILME[id_filme].realizador, GENERO[(filmes-1)].FILME[GENERO[(filmes-1)].numero_filme-1].realizador);
  406.  
  407.  
  408.  
  409.  
  410.  
  411. strcpy(GENERO[filmes-1].FILME[GENERO[(filmes-1)].numero_filme].nome, "");
  412.  
  413. GENERO[filmes-1].FILME[GENERO[(filmes-1)].numero_filme].duracao = 0;
  414.  
  415. GENERO[filmes-1].FILME[GENERO[(filmes-1)].numero_filme].idade_minima = 0;
  416.  
  417.  
  418.  
  419. GENERO[filmes-1].numero_filme = GENERO[id_genero].numero_filme - 1;
  420.  
  421. }
  422.  
  423.  
  424.  
  425.  
  426.  
  427. void clearScreen() {
  428. #ifdef _WIN32
  429. system("cls");
  430. #else
  431. system("clear");
  432. #endif
  433. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement