Advertisement
Guest User

Untitled

a guest
Nov 30th, 2014
1,176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <conio.h>
  5. #include <time.h>
  6. #include "iniparser.h"
  7. #include "iniparser.c"
  8. #include "dictionary.c"
  9. #include <string.h>
  10. #include <unistd.h>
  11.  
  12.  
  13.  
  14. int main(int argc, char *argv[])
  15. {
  16. time_t hora;
  17. dictionary * ini ;
  18. char linha[100];
  19. char linha1[100];
  20. char linha2[100];
  21. char linha3[100];
  22. char linha4[100];
  23. char linha5[100];
  24. char linha6[100];
  25. char linha7[100];
  26. char linha8[100];
  27. char linha9[100];
  28. char linha10[100];
  29. char linha11[100];
  30. char linha12[100];
  31. char linhafunc[100];
  32. char linha1func[100];
  33. char linha2func[100];
  34. char linha3func[100];
  35. char linha4func[100];
  36. char linha5func[100];
  37. char linha6func[100];
  38. char linha7func[100];
  39. char linha8func[100];
  40. char linha9func[100];
  41. char linha10func[100];
  42. char linha11func[100];
  43. char linha12func[100];
  44. char corproduto[10][100]; // cor do produto para salvar
  45. int quantcorprod;
  46. int tamanhoprod[12]; //12 tipos de tamanho
  47. int quantidadetamanho; // numero de tamanhos diferentes pra scanear no registro do tamanho
  48. int quantidadetamanhoprod; // numero pra salvar a Quantidade de produtos deste tamanho no estoque
  49. char * ini_name ;
  50. char * nomeprodutosalvo; // pega o nome do produto salvo.
  51. float infopreco,quantpreco;
  52. char nomeprod[200],localprod[300],localfunc[300],localfuncnovo[200],info[500],infopre[100],infoquant[100],infocod[100],senha[30];
  53. char nomefunc[100];
  54. char * nomefuncionario; // nome pra pegar e alterar
  55. int opcao,tecla,teclasair,teclagerenciar,nprod,nfunc,i,quantprod,quantprodvendida,MAX_PROD = 2000,teclafuncionarios,codigofunc,codigofuncantigo,nvendas;
  56. int nvendasantes,nvendasmenor; // vendas antes,no caso o que esta no arquivo,numero de vendas do produto,nvendasmenor para pegar o menor numero de vendas pro relatorio
  57. int ncores; // numero de cores que o produto vai ter,pra registrar
  58. time_t currentTime;
  59. struct tm *timeinfo;
  60. float preco;
  61. system("mode con:cols=150 lines=30"); // definir tamanho da tela
  62. MENU:
  63. system ("cls");
  64. system("title Gerenciar Estoque/funcionarios");
  65. system ("color f9");
  66. while (!kbhit()){
  67.  
  68. system ("cls");
  69. printf("1-Gerenciar Estoque\n");
  70. printf("2-Gerenciar Funcionarios\n");
  71. printf("3-Ver relatorios\n");
  72. /* Pega a hora atual do sistema. */
  73. currentTime= time(NULL);
  74. /* Converte-o em uma estrutura tm. */
  75. timeinfo= localtime(&currentTime);
  76. printf("\n\n\n\n\n\n\n\n\n\n Hora Atual : %02d:%02d:%02d do dia : %02d/%02d/%02d \n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec,timeinfo->tm_mday,timeinfo->tm_mon+1,timeinfo->tm_year+1900);
  77. Sleep(500);
  78. }
  79. tecla = getch();
  80. switch(tecla){
  81. case 49:
  82. while (!kbhit()){
  83. Sleep(500);
  84. system ("cls");
  85. printf("1-Cadastrar Produto\n");
  86. printf("2-Consultar Produto\n");
  87. printf("3-Ver Estoque\n");
  88. printf("4-Registrar Venda\n");
  89. printf("5-Excluir produto\n");
  90. printf("6-Editar produto\n");
  91. /* Pega a hora atual do sistema. */
  92. currentTime= time(NULL);
  93. /* Converte-o em uma estrutura tm. */
  94. timeinfo= localtime(&currentTime);
  95. printf("\n\n\n\n\n\n\n\n\n\n Hora Atual : %02d:%02d:%02d no dia : %02d/%02d/%02d \n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec,timeinfo->tm_mday,timeinfo->tm_mon+1,timeinfo->tm_year+1900);
  96.  
  97. }
  98. teclagerenciar = getch();
  99. switch(teclagerenciar){
  100. case 49:
  101. system ("cls");
  102. printf("________________________Cadastro de Produto____________________________\n");
  103. // registrar produto
  104. printf("1-Coloque o nome do produto: ");
  105. scanf("%s",&nomeprod);
  106. REPETIRCODIGO:
  107. printf("Coloque o codigo do produto %s:",nomeprod);
  108. scanf("%d",&nprod);
  109. sprintf(localprod,"produtos\\%d.ini",nprod);
  110. if(ini = fopen( localprod, "r") != 0){
  111. printf("Ja existe um produto com esse Codigo!\n");
  112. goto REPETIRCODIGO;
  113. }
  114.  
  115. printf("Coloque o preco do produto %s:",nomeprod);
  116. scanf("%f",&infopreco);
  117. printf("Coloque a quantidade do produto %s:",nomeprod);
  118. scanf("%d",&quantprod);
  119. system ("cls");
  120. system("color 4E");
  121. printf("Voce registrou o produto: %s \ncodigo : %d\nQuantidade : %d\nPreco : %.2f",nomeprod,nprod,quantprod,infopreco);
  122. Beep(1000,500);
  123. if (argc<2) {
  124. ini_name = localprod;
  125. } else {
  126. ini_name = argv[1] ;
  127. }
  128. ini = fopen(localprod, "w");
  129. fprintf(ini,
  130. "#\n"
  131. "# Informacoes do produto\n"
  132. "#\n"
  133. "\n"
  134. "[info]\n"
  135. "\n"
  136. "nome = %s ;\n"
  137. "codigo = %d ;\n"
  138. "preco = %f ;\n"
  139. "quantidade = %d ;\n"
  140. "produto cadastrado = %02d:%02d:%02d no dia : %02d/%02d/%02d;\n"
  141.  
  142. "Quantidade_vendida = 0;\n"
  143. "[cores]\n",nomeprod,nprod,infopreco,quantprod,timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec,timeinfo->tm_mday,timeinfo->tm_mon+1,timeinfo->tm_year+1900);
  144. fclose(ini);
  145. /* Pega a hora atual do sistema. */
  146. currentTime= time(NULL);
  147. /* Converte-o em uma estrutura tm. */
  148. timeinfo= localtime(&currentTime);
  149. Sleep(2000);
  150. system ("cls");
  151. // segunda etapa,registrar cor e tamanho
  152. printf("________________________Cadastro de Cores____________________________\n");
  153. printf("Quantas cores o produto %s vai ter?",nomeprod);
  154. scanf("%d",&ncores);
  155. for(i=1;i<=ncores;i++){
  156.  
  157. printf("Coloque a %d cor:\n",i);
  158. scanf("%s",&corproduto[i]);
  159. printf(" Coloque quantidade de produto desta cor:\n");
  160. scanf("%d",&quantcorprod);
  161. if(i<ncores){
  162. ini = fopen(localprod,"a");
  163. fprintf(ini,"%s=%d;\n",corproduto[i],quantcorprod);
  164. fclose(ini);
  165. }
  166. if(i==ncores)
  167. {
  168. ini = fopen(localprod,"a");
  169. fprintf(ini,"%s=%d\n",corproduto[i],quantcorprod);
  170. fclose(ini);
  171. }
  172. }
  173.  
  174. Sleep(1000);
  175. system("cls");
  176. printf("_____________________Cadastro de Tamanhos________________________\n");
  177. printf("Quantos tamanhos deseja registrar para o produto %s",nomeprod);
  178. scanf("%d",&quantidadetamanho);
  179. ini = fopen(localprod,"a");
  180. fprintf(ini,"[tamanhos]\n",corproduto[i],quantcorprod);
  181. fclose(ini);
  182. for(i=1;i<=quantidadetamanho;i++)
  183. {
  184. if(i<quantidadetamanho)
  185. {
  186.  
  187.  
  188. printf("Coloque o %d Tamanho do produto: \n",i);
  189. scanf("%d",&tamanhoprod[i]);
  190. printf("Coloque a quantidade de produtos com o tamanho %d: \n",tamanhoprod[i]);
  191. scanf("%d",&quantidadetamanhoprod);
  192. ini = fopen(localprod,"a");
  193. fprintf(ini,"%d=%d;\n",tamanhoprod[i],quantidadetamanhoprod);
  194. fclose(ini);
  195. }
  196. if(i==quantidadetamanho)
  197. {
  198. printf("Coloque o %d Tamanho do produto: \n",i);
  199. scanf("%d",&tamanhoprod[i]);
  200. printf("Coloque a quantidade de produtos com o tamanho %d: \n",tamanhoprod[i]);
  201. scanf("%d",&quantidadetamanhoprod);
  202. ini = fopen(localprod,"a");
  203. fprintf(ini,"%d=%d\n",tamanhoprod[i],quantidadetamanhoprod);
  204. fclose(ini);
  205. }
  206.  
  207. }
  208. printf("Você completou o registro do produto %s",nomeprod);
  209. Sleep(1200);
  210. goto MENU;
  211.  
  212. break;
  213. // consultar produto
  214. teclagerenciar = 0;
  215. int teclaconsulta;
  216. case 50:
  217. system ("cls");
  218. printf("1-Consultar por Codigo \n");
  219. printf("2-Consultar por nome \n");
  220. teclaconsulta = getch();
  221. switch(teclaconsulta){
  222. case 49: // numero 1
  223. system ("cls");
  224. system("color 8F");
  225. consultarprod:
  226. printf("___________________________________________\n");
  227. printf("Coloque o codigo do produto a ser consultado: \n");
  228. printf("___________________________________________\n");
  229. scanf("%d",&nprod);
  230. sprintf(localprod,"produtos\\%d.ini",nprod);
  231. ini = fopen(localprod, "r");
  232. fscanf(ini,"%s",info);
  233. while(fgets(info,200,ini) != NULL){
  234. printf("%s",info);
  235. }
  236. Sleep(15000);
  237. break;
  238. case 50: //numero 2
  239. system ("cls");
  240. system("color 8F");
  241.  
  242. printf("___________________________________________\n");
  243. printf("Coloque o nome do produto a ser consultado: \n");
  244. printf("___________________________________________\n");
  245. scanf("%s",&info);
  246. char * s ;
  247. for(i=0;i<= MAX_PROD;i++){
  248. sprintf(localprod,"produtos\\%d.ini",i);
  249. if(ini = fopen( localprod, "r") != 0){ // VER SE ARQUIVO EXISTE
  250. ini = fopen(localprod, "r");
  251. ini = iniparser_load(localprod);
  252. s = iniparser_getstring(ini, "info:nome", NULL );
  253.  
  254. if (strncmp (info,s,5) == 0){ // compara as strings,se tiver 5 letras iguais
  255.  
  256. nprod = iniparser_getint(ini, "info:codigo", NULL );
  257. quantprod = iniparser_getint(ini, "info:quantidade", NULL );
  258. printf("Nome = %s Codigo = %d Quantidade = %d\n",s,nprod,quantprod);
  259. }
  260. }
  261. }
  262. Sleep(15000);
  263. break; // PARA O SWITCH INTERNO
  264. }
  265. goto MENU;
  266. break; // PARA O SWITCH EXTERNO
  267.  
  268. case 51:
  269. // ver produtos do estoque
  270. system ("cls");
  271. printf("Produtos no estoque :\n");
  272. i=0; //ZERA A VARIAVEL I PARA COMEÇAR A CONTAR
  273. for(nprod =0; nprod<=500; nprod++){
  274.  
  275. sprintf(localprod,"produtos\\%d.ini",nprod);
  276.  
  277. if(ini = fopen(localprod, "r") != 0){ // se o arquivo existir,somar o I e mostrar o nome.
  278. ini = iniparser_load(localprod);
  279. nomeprodutosalvo = iniparser_getstring(ini, "info:nome", NULL );
  280. nprod = iniparser_getint(ini, "info:codigo", NULL );
  281. quantprod = iniparser_getint(ini, "info:quantidade", NULL );
  282. printf("Nome = %s Codigo = %d Quantidade = %d\n",nomeprodutosalvo,nprod,quantprod);
  283. i++;
  284. }
  285.  
  286. if(nprod == 500){
  287. printf("numero total de produtos : %d",i);
  288. }
  289. }
  290.  
  291. break;
  292. case 52: // registrar venda
  293. REGISTRARVENDA:
  294. system ("cls");
  295. printf("Digite o codigo do Produto para registrar venda :");
  296. scanf("%d",&nprod);
  297. printf("Digite o codigo do funcionario para registrar venda :");
  298. scanf("%d",&codigofunc);
  299. sprintf(localprod,"produtos\\%d.ini",nprod);
  300. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  301.  
  302. // tirar o produto do estoque !
  303. ini = iniparser_load(localprod);
  304. quantprod = iniparser_getint(ini,"info:quantidade",-1);
  305. quantprodvendida = iniparser_getint(ini,"info:Quantidade_vendida",NULL);
  306. infopreco = iniparser_getint(ini,"info:preco",NULL);
  307. nomeprodutosalvo = iniparser_getstring(ini,"info:nome",NULL);
  308. if(quantprod == 0){
  309. system ("cls");
  310. Beep(3000,1000);
  311. printf("Esse produto nao existe no estoque!\n");
  312. Sleep(1500);
  313. goto REGISTRARVENDA;
  314. }
  315.  
  316. // checar se o produto e o funcionario existem
  317. if(ini = fopen( localfunc, "r") == 0){
  318. system ("cls");
  319. printf("nao existe um funcionario com esse codigo !\n");
  320. Beep(3000,1000);
  321. Sleep(1500);
  322. goto REGISTRARVENDA;
  323. }
  324. if(ini = fopen( localprod, "r") == 0){
  325. system ("cls");
  326. printf("nao existe um produto com esse codigo !\n");
  327. Beep(3000,1000);
  328. Sleep(1500);
  329. goto REGISTRARVENDA;
  330. }
  331. ini = fopen(localprod,"r");
  332. fgets(linha, 100, ini); // #
  333. fgets(linha1, 100, ini); // #
  334. fgets(linha2, 100, ini); // #
  335. fgets(linha3, 100, ini); //
  336. fgets(linha4, 100, ini); //[info]
  337. fgets(linha5, 100, ini); //
  338. fgets(linha6, 100, ini);//nome
  339. fgets(linha7, 100, ini);//codigo
  340. fgets(linha8, 100, ini);//preco
  341. fgets(linha9, 100, ini);//quantidade do estoque
  342. fgets(linha10, 100, ini);//produto cadastrado
  343. fgets(linha11, 100, ini); // produto cadastrado
  344. fclose(ini);
  345. ini = fopen(localprod,"w");
  346. sprintf(linha9,"quantidade = %d ;",quantprod-1); // edita a linha de quantidade estoque
  347. sprintf(linha11,"Quantidade_vendida = %d",quantprodvendida+1); // edita a linha quantidade de produto vendido
  348. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s\n%s%s\n",linha,linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10,linha11);
  349. fclose(ini); // \n no final pra poder indicar fim do arquivo
  350.  
  351. // dar a venda pro funcionario
  352. ini = fopen(localfunc,"r");
  353. fgets(linhafunc, 100, ini); // #
  354. fgets(linha1func, 100, ini); // #
  355. fgets(linha2func, 100, ini); // #
  356. fgets(linha3func, 100, ini); //
  357. fgets(linha4func, 100, ini); //[info]
  358. fgets(linha5func, 100, ini); //
  359. fgets(linha6func, 100, ini);//nome
  360. fgets(linha7func, 100, ini);//codigo
  361. fgets(linha8func, 100, ini);//preco
  362. fgets(linha9func, 100, ini);//quantidade
  363. fgets(linha10func, 100, ini); // quantidade preço total
  364. fgets(linha11func, 100, ini);//produto cadastrado
  365. fclose(ini);
  366. ini = iniparser_load(localfunc);
  367. nvendas = iniparser_getint(ini,"info:quantidade_de_produtos_vendidos",NULL);
  368. quantpreco = iniparser_getint(ini,"info:preço_total_das_vendas",NULL);
  369. int precototalvendas = infopreco + quantpreco;
  370. ini = fopen(localfunc,"w");
  371. sprintf(linha8func,"quantidade_de_produtos_vendidos = %d ;\n",nvendas+1); // poi a quantidade de vendas pro vendedor
  372. sprintf(linha9func,"preço_total_das_vendas = %d ;\n",precototalvendas); // o preco vendido por ele
  373. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s%s",linhafunc,linha1func,linha2func,linha3func,linha4func,linha5func,linha6func,linha7func,linha8func,linha9func,linha10func,linha11func);
  374. fclose(ini);
  375. // por no relatorio
  376. ini = iniparser_load(localfunc);
  377. nomefuncionario = iniparser_getstring(ini,"info:nome",NULL);
  378. ini = fopen("produtos\\relatorio.ini","a");
  379. /* Pega a hora atual do sistema. */
  380. currentTime= time(NULL);
  381. /* Converte-o em uma estrutura tm. */
  382. timeinfo= localtime(&currentTime);
  383. fprintf(ini,"o produto [%s] foi vendido pelo funcionario(a) [%s] ,Hora: %02d:%02d:%02d no dia : %02d/%02d/%02d \n",nomeprodutosalvo,nomefuncionario, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec,timeinfo->tm_mday,timeinfo->tm_mon+1,timeinfo->tm_year+1900);
  384. fclose(ini);
  385. printf("venda registrada");
  386. Beep(3000,500);
  387. Sleep(1000);
  388. goto REGISTRARVENDA;
  389. break;
  390. case 53:
  391. system ("cls");
  392. printf("Digite o codigo do Produto para ser excluido: ");
  393. scanf("%d",&nprod);
  394. sprintf(localprod,"produtos\\%d.ini",nprod);
  395. if(remove(localprod) == 0){
  396. printf("Produto com codigo %d foi removido com sucesso!\n",nprod);
  397. Beep(3000,500);
  398. Sleep(2000);
  399. system ("cls");
  400. goto MENU;
  401.  
  402. }else{
  403. system ("cls");
  404. printf("Produto com codigo %d nao existe !.\n",nprod);
  405. Beep(3000,1000);
  406. Sleep(1000);
  407. system ("cls");
  408. goto MENU;
  409. }
  410. break;
  411. case 54:
  412. system ("cls");
  413. printf("1-Alterar Nome do produto\n");
  414. printf("2-Alterar Codigo do produto\n");
  415. printf("3-Alterar quantidade no estoque do produto\n");
  416. printf("3-Alterar quantidade de produtos vendidos do produto\n");
  417. printf("4-Alterar Preco total das vendas do produto\n");
  418.  
  419. int controlareditarprod = getch();
  420. switch(controlareditarprod)
  421. {
  422. case 49:
  423. printf("1");
  424. Sleep(5000); // pra nao sair bugado
  425. break;
  426. }
  427. // pra nao sair bugado
  428. break; // para o menu anterior
  429.  
  430. } // quebra o switch do 1 menu
  431. break; // quebra o case 49
  432. case 50: // NUMERO 2
  433. system ("cls");
  434. printf("1-Cadastrar Funcionario\n");
  435. printf("2-Alterar Dados de Funcionario\n");
  436. printf("3-consultar Funcionario\n");
  437. printf("4-Excluir Funcionario\n");
  438. printf("5-Ver Funcionarios registrados\n");
  439. teclafuncionarios = getch();
  440. int teclacadastrar;
  441. switch(teclafuncionarios){
  442. // switch pra controle dos funcionarios
  443. case 49: // NUMERO 1
  444. //teclafuncionarios = getch();
  445. REPETIRFUNC:
  446. system ("cls");
  447. printf("Digite o nome do funcionario:\n");
  448. scanf("%s",&nomefunc);
  449. printf("Digite o novo codigo do funcionario:\n");
  450. scanf("%d",&codigofunc);
  451. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  452. if(ini = fopen( localfunc, "r") != 0){
  453. printf("Ja existe um funcionario com esse codigo !\n");
  454. goto REPETIRFUNC;
  455. }
  456. system ("cls");
  457. system("color 4E");
  458. printf("Funcionario Cadastrado :%s\nCodigo = %d",nomefunc,codigofunc);
  459. Beep(1000,500);
  460. if (argc<2) {
  461. ini_name = localprod;
  462. } else {
  463. ini_name = argv[1] ;
  464. }
  465.  
  466. ini = fopen(localfunc, "w");
  467.  
  468. fprintf(ini,
  469. "#\n"
  470. "# Informacoes do Funcionario\n"
  471. "#\n"
  472. "\n"
  473. "[info]\n"
  474. "\n"
  475. "nome = %s ;\n"
  476. "codigo = %d ;\n"
  477. "quantidade_de_produtos_vendidos = 0 ;\n"
  478. "preço_total_das_vendas = 0;\n"
  479. "Funcionario Cadastrado = %02d:%02d:%02d no dia : %02d/%02d/%02d "
  480. "\n",nomefunc,codigofunc,timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec,timeinfo->tm_mday,timeinfo->tm_mon+1,timeinfo->tm_year+1900);
  481. fclose(ini);
  482. Sleep(3000);
  483. goto MENU;
  484. break;
  485. case 50: // numero 2
  486. system ("cls");
  487. printf("1-Alterar Nome de Funcionario\n");
  488. printf("2-Alterar Codigo de Funcionario\n");
  489. printf("3-Alterar quantidade de produtos vendidos de um Funcionario\n");
  490. printf("4-Alterar Preco total das vendas de um Funcionario\n");
  491. int teclacontrole = getch();
  492. switch(teclacontrole){
  493. case 49: //alterar o nome do funcionario
  494. system ("cls");
  495. printf("____________________Alterar Nome de Funcionario____________\n");
  496. printf("1-Digite o codigo do Funcionario\n");
  497. // perguntar
  498. scanf("%d",&codigofunc);
  499. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  500. ini = iniparser_load(localfunc);
  501. nomefuncionario = iniparser_getstring(ini,"info:nome",-1);
  502. printf("Escreva o novo nome para o funcionario [%s]\n",nomefuncionario);
  503. scanf("%s",&nomefunc);
  504. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  505. ini = fopen(localfunc,"r");
  506. fgets(linha, 100, ini); // #
  507. fgets(linha1, 100, ini); // #
  508. fgets(linha2, 100, ini); // #
  509. fgets(linha3, 100, ini); //
  510. fgets(linha4, 100, ini); //[info]
  511. fgets(linha5, 100, ini); //
  512. fgets(linha6, 100, ini);//nome
  513. fgets(linha7, 100, ini);//codigo
  514. fgets(linha8, 100, ini);//preco
  515. fgets(linha9, 100, ini);//quantidade
  516. fgets(linha10, 100, ini);//produto cadastrado
  517. fgets(linha11, 100, ini);
  518. fclose(ini);
  519. ini = fopen(localfunc,"w");
  520. sprintf(linha6,"nome = %s ;\n",nomefunc); // linha pra alterar o codigo
  521. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s%s",linha,linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10,linha11);
  522. fclose(ini);
  523.  
  524. break;
  525. case 50: // alterar codigo do funcionario
  526. system ("cls");
  527. printf("Digite o codigo atual do Funcionario\n");
  528. scanf("%d",&codigofuncantigo);
  529. printf("Digite o codigo novo para Funcionario\n");
  530. scanf("%d",&codigofunc);
  531. sprintf(localfunc,"funcionarios\\%d.ini",codigofuncantigo);
  532. sprintf(localfuncnovo,"funcionarios\\%d.ini",codigofunc);
  533. ini = fopen(localfunc,"r");
  534. fgets(linha, 100, ini); // #
  535. fgets(linha1, 100, ini); // #
  536. fgets(linha2, 100, ini); // #
  537. fgets(linha3, 100, ini); //
  538. fgets(linha4, 100, ini); //[info]
  539. fgets(linha5, 100, ini); //
  540. fgets(linha6, 100, ini);//nome
  541. fgets(linha7, 100, ini);//codigo
  542. fgets(linha8, 100, ini);//preco
  543. fgets(linha9, 100, ini);//quantidade
  544. fgets(linha10, 100, ini);//produto cadastrado
  545. fgets(linha11, 100, ini);
  546. fclose(ini);
  547. ini = fopen(localfunc,"w");
  548. sprintf(linha7,"codigo = %d;\n",codigofunc); // linha pra alterar o codigo
  549. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s%s",linha,linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10,linha11);
  550. fclose(ini);
  551. rename(localfunc,localfuncnovo);
  552. printf("O codigo foi Alterado de %d para %d",codigofuncantigo,codigofunc);
  553. Sleep(2000);
  554. break;
  555. case 51: // alterar quantidade de produtos vendidos por um funcionario
  556. system ("cls");
  557. printf("Digite o codigo do Funcionario para alterar a quantidade de produtos vendidos\n");
  558. scanf("%d",&codigofunc);
  559. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  560. ini = iniparser_load(localfunc);
  561. nvendas = iniparser_getint(ini,"info:quantidade_de_produtos_vendidos",-1);
  562. printf("o funcionario tem %d vendas,digite o novo valor para alterar: ",nvendas);
  563. scanf("%d",&nvendas);
  564. printf("Quantidade de produtos vendidos pelo funcionario foi alterado para : %d!",nvendas);
  565.  
  566. ini = fopen(localfunc,"r");
  567. fgets(linha, 100, ini); // #
  568. fgets(linha1, 100, ini); // #
  569. fgets(linha2, 100, ini); // #
  570. fgets(linha3, 100, ini); //
  571. fgets(linha4, 100, ini); //[info]
  572. fgets(linha5, 100, ini); //
  573. fgets(linha6, 100, ini);//nome
  574. fgets(linha7, 100, ini);//codigo
  575. fgets(linha8, 100, ini);//preco
  576. fgets(linha9, 100, ini);//quantidade
  577. fgets(linha10, 100, ini);//produto cadastrado
  578. fgets(linha11, 100, ini);
  579. fclose(ini);
  580. ini = fopen(localfunc,"w");
  581. sprintf(linha8,"quantidade_de_produtos_vendidos = %d ;\n",nvendas); // linha pra alterar a quantidade de vendas
  582. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s%s",linha,linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10,linha11);
  583. fclose(ini);
  584. Sleep(2000); // espera um pouco para sair
  585. break;
  586. case 52: // alterar o preco total das vendas de um funcionario
  587. system ("cls");
  588. printf("Digite o codigo do Funcionario para alterar o preco total das vendas\n");
  589. scanf("%d",&codigofunc);
  590. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  591. ini = iniparser_load(localfunc);
  592. quantpreco = iniparser_getint(ini,"info:preço_total_das_vendas",-1);
  593. printf("o funcionario tem %f reais de vendas,digite o novo preco para alterar: ",quantpreco);
  594. scanf("%f",&quantpreco);
  595. printf("Quantidade de produtos vendidos pelo funcionario foi alterado para : %f REAIS!",quantpreco);
  596.  
  597. ini = fopen(localfunc,"r");
  598. fgets(linha, 100, ini); // #
  599. fgets(linha1, 100, ini); // #
  600. fgets(linha2, 100, ini); // #
  601. fgets(linha3, 100, ini); //
  602. fgets(linha4, 100, ini); //[info]
  603. fgets(linha5, 100, ini); //
  604. fgets(linha6, 100, ini);//nome
  605. fgets(linha7, 100, ini);//codigo
  606. fgets(linha8, 100, ini);//preco
  607. fgets(linha9, 100, ini);//quantidade
  608. fgets(linha10, 100, ini);//produto cadastrado
  609. fgets(linha11, 100, ini);
  610. fclose(ini);
  611. ini = fopen(localfunc,"w");
  612. sprintf(linha9,"preço_total_das_vendas = %f;\n",quantpreco); // linha pra alterar a quantidade de total de reais
  613. fprintf(ini,"%s%s%s%s%s%s%s%s%s%s%s",linha,linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10,linha11);
  614. fclose(ini);
  615. Sleep(2000); // espera um pouco para sair
  616. break;
  617. } // quebra o switch pra alterar info do funcionario
  618. break; //quebra pra nao pular pro case 51
  619. case 51: // continua o switch anterior,caso aperte 3,consultar funcionario
  620. system ("cls");
  621. printf("Coloque o codigo para consultar o funcionario: ");
  622. scanf("%d",&codigofunc);
  623. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  624. ini = fopen(localfunc, "r");
  625. fscanf(ini,"%s",info);
  626. while(fgets(info,200,ini) != NULL){
  627. printf("%s",info);
  628. }
  629. break;
  630. case 52: // continua o switch anterior,caso aperte 4,Excluir funcionario
  631. system ("cls");
  632. printf("Digite o codigo do funcionario para excluir: ");
  633. scanf("%d",&codigofunc);
  634. sprintf(localfunc,"funcionarios\\%d.ini",codigofunc);
  635. if(remove(localfunc) == 0){
  636. printf("funcionario com codigo %d foi removido com sucesso!\n",codigofunc);
  637. Beep(3000,500);
  638. Sleep(2000);
  639. system ("cls");
  640. goto MENU;
  641.  
  642. }else{
  643. system ("cls");
  644. printf("funcionario com codigo %d nao existe !.\n",codigofunc);
  645. Beep(3000,1000);
  646. Sleep(1000);
  647. system ("cls");
  648.  
  649. }
  650. break;
  651. case 53: // continua o switch anterior,caso aperte 5,mostrar todos os funcionarios
  652. system ("cls");
  653. i=0; // zera o i pra contagem
  654. for(nfunc =0; nfunc<=2000;nfunc++){
  655. sprintf(localfunc,"funcionarios\\%d.ini",nfunc);
  656. if(ini = fopen(localfunc, "r") != 0){ // se o arquivo existir,somar o I e mostrar o nome.
  657. ini = iniparser_load(localfunc);
  658. nomefuncionario = iniparser_getstring(ini, "info:nome", NULL );
  659. nprod = iniparser_getint(ini, "info:codigo", NULL );
  660. quantprod = iniparser_getint(ini, "info:quantidade_de_produtos_vendidos", NULL );
  661. quantpreco = iniparser_getint(ini,"info:preço_total_das_vendas",NULL);
  662. printf("Nome = %s Codigo = %d Quantidade de produtos vendidos = %d Preco total = %f\n",nomefuncionario,nprod,quantprod,quantpreco);
  663. i++;
  664. }
  665.  
  666. if(nfunc == 2000){
  667. printf("numero total de funcionarios : %d",i);
  668. }
  669.  
  670.  
  671. }
  672. Sleep(5000); break;
  673. }
  674. break; // para o menu do funcionario
  675. // quebra o switch geral
  676. //break;
  677. case 51:
  678. system("cls");
  679. printf("1-Ver relatorio de Vendas\n");
  680. printf("2-Ver relatorio de Produtos\n");
  681. printf("3-Ver relatorio de Funcionarios");
  682. int teclarelatorios = getch();
  683. switch(teclarelatorios){
  684. case 49:
  685. system("cls");
  686. ini = fopen("produtos\\relatorio.ini", "r");
  687. fscanf(ini,"%s",info);
  688. while(fgets(info,200,ini) != NULL){
  689. printf("%s",info);
  690. }
  691. break;
  692. case 50:
  693.  
  694. system("cls");
  695. // relatorio de produto
  696. // tem que ter no minimo 2 produtos para fazer a comparação
  697.  
  698. i=0; // zera o i pra contagem
  699. nvendas = 0; // zera para comparar depois
  700. for(nprod =0; nprod<=2000;nprod++){
  701. sprintf(localprod,"produtos\\%d.ini",nprod);
  702. if(ini = fopen(localprod, "r") != 0){ // se o arquivo existir,somar o I e mostrar o nome.
  703. ini = iniparser_load(localprod);
  704.  
  705. nvendasantes = iniparser_getint(ini, "info:Quantidade_vendida", NULL );
  706. if(nvendasantes > nvendas){
  707. nvendas = nvendasantes;
  708. nomeprodutosalvo = iniparser_getstring(ini, "info:nome", NULL );
  709.  
  710. }
  711.  
  712.  
  713. }
  714.  
  715. if(nprod == 2000){
  716. printf("O produto mais vendido foi [%s],com quantidade de vendas : [%d]\n",nomeprodutosalvo,nvendas);
  717. }
  718.  
  719.  
  720. }
  721. break;
  722. case 51:
  723. system("cls");
  724.  
  725. nvendas = 0; // zera para comparar depois
  726. for(nfunc =0; nfunc<=2000;nfunc++){
  727. sprintf(localfunc,"funcionarios\\%d.ini",nfunc);
  728. if(ini = fopen(localfunc, "r") != 0){ // se o arquivo existir,somar o I e mostrar o nome.
  729. ini = iniparser_load(localfunc);
  730.  
  731. nvendasantes = iniparser_getint(ini, "info:quantidade_de_produtos_vendidos", NULL );
  732. if(nvendasantes > nvendas){
  733. nvendas = nvendasantes;
  734. nomefuncionario = iniparser_getstring(ini, "info:nome", NULL );
  735.  
  736. }
  737.  
  738.  
  739. }
  740. if(nfunc == 2000){
  741. printf("O Funcionario que mais vendeu foi [%s],com quantidade de vendas : [%d]\n",nomefuncionario,nvendas);
  742. }
  743.  
  744.  
  745. }
  746.  
  747. break;
  748. }
  749. break;
  750. }
  751. getch();
  752. goto MENU;
  753.  
  754. return 0;
  755. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement