Advertisement
Mraider12

BICOMB_final??

Jan 19th, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <windows.h>
  5. #include <stdio.h>
  6. #include <conio.h>
  7. #include <math.h>
  8.  
  9. # define L 5
  10. # define C 29
  11.  
  12. typedef struct BICOMB {
  13. int c[L][C];
  14. float preco;
  15. int Luglivres;
  16. float receita;
  17. double percent;
  18. };
  19. BICOMB semana[7] = { { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  20. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  21. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  22. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  23. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  24.  
  25. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  26. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  27. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  28. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  29. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  30.  
  31. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  32. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  33. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  34. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  35. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  36.  
  37. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  38. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  39. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  40. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  41. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  42.  
  43. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  44. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  45. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  46. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  47. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  48.  
  49. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  50. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  51. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  52. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  53. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
  54.  
  55. { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  56. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  57. { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
  58. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  59. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 } , };
  60.  
  61. BICOMB c2 = { {
  62. { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  63. { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  64. { 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
  65. { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  66. { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 3, 56 };
  67.  
  68.  
  69.  
  70.  
  71.  
  72. double lugoc1;
  73. double lugoc2;
  74.  
  75. void seatcheck1(int l, int colu, int v[5][29]) {
  76.  
  77.  
  78.  
  79. if (v[l][2 * colu] == 0)
  80. {
  81. v[l][2 * colu] = 1;
  82. v[l][(2 * colu) - 1] = 1;
  83. printf("O seu lugar foi marcado com sucesso. \n");
  84. lugoc1++;
  85.  
  86.  
  87. }
  88. else if (v[l][2 * colu] == 1)
  89. {
  90. printf("\nO lugar escolhido ja esta ocupado.\n");
  91. }
  92. }
  93. void seatcheck2(int li, int colun, int b[5][29]) {
  94.  
  95.  
  96.  
  97. if (b[li][2 * colun] == 0)
  98. {
  99. b[li][2 * colun] = 1;
  100. b[li][(2 * colun) - 1] = 1;
  101. printf("O seu lugar foi marcado com sucesso. \n");
  102. lugoc2++;
  103.  
  104.  
  105. }
  106. else if (b[li][2 * colun] == 1)
  107. {
  108. printf("\nO lugar escolhido ja esta ocupado.\n");
  109. }
  110. }
  111.  
  112. void draw1(int dsemana)
  113. {
  114. int i, j;
  115. printf("\t 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ");
  116. for (i = 0; i < L; i++)
  117. {
  118. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
  119. printf("\n\t ");
  120. for (j = 0; j < C; j++)
  121. {
  122. switch (semana[dsemana - 1].c[i][j])
  123. {
  124. case 0: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN);
  125. break;
  126. case 1: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED);
  127. break;
  128. case 2: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
  129. break;
  130. case 3: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
  131. break;
  132. case 4:
  133. printf("A");
  134. break;
  135. case 5:
  136. printf("B");
  137. break;
  138. case 6:
  139. printf(" ");
  140. break;
  141. case 7:
  142. printf("C");
  143. break;
  144. case 8:
  145. printf("D");
  146. break;
  147. }
  148.  
  149.  
  150. printf(" ");
  151. }
  152.  
  153. }
  154. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
  155. printf("\n\n");
  156. }
  157.  
  158. void draw2()
  159. {
  160. int i, j;
  161. printf("\t 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ");
  162. for (i = 0; i < L; i++)
  163. {
  164. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
  165. printf("\n\t ");
  166. for (j = 0; j < C; j++)
  167. {
  168. switch (c2.c[i][j])
  169. {
  170. case 0: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN);
  171. break;
  172. case 1: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED);
  173. break;
  174. case 2: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
  175. break;
  176. case 3: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
  177. break;
  178. case 4:
  179. printf("A");
  180. break;
  181. case 5:
  182. printf("B");
  183. break;
  184. case 6:
  185. printf(" ");
  186. break;
  187. case 7:
  188. printf("C");
  189. break;
  190. case 8:
  191. printf("D");
  192. break;
  193. }
  194.  
  195.  
  196. printf(" ");
  197. }
  198. }
  199.  
  200. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
  201. printf("\n\n");
  202. }
  203.  
  204. int main()
  205. {
  206. float prec1, prec2;
  207. char b, ll, tryn, ap2;
  208. int ap, classe, col, diasemana;
  209. prec1 = 5;
  210. prec2 = 3;
  211. printf("\t\t\tBICOMB\n\n");
  212. printf("\tGestao de vendas de Bilhetes de Comboio\n");
  213.  
  214. int i, j;
  215.  
  216. printf("\n\n");
  217. printf("\nPreco atual dos bilhetes: \n\tClasse 1: %0.1f Euros\n\tClasse 2: %0.1f Euros\n ", prec1, prec2);
  218. printf("\nNumero de lugares disponiveis na classe 1: 56");
  219. printf("\nNumero de lugares disponiveis na classe 2: 56");
  220. printf("\nPor Favor utilize os carateres indicados para responder.\n\n");
  221. ALT_PRECO: printf("Antes da marcacao de lugares, deseja alterar o preco dos bilhetes? S/N: \n");
  222. scanf(" %c", &b);
  223. if (b == 'S' || b == 's') {
  224. REPEAT: printf("Pretende alterar o preco da classe 1 ou da classe 2? 1/2: \n");
  225. scanf("%d", &ap);
  226. }
  227. else if (b == 'N' || b == 'n') {
  228. goto INITIATE;
  229. }
  230. else {
  231. printf("Nao inseriu nenhum dos caracteres indicados \n");
  232. goto ALT_PRECO;
  233. }
  234. if (ap == 1) {
  235. printf("Introduza o novo preco para a classe 1: \n");
  236. scanf("%f", &prec1);
  237. }
  238. else if (ap == 2) {
  239. printf("Introduza o novo preco para a classe 2: \n");
  240. scanf("%f", &prec2);
  241. }
  242. else {
  243. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n");
  244. goto REPEAT;
  245. }
  246. printf("\nPretende alterar novamente o preco? S/N : \n"); scanf(" %c", &ap2);
  247. if (ap2 == 's' || ap2 == 'S') {
  248. goto REPEAT;
  249. }
  250. else if (ap2 == 'n' || ap2 == 'N') {
  251. goto PRECO_ATUAL;
  252. }
  253. else {
  254. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
  255. goto ALT_PRECO;
  256. }
  257.  
  258.  
  259.  
  260. PRECO_ATUAL:printf("Preco atual dos bilhetes: \n\tClasse 1: %0.1lf Euros \n\tClasse 2: %0.1lf Euros\n", prec1, prec2);
  261. Sleep(1000);
  262.  
  263.  
  264. INITIATE: printf("Ira agora iniciar a compra dos bilhetes. Aguarde...\n");
  265. Sleep(2500);
  266.  
  267.  
  268.  
  269. VENDAS:printf("Introduza a classe do lugar desejado: 1/2: ");
  270. scanf("%d", &classe);
  271.  
  272. if (classe == 1) {
  273. printf("Na classe 1 pode comprar o seu bilhete no dia de semana que lhe for mais cómodo.\n");
  274. printf("Indique o dia da semana que pretende:\n 1 - Segunda-Feira\n");
  275. printf("2 - Terca-Feira\n");
  276. printf("3 - Quarta-Feira\n");
  277. printf("4 - Quinta-Feira\n");
  278. printf("5 - Sexta-Feira\n");
  279. printf("6 - Sabado\n");
  280. printf("7 - Domingo\n");
  281. printf("A sua resposta: \n"); scanf("%d", &diasemana);
  282.  
  283.  
  284. draw1(diasemana);
  285.  
  286.  
  287. printf("\nNúmero de lugares livres : %d", semana[diasemana].Luglivres);
  288. printf("\nPercentagem de bilhetes vendidos: %.2f%%", semana[diasemana].percent);
  289. printf("\nReceita actual do proprio dia: %.2f Euros", semana[diasemana - 1].receita);
  290.  
  291. FILA1: printf("\n\nIntroduza a letra da fila do lugar: A/B/C/D ");
  292. scanf(" %c", &ll);
  293. if (ll != 'a' && ll != 'A' && ll != 'b' && ll != 'B' && ll != 'c' && ll != 'C' && ll != 'd' && ll != 'D') {
  294. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
  295. goto FILA1;
  296. }
  297.  
  298. else {
  299. COLUNA1: printf("\n\nIntroduza o numero do lugar: (De 1 a 14) ");
  300. scanf("%d", &col);
  301. if (col >= 1 && col <= 14) {
  302.  
  303.  
  304. if (ll == 'a' || ll == 'A')
  305. {
  306. seatcheck1(0, col, semana[diasemana - 1].c);
  307. }
  308. else if (ll == 'b' || ll == 'B')
  309. {
  310. seatcheck1(1, col, semana[diasemana - 1].c);
  311. }
  312. else if (ll == 'c' || ll == 'C')
  313. {
  314. seatcheck1(3, col, semana[diasemana - 1].c);
  315. }
  316. else if (ll == 'd' || ll == 'D')
  317. {
  318. seatcheck1(4, col, semana[diasemana - 1].c);
  319. }
  320. draw1(diasemana);
  321. goto TRYN;
  322.  
  323.  
  324. }
  325. else {
  326. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
  327. goto COLUNA1;
  328. }
  329.  
  330.  
  331. }
  332.  
  333.  
  334. }
  335. else if (classe == 2)
  336. {
  337. draw2();
  338.  
  339.  
  340.  
  341.  
  342. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
  343. printf("\nNúmero de lugares livres : %d", c2.Luglivres);
  344. printf("\nPercentagem de bilhetes vendidos: %.2f%%", c2.percent);
  345. printf("\nReceita actual do proprio dia: %.2f Euros", c2.receita);
  346. FILA2: printf("\n\nIntroduza a letra da fila do lugar: A/B/C/D ");
  347. scanf(" %c", &ll);
  348. if (ll != 'a' && ll != 'A' && ll != 'b' && ll != 'B' && ll != 'c' && ll != 'C' && ll != 'd' && ll != 'D') {
  349. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
  350. goto FILA2;
  351. }
  352. else {
  353. COLUNA2: printf("\n\nIntroduza o numero do lugar: (De 1 a 14) ");
  354. scanf("%d", &col);
  355. if (col >= 1 && col <= 14) {
  356.  
  357.  
  358. if (ll == 'a' || ll == 'A')
  359. {
  360. seatcheck2(0, col, c2.c);
  361. }
  362. else if (ll == 'b' || ll == 'B')
  363. {
  364. seatcheck2(1, col, c2.c);
  365. }
  366. else if (ll == 'c' || ll == 'C')
  367. {
  368. seatcheck2(3, col, c2.c);
  369. }
  370. else if (ll == 'd' || ll == 'D')
  371. {
  372. seatcheck2(4, col, c2.c);
  373. }
  374. }
  375. else {
  376. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
  377. goto COLUNA2;
  378. }
  379. }
  380.  
  381. draw2();
  382.  
  383. TRYN: printf("\n\n Deseja marcar outro lugar? S/N: ");
  384. scanf(" %c", &tryn);
  385. if (tryn == 's' || tryn == 'S')
  386. {
  387. goto VENDAS;
  388. }
  389. else if (tryn == 'n' || tryn == 'N')
  390. {
  391. printf("A encerrar...");
  392. }
  393. else {
  394. printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n");
  395. goto TRYN;
  396. }
  397. }
  398. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement