Advertisement
argentinapb

Untitled

Jun 24th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct data{
  5. int dia;
  6. int mes;
  7. int ano;
  8. };
  9.  
  10. typedef struct data data;
  11.  
  12. struct endereco{
  13. char rua[100];
  14. char cidade[30];
  15. char estado[30];
  16. int numero;
  17. };
  18.  
  19. typedef struct endereco endereco;
  20.  
  21. struct cliente{
  22. int cpf;
  23. int telefone;
  24. char nome[100];
  25. struct endereco;
  26. struct data;
  27. struct cliente *ant;
  28. struct cliente *prox;
  29. };
  30.  
  31. typedef struct cliente cliente;
  32.  
  33. struct produto{
  34. int codigo;
  35. char descricao;
  36. int quant_est;
  37. double preco_und;
  38. struct produto *ante;
  39. struct produto *proxi;
  40. };
  41.  
  42. typedef struct produto produto;
  43.  
  44. struct venda {
  45. int qtd_compra;
  46. int c;
  47. int co;
  48. struct venda *antes;
  49. struct venda *proxim;
  50. };
  51.  
  52. typedef struct venda venda;
  53.  
  54. cliente *inicializar_cliente(int x){
  55. cliente *novo =(cliente*) malloc(sizeof(cliente));
  56. novo->cpf = x;
  57.  
  58. printf("digite o nome do cliente: ");
  59. gets(novo->nome);
  60.  
  61. printf("digite o telefone do cliente: ");
  62. scanf("%d", &novo->telefone);
  63.  
  64. printf("digite a data de aniversario do cliente dd/mm/aaaa: ");
  65. scanf("%d/%d/%d", &novo->data->dia, &novo->data->mes, &novo->data->ano);
  66.  
  67. printf("digitar o estado do cliente: ");
  68. gets(novo->endereco->estado);
  69.  
  70. printf("digitar a cidade do cliente: ");
  71. gets(novo->endereco->cidade);
  72.  
  73. printf("digitar a rua do cliente: ");
  74. gets(novo->endereco->rua);
  75.  
  76. printf("digitar o numero do cliente: ");
  77. gets(novo->endereco->numero);
  78.  
  79.  
  80. novo->prox = NULL;
  81. novo->ant = NULL;
  82. return novo;
  83. }
  84.  
  85. produto *inicializar_produto(int x){
  86. produto *novo =(produto*) malloc(sizeof(produto));
  87. novo->codigo = x;
  88.  
  89. printf("digite a descricao do produto: ");
  90. gets(novo->descricao);
  91.  
  92. printf("digite a quantidade de estoque: ");
  93. scanf("%d", &novo->quant_est);
  94.  
  95. printf("digite o preco da unidade: ");
  96. scanf("%lf", novo->preco_und);
  97.  
  98. novo->proxi = NULL;
  99. novo->ante = NULL;
  100. return novo;
  101. }
  102.  
  103. void inclusao_cliente(cliente *lista, int cpf){
  104. int z = 0;
  105. if(lista->prox == NULL){
  106. cliente *novo = inicializar(cpf);
  107. lista->prox = novo;
  108. novo->ant = lista;
  109. }
  110. else {
  111. cliente *aux = lista;
  112.  
  113. while(aux->prox != NULL){
  114. if(aux->cpf == cpf){
  115. z = 1;
  116. }
  117. aux = aux->prox;
  118.  
  119. }
  120. if(z == 0){
  121. cliente *novo = inicializar_cliente(cpf);
  122. aux->prox = novo;
  123. novo->ant = aux;
  124. }
  125. }
  126.  
  127. }
  128.  
  129.  
  130.  
  131. void alteracao_cliente(cliente *lista, int cpf){
  132. int z = 0;
  133. cliente *aux= lista;
  134. while(aux->prox != NULL){
  135. if(aux->cpf == cpf){
  136. inicializar_cliente(cpf);
  137. z = 1;
  138. }
  139. aux = aux->prox;
  140.  
  141. }
  142. if(z == 0)
  143. printf("cliente nao encontrado\n");
  144.  
  145.  
  146. }
  147.  
  148. void consulta_cliente(cliente *lista, int cpf){
  149. int z = 0;
  150. cliente *aux= lista;
  151. while(aux->prox != NULL){
  152. if(aux->cpf == cpf){
  153. printf("cpf: %d\n", aux->cpf);
  154. printf("nome: %s\n", aux->nome);
  155. printf("telefone: %d\n", aux->telefone);
  156. printf("estado: %s\n", aux->endereco->estado);
  157. printf("cidade: %s\n", aux->endereco->cidade);
  158. printf("rua: %s\n", aux->endereco->rua);
  159. printf("numero: %d\n", aux->endereco->numero);
  160. z = 1;
  161. }
  162. aux = aux->prox;
  163.  
  164. }
  165. if(z == 0)
  166. printf("cliente nao encontrado\n");
  167.  
  168. }
  169.  
  170.  
  171. void deletar_cliente(cliente *lista, int cpf){
  172.  
  173. }
  174.  
  175. void inclusao_produto(produto *lista, int codigo){
  176. int z = 0;
  177. if(lista->proxi == NULL){
  178. produto *novo = inicializar_produto(codigo);
  179. lista->proxi = novo;
  180. novo->ante = lista;
  181. }
  182. else {
  183. produto *aux = lista;
  184.  
  185. while(aux->proxi != NULL){
  186. if(aux->codigo == codigo){
  187. z = 1;
  188. }
  189. aux = aux->prox;
  190. }
  191. if(z == 0){
  192. produto *novo = inicializar_produto(codigo);
  193. aux->proxi = novo;
  194. novo->ante = aux;
  195. }
  196. }
  197.  
  198. }
  199.  
  200. void alteracao_produto(produto *lista, int codigo){
  201. int z = 0;
  202. produto *aux= lista;
  203. while(aux->proxi != NULL){
  204. if(aux->codigo == codigo){
  205. inicializar_produto(codigo);
  206. z = 1;
  207. }
  208. aux = aux->proxi;
  209.  
  210. }
  211. if(z == 0)
  212. printf("cliente nao encontrado\n");
  213.  
  214.  
  215. }
  216.  
  217. void consulta_produto(produto *lista, int codigo){
  218. int z = 0;
  219. produto *aux= lista;
  220. while(aux->proxi != NULL){
  221. if(aux->codigo == codigo){
  222. printf("codigo: %d\n", aux->codigo);
  223. printf("descricao: %s\n", aux->descricao);
  224. printf("quantidade em estoque: %d\n", aux->quant_est);
  225. printf("preco unitario: %lf\n", aux->preco_und);
  226.  
  227. z = 1;
  228. }
  229. aux = aux->proxi;
  230.  
  231. }
  232. if(z == 0)
  233. printf("cliente nao encontrado\n");
  234. }
  235.  
  236. void deletar_produto(produto *lista, int codigo){
  237.  
  238. }
  239.  
  240. void inclusao_venda(venda *lista, cliente *lista1, produto *lista2, int codigo, int cpf, int qtd){
  241. produto *aux = lista2;
  242. cliente *aux1 = lista1;
  243. int z = 0, y = 0, x = 0;
  244.  
  245. while(aux->proxi != NULL){
  246. if(aux->codigo == codigo){
  247. z = 1;
  248. if(aux->quant_est >= qtd){
  249. x = 1;
  250. }
  251. }
  252. aux = aux->prox;
  253. }
  254.  
  255. while(aux1->prox !=NULL){
  256. if(aux1->cpf == cpf){
  257. y = 1;
  258. }
  259. aux1 = aux1->prox;
  260. }
  261. if(x == 1 && y == 1 && z == 1){
  262. if(lista->proxim == NULL){
  263. venda* novo = (venda*) malloc(sizeof(venda));
  264. venda->proxim = NULL;
  265. venda->antes = NULL;
  266. venda->qtd_compra = qtd;
  267. venda->c = cpf;
  268. venda->co = codigo;
  269. lista->proxim = novo;
  270. novo->antes = lista;
  271. }
  272. else{
  273.  
  274. venda *aux2 = lista;
  275.  
  276. while(aux2->proxi, != NULL){
  277. aux2 = aux2->proxim;
  278. }
  279. venda* novo = (venda*) malloc(sizeof(venda));
  280. venda->proxim = NULL;
  281. venda->antes = NULL;
  282. venda->qtd_compra = qtd;
  283. venda->c = cpf;
  284. venda->co = codigo;
  285. aux2->proxim = novo;
  286. novo->antes = aux;
  287. }
  288. }
  289. else if(x == 1 && y ==){
  290. printf("produto nao encontrado\n");}
  291. else if (x == 1 && y == 1 && z == 0 ){
  292. printf("quantidade de estoque menor\n");
  293. }
  294. else
  295. printf("cliente nao encontrado\n");
  296. }
  297.  
  298.  
  299.  
  300.  
  301. }
  302.  
  303. void alteracao_venda(venda *lista, int codigo, int cpf){
  304.  
  305. venda *aux = lista;
  306. while(aux->proxim != NULL){
  307. if(aux->c == cpf && aux->co == codigo){
  308. printf("digite o novo cpf: ");
  309. scanf("%d", &aux->c);
  310. printf("digite o novo codigo: ");
  311. scanf("%d", &aux->co);
  312. printf("digite a nova quantidade: ");
  313. scanf("%d", &aux->qtd_compra);
  314. }
  315. aux = aux->proxim;
  316. }
  317.  
  318.  
  319. }
  320.  
  321. void consulta_venda(venda *lista, int codigo, int cpf){
  322. venda *aux = lista;
  323. while(aux->proxim != NULL){
  324. if(aux->c == cpf && aux->co == codigo){
  325. printf("o cpf eh: %d\n", aux->c);
  326. printf("o codigo eh: %d\n", aux->co);
  327. printf("a quantidade eh: %d\n", aux->qtd_compra);
  328.  
  329. }
  330. aux = aux->proxim;
  331. }
  332.  
  333. }
  334.  
  335. void deletar_venda(venda *lista, int codigo, int cpf){
  336.  
  337. }
  338.  
  339. int main (){
  340. int x, y, cp, cod, qtd;
  341. cliente lista;
  342. lista.prox = NULL;
  343. lista.ant = NULL;
  344. produto lista1;
  345. lista1.ante = NULL;
  346. lista1.proxi = NULL;
  347. venda lista2;
  348. lista2.antes = NULL;
  349. lista2.proxim = NULL;
  350. do{
  351. printf("1.Cliente\n2.Produto\n3.Vendas");
  352. scanf("%d",&x);
  353.  
  354. switch(x){
  355. case 1:
  356.  
  357. printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
  358. scanf("%d", &y);
  359. switch(y){
  360. case 1:
  361. printf("digite o cpf do cliente: ");
  362. scanf("%d", &cp);
  363. inclusao_cliente(&lista, cp);
  364. break;
  365. case 2:
  366. printf("digite o cpf do cliente: ");
  367. scanf("%d", &cp);
  368. alteracao_cliente(&lista, cp);
  369. break;
  370. case 3:
  371. printf("digite o cpf do cliente: ");
  372. scanf("%d", &cp);
  373. consulta_cliente(&lista, cp);
  374. break;
  375. case 4:
  376. printf("digite o cpf do cliente: ");
  377. scanf("%d", &cp);
  378. deletar_cliente(&lista, cp);
  379. break;
  380. default:
  381. printf("valor invalido, tente novamente\n");
  382.  
  383.  
  384. }
  385. case 2:
  386.  
  387. printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
  388. scanf("%d", &y);
  389. switch(y){
  390. case 1:
  391. printf("digite o codigo do produto: ");
  392. scanf("%d", &cod);
  393. inclusao_cliente(&lista1, cod);
  394. break;
  395. case 2:
  396. printf("digite o codigo do produto: ");
  397. scanf("%d", &cod);
  398. alteracao_produto(&lista1, cod);
  399. break;
  400. case 3:
  401. printf("digite o codigo do produto: ");
  402. scanf("%d", &cod);
  403. consulta_produto(&lista1, cod);
  404. break;
  405. case 4:
  406. printf("digite o codigo do produto: ");
  407. scanf("%d", &cod);
  408. deletar_produto(&lista1, cod);
  409. break;
  410. default:
  411. printf("valor invalido, tente novamente\n");
  412.  
  413. case 3:
  414.  
  415. printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
  416. scanf("%d", &y);
  417. switch(y){
  418. case 1:
  419. printf("digite o codigo do produto e o cpf do cliente e a quantidade a ser vendida: ");
  420. scanf("%d %d %d", &cod, &cp, &qtd);
  421. inclusao_venda(&lista2, &lista, &lista1, cod, cp, qtd);
  422. break;
  423. case 2:
  424. printf("digite o codigo do produto e o cpf do cliente: ");
  425. scanf("%d %d", &cod, &cp);
  426. alteracao_venda(&lista2, cod, cp);
  427. break;
  428. case 3:
  429. printf("digite o codigo do produto e o cpf do cliente: ");
  430. scanf("%d", &cod, &cp);
  431. consulta_venda(&lista2, cod, cp);
  432. break;
  433. case 4:
  434. printf("digite o codigo do produto e o cpf do cliente: ");
  435. scanf("%d %d", &cod, &cp);
  436. deletar_produto(&lista2, cod, cp);
  437. break;
  438. default:
  439. printf("valor invalido, tente novamente\n");
  440.  
  441. }
  442.  
  443.  
  444.  
  445.  
  446. }
  447. }
  448. }while (x!= 0);
  449. return 0;
  450. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement