Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct _produto{
  6. char nome[30], data_fab[12], data_val[12], fornecedor[30];
  7. double val_venda;
  8. }Produto;
  9.  
  10. typedef struct _compra{
  11. Produto produtos[20];
  12. double total;
  13. }Compra;
  14.  
  15. typedef struct _cartao{
  16. int numero;
  17. Compra compras[20];
  18. double total_compras;
  19. }Cartao;
  20.  
  21. typedef struct _cliente{
  22. char nome[30], cpf[16], telefone[17];
  23. Cartao cartao;
  24. }Cliente;
  25.  
  26. typedef struct _estoque{
  27. Produto produto;
  28. int qtd_estoque;
  29. double val_aquisicao;
  30. }Estoque;
  31.  
  32. Produto produto[200];
  33. Estoque estoque[200];
  34. Cliente cliente[200];
  35. Cartao cartoes[200];
  36.  
  37. int nClientes=0;
  38. int nProdutos=0;
  39. int nCartoes=0;
  40.  
  41. void cadastrar_cliente1(){
  42. strncpy(cliente[0].nome, "Joao\n", 30);
  43. strncpy(cliente[0].cpf, "42704935262\n", 16);
  44. strncpy(cliente[0].telefone, "89357901\n", 17);
  45. cartoes[0].numero = 10101515;
  46. cliente[0].cartao = cartoes[0];
  47. cartoes[0].total_compras = 0;
  48. nClientes++;
  49. strncpy(cliente[1].nome, "Maria\n", 30);
  50. strncpy(cliente[1].cpf, "14448887499\n", 16);
  51. strncpy(cliente[1].telefone, "40506694\n", 17);
  52. cartoes[1].numero = 10101414;
  53. cliente[1].cartao = cartoes[1];
  54. cartoes[1].total_compras = 0;
  55. nClientes++;
  56. strncpy(cliente[2].nome, "Cleiton\n", 30);
  57. strncpy(cliente[2].cpf, "35622793610\n", 16);
  58. strncpy(cliente[2].telefone, "20517110\n", 17);
  59. cartoes[2].numero = 15152020;
  60. cliente[2].cartao = cartoes[2];
  61. cartoes[2].total_compras = 0;
  62. nClientes++;
  63. strncpy(cliente[3].nome, "Neusa\n", 30);
  64. strncpy(cliente[3].cpf, "69276273247\n", 16);
  65. strncpy(cliente[3].telefone, "61775244\n", 17);
  66. cartoes[3].numero = 11111212;
  67. cliente[3].cartao = cartoes[3];
  68. cartoes[3].total_compras = 0;
  69. nClientes++;
  70. strncpy(cliente[4].nome, "Gilberto\n", 30);
  71. strncpy(cliente[4].cpf, "80455816387\n", 16);
  72. strncpy(cliente[4].telefone, "44147635\n", 17);
  73. cartoes[4].numero = 22101515;
  74. cliente[4].cartao = cartoes[4];
  75. cartoes[4].total_compras = 0;
  76. nClientes++;
  77. }
  78. void cadastrar_cliente(){
  79. int i, op;
  80. for(i=nClientes; i<200; i++){
  81. fflush(stdin);
  82. printf("Digite o nome do cliente: ");
  83. fgets(cliente[i].nome, 30, stdin);
  84. printf("Digite o CPF (somente números): ");
  85. fgets(cliente[i].cpf, 16, stdin);
  86. printf("Digite o telefone: ");
  87. fgets(cliente[i].telefone, 17, stdin);
  88. printf("Digite o numero do cartao: ");
  89. scanf("%d", &cartoes[i].numero);
  90. cliente[i].cartao = cartoes[i];
  91. printf("\nCadastrar outro cliente? 1- SIM 2- NAO\n");
  92. scanf("%d", &op);
  93. nClientes++;
  94. if(op==2) return;
  95. }
  96. }
  97. void cadastrar_produto1(){
  98. strncpy(produto[0].nome, "Arroz\n", 30);
  99. strncpy(produto[0].data_fab, "05/08/17\n", 12);
  100. strncpy(produto[0].data_val, "11/12/17\n", 12);
  101. produto[0].val_venda = 8;
  102. strncpy(produto[0].fornecedor, "Chines\n", 30);
  103. estoque[0].qtd_estoque = 9;
  104. estoque[0].produto = produto[0];
  105. nProdutos++;
  106. strncpy(produto[1].nome, "Feijao\n", 30);
  107. strncpy(produto[1].data_fab, "10/07/17\n", 12);
  108. strncpy(produto[1].data_val, "22/11/17\n", 12);
  109. produto[1].val_venda = 11;
  110. strncpy(produto[1].fornecedor, "Robervaldo\n", 30);
  111. estoque[1].qtd_estoque = 18;
  112. estoque[1].produto = produto[1];
  113. nProdutos++;
  114. strncpy(produto[2].nome, "Macarrao\n", 30);
  115. strncpy(produto[2].data_fab, "11/09/17\n", 12);
  116. strncpy(produto[2].data_val, "01/02/18\n", 12);
  117. produto[2].val_venda = 5;
  118. strncpy(produto[2].fornecedor, "Chines\n", 30);
  119. estoque[2].qtd_estoque = 13;
  120. estoque[2].produto = produto[2];
  121. nProdutos++;
  122. strncpy(produto[3].nome, "Batata\n", 30);
  123. strncpy(produto[3].data_fab, "15/11/17\n", 12);
  124. strncpy(produto[3].data_val, "07/04/18\n", 12);
  125. produto[3].val_venda = 8;
  126. strncpy(produto[3].fornecedor, "Japa\n", 30);
  127. estoque[3].qtd_estoque = 28;
  128. estoque[3].produto = produto[3];
  129. nProdutos++;
  130. strncpy(produto[4].nome, "Coca\n", 30);
  131. strncpy(produto[4].data_fab, "11/12/17\n", 12);
  132. strncpy(produto[4].data_val, "01/02/18\n", 12);
  133. produto[4].val_venda = 3;
  134. strncpy(produto[4].fornecedor, "Japa\n", 30);
  135. estoque[4].qtd_estoque = 22;
  136. estoque[4].produto = produto[4];
  137. nProdutos++;
  138. }
  139. void cadastrar_produto(){
  140. int i, op;
  141. for(i=nProdutos; i<200; i++){
  142. fflush(stdin);
  143. printf("Digite o nome do produto: ");
  144. fgets(produto[i].nome, 30, stdin);
  145. printf("Digite a data de fabricacao: ");
  146. fgets(produto[i].data_fab, 12, stdin);
  147. printf("Digite a data de validade: ");
  148. fgets(produto[i].data_val, 12, stdin);
  149. printf("Digite o valor da venda: ");
  150. scanf("%lf", &produto[i].val_venda);
  151. fflush(stdin);
  152. printf("Digite o fornecedor: ");
  153. fgets(produto[i].fornecedor, 30, stdin);
  154. printf("Quantidade de produtos em estoque: ");
  155. scanf("%d", &estoque[i].qtd_estoque);
  156. printf("\n");
  157. estoque[i].produto = produto[i];
  158. nProdutos++;
  159. printf("Cadastrar outro ? 1- SIM 2- NAO&quot\n");
  160. scanf("%d", &op);
  161. if(op==2) return;
  162. }
  163. }
  164. void cadastrar_venda(){
  165. int i=0, j, op, op2, op3, op4, qty, total=0;
  166. char cpff[20];
  167. Compra compra;
  168. compra.total = 0;
  169. fflush(stdin);
  170. printf("Informe o CPF do cliente: ");
  171. fgets(cpff, 20, stdin);
  172. Cliente clienteAux;
  173. strncpy(clienteAux.nome,"NULL",30);
  174.  
  175. for(j=0; j<nClientes; j++){
  176. if(strcmp(cpff, cliente[j].cpf)==0){
  177. clienteAux = cliente[j];
  178. break;
  179. }
  180. }
  181. if(strcmp(clienteAux.nome, "NULL")==0){
  182. printf("\n----------------------\n Cliente não encontrado \n----------------------\n");
  183. return;
  184. }
  185.  
  186. do{
  187. listar_produtos();
  188. printf("\nInforme o codigo do produto:\n");
  189. scanf("%d", &op);
  190. printf("\nQuantidade: ");
  191. scanf("%d", &qty);
  192. if(estoque[op-1].qtd_estoque < qty){
  193. printf("\n----------------------\n Produto indisponivel \n----------------------\n");
  194. return;
  195. }else{
  196. estoque[op-1].qtd_estoque -= qty;
  197. compra.total += (qty*estoque[op-1].produto.val_venda);
  198. compra.produtos[i] = estoque[op-1].produto;
  199. printf("%d produtos %s com valor de R$ %.2lf foi adicionado a venda.\n", qty, produto[op-1].nome, produto[op-1].val_venda);
  200. printf("Valor total atual: %.2lf\n", compra.total);
  201. }
  202. printf("\n\nDeseja adicionar outro produto?\n1-SIM 2-NAO\n\n");
  203. scanf("%d", &op2);
  204. i++;
  205. }while(op2!=2);
  206. printf("\n\nForma de pagamento: 1-CARTAO 2-DINHEIRO\n\n");
  207. scanf("%d", &op3);
  208. if(op3==1){
  209. cliente[j].cartao.compras[0] = compra;
  210. cliente[j].cartao.total_compras += compra.total;
  211. }
  212. printf("\n---------------------------------\n Venda efetuada com sucesso \n---------------------------------\n\ns");
  213. }
  214. void buscar_cliente(){
  215. int i;
  216. char cpff[20];
  217. fflush(stdin);
  218. printf("Informe o CPF do cliente: ");
  219. fgets(cpff, 20, stdin);
  220. for(i=0; i<nClientes; i++){
  221. if(strcmp(cpff, cliente[i].cpf)==0){
  222. printf("\nNome = %s", cliente[i].nome);
  223. printf("CPF = %s", cliente[i].cpf);
  224. printf("Telefone = %s\n\n", cliente[i].telefone);
  225. return;
  226. }
  227. }
  228. (printf("\n--------------------\n cpf nao encontrado \n--------------------\n\n"));
  229. }
  230. void buscar_produto(){
  231. int i;
  232. char produtof[30];
  233. fflush(stdin);
  234. printf("Informe o nome do produto: ");
  235. fgets(produtof, 30, stdin);
  236. for(i=0; i<200; i++){
  237. if(strcmp(produtof, produto[i].nome)==0){
  238. printf("\nNome produto: %s", produto[i].nome);
  239. printf("Data de fabricacao: %s", produto[i].data_fab);
  240. printf("Data de validade: %s", produto[i].data_val);
  241. printf("Valor de venda: %.2lfR$", produto[i].val_venda);
  242. printf("\nFornecedor: %s\n", produto[i].fornecedor);
  243. return;
  244. }
  245. }
  246. (printf("\n------------------------\n produto nao encontrado \n------------------------\n\n"));
  247. }
  248. void adicionar_prod_estoque(){
  249. int op, qtd;
  250. listar_produtos();
  251. printf("Qual produto deseja adicionar unidades?\n");
  252. scanf("%d", &op);
  253. printf("Quantas unidades deseja adicionar?\n");
  254. scanf("%d", &qtd);
  255. estoque[op-1].qtd_estoque += qtd;
  256. }
  257. void listar_prod_fornecedor(){
  258. int i;
  259. char fornecedorf[30];
  260. fflush(stdin);
  261. printf("Informe o nome do fornecedor: ");
  262. fgets(fornecedorf, 30, stdin);
  263. for(i=0; i<200; i++){
  264. if(strcmp(fornecedorf, produto[i].fornecedor)==0){
  265. printf("\nNome produto: %s", produto[i].nome);
  266. printf("Data de fabricacao: %s", produto[i].data_fab);
  267. printf("Data de validade: %s", produto[i].data_val);
  268. printf("Valor de venda: %.2lfR$", produto[i].val_venda);
  269. printf("\nFornecedor: %s\n", produto[i].fornecedor);
  270. return;
  271. }
  272. }
  273. (printf("\n---------------------------\n fornecedor nao encontrado \n---------------------------\n\n"));
  274. }
  275. void listar_prod_baixa(){
  276. int i;
  277. for(i=0; i<nProdutos; i++){
  278. if(estoque[i].qtd_estoque < 10){
  279. printf("Codigo produto: %d\n", i+1);
  280. printf("Nome produto: %s", produto[i].nome);
  281. printf("Fornecedor: %s\n", produto[i].fornecedor);
  282. }
  283. }
  284. }
  285. void listar_clientes(){
  286. int i, codigo=0;
  287. for(i=0;i<nClientes;i++,codigo++){
  288. printf("Codigo: %d\n", codigo+1);
  289. printf("Nome: %sCPF: %sTelefone: %sCartao: %d\n\n", cliente[i].nome, cliente[i].cpf, cliente[i].telefone, cliente[i].cartao.numero);
  290. }
  291. }
  292. void listar_produtos(){
  293. int i;
  294. for(i=0; i<nProdutos; i++){
  295. printf("Codigo produto: %d\n", i+1);
  296. printf("Nome produto: %s", produto[i].nome);
  297. printf("Fornecedor: %s\n", produto[i].fornecedor);
  298. }
  299. }
  300. void listar_clientes_compra(){
  301. int i;
  302. for(i=0; i<nClientes; i++){
  303. if(cliente[i].cartao.total_compras > 0)
  304. printf("Nome: %s\n", cliente[i].nome);
  305. }
  306. }
  307.  
  308. int main(void){
  309. int opcao;
  310. cadastrar_produto1();
  311. cadastrar_cliente1();
  312. do{
  313. printf("\tMenu de Opções:\n");
  314. printf("1 - Cadastrar clientes, produtos ou venda:\n");
  315. printf("2 - Buscar cliente:\n");
  316. printf("3 - Buscar produto:\n");
  317. printf("4 - Adicionar produto no estoque:\n");
  318. printf("5 - Listar produtos:\n");
  319. printf("6 - Listar clientes:\n");
  320. printf("7 - Listar clientes que efetuaram compras com cartao:\n");
  321. printf("0 - Sair do sistema:\n");
  322. printf("\n--> ");
  323. scanf("%d", &opcao);
  324. printf("\n");
  325. switch(opcao){
  326. case 1:
  327. do{
  328. printf("\tSubmenu de cadastro\n");
  329. printf("1 - Cadastrar cliente:\n");
  330. printf("2 - Cadastrar produto:\n");
  331. printf("3 - Cadastrar venda:\n");
  332. printf("0 - Voltar ao menu anterior\n");
  333. printf("\n--> ");
  334. scanf("%d", &opcao);
  335. printf("\n");
  336. switch(opcao){
  337. case 1:
  338. cadastrar_cliente();
  339. opcao = 0;
  340. break;
  341. case 2:
  342. cadastrar_produto();
  343. opcao = 0;
  344. break;
  345. case 3:
  346. cadastrar_venda();
  347. opcao = 0;
  348. break;
  349. case 0:
  350. break;
  351. default:
  352. printf("Opcao inválida\n\n");
  353. break;
  354. }
  355. }while(opcao != 0);
  356. opcao = 1;
  357. break;
  358. case 2:
  359. buscar_cliente();
  360. break;
  361. case 3:
  362. buscar_produto();
  363. break;
  364. case 4:
  365. adicionar_prod_estoque();
  366. break;
  367. case 5:
  368. do{
  369. printf("\tSubmenu de produtos\n");
  370. printf("1 - Listar produtos por fornecedor:\n");
  371. printf("2 - Listar produtos em baixa no estoque:\n");
  372. printf("0 - Voltar ao menu anterior\n");
  373. printf("\n--> ");
  374. scanf("%d", &opcao);
  375. printf("\n");
  376. switch(opcao){
  377. case 1:
  378. listar_prod_fornecedor();
  379. opcao = 0;
  380. break;
  381. case 2:
  382. listar_prod_baixa();
  383. opcao = 0;
  384. break;
  385. case 0:
  386. break;
  387. default:
  388. printf("Opcao inválida\n\n");
  389. break;
  390. }
  391.  
  392. }while(opcao != 0);
  393. opcao = 5;
  394. break;
  395. case 6:
  396. listar_clientes();
  397. break;
  398. case 7:
  399. listar_clientes_compra();
  400. break;
  401. case 0:
  402. break;
  403. default:
  404. printf("Opção inválida\n\n");
  405. }
  406. }while(opcao != 0);
  407.  
  408.  
  409. return 0;
  410. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement