Advertisement
Guest User

Untitled

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