Advertisement
FoguinhoS

Untitled

Sep 21st, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.10 KB | None | 0 0
  1.  
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <windows.h>
  6. #include <conio.h>
  7. #include <iostream>
  8.  
  9. // PROTOTIPOS DE FUNCOES
  10. char * GravarChar(int maximo);
  11. float GravarFloat(int maximo);
  12. int GravarInteiro(int maximo);
  13. void Draw(int slash,const char * options[],HANDLE hConsole,char arrows[],int OPTIONS);
  14. int Move(int * slash,HANDLE hConsole,char arrows[],int OPTIONS);
  15. int setInfo(int iNumeroQuartos,HANDLE hConsole,int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[]);
  16. int showData(int iNumeroQuartos, int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[]);
  17. int createInfos(int iNumeroQuartos, HANDLE hConsole,int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[]);
  18. int changeStatus(int iNumeroQuartos,int iSituacao[],HANDLE hConsole);
  19. int showBusy(int iNumeroQuartos,int iSituacao[]);
  20. int extraExpenses(int iNumeroQuartos,float iDespesas[],float iTotal[], HANDLE hConsole);
  21. int sumTotal(int iNumeroQuartos, float iPrecoDiaria[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[],HANDLE hConsole);
  22. int setData(int* slash,HANDLE hConsole,int iDataDia[][2],int iDataMes[][2],int iDataAno[][4],char arrows[], int x,int type);
  23. int criaArrowsData(int iDataDia[][2],int iDataMes[][2],int iDataAno[][4],char arrows[],int x);
  24.  
  25.  
  26. int main()
  27. {
  28. HANDLE hConsole;
  29. hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  30. char arrows[7] ={char(26),' ',' ',' ',' ',' ',' '};
  31. int slash = 0;
  32. const char * options[7]={
  33. "1. Alterar informacoes sobre os quartos",
  34. "2. Listar os dados de todos os quartos",
  35. "3. Alterar status (livre, ocupado, reservado) de um determinado quarto",
  36. "4. Listar os dados dos quartos ocupados",
  37. "5. Cadastrar despesas extras de um determinado quarto",
  38. "6. Calcular despesa final de um determinado quarto",
  39. "7. Finalizar"};
  40.  
  41. int iNumeroQuartos=0;
  42. while(iNumeroQuartos<=0)
  43. {
  44. printf("Digite o numero de quartos a cadastrar( minimo = 1) : ");
  45. iNumeroQuartos = GravarInteiro(10);
  46. system("cls");
  47. }
  48. int myresult = (-1);
  49. char StartArrows[2] ={char(26),' '};
  50. const char * StartMenu[2]= { " 1. Cadastrar quartos agora", " 2. Cadastrar quartos depois"};
  51. int StartSeta = 0;
  52. int iNumeroQuarto;
  53. int iQuantidadeAcomodacoes[iNumeroQuartos];
  54. float iPrecoDiaria[iNumeroQuartos];
  55. int iSituacao[iNumeroQuartos];
  56. int iDataEntradaDia[iNumeroQuartos][2];
  57. int iDataEntradaMes[iNumeroQuartos][2];
  58. int iDataEntradaAno[iNumeroQuartos][4];
  59. int iDataSaidaDia[iNumeroQuartos][2];
  60. int iDataSaidaMes[iNumeroQuartos][2];
  61. int iDataSaidaAno[iNumeroQuartos][4];
  62. float iDespesas[iNumeroQuartos];
  63. float iTotal[iNumeroQuartos];
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. while(myresult == (-1))
  71. {
  72. Draw(StartSeta,StartMenu,hConsole,StartArrows,2);
  73. myresult = Move(&StartSeta,hConsole,StartArrows,2);
  74. }
  75. if(myresult == 0)
  76. {
  77. system("cls");
  78. createInfos(iNumeroQuartos,
  79. hConsole,
  80. iQuantidadeAcomodacoes,
  81. iPrecoDiaria,
  82. iSituacao,
  83. iDataEntradaDia,
  84. iDataEntradaMes,
  85. iDataEntradaAno,
  86. iDataSaidaDia,
  87. iDataSaidaMes,
  88. iDataSaidaAno,
  89. iDespesas,
  90. iTotal);
  91. }
  92. else
  93. {
  94. for(int i = 0; i < iNumeroQuartos; i++)
  95. {
  96. iQuantidadeAcomodacoes[i]=0;
  97. iPrecoDiaria[i]=0;
  98. iSituacao[i]=0;
  99. iDataEntradaDia[i][0]=0;
  100. iDataEntradaDia[i][1]=0;
  101. iDataEntradaMes[i][0]=0;
  102. iDataEntradaMes[i][1]=0;
  103. iDataEntradaAno[i][0]=0;
  104. iDataEntradaAno[i][1]=0;
  105. iDataEntradaAno[i][2]=0;
  106. iDataEntradaAno[i][3]=0;
  107. iDataSaidaDia[i][0]=0;
  108. iDataSaidaDia[i][1]=0;
  109. iDataSaidaMes[i][0]=0;
  110. iDataSaidaMes[i][1]=0;
  111. iDataSaidaAno[i][0]=0;
  112. iDataSaidaAno[i][1]=0;
  113. iDataSaidaAno[i][2]=0;
  114. iDataSaidaAno[i][3]=0;
  115. iDespesas[i]=0;
  116. iTotal[i]=0;
  117. }
  118. }
  119.  
  120.  
  121.  
  122. while(1)
  123. {
  124. Draw(slash,options,hConsole,arrows,7);
  125. int result = Move(&slash,hConsole,arrows,7);
  126.  
  127. if(result != (-1))
  128. {
  129. switch(result)
  130. {
  131.  
  132.  
  133. case 0:
  134. system("cls");
  135. setInfo(iNumeroQuartos,
  136. hConsole,
  137. iQuantidadeAcomodacoes,
  138. iPrecoDiaria,
  139. iSituacao,
  140. iDataEntradaDia,
  141. iDataEntradaMes,
  142. iDataEntradaAno,
  143. iDataSaidaDia,
  144. iDataSaidaMes,
  145. iDataSaidaAno,
  146. iDespesas,
  147. iTotal);
  148. break;
  149. case 1:
  150. showData(iNumeroQuartos,
  151. iQuantidadeAcomodacoes,
  152. iPrecoDiaria,
  153. iSituacao,
  154. iDataEntradaDia,
  155. iDataEntradaMes,
  156. iDataEntradaAno,
  157. iDataSaidaDia,
  158. iDataSaidaMes,
  159. iDataSaidaAno,
  160. iDespesas,
  161. iTotal);
  162. break;
  163. case 2:
  164. changeStatus(iNumeroQuartos,
  165. iSituacao,
  166. hConsole);
  167. break;
  168. case 3:
  169. showBusy(iNumeroQuartos,
  170. iSituacao
  171. );
  172. break;
  173. case 4:
  174. extraExpenses(iNumeroQuartos,
  175. iDespesas,
  176. iTotal,
  177. hConsole);
  178. break;
  179. case 5:
  180. sumTotal(iNumeroQuartos,
  181. iPrecoDiaria,
  182. iDataEntradaDia,
  183. iDataEntradaMes,
  184. iDataEntradaAno,
  185. iDataSaidaDia,
  186. iDataSaidaMes,
  187. iDataSaidaAno,
  188. iDespesas,
  189. iTotal,
  190. hConsole);
  191.  
  192. break;
  193. case 6:
  194. return 0;
  195. break;
  196. }
  197. }
  198. }
  199.  
  200. }
  201.  
  202.  
  203. float GravarFloat(int maximo) //Usado para gravar numeros Float.
  204. {
  205. fflush(stdin); //Limpa o buffer para evitar problemas.
  206. char numero_s[maximo];
  207. fgets(numero_s,maximo,stdin); //Metodo similar a Scanf ou Cin porem mais seguro, Limitação de caracteres.
  208. float numero_f = atof(numero_s); //Converte string em Float para retornar no final.
  209. return numero_f;
  210. }
  211.  
  212. int GravarInteiro(int maximo) //Usado para gravar numeros Inteiros.
  213. {
  214. fflush(stdin); //Limpa o buffer para evitar problemas.
  215. char numero_s[maximo];
  216. fgets(numero_s,maximo,stdin); //Metodo similar a Scanf ou Cin porem mais seguro, Limitação de caracteres.
  217. int numero_i = atoi(numero_s); //Converte string em Int para retornar no final.
  218. return numero_i;
  219. }
  220.  
  221. char * GravarChar(int maximo) //Usado para gravar chars
  222. {
  223. fflush(stdin); //Limpa o buffer para evitar problemas.
  224. char * numero_s = new char[maximo];
  225. fgets(numero_s,maximo,stdin); //Metodo similar a Scanf ou Cin porem mais seguro, Limitação de caracteres.
  226. return numero_s;
  227. }
  228.  
  229.  
  230.  
  231. int criaArrowsData(int iDataDia[][2],int iDataMes[][2],int iDataAno[][4],char arrows[],int x)
  232. {
  233. fflush(stdin);
  234. char Data[8];
  235. itoa ( iDataDia[x][0], &Data[0], 10 );
  236. itoa ( iDataDia[x][1], &Data[1], 10 );
  237. itoa ( iDataMes[x][0], &Data[2], 10 );
  238. itoa ( iDataMes[x][1], &Data[3], 10 );
  239. itoa ( iDataAno[x][0], &Data[4], 10 );
  240. itoa ( iDataAno[x][1], &Data[5], 10 );
  241. itoa ( iDataAno[x][2], &Data[6], 10 );
  242. itoa ( iDataAno[x][3], &Data[7], 10 );
  243. char arrows1[8]={'_',Data[1],Data[2],Data[3],Data[4],Data[5],Data[6],Data[7]};
  244.  
  245. }
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252. int setData(int * slash,HANDLE hConsole,int iDataDia[][2],int iDataMes[][2],int iDataAno[][4],char arrows[], int x,int type)
  253. {
  254.  
  255. fflush(stdin);
  256. system("cls");
  257. if(type == 1)
  258. {
  259. printf("Data de Entrada:\n");
  260. }
  261. else if(type == 2)
  262. {
  263. printf("Data de Saida:\n");
  264. }
  265. for(int i = 0; i < 8;i++)
  266. {
  267.  
  268. if(i == 2 || i == 4)
  269. {
  270. SetConsoleTextAttribute(hConsole, 15);
  271. printf("/");
  272. }
  273.  
  274. if(*slash == i)
  275. {
  276. SetConsoleTextAttribute(hConsole, 12);
  277. }
  278. else
  279. {
  280. SetConsoleTextAttribute(hConsole, 15);
  281. }
  282.  
  283. printf("%c",arrows[i]);
  284. }
  285.  
  286. SetConsoleTextAttribute(hConsole, 15);
  287.  
  288. char Data[8];
  289. itoa ( iDataDia[x][0], &Data[0], 10 );
  290. itoa ( iDataDia[x][1], &Data[1], 10 );
  291. itoa ( iDataMes[x][0], &Data[2], 10 );
  292. itoa ( iDataMes[x][1], &Data[3], 10 );
  293. itoa ( iDataAno[x][0], &Data[4], 10 );
  294. itoa ( iDataAno[x][1], &Data[5], 10 );
  295. itoa ( iDataAno[x][2], &Data[6], 10 );
  296. itoa ( iDataAno[x][3], &Data[7], 10 );
  297. fflush(stdin);
  298.  
  299. int key=0;
  300. //while(1){
  301. key = getch();
  302. //printf("key %d",key);}
  303.  
  304.  
  305.  
  306. if(key == 75) // Left Key
  307. {
  308. if(*slash == 0)
  309. {
  310. arrows[*slash] = Data[*slash];
  311. *slash = 7;
  312. arrows[*slash] = '_';
  313.  
  314. }
  315. else
  316. {
  317. arrows[*slash] = Data[*slash];
  318. *slash -= 1;
  319. arrows[*slash] = '_';
  320. }
  321. }
  322. else if(key == 77) // Right key
  323. {
  324. if(*slash == 7)
  325. {
  326. arrows[*slash] = Data[*slash];
  327. *slash = 0;
  328. arrows[*slash] = '_';
  329.  
  330. }
  331. else
  332. {
  333. arrows[*slash] = Data[*slash];
  334. *slash += 1;
  335. arrows[*slash] = '_';
  336. }
  337. }
  338. else if(key > 47 && key < 58)
  339. {
  340.  
  341.  
  342. switch(*slash)
  343. {
  344. case 0:
  345. iDataDia[x][0] = key - 48;
  346. break;
  347. case 1:
  348. iDataDia[x][1] = key - 48;
  349. break;
  350. case 2:
  351. iDataMes[x][0] = key - 48;
  352. break;
  353. case 3:
  354. iDataMes[x][1] = key - 48;
  355. break;
  356. case 4:
  357. iDataAno[x][0] = key - 48;
  358. break;
  359. case 5:
  360. iDataAno[x][1] = key - 48;
  361. break;
  362. case 6:
  363. iDataAno[x][2] = key - 48;
  364. break;
  365. case 7:
  366. iDataAno[x][3] = key - 48;
  367. break;
  368.  
  369. }
  370.  
  371.  
  372. }
  373.  
  374.  
  375.  
  376.  
  377. if(key == 13)
  378. {
  379. return 3;
  380.  
  381. }
  382.  
  383. }
  384.  
  385.  
  386.  
  387.  
  388. int sumTotal(int iNumeroQuartos, float iPrecoDiaria[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[],HANDLE hConsole)
  389. {
  390.  
  391. char arrows0[iNumeroQuartos];
  392. for(int i = 0; i <iNumeroQuartos; i++)
  393. {
  394. if(i != 0 )
  395. {
  396. arrows0[i] = ' ';
  397. }
  398. else
  399. {
  400. arrows0[i] = (char)26;
  401. }
  402. }
  403. int seta0 = 0;
  404. int result0=(-1);
  405. const char * menu0[iNumeroQuartos];
  406.  
  407. for(int j = 0; j <iNumeroQuartos; j++)
  408. {
  409. char *quartoString = new char[10]();
  410. strcpy(quartoString,"Quarto [");
  411. char convert[3];
  412. itoa(j,convert,10);
  413. strcat(quartoString,convert);
  414. strcat(quartoString,"]");
  415. menu0[j] = quartoString;
  416.  
  417. }
  418. while(result0 == (-1))
  419. {
  420. Draw(seta0,menu0,hConsole,arrows0,iNumeroQuartos);
  421. result0 = Move(&seta0,hConsole,arrows0,iNumeroQuartos);
  422. }
  423. system("cls");
  424.  
  425.  
  426. iTotal[result0] = iDespesas[result0];
  427. float dias = ( ( iDataSaidaAno[result0][0]*1000 + iDataSaidaAno[result0][1]*100 + iDataSaidaAno[result0][2]*10 + iDataSaidaAno[result0][0]*1 ) - (iDataEntradaAno[result0][0] *1000 + iDataEntradaAno[result0][1] *100 + iDataEntradaAno[result0][2] *10 + iDataEntradaAno[result0][0] *1 ) * 360);
  428. dias += ( (iDataSaidaMes[result0][0]*10 + iDataSaidaMes[result0][1]*1 ) - (iDataEntradaMes[result0][0]*10+iDataEntradaMes[result0][0]*1) * 30 );
  429. dias += ( (iDataSaidaDia[result0][0]*10 + iDataSaidaDia[result0][1]*1)- (iDataEntradaDia[result0][0]*10 + iDataEntradaDia[result0][1]*1));
  430. iTotal[result0] += dias*iPrecoDiaria[result0] ;
  431. printf("Dias : %.f ; Valor referente a os dias : $%.2f\n", dias, iTotal[result0] );
  432. printf("Aperte Enter para continuar");
  433. int key = 0;
  434. while(key != 13)
  435. {
  436. key = getch();
  437. }
  438. }
  439.  
  440.  
  441.  
  442.  
  443.  
  444. int extraExpenses(int iNumeroQuartos,float iDespesas[],float iTotal[], HANDLE hConsole)
  445. {
  446. char arrows0[iNumeroQuartos];
  447. for(int i = 0; i <iNumeroQuartos; i++)
  448. {
  449. if(i != 0 )
  450. {
  451. arrows0[i] = ' ';
  452. }
  453. else
  454. {
  455. arrows0[i] = (char)26;
  456. }
  457. }
  458. int seta0 = 0;
  459. int result0=(-1);
  460. const char * menu0[iNumeroQuartos];
  461.  
  462. for(int j = 0; j <iNumeroQuartos; j++)
  463. {
  464. char *quartoString = new char[10]();
  465. strcpy(quartoString,"Quarto [");
  466. char convert[3];
  467. itoa(j,convert,10);
  468. strcat(quartoString,convert);
  469. strcat(quartoString,"]");
  470. menu0[j] = quartoString;
  471.  
  472. }
  473. while(result0 == (-1))
  474. {
  475. Draw(seta0,menu0,hConsole,arrows0,iNumeroQuartos);
  476. result0 = Move(&seta0,hConsole,arrows0,iNumeroQuartos);
  477. }
  478. system("cls");
  479. printf("Digite o valor de dispesas extras(Digite um valor negativo para retirar): ");
  480. iDespesas[result0] += GravarFloat(10);
  481.  
  482.  
  483. }
  484.  
  485.  
  486.  
  487.  
  488. int showBusy(int iNumeroQuartos,int iSituacao[])
  489. {
  490. system("cls");
  491. printf("Quartos ocupados no memento: \n");
  492. for(int i = 0; i < iNumeroQuartos; i ++ )
  493. {
  494. if(iSituacao[i]==1)
  495. {
  496. printf("Quarto %d esta ocupado\n",i);
  497.  
  498. }
  499. }
  500. printf("Aperte enter para continuar");
  501. int key = 0;
  502. while(key != 13)
  503. {
  504. key = getch();
  505. }
  506. }
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513. int changeStatus(int iNumeroQuartos,int iSituacao[],HANDLE hConsole)
  514. {
  515.  
  516. char arrows0[iNumeroQuartos];
  517. for(int i = 0; i <iNumeroQuartos; i++)
  518. {
  519. if(i != 0 )
  520. {
  521. arrows0[i] = ' ';
  522. }
  523. else
  524. {
  525. arrows0[i] = (char)26;
  526. }
  527. }
  528. int seta0 = 0;
  529. int result0=(-1);
  530. const char * menu0[iNumeroQuartos];
  531.  
  532. for(int j = 0; j <iNumeroQuartos; j++)
  533. {
  534. char *quartoString = new char[10]();
  535. strcpy(quartoString,"Quarto [");
  536. char convert[3];
  537. itoa(j,convert,10);
  538. strcat(quartoString,convert);
  539. strcat(quartoString,"]");
  540. menu0[j] = quartoString;
  541.  
  542. }
  543. while(result0 == (-1))
  544. {
  545. Draw(seta0,menu0,hConsole,arrows0,iNumeroQuartos);
  546. result0 = Move(&seta0,hConsole,arrows0,iNumeroQuartos);
  547. }
  548. const char * StartMenu1[3]={" 1. Livre", " 2. Ocupado", " 3. Reservado"};
  549. int StartSeta1 = 0;
  550. int myresult = (-1);
  551. char StartArrows1[3] ={char(26),' ',' '};
  552. while(myresult == (-1))
  553. {
  554. Draw(StartSeta1,StartMenu1,hConsole,StartArrows1,3);
  555. myresult = Move(&StartSeta1,hConsole,StartArrows1,3);
  556. }
  557. iSituacao[result0] = myresult;
  558. }
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565. int createInfos(int iNumeroQuartos, HANDLE hConsole,int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[])
  566. {
  567.  
  568. for(int i = 0; i < iNumeroQuartos; i++)
  569. {
  570. system("cls");
  571. SetConsoleTextAttribute(hConsole, 12);
  572. printf("\nQuarto %d\n",i);
  573. SetConsoleTextAttribute(hConsole, 15);
  574. for(int result = 0; result < 6; result ++)
  575. {
  576.  
  577. switch(result)
  578. {
  579. case 0:
  580. printf("\nDigite a quantidade de acomodacoes: ");
  581. iQuantidadeAcomodacoes[i] = GravarInteiro(10);
  582. break;
  583. case 1:
  584. printf("\nDigite o preco da diaria: ");
  585. iPrecoDiaria[i] = GravarFloat(10);
  586. break;
  587. case 2:
  588. printf("\nMudar status do quarto ( 0 = livre , 1 = ocupado, 2 = reservado : ");
  589. iSituacao[i] = 3;
  590. while( iSituacao[i] != 0 && iSituacao[i] != 1 && iSituacao[i] != 2 )
  591. {
  592. iSituacao[i] = GravarInteiro(10);
  593. }
  594. break;
  595. case 3:
  596. {
  597. fflush(stdin);
  598. int slashx = 0;
  599. char arrowsx[8]={'_','0','0','0','0','0','0','0'};
  600. iDataEntradaDia[i][0] = 0;
  601. iDataEntradaDia[i][1] = 0;
  602. iDataEntradaMes[i][0] = 0;
  603. iDataEntradaMes[i][1] = 0;
  604. iDataEntradaAno[i][0] = 0;
  605. iDataEntradaAno[i][1] = 0;
  606. iDataEntradaAno[i][2] = 0;
  607. iDataEntradaAno[i][3] = 0;
  608. criaArrowsData(iDataEntradaDia,iDataEntradaMes,iDataEntradaAno,arrowsx,i);
  609. int res = 0;
  610. while(res != 3)
  611. {
  612. res = setData(&slashx,hConsole,iDataEntradaDia,iDataEntradaMes,iDataEntradaAno,arrowsx,i,1);
  613. }
  614. break;
  615. }
  616. case 4:
  617. {
  618. fflush(stdin);
  619. iDataSaidaDia[i][0] = 0;
  620. iDataSaidaDia[i][1] = 0;
  621. iDataSaidaMes[i][0] = 0;
  622. iDataSaidaMes[i][1] = 0;
  623. iDataSaidaAno[i][0] = 0;
  624. iDataSaidaAno[i][1] = 0;
  625. iDataSaidaAno[i][2] = 0;
  626. iDataSaidaAno[i][3] = 0;
  627. int slashx = 0;
  628. char arrowsx[8]={'_','0','0','0','0','0','0','0'};
  629. criaArrowsData(iDataSaidaDia,iDataSaidaMes,iDataSaidaAno,arrowsx,i);
  630. int res = 0;
  631. while(res != 3)
  632. {
  633. res = setData(&slashx,hConsole,iDataSaidaDia,iDataSaidaMes,iDataSaidaAno,arrowsx,i,2);
  634. }
  635. system("cls");
  636. break;
  637. }
  638. case 5:
  639. printf("\nDigite o preco dispesas: ");
  640. iDespesas[i] = GravarFloat(10);
  641. break;
  642.  
  643.  
  644. }
  645. }
  646. }
  647. }
  648.  
  649.  
  650.  
  651.  
  652.  
  653. int showData(int iNumeroQuartos,int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[] )
  654. {
  655. system("cls");
  656. printf("Quantidade de acomodacoes: \n");
  657. for(int i = 0; i <iNumeroQuartos; i++)
  658. {
  659. printf("Quarto %d Acomodacoes %d\n",i,iQuantidadeAcomodacoes[i]);
  660. }
  661. printf("\n\nPreco diaria: \n");
  662. for(int i = 0; i <iNumeroQuartos; i++)
  663. {
  664. printf("Quarto %d Preco diaria $%.2f\n",i,iPrecoDiaria[i]);
  665. }
  666. printf("\n\nSituacao do quarto: \n");
  667. for(int i = 0; i <iNumeroQuartos; i++)
  668. {
  669. const char * status[3] = { "Livre","Ocupado","Reservado"};
  670. printf("Quarto %d status %s\n",i,status[ iSituacao[i] ] );
  671. }
  672. printf("\n\nData entrada: \n");
  673. for(int i = 0; i <iNumeroQuartos; i++)
  674. {
  675. printf("Quarto %d Data entrada %d%d/%d%d/%d%d%d%d\n",i,iDataEntradaDia[i][0],iDataEntradaDia[i][1],iDataEntradaMes[i][0],iDataEntradaMes[i][1],iDataEntradaAno[i][0],iDataEntradaAno[i][1],iDataEntradaAno[i][2],iDataEntradaAno[i][3]);
  676. }
  677. printf("\n\nData saida: \n");
  678. for(int i = 0; i <iNumeroQuartos; i++)
  679. {
  680. printf("Quarto %d Data saida %d%d/%d%d/%d%d%d%d\n",i,iDataSaidaDia[i][0],iDataSaidaDia[i][1],iDataSaidaMes[i][0],iDataSaidaMes[i][1],iDataSaidaAno[i][0],iDataSaidaAno[i][1],iDataSaidaAno[i][2],iDataSaidaAno[i][3]);
  681. }
  682. printf("\n\nDespesas: \n");
  683. for(int i = 0; i <iNumeroQuartos; i++)
  684. {
  685. printf("Quarto %d Ultima despesa $%.2f\n",i,iDespesas[i]);
  686. }
  687. printf("\n\nTotal: \n");
  688. for(int i = 0; i <iNumeroQuartos; i++)
  689. {
  690. printf("Quarto %d Total $%.2f\n",i,iTotal[i]);
  691. }
  692. int mykey = 0;
  693. printf("\n Aperte enter para continuar ");
  694. while(mykey != 13)
  695. {
  696. mykey = getch();
  697. }
  698. }
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705. int setInfo(int iNumeroQuartos, HANDLE hConsole,int iQuantidadeAcomodacoes[],float iPrecoDiaria[],int iSituacao[],int iDataEntradaDia[][2],int iDataEntradaMes[][2],int iDataEntradaAno[][4],int iDataSaidaDia[][2],int iDataSaidaMes[][2],int iDataSaidaAno[][4],float iDespesas[],float iTotal[])
  706. {
  707.  
  708. char arrows0[iNumeroQuartos];
  709. for(int i = 0; i <iNumeroQuartos; i++)
  710. {
  711. if(i != 0 )
  712. {
  713. arrows0[i] = ' ';
  714. }
  715. else
  716. {
  717. arrows0[i] = (char)26;
  718. }
  719. }
  720. int seta0 = 0;
  721. int result0=(-1);
  722. const char * menu0[iNumeroQuartos];
  723.  
  724. for(int j = 0; j <iNumeroQuartos; j++)
  725. {
  726. char *quartoString = new char[10]();
  727. strcpy(quartoString,"Quarto [");
  728. char convert[3];
  729. itoa(j,convert,10);
  730. strcat(quartoString,convert);
  731. strcat(quartoString,"]");
  732. menu0[j] = quartoString;
  733.  
  734. }
  735.  
  736. while(result0 == (-1))
  737. {
  738. Draw(seta0,menu0,hConsole,arrows0,iNumeroQuartos);
  739. result0 = Move(&seta0,hConsole,arrows0,iNumeroQuartos);
  740. }
  741. char arrows[5] ={char(26),' ',' ',' ',' '};
  742. const char * menu[5]= { " 1. Mudar Quantidade de acomodacoes", " 2. Mudar Preco da diaria", " 3. Mudar situacao quarto", " 4. Mudar data entrada", " 5. Mudar data saida"};
  743. int seta = 0;
  744. int result(-1);
  745. while(result == (-1))
  746. {
  747. Draw(seta,menu,hConsole,arrows,5);
  748. result = Move(&seta,hConsole,arrows,5);
  749. }
  750.  
  751.  
  752. switch(result)
  753. {
  754. case 0:
  755. printf("\nDigite a quantidade de acomodacoes: ");
  756. iQuantidadeAcomodacoes[result0] = GravarInteiro(10);
  757. break;
  758. case 1:
  759. printf("\nDigite o preco da diaria: ");
  760. iPrecoDiaria[result0] = GravarFloat(10);
  761. break;
  762. case 2:
  763. printf("\nMudar status do quarto( 0 = Livre , 1 - Ocupado , 2 - Reservado: ");
  764. iSituacao[result0] = 3;
  765. while( iSituacao[result0] != 0 && iSituacao[result0] != 1 && iSituacao[result0] != 2 )
  766. {
  767. iSituacao[result0] = GravarInteiro(10);
  768. }
  769. break;
  770. case 3:
  771. {
  772. int slashx = 0;
  773. char arrowsx[8]={'_','0','0','0','0','0','0','0'};
  774. criaArrowsData(iDataEntradaDia,iDataEntradaMes,iDataEntradaAno,arrowsx,result0);
  775. int res = 0;
  776. while(res != 3)
  777. {
  778. res = setData(&slashx,hConsole,iDataEntradaDia,iDataEntradaMes,iDataEntradaAno,arrowsx,result0,1);
  779. }
  780. system("cls");
  781. break;
  782. }
  783.  
  784. case 4:
  785. {
  786. int slashx = 0;
  787. char arrowsx[8]={'_','0','0','0','0','0','0','0'};
  788. criaArrowsData(iDataSaidaDia,iDataSaidaMes,iDataSaidaAno,arrowsx,result0);
  789. int res = 0;
  790. while(res != 3)
  791. {
  792. res = setData(&slashx,hConsole,iDataSaidaDia,iDataSaidaMes,iDataSaidaAno,arrowsx,result0,2);
  793. }
  794. system("cls");
  795. break;
  796. }
  797.  
  798.  
  799.  
  800. }
  801.  
  802. }
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809. void Draw(int slash,const char * options[],HANDLE hConsole,char arrows[],int OPTIONS)
  810. {
  811.  
  812. system("cls");
  813. for(int i = 0; i < OPTIONS;i++)
  814. {
  815. if(slash == i)
  816. {
  817. SetConsoleTextAttribute(hConsole, 12);
  818. }
  819. else
  820. {
  821. SetConsoleTextAttribute(hConsole, 15);
  822. }
  823.  
  824. printf(" %c %s\n",arrows[i],options[i]);
  825. }
  826.  
  827. SetConsoleTextAttribute(hConsole, 15);
  828. }
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835. int Move(int * slash, HANDLE hConsole, char arrows[],int OPTIONS)
  836. {
  837.  
  838. char key = getch();
  839. //printf("%d",key); Usado para testar o "id" de cada tecla
  840. //system("pause");
  841.  
  842.  
  843. if(key == 80) // Down Key
  844. {
  845. if(*slash == OPTIONS-1)
  846. {
  847. arrows[*slash] = ' ';
  848. *slash = 0;
  849. arrows[*slash] = (char)26;
  850.  
  851. }
  852. else
  853. {
  854. arrows[*slash] = ' ';
  855. *slash += 1;
  856. arrows[*slash] = (char)26;
  857. }
  858. }
  859. if(key == 72) // Up key
  860. {
  861. if(*slash == 0)
  862. {
  863. arrows[*slash] = ' ';
  864. *slash = OPTIONS-1;
  865. arrows[*slash] = (char)26;
  866.  
  867. }
  868. else
  869. {
  870. arrows[*slash] = ' ';
  871. *slash -= 1;
  872. arrows[*slash] = (char)26;
  873. }
  874. }
  875. if(key == 13)
  876. {
  877. if(*slash >= 0 && *slash < OPTIONS)
  878. {
  879. return *slash;
  880. }
  881.  
  882. }
  883. return (-1);
  884. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement