From 6023d0e721dd492488ebaa055a4d031543ef415c Mon Sep 17 00:00:00 2001 From: Aluno Date: Wed, 30 Aug 2017 21:07:46 -0300 Subject: [PATCH 01/92] Cadastro de clientes --- src/cliente.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 src/cliente.c diff --git a/src/cliente.c b/src/cliente.c new file mode 100644 index 0000000..2059568 --- /dev/null +++ b/src/cliente.c @@ -0,0 +1,116 @@ +/*Cadastro de clientes + + Academicos: Bruno Geovane + Gilson Soares + Juliana Maciel + Leonardo Cordeiro + Marco Aurelio + Ruan Miller + */ +#include +#include +#include + +int validarSexo(char sexo){ + return sexo == 'M' && sexo == 'm' && sexo == 'F' && sexo == 'f'; +} + +int main() { + //Declaracao de variaveis + char nome[100]; + char sexo; + int data_ano; + int data_mes; + int data_dia; + char endereco[200]; + char cidade[50]; + char cep[10]; + char telefone[15]; + char cpf[14]; + char rg[10]; + char profissao[50]; + + do { + printf("####################################\n"); + printf("# Cadastro de clientes #\n"); + printf("####################################\n\n"); + + printf("Informe o nome completo para cadastro ou aperte para encerrar: "); + scanf("%s", nome); getchar(); + + if(nome != " "){ + + printf("Informe o sexo [M]asculino ou [F]eminino? "); + scanf("%c", &sexo); + if(sexo == 'M' && sexo == 'm' && sexo == 'F' && sexo == 'f'){ + scanf("%c", &sexo); + } else { + while (sexo != 'M' && sexo != 'm' && sexo != 'F' && sexo != 'f') { + printf("Informe uma letra valida correspondente ao sexo\n"); + printf("Qual o sexo [M]asculino ou [F]eminino? "); + scanf("%c", &sexo); + } + } + + do { + scanf("%c", &sexo); + + if (!validarSexo(sexo)){ + printf("Informe uma letra valida correspondente ao sexo\n"); + } + } while (!validarSexo(sexo)); + + printf("Informe o ano de nascimento [aaaa]: "); + scanf("%d", &data_ano); + + printf("Informe o mes de nascimento [mm]: "); + scanf("%d", &data_mes); + if (data_mes <= 12 && data_mes >= 1){ + scanf("%d", &data_mes); + } else { + while (data_mes > 12 || data_mes < 1){ + printf("Informe um mes valido!\n"); + printf("Informe o mes de nascimento [mm]: "); + scanf("%d", &data_mes); + } + } + + printf("Informe o dia de nascimento [dd]: "); + scanf("%d", &data_dia); + if (data_dia >= 1 && data_dia <= 31){ + scanf("%d", &data_dia); + } else { + while (data_dia < 1 || data_dia > 31){ + printf("Informe um dia valido!\n"); + printf("Informe o dia de nascimento [dd]: "); + scanf("%d", &data_dia); + } + } + + printf("Informe o endereco de residencia: "); + scanf("%s", endereco); getchar(); + + printf("Informe a cidade: "); + scanf("%s", cidade); getchar(); + + printf("Informe o CEP: "); + scanf("%s", cep); getchar(); + + printf("Informe um telefone de contato [DD9XXXXXXXX]: "); + scanf("%s", telefone); getchar(); + + printf("Informe o seu CPF: "); + scanf("%s", cpf); getchar(); + + printf("Informe o seu RG: "); + scanf("%s", rg); getchar(); + + printf("Informe a sua profissao: "); + scanf("%s", profissao); getchar(); + } + } while (nome != ""); + + system ("PAUSE"); + return 0; +} + From ece956ca6542698bb5779e357c83ef5397514fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Wed, 30 Aug 2017 22:24:33 -0300 Subject: [PATCH 02/92] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Melhoria na estrutura dos operadores lógicos e organização das variáveis com o struct. --- src/clientes.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 src/clientes.c diff --git a/src/clientes.c b/src/clientes.c new file mode 100644 index 0000000..7fd4f41 --- /dev/null +++ b/src/clientes.c @@ -0,0 +1,115 @@ +/*Cadastro de clientes + + Academicos: Bruno Geovane + Gilson Soares + Juliana Maciel + Leonardo Cordeiro + Marco Aurelio + Ruan Miller + */ + +#include +#include +#include + +//Funções para validação de dados +int validarSexo(char sexo){ + return sexo != 'M' && sexo != 'm' && sexo != 'F' && sexo != 'f'; +} + +int validarMes(int data_mes){ + return data_mes > 12 || data_mes < 1; +} + +int validarDia(int data_dia){ + return data_dia < 1 || data_dia > 31; +} + +int main() { + //Declaracao de variaveis + struct data { + int data_ano; + int data_mes; + int data_dia; + }; + struct data dataNascimento; + + struct dados { + char nome[100]; + char sexo; + char endereco[200]; + char cidade[50]; + char cep[10]; + char telefone[15]; + char cpf[14]; + char rg[10]; + char profissao[50]; + }; + struct dados cadastroCliente; + + do { + printf("####################################\n"); + printf("# Cadastro de clientes #\n"); + printf("####################################\n\n"); + + printf("Informe o nome completo para cadastro: "); + scanf("%s", cadastroCliente.nome); getchar(); + + if(cadastroCliente.nome != ""){ + + do { + printf("Informe o sexo [M]asculino ou [F]eminino? "); + scanf("%c", &cadastroCliente.sexo); + + if (validarSexo(cadastroCliente.sexo)){ + printf("Informe uma letra valida correspondente ao sexo\n"); + } + } while (validarSexo(cadastroCliente.sexo)); + + printf("Informe o ano de nascimento [aaaa]: "); + scanf("%d", &dataNascimento.data_ano); + + do { + printf("Informe o mes de nascimento [mm]: "); + scanf("%d", &dataNascimento.data_mes); + + if (validarMes(dataNascimento.data_mes)){ + printf("Informe um mes valido!\n"); + } + } while (validarMes(dataNascimento.data_mes)); + + do { + printf("Informe o dia de nascimento [dd]: "); + scanf("%d", &dataNascimento.data_dia); + if (validarDia(dataNascimento.data_dia)){ + printf("Informe um dia valido!\n"); + } + } while (validarDia(dataNascimento.data_dia)); + + printf("Informe o endereco de residencia: "); + scanf("%s", cadastroCliente.endereco); getchar(); + + printf("Informe a cidade: "); + scanf("%s", cadastroCliente.cidade); getchar(); + + printf("Informe o CEP: "); + scanf("%s", cadastroCliente.cep); getchar(); + + printf("Informe um telefone de contato [DD9XXXXXXXX]: "); + scanf("%s", cadastroCliente.telefone); getchar(); + + printf("Informe o seu CPF: "); + scanf("%s", cadastroCliente.cpf); getchar(); + + printf("Informe o seu RG: "); + scanf("%s", cadastroCliente.rg); getchar(); + + printf("Informe a sua profissao: "); + scanf("%s", cadastroCliente.profissao); getchar(); + } + } while (cadastroCliente.nome != ""); + + system ("PAUSE"); + return 0; +} + From c07deb854f82acfa6bc6223bc33f8eb228c6b044 Mon Sep 17 00:00:00 2001 From: Ronneesley Date: Sun, 10 Sep 2017 21:36:21 -0300 Subject: [PATCH 03/92] Projeto no NetBeans 8.2 --- src/fornecedores.c => .Rhistory | 0 .gitignore | 2 + Makefile | 16 -- Makefile~ | 16 -- README.md | 2 +- build/gerais.o | Bin 1504 -> 0 bytes build/main.o | Bin 3456 -> 0 bytes build/paises.o | Bin 11424 -> 0 bytes codigos/ControleEstoqueC/.dep.inc | 5 + codigos/ControleEstoqueC/Makefile | 128 ++++++++++ {src => codigos/ControleEstoqueC}/clientes.c | 4 +- codigos/ControleEstoqueC/clientes.h | 14 ++ .../ControleEstoqueC}/diretivas_conexao.h | 2 +- {src => codigos/ControleEstoqueC}/gerais.c | 2 +- {src => codigos/ControleEstoqueC}/gerais.h | 2 +- codigos/ControleEstoqueC/main.c | 52 ++++ .../nbproject/Makefile-Debug.mk | 107 +++++++++ .../nbproject/Makefile-Release.mk | 107 +++++++++ .../nbproject/Makefile-impl.mk | 133 +++++++++++ .../nbproject/Makefile-variables.mk | 35 +++ .../nbproject/Package-Debug.bash | 76 ++++++ .../nbproject/Package-Release.bash | 76 ++++++ .../nbproject/configurations.xml | 113 +++++++++ .../nbproject/private/Makefile-variables.mk | 7 + .../private/c_standard_headers_indexer.c | 75 ++++++ .../nbproject/private/configurations.xml | 72 ++++++ .../private/cpp_standard_headers_indexer.cpp | 135 +++++++++++ .../nbproject/private/launcher.properties | 42 ++++ .../nbproject/private/private.xml | 7 + .../ControleEstoqueC/nbproject/project.xml | 28 +++ {src => codigos/ControleEstoqueC}/paises.c | 2 +- {src => codigos/ControleEstoqueC}/paises.h | 2 +- codigos/ControleEstoqueC/produtos.c | 6 + controleestoque.bin | Bin 18368 -> 0 bytes src/cliente.c | 116 --------- src/fornecedores.h | 0 src/main.c | 50 ---- src/paises.c~ | 222 ------------------ src/produtos.c | 0 src/produtos.h | 0 40 files changed, 1227 insertions(+), 429 deletions(-) rename src/fornecedores.c => .Rhistory (100%) create mode 100644 .gitignore delete mode 100644 Makefile delete mode 100644 Makefile~ delete mode 100644 build/gerais.o delete mode 100644 build/main.o delete mode 100644 build/paises.o create mode 100644 codigos/ControleEstoqueC/.dep.inc create mode 100644 codigos/ControleEstoqueC/Makefile rename {src => codigos/ControleEstoqueC}/clientes.c (98%) create mode 100644 codigos/ControleEstoqueC/clientes.h rename {src => codigos/ControleEstoqueC}/diretivas_conexao.h (96%) rename {src => codigos/ControleEstoqueC}/gerais.c (98%) rename {src => codigos/ControleEstoqueC}/gerais.h (93%) create mode 100644 codigos/ControleEstoqueC/main.c create mode 100644 codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk create mode 100644 codigos/ControleEstoqueC/nbproject/Makefile-Release.mk create mode 100644 codigos/ControleEstoqueC/nbproject/Makefile-impl.mk create mode 100644 codigos/ControleEstoqueC/nbproject/Makefile-variables.mk create mode 100644 codigos/ControleEstoqueC/nbproject/Package-Debug.bash create mode 100644 codigos/ControleEstoqueC/nbproject/Package-Release.bash create mode 100644 codigos/ControleEstoqueC/nbproject/configurations.xml create mode 100644 codigos/ControleEstoqueC/nbproject/private/Makefile-variables.mk create mode 100644 codigos/ControleEstoqueC/nbproject/private/c_standard_headers_indexer.c create mode 100644 codigos/ControleEstoqueC/nbproject/private/configurations.xml create mode 100644 codigos/ControleEstoqueC/nbproject/private/cpp_standard_headers_indexer.cpp create mode 100644 codigos/ControleEstoqueC/nbproject/private/launcher.properties create mode 100644 codigos/ControleEstoqueC/nbproject/private/private.xml create mode 100644 codigos/ControleEstoqueC/nbproject/project.xml rename {src => codigos/ControleEstoqueC}/paises.c (99%) rename {src => codigos/ControleEstoqueC}/paises.h (98%) create mode 100644 codigos/ControleEstoqueC/produtos.c delete mode 100755 controleestoque.bin delete mode 100644 src/cliente.c delete mode 100644 src/fornecedores.h delete mode 100644 src/main.c delete mode 100644 src/paises.c~ delete mode 100644 src/produtos.c delete mode 100644 src/produtos.h diff --git a/src/fornecedores.c b/.Rhistory similarity index 100% rename from src/fornecedores.c rename to .Rhistory diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d9bdb4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/codigos/ControleEstoqueC/build/ +/codigos/ControleEstoqueC/dist/ \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index d2973fa..0000000 --- a/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -all: compilar - -compilar: main.o paises.o gerais.o - gcc build/paises.o build/main.o build/gerais.o -o controleestoque.bin `mysql_config --libs` - -main.o: src/main.c - gcc -c src/main.c -o build/main.o - -paises.o: src/paises.c src/diretivas_conexao.h - gcc -c src/paises.c -o build/paises.o - -gerais.o: src/gerais.c - gcc -c src/gerais.c -o build/gerais.o - -clean: - rm -rf build/*.o diff --git a/Makefile~ b/Makefile~ deleted file mode 100644 index d2973fa..0000000 --- a/Makefile~ +++ /dev/null @@ -1,16 +0,0 @@ -all: compilar - -compilar: main.o paises.o gerais.o - gcc build/paises.o build/main.o build/gerais.o -o controleestoque.bin `mysql_config --libs` - -main.o: src/main.c - gcc -c src/main.c -o build/main.o - -paises.o: src/paises.c src/diretivas_conexao.h - gcc -c src/paises.c -o build/paises.o - -gerais.o: src/gerais.c - gcc -c src/gerais.c -o build/gerais.o - -clean: - rm -rf build/*.o diff --git a/README.md b/README.md index 11198b5..65c2c16 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Ferramenta utilizada para o ensino de programação no curso de Sistemas de Info # Ferramentas utilizadas -Os projetos foram desenvolvidos utilizando apenas o *gedit*. +Os projetos foram desenvolvidos utilizando o NetBeans 8.2. # Como compilar o projeto? diff --git a/build/gerais.o b/build/gerais.o deleted file mode 100644 index 947cae9996fa228b75fd629b5d77c72c5542aa87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1504 zcmb_cPiqrF6n~r5w$@gnC9t`h)4%PLmDQR_S_YT57E~t&U3Ds(rP> zlj~`#lXlV@2ten{ohW*}L(zUST3cCMnsGsw7{>yg#diBl^IfC2y0Fa#(2pV9Skjf{OGMr?Y8S~kAVvX8*&|fdC9=>D)xS8Fj&vTubGUcG>?0m)=9I{dQ3{TKDno%_s%{R3ZP2{HfGzs0_Y z`Pb}Nm;8QT{QUSTfyq5tEa|c18;%PTf8lrdKxDB2|4>(IvTut#!2J4W&S$gc3sL$n z@D2;1`6Vu(%n9>@ulNg&_u==RA=-5Q8cL1)`a`wD{EPEhat)&D$T73Wj diff --git a/build/main.o b/build/main.o deleted file mode 100644 index 86a26a974642ed1054a14513e55a88c164cd0b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3456 zcmc(h(Q6z<9LIl`YntY4(zK{8w8BQHrqC>RO>&wla`C$Mv}rFU7t{wmCcAsNwRgA2 z?p{4Zut=~Ff{+(q1Rsim`XC1SQu?BBAow5jtsn|QL=+0pH=1+xiC%7at7rh~IbUv2+7*@68T9iS^0<-qvYeZRzEul5urTyJTqj z;*qKGUl=J=bal7$)1RS6r`Qo3`b8IOdt&KF@BVis2ZK_-t=)rPVMUx6!%n zIT&{KoVLUqF9nyJRVT1Drn$||=bcY!WxoA3F7u)WXDyfuI$vUE)9c)6J9Vbru-C?+ zC{U+yqjS543mXTxoX=m>CYD!Pji9B?=+k<7GTY*<%zK%vo}Simwh{9lJG&_|U|jpaSKx9|Q={FuPi=c&u*A`TuFHVE|gPdUEGbBRemiN7xEk=~I0g3*9O? zEKy5~fNgOV(YH&XVr<4wv zKQUzZF99E)=B@6}nn-A-D{)UQOV%%wYnhDsj{z$@k*MoBgVfT4T`>+{~~Jr z-rpCr`O)OM=>5@HIbOcM>Q{?t};C;kW}g|;IG(Ah&F)%i*5H~(F6 N3Ci;qF>dPoe*rp;3v&Pf diff --git a/build/paises.o b/build/paises.o deleted file mode 100644 index 120e835f9223738fb014b21ec233e41550682fdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11424 zcmdT}4RBml6~1X&D4}fv7ATaThfqk6hD|A@t^6dUOCQjd*tAd?bo09Vk}T{``hH5w z1RC6~c4r&SD3y+)Q)L83!6^z36bc#ADP@?^I$C5DXF4b|frb$sl&ID9ocqq*J-OLe zr*^>MW_Itr-}&yj=bm%ky?0->L|5E6rKU!xQX{Stm7YR{=xVC8TV=CV%oKHEtyy^6 zd|<3~nh*)IICWkl$jm}?yk+=VWR2q2OUK0{6U<(SXNoc?~?%G zt<%jy{tb!jz^W+4h5d4&m34z2RLJy8wYj}m34f<9pSb8FOLZ@hH;!C5NubYs{2tdv zutf~!hvg#lIb>vtQkWZ`;+>frul3H$jo0`WRR$k9i?vU!w1?EVsrC6^|Ep9QGKlK*(g-&OK=mi(c>g518oV|n6%G2`S(j~V8|I7_midwh?Iw-KB& z8#IZ3qo!X5&(sI74}dc&3pEFKNP?R2b>*u3us>I`qmoZS9&-~Xql%CL0GijT%A^;=iKgHqgq z>QBHi_4zS6l2DI2_zL+B>=uKng04d}w-+l>zjY8t7V{Ehht|u0bpfN$pes;MaQS%c zLw$vOFIJ=|H#{9rz~T-G!iKpg*e&;$H_SkL5w#;nPJ@jjv189Cca#&^7R=&GJS}F( z+s4Gx;(@UtaE6xq`nfz99WW=I)^ZCjMhD7Hj&7@LeUQ<;ts7TS&t^O)o3d@!%Wm*(VI|VZOe}7TR5os9rjjlEJvv0RIHqEExt}R|4_|^zd}4HrU2^jXbH3K6c(sR20}v zp@bEU{4|m5fl!i*cv=OfI^b4#>=KZ7i8^Sl0zU;gSXLqvP3F5&17l>F6c5)*ZN%(y zjX*mj(lfSO4oq3)vFwswNTOY0d3*a(qjBweKjZnvRm}^VBl8#eve$Bd%cADU!e+>5 zi5m+dEsG+HB1@!Qvjg))&AqEd&8CK$xie0lJ_Prqa{mM=_!ueMnYU!KxF^Q78! zQ-C66*GQ=lb@(EpET2}RGY*2?}V>(Ttsf~uy9KbNWzYOB7H5uz6Us+C&MRISts`2%>8s8+!J zxJs!N)eWu{Crx7G=6X7_Q^poB13nG#(aUE5sD?*E@XvwI}{(J~N0yz3v`By$8fc=K>B85!mCSdrZ0{Nai{e+M?2^fZ|+Imk5 z!Osf8&kMmX1{~+@p%j(RDoh&*;V&V+PpK=PUEoIvFHq{rXBP0!5&m6DMft1(-W8%> z1Sd#yT%_SP0mt-;r0ZEdcDh3zP9l{|_gT&wJ7tMJ-*ZKJv%4V`OJ zFRaV!QtMFb>V|y9a$iuD{iAT)XRs*#M&f@ZfXnz6!oNm1`hO;Tls_NW_;?m$*&S3e zUbCRB_^&X$p5bpX9QO~!SI@Vya}VjCLp9oS8slHe@Y5N-oZ+8h_-zcwyM>y!hvE3s zS>aiR^Sl~hIOlI8T-kq+`d?>!ZvR6XAEuV&VaDh4eoy27o%)Z4@PDN7XQBh4><-~S zqwyPwui}7RZqG{^{~F@&3(^0o#_u5h&qMgX()elO|DN%=KgTqFf%t!8{4-$bQk&f&)xpZovE3_lkvSL@o(@beh{I>XOr_z}X@x}+1}>wU)Oe)y}# zZy-BMjL+?yN^%tQxX%c|O@?2VeBXYAaJ4SAKR+IVKdIqr-~Ne)t9^S9 z;kYioZ@;eb7gK+f@eQ`F8oEEB9=@N?W;owJ&n8^0>x-oKe8%VTx`N?+|Gb*voNqFm z^E(Jv^Q!&!4#wwk&oZ3H>st)x@p?+ruj2Ky5d3)!SMeIwa22lugzNEoSK|+mKaVm# zkJlM=8Pem`$Z#I7`GhOKJwf^xFh2KxJHxsEZ(%s+-^p;!PY|x=Rq@I&K95(9;XGbX zGn~ikHBG;Y*TE3{kcO*x{Z_+Oyxt;Qk5@_KA0U68M!zeN&*OC&!};@dEyH=dZXjIw z?H$s;obkE;*D;*?zl-6Vzk%VLznO3~uZmZW@p-&kfwV`)wb?`MvZZhVy&xQw-<#Rs5GD z7PN=w!-ovN7-Z_4y^wylBcJPuFr4eTk>NbRc*DK5JipX+%+9uO?zg{a ze05LzFob_p<176&rvxpGFV{bdaAi*q`E3s4bH6oe{0+ok5W>G&<12fvVSH{+o5sJ7 z^xwkx+@948=l8}q!}+~2%W!^g{5Hcc1|wCxb`h@pqwN0y<8%9esPT7^{ZBJKxBoeY z^Ss&@f_I=HP%w@c!bjQpd4_X68HV%cWjo3XB=1 zR%;mv8XcG{P)0Gypx`rvV`=-6znu}kgmAjHASBCN98jg`^Ir}e)cL=TZ-KF>ljj(8 zg+cR|=(#}*i?ToH34!kgaePDpR9}FHIFze`s{F0&SM?1bQSCAb8f$1g$FQw)ZzoK* ze;tii@5huL-F|$(SS@~w8-o$UG!Wf^W7T+k_kjh&tNR}DaT;%7hZWs^?CZ88y^r!{ b6Dh~LA#R!a{D@VXe-tk>P 31; } -int main() { +void mostrarCadastroClientes() { //Declaracao de variaveis struct data { int data_ano; @@ -110,6 +110,4 @@ int main() { } while (cadastroCliente.nome != ""); system ("PAUSE"); - return 0; } - diff --git a/codigos/ControleEstoqueC/clientes.h b/codigos/ControleEstoqueC/clientes.h new file mode 100644 index 0000000..8ea8849 --- /dev/null +++ b/codigos/ControleEstoqueC/clientes.h @@ -0,0 +1,14 @@ +/* + * File: clientes.h + * Author: ronneesley + * + * Created on 10 de Setembro de 2017, 21:31 + */ + +#ifndef CLIENTES_H +#define CLIENTES_H + +void mostrarCadastroClientes(); + +#endif /* CLIENTES_H */ + diff --git a/src/diretivas_conexao.h b/codigos/ControleEstoqueC/diretivas_conexao.h similarity index 96% rename from src/diretivas_conexao.h rename to codigos/ControleEstoqueC/diretivas_conexao.h index 7bcc273..5246801 100644 --- a/src/diretivas_conexao.h +++ b/codigos/ControleEstoqueC/diretivas_conexao.h @@ -7,4 +7,4 @@ #define NOME_BD "controleestoque" #define PORTA_BD 3306 -#endif +#endif \ No newline at end of file diff --git a/src/gerais.c b/codigos/ControleEstoqueC/gerais.c similarity index 98% rename from src/gerais.c rename to codigos/ControleEstoqueC/gerais.c index 2baf649..a25dad6 100644 --- a/src/gerais.c +++ b/codigos/ControleEstoqueC/gerais.c @@ -7,4 +7,4 @@ */ void limparTela(){ system("clear"); -} +} \ No newline at end of file diff --git a/src/gerais.h b/codigos/ControleEstoqueC/gerais.h similarity index 93% rename from src/gerais.h rename to codigos/ControleEstoqueC/gerais.h index ecac83b..8f0b33f 100644 --- a/src/gerais.h +++ b/codigos/ControleEstoqueC/gerais.h @@ -8,4 +8,4 @@ */ void limparTela(); -#endif +#endif \ No newline at end of file diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c new file mode 100644 index 0000000..051e5a9 --- /dev/null +++ b/codigos/ControleEstoqueC/main.c @@ -0,0 +1,52 @@ +#include +#include "paises.h" +#include "clientes.h" +#include "gerais.h" + +/** + * Mostra o menu principal do sistema + * Autor: Ronneesley Moura Teles + * Data: 15/08/2017 + */ +void mostrarMenuPrincipal(){ + int opcao; //Opção a ser escolhida no menu + + do { + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("1) Cadastro de países\n"); + printf("2) Cadastro de estados\n"); + printf("3) Cadastro de cidades\n"); + printf("4) Cadastro de clientes\n"); + printf("5) Cadastro de produtos\n"); + printf("6) Cadastro de fornecedores\n"); + printf("7) Cadastro de representantes\n"); + printf("8) Cadastro de funcionários\n"); + printf("9) Sair\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: mostrarListagemPaises(); break; + case 4: mostrarCadastroClientes(); break; + case 9: + printf("Até a próxima vez!\n"); + break; + default: + printf("Opção inválida!\n"); + } + } while (opcao != 9); +} + +/** + * Função principal do programa + */ +int main(){ + mostrarMenuPrincipal(); + + return 0; +} diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk new file mode 100644 index 0000000..96097a4 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -0,0 +1,107 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Environment +MKDIR=mkdir +CP=cp +GREP=grep +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=gcc +CCC=g++ +CXX=g++ +FC=gfortran +AS=as + +# Macros +CND_PLATFORM=GNU-Linux +CND_DLIB_EXT=so +CND_CONF=Debug +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Include project Makefile +include Makefile + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} + +# Object Files +OBJECTFILES= \ + ${OBJECTDIR}/clientes.o \ + ${OBJECTDIR}/gerais.o \ + ${OBJECTDIR}/main.o \ + ${OBJECTDIR}/paises.o \ + ${OBJECTDIR}/produtos.o + + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS= + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS= + +# Build Targets +.build-conf: ${BUILD_SUBPROJECTS} + "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} + ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} `mysql_config --libs` + +${OBJECTDIR}/clientes.o: clientes.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/clientes.o clientes.c + +${OBJECTDIR}/gerais.o: gerais.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/gerais.o gerais.c + +${OBJECTDIR}/main.o: main.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c + +${OBJECTDIR}/paises.o: paises.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/paises.o paises.c + +${OBJECTDIR}/produtos.o: produtos.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/produtos.o produtos.c + +# Subprojects +.build-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r ${CND_BUILDDIR}/${CND_CONF} + +# Subprojects +.clean-subprojects: + +# Enable dependency checking +.dep.inc: .depcheck-impl + +include .dep.inc diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk new file mode 100644 index 0000000..2dfdc05 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -0,0 +1,107 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Environment +MKDIR=mkdir +CP=cp +GREP=grep +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=gcc +CCC=g++ +CXX=g++ +FC=gfortran +AS=as + +# Macros +CND_PLATFORM=GNU-Linux +CND_DLIB_EXT=so +CND_CONF=Release +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Include project Makefile +include Makefile + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} + +# Object Files +OBJECTFILES= \ + ${OBJECTDIR}/clientes.o \ + ${OBJECTDIR}/gerais.o \ + ${OBJECTDIR}/main.o \ + ${OBJECTDIR}/paises.o \ + ${OBJECTDIR}/produtos.o + + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS= + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS= + +# Build Targets +.build-conf: ${BUILD_SUBPROJECTS} + "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} + ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/clientes.o: clientes.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/clientes.o clientes.c + +${OBJECTDIR}/gerais.o: gerais.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/gerais.o gerais.c + +${OBJECTDIR}/main.o: main.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c + +${OBJECTDIR}/paises.o: paises.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/paises.o paises.c + +${OBJECTDIR}/produtos.o: produtos.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/produtos.o produtos.c + +# Subprojects +.build-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r ${CND_BUILDDIR}/${CND_CONF} + +# Subprojects +.clean-subprojects: + +# Enable dependency checking +.dep.inc: .depcheck-impl + +include .dep.inc diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-impl.mk b/codigos/ControleEstoqueC/nbproject/Makefile-impl.mk new file mode 100644 index 0000000..9f42dd4 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Makefile-impl.mk @@ -0,0 +1,133 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a pre- and a post- target defined where you can add customization code. +# +# This makefile implements macros and targets common to all configurations. +# +# NOCDDL + + +# Building and Cleaning subprojects are done by default, but can be controlled with the SUB +# macro. If SUB=no, subprojects will not be built or cleaned. The following macro +# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf +# and .clean-reqprojects-conf unless SUB has the value 'no' +SUB_no=NO +SUBPROJECTS=${SUB_${SUB}} +BUILD_SUBPROJECTS_=.build-subprojects +BUILD_SUBPROJECTS_NO= +BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} +CLEAN_SUBPROJECTS_=.clean-subprojects +CLEAN_SUBPROJECTS_NO= +CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} + + +# Project Name +PROJECTNAME=ControleEstoqueC + +# Active Configuration +DEFAULTCONF=Debug +CONF=${DEFAULTCONF} + +# All Configurations +ALLCONFS=Debug Release + + +# build +.build-impl: .build-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf + + +# clean +.clean-impl: .clean-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf + + +# clobber +.clobber-impl: .clobber-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \ + done + +# all +.all-impl: .all-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \ + done + +# build tests +.build-tests-impl: .build-impl .build-tests-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf + +# run tests +.test-impl: .build-tests-impl .test-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf + +# dependency checking support +.depcheck-impl: + @echo "# This code depends on make tool being used" >.dep.inc + @if [ -n "${MAKE_VERSION}" ]; then \ + echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \ + echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ + echo "include \$${DEPFILES}" >>.dep.inc; \ + echo "endif" >>.dep.inc; \ + else \ + echo ".KEEP_STATE:" >>.dep.inc; \ + echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ + fi + +# configuration validation +.validate-impl: + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + echo ""; \ + echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \ + echo "See 'make help' for details."; \ + echo "Current directory: " `pwd`; \ + echo ""; \ + fi + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + exit 1; \ + fi + + +# help +.help-impl: .help-pre + @echo "This makefile supports the following configurations:" + @echo " ${ALLCONFS}" + @echo "" + @echo "and the following targets:" + @echo " build (default target)" + @echo " clean" + @echo " clobber" + @echo " all" + @echo " help" + @echo "" + @echo "Makefile Usage:" + @echo " make [CONF=] [SUB=no] build" + @echo " make [CONF=] [SUB=no] clean" + @echo " make [SUB=no] clobber" + @echo " make [SUB=no] all" + @echo " make help" + @echo "" + @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," + @echo " also clean subprojects." + @echo "Target 'clobber' will remove all built files from all configurations and," + @echo " unless 'SUB=no', also from subprojects." + @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'help' prints this message." + @echo "" + diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-variables.mk b/codigos/ControleEstoqueC/nbproject/Makefile-variables.mk new file mode 100644 index 0000000..9ee213a --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Makefile-variables.mk @@ -0,0 +1,35 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +CND_BASEDIR=`pwd` +CND_BUILDDIR=build +CND_DISTDIR=dist +# Debug configuration +CND_PLATFORM_Debug=GNU-Linux +CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux +CND_ARTIFACT_NAME_Debug=controleestoquec +CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/controleestoquec +CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package +CND_PACKAGE_NAME_Debug=controleestoquec.tar +CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/controleestoquec.tar +# Release configuration +CND_PLATFORM_Release=GNU-Linux +CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux +CND_ARTIFACT_NAME_Release=controleestoquec +CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/controleestoquec +CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package +CND_PACKAGE_NAME_Release=controleestoquec.tar +CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/controleestoquec.tar +# +# include compiler specific variables +# +# dmake command +ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ + (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) +# +# gmake command +.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) +# +include nbproject/private/Makefile-variables.mk diff --git a/codigos/ControleEstoqueC/nbproject/Package-Debug.bash b/codigos/ControleEstoqueC/nbproject/Package-Debug.bash new file mode 100644 index 0000000..92daaed --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Package-Debug.bash @@ -0,0 +1,76 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_PLATFORM=GNU-Linux +CND_CONF=Debug +CND_DISTDIR=dist +CND_BUILDDIR=build +CND_DLIB_EXT=so +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec +OUTPUT_BASENAME=controleestoquec +PACKAGE_TOP_DIR=controleestoquec/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package +rm -rf ${NBTMPDIR} +mkdir -p ${NBTMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory "${NBTMPDIR}/controleestoquec/bin" +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/controleestoquec.tar +cd ${NBTMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/controleestoquec.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${NBTMPDIR} diff --git a/codigos/ControleEstoqueC/nbproject/Package-Release.bash b/codigos/ControleEstoqueC/nbproject/Package-Release.bash new file mode 100644 index 0000000..0254fcd --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/Package-Release.bash @@ -0,0 +1,76 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_PLATFORM=GNU-Linux +CND_CONF=Release +CND_DISTDIR=dist +CND_BUILDDIR=build +CND_DLIB_EXT=so +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec +OUTPUT_BASENAME=controleestoquec +PACKAGE_TOP_DIR=controleestoquec/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package +rm -rf ${NBTMPDIR} +mkdir -p ${NBTMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory "${NBTMPDIR}/controleestoquec/bin" +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/controleestoquec.tar +cd ${NBTMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/controleestoquec.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${NBTMPDIR} diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml new file mode 100644 index 0000000..5dedd43 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -0,0 +1,113 @@ + + + + + clientes.h + diretivas_conexao.h + gerais.h + paises.h + + + clientes.c + gerais.c + main.c + paises.c + produtos.c + + + + + + + Makefile + + + Makefile + + + + default + true + false + + + + 10 + + + `mysql_config --libs` + + + + + + + + + + + + + + + + + + + + + + + + default + true + false + + + + 5 + 10 + + + 5 + + + 5 + + + 5 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/Makefile-variables.mk b/codigos/ControleEstoqueC/nbproject/private/Makefile-variables.mk new file mode 100644 index 0000000..a64183e --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/Makefile-variables.mk @@ -0,0 +1,7 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +# Debug configuration +# Release configuration diff --git a/codigos/ControleEstoqueC/nbproject/private/c_standard_headers_indexer.c b/codigos/ControleEstoqueC/nbproject/private/c_standard_headers_indexer.c new file mode 100644 index 0000000..c2548d2 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/c_standard_headers_indexer.c @@ -0,0 +1,75 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ + +// List of standard headers was taken in http://en.cppreference.com/w/c/header + +#include // Conditionally compiled macro that compares its argument to zero +#include // Functions to determine the type contained in character data +#include // Macros reporting error conditions +#include // Limits of float types +#include // Sizes of basic types +#include // Localization utilities +#include // Common mathematics functions +#include // Nonlocal jumps +#include // Signal handling +#include // Variable arguments +#include // Common macro definitions +#include // Input/output +#include // String handling +#include // General utilities: memory management, program utilities, string conversions, random numbers +#include // Time/date utilities +#include // (since C95) Alternative operator spellings +#include // (since C95) Extended multibyte and wide character utilities +#include // (since C95) Wide character classification and mapping utilities +#ifdef _STDC_C99 +#include // (since C99) Complex number arithmetic +#include // (since C99) Floating-point environment +#include // (since C99) Format conversion of integer types +#include // (since C99) Boolean type +#include // (since C99) Fixed-width integer types +#include // (since C99) Type-generic math (macros wrapping math.h and complex.h) +#endif +#ifdef _STDC_C11 +#include // (since C11) alignas and alignof convenience macros +#include // (since C11) Atomic types +#include // (since C11) noreturn convenience macros +#include // (since C11) Thread library +#include // (since C11) UTF-16 and UTF-32 character utilities +#endif diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml new file mode 100644 index 0000000..30b54f8 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -0,0 +1,72 @@ + + + Makefile + + + + localhost + 2 + + + + + + + + + + + + + + + gdb + + + + "${OUTPUT_PATH}" + + "${OUTPUT_PATH}" + + true + 0 + 0 + + + + + + + localhost + 2 + + + + + + + + + + + + + + + gdb + + + + "${OUTPUT_PATH}" + + "${OUTPUT_PATH}" + + true + 0 + 0 + + + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/cpp_standard_headers_indexer.cpp b/codigos/ControleEstoqueC/nbproject/private/cpp_standard_headers_indexer.cpp new file mode 100644 index 0000000..04f6fa6 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/cpp_standard_headers_indexer.cpp @@ -0,0 +1,135 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + */ + +// List of standard headers was taken in http://en.cppreference.com/w/cpp/header + +#include // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search +#include // Functions and macro constants for signal management +#include // Macro (and function) that saves (and jumps) to an execution context +#include // Handling of variable length argument lists +#include // Runtime type information utilities +#include // std::bitset class template +#include // Function objects, designed for use with the standard algorithms +#include // Various utility components +#include // C-style time/date utilites +#include // typedefs for types such as size_t, NULL and others +#include // Low-level memory management utilities +#include // Higher level memory management utilities +#include // limits of integral types +#include // limits of float types +#include // standardized way to query properties of arithmetic types +#include // Exception handling utilities +#include // Standard exception objects +#include // Conditionally compiled macro that compares its argument to zero +#include // Macro containing the last error number +#include // functions to determine the type contained in character data +#include // functions for determining the type of wide character data +#include // various narrow character string handling functions +#include // various wide and multibyte string handling functions +#include // std::basic_string class template +#include // std::vector container +#include // std::deque container +#include // std::list container +#include // std::set and std::multiset associative containers +#include // std::map and std::multimap associative containers +#include // std::stack container adaptor +#include // std::queue and std::priority_queue container adaptors +#include // Algorithms that operate on containers +#include // Container iterators +#include // Common mathematics functions +#include // Complex number type +#include // Class for representing and manipulating arrays of values +#include // Numeric operations on values in containers +#include // forward declarations of all classes in the input/output library +#include // std::ios_base class, std::basic_ios class template and several typedefs +#include // std::basic_istream class template and several typedefs +#include // std::basic_ostream, std::basic_iostream class templates and several typedefs +#include // several standard stream objects +#include // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs +#include // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs +#include // std::strstream, std::istrstream, std::ostrstream(deprecated) +#include // Helper functions to control the format or input and output +#include // std::basic_streambuf class template +#include // C-style input-output functions +#include // Localization utilities +#include // C localization utilities +#include // empty header. The macros that appear in iso646.h in C are keywords in C++ +#if __cplusplus >= 201103L +#include // (since C++11) std::type_index +#include // (since C++11) Compile-time type information +#include // (since C++11) C++ time utilites +#include // (since C++11) std::initializer_list class template +#include // (since C++11) std::tuple class template +#include // (since C++11) Nested allocator class +#include // (since C++11) fixed-size types and limits of other types +#include // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions +#include // (since C++11) defines std::error_code, a platform-dependent error code +#include // (since C++11) C-style Unicode character conversion functions +#include // (since C++11) std::array container +#include // (since C++11) std::forward_list container +#include // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers +#include // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers +#include // (since C++11) Random number generators and distributions +#include // (since C++11) Compile-time rational arithmetic +#include // (since C++11) Floating-point environment access functions +#include // (since C++11) Unicode conversion facilities +#include // (since C++11) Classes, algorithms and iterators to support regular expression processing +#include // (since C++11) Atomic operations library +#include // (since C++11)(deprecated in C++17) simply includes the header +#include // (since C++11)(deprecated in C++17) simply includes the headers (until C++17) (since C++17) and : the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers +#include // (since C++11)(deprecated in C++17) defines one compatibility macro constant +#include // (since C++11)(deprecated in C++17) defines one compatibility macro constant +#include // (since C++11) std::thread class and supporting functions +#include // (since C++11) mutual exclusion primitives +#include // (since C++11) primitives for asynchronous computations +#include // (since C++11) thread waiting conditions +#endif +#if __cplusplus >= 201300L +#include // (since C++14) shared mutual exclusion primitives +#endif +#if __cplusplus >= 201500L +#include // (since C++17) std::any class template +#include // (since C++17) std::optional class template +#include // (since C++17) std::variant class template +#include // (since C++17) Polymorphic allocators and memory resources +#include // (since C++17) std::basic_string_view class template +#include // (since C++17) Predefined execution policies for parallel versions of the algorithms +#include // (since C++17) std::path class and supporting functions +#endif diff --git a/codigos/ControleEstoqueC/nbproject/private/launcher.properties b/codigos/ControleEstoqueC/nbproject/private/launcher.properties new file mode 100644 index 0000000..3edc2d8 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/launcher.properties @@ -0,0 +1,42 @@ +# Launchers File syntax: +# +# [Must-have property line] +# launcher1.runCommand= +# [Optional extra properties] +# launcher1.displayName= +# launcher1.hide= +# launcher1.buildCommand= +# launcher1.runDir= +# launcher1.runInOwnTab= +# launcher1.symbolFiles= +# launcher1.env.= +# (If this value is quoted with ` it is handled as a native command which execution result will become the value) +# [Common launcher properties] +# common.runDir= +# (This value is overwritten by a launcher specific runDir value if the latter exists) +# common.env.= +# (Environment variables from common launcher are merged with launcher specific variables) +# common.symbolFiles= +# (This value is overwritten by a launcher specific symbolFiles value if the latter exists) +# +# In runDir, symbolFiles and env fields you can use these macroses: +# ${PROJECT_DIR} - project directory absolute path +# ${OUTPUT_PATH} - linker output path (relative to project directory path) +# ${OUTPUT_BASENAME}- linker output filename +# ${TESTDIR} - test files directory (relative to project directory path) +# ${OBJECTDIR} - object files directory (relative to project directory path) +# ${CND_DISTDIR} - distribution directory (relative to project directory path) +# ${CND_BUILDDIR} - build directory (relative to project directory path) +# ${CND_PLATFORM} - platform name +# ${CND_CONF} - configuration name +# ${CND_DLIB_EXT} - dynamic library extension +# +# All the project launchers must be listed in the file! +# +# launcher1.runCommand=... +# launcher2.runCommand=... +# ... +# common.runDir=... +# common.env.KEY=VALUE + +# launcher1.runCommand= \ No newline at end of file diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml new file mode 100644 index 0000000..63a27a8 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -0,0 +1,7 @@ + + + + 1 + 0 + + diff --git a/codigos/ControleEstoqueC/nbproject/project.xml b/codigos/ControleEstoqueC/nbproject/project.xml new file mode 100644 index 0000000..c961d86 --- /dev/null +++ b/codigos/ControleEstoqueC/nbproject/project.xml @@ -0,0 +1,28 @@ + + + org.netbeans.modules.cnd.makeproject + + + ControleEstoqueC + c + + h + UTF-8 + + + + + Debug + 1 + + + Release + 1 + + + + false + + + + diff --git a/src/paises.c b/codigos/ControleEstoqueC/paises.c similarity index 99% rename from src/paises.c rename to codigos/ControleEstoqueC/paises.c index 34d85f5..249b76f 100644 --- a/src/paises.c +++ b/codigos/ControleEstoqueC/paises.c @@ -259,4 +259,4 @@ void mostrarExclusaoPais(){ excluirPais(codigo); getchar(); -} +} \ No newline at end of file diff --git a/src/paises.h b/codigos/ControleEstoqueC/paises.h similarity index 98% rename from src/paises.h rename to codigos/ControleEstoqueC/paises.h index 34a544d..9928014 100644 --- a/src/paises.h +++ b/codigos/ControleEstoqueC/paises.h @@ -37,4 +37,4 @@ void mostrarAlteracaoPais(); void mostrarExclusaoPais(); void excluirPais(int codigo); -#endif +#endif \ No newline at end of file diff --git a/codigos/ControleEstoqueC/produtos.c b/codigos/ControleEstoqueC/produtos.c new file mode 100644 index 0000000..a9d4fb1 --- /dev/null +++ b/codigos/ControleEstoqueC/produtos.c @@ -0,0 +1,6 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + diff --git a/controleestoque.bin b/controleestoque.bin deleted file mode 100755 index 5234523126d2fec45c3b07d71b7f6b31991e45bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18368 zcmeHPe{@vUoxk}70dx|O9|8RFL{o`d#sMKjy2?z*;Dim3l7QJNJcgM`GB}xu^8vZJyxJ0}4*3q-=>vK+$_Dmx;{u1eZfNqq%}Wx*6w^`pAcuT}bMEp~z;+DU*l z@as4vT}sVw#r=fuzlxK9PL3$JTdp|~&=4+&*;*$tuK zmfFQPg!~Ia!Ej>xg6(y+3u+hJV-fozUT^YGy0@-b&vR07)Id?0r{hO`faEhb{Qahu z`+l>$Vr&ABk9k^&uBNMu^!Nrh~Kf^tE#|x)=L`nc!>qS<|avlRS)H^l&tmz8)nabv{6OPSXr0#2me&4ktc2~$33I@V) z-r*fgU$sqN7w8Da;(_RjkT(_!#F*aLx?1-KqLSUZdPOJ_4zzl=gaS<0JGvraJr?&y zTSa%|h8d3#(cj~^* zJN0&NFa)VT7-sDq0SKWP3WOPOU#B<9VmlCmJ&lE(fKhhNXMHpGo#Eb?J4ZqFy z77RxvOeZE%5%5!hYLJ-~3|>kzPYiP6P3Lqe`?91HbApq|`&Xs?*bSSZCFYJ<91|DS zpJ)!FaZIHu+0Q0|Azg5hX5x#o3yb+CK8>R)IZS*tH;}B(#5d2MP7~iee|SuMDw9gh zCcbe`K-gyDBM?T~Y~oKgxQun0_)|>$ZWI3!6MwsjkA^T(kBMJla2eZU;;S|!aleT_ z)ug}Q#5a#~2Tc6SO#0t5@o6qo>7a>EW2s7>-qYotR9WBWH0J3WjF+W-Xk}0Dk@6v> zAz)@n6e^kOIIb0#`!m%e zaQY3RsmVqLIsI#*si{T|a(Wu*_I}VjEqtdj`Qj!|@(oY#n`fF^8;=ckS2>yI*z=5o zV<%@hS^7uF_iTH`RSk?C`UM(vy=TF308j6j&69j<+uTFsikfli#sLy!hM~Nh``3sFZUE3^}KjKKEv=fMR}{ZiftSc`S;ws5anly zsq0~w4x?ZjkCt5tR?&w%r-4d5ka~KTvqahGL$EWPy-x<26B|c%!iI3qy{DaMcE2Z8 zT0Ni2pLCBc9OU}x-=e(+_828pt%S?>-NDemuTDt0&FMoH}> z_v3--&k4*Acm{a_^DFqGDd{u~0qWj5mi_@{k?d=#2(XIXd&x4@ z$C+Z%x(b;kUjT12G?JAj2m8pucrFtJ*-ieEeVqiPquxP0R>JK*&cuNEtQaki(tw%y zh%1u!6nQ5do(&R7rBFsrpcrhG8yR(eC6XGajC+ zp&PjS<>YiM?V}uMaze>Epp$g(PPuohiK!n=nSB2a~s`mWK={M%{MYCh9LbL zT=w+cgGadZFM;+vM`%lYl0agKuZZ^wxb8jONl&#YJoHTVq&xtt&@()hfM|M86<`&h z2B-nf2b>S+0CWJ>0oDOJ0iA#zKs;i3ngN>u+W^}=YMKWy52kNMq54s^ ztjB_}4~>TIJzZ&S+8uSp3v)QfuQ*hI7;gWKnMJ#`ctkN%o%*p0&z?A(dHyhC@ zrr@3**ns_r)d#m4_q2Xm^?*f7?jmdM3$(NdH-r{}i`9GGVm%fjB^t}_;7QU+9Z<>;C zHzm(Cz(Z#GYo6YrBF{~uiMP==%5UH3y2G{6waKLq^^d;~eTes6?oYn@7ReQvT?_vF zX&1(zU0PFPORMWv_iC-dtu?!b_O`fNw9hyp<6T-~gOSTFZOz)%ZiD=+kX;OGi1BD7 z6bN8}5bK4^>+cGNbzgvmB0g`ZGZKpWhWe1m_Ce;faehpy3LWd)!?c&QkE8)(oc_SLKgd=Yh%Gwrh*cZ|K0nP9AM`Fvg z>eytqRzpF+iv_lNwRZ2$Ky*1Qhn zMssiXg%UxoEO?7+v<;CE<%=?O1;Po9Rv3N3Zf|HZYY27(;{na9MY@N+JM=9o5@qlA zF4I^w&7aghD_jk(mezG^|E&E&^aK>6K?H0xk66Kan zi5d+(=?`|GDP@Sv-AWWSim>9g^P}JSCj(o9IEg-JIN=?Q_jlz6Haz9DN6Z`AM!hSh z3Ge7gPX%H|!x%0rH+yus+7993NLp~o@g zbVrAt+#c-mYTE)kuV!oI02B;w8~SDl6}y`GLIHd)DVkgIh27|Rv=BNrlF6I^Y#YsF z4gjt>oym*=e*fJ}rV39uPraAP(09b4Gnov1_xvwR)7t@0W0Kzw_zE5+4gtP^=k}9; zHF)h919ajopb9I;>jCLIJiQgP0iFarKr6~fYHhn{=Q>ujy|QTTB@@g0izZeQ|8o2e zzMaX?w>XvZ>oayO6i8n~U7C?MvsJFNRjsO+a(8(TTR!It*WY;UJn}(04fw4=T{lu0 zT(-*li&tDap`@)CS#vp!(5ZJanaSkGke3xHImIo3*x0hab*33&r-9)r9b@&MV_+bX|NTyLxTdWqYn z?Jcdh&3~ZGV{_a;!DFlIow(ZOjN0m4HiyeLzuu-n5Bl}Ca^5da!;b@gWLF_?7t_TE zT#UfQ2waT7#Ry!Cz{Ln$jKIYRT#Uf~;|L5+aq`j~kWdvBkM=xSA?=ByL>qc2bxv|} zsP<&Vv5ADzY<|TB+fyjbIAOAryO=5A=OnC^aHWJBBy5*(n}qjE_=tqxk??5=k4pHmgx2!jx?;sLZT|W# ziEuojEwL}QI~LR?IJNLA3v2C;#da(galW?5v9Q)r>$u74B8M(vMaFpqvygU_wiY|h zERNHj(|BHfDO3H}Y*d0?J(yR2g3-^j^(V4?{i6hTjp|p~`jeRIpV|D$O!ebz{uJYW z&gNgj`ei$3^Dkw?dD^3d*^Kie+4>bsjSt!UO4cLCjcoo@Oh~;=D&b{w${U^_p!;818a8j%4#^vqO3L{egYGq27PP)^m6|;cGq;F&(|!5ADmPq~`J03+SIKz`qg`?bPDgY|s*)zW{$4`u_@> z@Xyzjk1z&?dYg)(kZH#uWQ$n-yw55QbdkgsKFTnpt z>Hm}*&-u3)%E1?n$Kr|hcDoPfcvh`gr_=rkoM9S2>7>WIbeuK{XzhJ(%W$mN%uyh-W@u=!{KC8d(_(%(EW+7t{pHj zQ92!2%2E|yu~9-gTm;a8{Q|)lFY(HCuGMbcy{3VVUGefO948TVw?`KWo`!WyZ}{sq zuGNhzpqG_{Kbyf1aWVbYrnU91CVlP7l`Za8z13CUC8SkCeAkL0ep7% z;@DGHw>R1v2zgl-Heq0QgV^NY^G2Fca`9ChpB%kWPU?+oae4}8t@K1J;Aislw$S9q zuAEMFXo?O<`h{?){ z;_>5a`MvV0W*3NWdkBhXh@)lMa(PHjoo&nSH|HeXr>XHXbNLml=itVRvKUUsHdm7535VO@=VF3oD23$muZC63vtb9m#KQpeEsEwPwXpc8#o zDL6HOr6&FtYwJYaX#H!gsoq&mV0`<6ry$DM@TB_9g>~b>rlwotl@~f!aGFK;nVzxbiUAv2B5d z2791W4tAY>I8l@^6{DW8Q216K)R2w0E9gTRB5`sL4tIw3W_FCfw5Lc+82`&Fy;oq0 zHRhkXVkfBabNy;vhcj^@U30ny1g)j0`Kz_q32OY@yvC{V3#O&4v=EfpK3?qPa(eEf zbgcl!)oR}W2|i&*RQ~EceZR%NOnOkyZ_42sAXD&D_JhSvP_!<^0qd5K4%kuMl|9}V zdD?(09u*9GwZ7$$8LIUxp`9DQO%TvplFDDL4;-NkkroSJte+`81@DBM)}|D#))B^} z{bp%TBc3ms*Gq?LU1E>4AC?`4?8!#uuk61L z9;wLU8tWJQgd+HJ@G~cC`zIkZ+pBes{z<}$?^Q85sFb*Z4_oZjddRR`kW}SWF0AxF zSnSpF{TXS0-=)e@K$WlJe#>I7)>q;(K(ZQ2owt=i0C`;6tM==W&yzjUzDl-(vay!` zhZcMFe=5}fub}odCu{r%Af))K{MEXSrU|RXN+3w1{UynM0t8RrsSt9e@Fo1s_YaTv)HTmuS3#al~XxTc8Wd^gm|j{>OJ{* z0eh>z5>%e*FV&S>yuS%ljeklY!^v%kN9!RfZ>2-<%q@bV|DRz_7Lxn1bWx#B6BCj{ d-hfvECzh(eyuBES^X2bY1_9Eb<%Y55|38oRA65VW diff --git a/src/cliente.c b/src/cliente.c deleted file mode 100644 index 2059568..0000000 --- a/src/cliente.c +++ /dev/null @@ -1,116 +0,0 @@ -/*Cadastro de clientes - - Academicos: Bruno Geovane - Gilson Soares - Juliana Maciel - Leonardo Cordeiro - Marco Aurelio - Ruan Miller - */ -#include -#include -#include - -int validarSexo(char sexo){ - return sexo == 'M' && sexo == 'm' && sexo == 'F' && sexo == 'f'; -} - -int main() { - //Declaracao de variaveis - char nome[100]; - char sexo; - int data_ano; - int data_mes; - int data_dia; - char endereco[200]; - char cidade[50]; - char cep[10]; - char telefone[15]; - char cpf[14]; - char rg[10]; - char profissao[50]; - - do { - printf("####################################\n"); - printf("# Cadastro de clientes #\n"); - printf("####################################\n\n"); - - printf("Informe o nome completo para cadastro ou aperte para encerrar: "); - scanf("%s", nome); getchar(); - - if(nome != " "){ - - printf("Informe o sexo [M]asculino ou [F]eminino? "); - scanf("%c", &sexo); - if(sexo == 'M' && sexo == 'm' && sexo == 'F' && sexo == 'f'){ - scanf("%c", &sexo); - } else { - while (sexo != 'M' && sexo != 'm' && sexo != 'F' && sexo != 'f') { - printf("Informe uma letra valida correspondente ao sexo\n"); - printf("Qual o sexo [M]asculino ou [F]eminino? "); - scanf("%c", &sexo); - } - } - - do { - scanf("%c", &sexo); - - if (!validarSexo(sexo)){ - printf("Informe uma letra valida correspondente ao sexo\n"); - } - } while (!validarSexo(sexo)); - - printf("Informe o ano de nascimento [aaaa]: "); - scanf("%d", &data_ano); - - printf("Informe o mes de nascimento [mm]: "); - scanf("%d", &data_mes); - if (data_mes <= 12 && data_mes >= 1){ - scanf("%d", &data_mes); - } else { - while (data_mes > 12 || data_mes < 1){ - printf("Informe um mes valido!\n"); - printf("Informe o mes de nascimento [mm]: "); - scanf("%d", &data_mes); - } - } - - printf("Informe o dia de nascimento [dd]: "); - scanf("%d", &data_dia); - if (data_dia >= 1 && data_dia <= 31){ - scanf("%d", &data_dia); - } else { - while (data_dia < 1 || data_dia > 31){ - printf("Informe um dia valido!\n"); - printf("Informe o dia de nascimento [dd]: "); - scanf("%d", &data_dia); - } - } - - printf("Informe o endereco de residencia: "); - scanf("%s", endereco); getchar(); - - printf("Informe a cidade: "); - scanf("%s", cidade); getchar(); - - printf("Informe o CEP: "); - scanf("%s", cep); getchar(); - - printf("Informe um telefone de contato [DD9XXXXXXXX]: "); - scanf("%s", telefone); getchar(); - - printf("Informe o seu CPF: "); - scanf("%s", cpf); getchar(); - - printf("Informe o seu RG: "); - scanf("%s", rg); getchar(); - - printf("Informe a sua profissao: "); - scanf("%s", profissao); getchar(); - } - } while (nome != ""); - - system ("PAUSE"); - return 0; -} - diff --git a/src/fornecedores.h b/src/fornecedores.h deleted file mode 100644 index e69de29..0000000 diff --git a/src/main.c b/src/main.c deleted file mode 100644 index 509858d..0000000 --- a/src/main.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include "paises.h" -#include "gerais.h" - -/** - * Mostra o menu principal do sistema - * Autor: Ronneesley Moura Teles - * Data: 15/08/2017 - */ -void mostrarMenuPrincipal(){ - int opcao; //Opção a ser escolhida no menu - - do { - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("1) Cadastro de países\n"); - printf("2) Cadastro de estados\n"); - printf("3) Cadastro de cidades\n"); - printf("4) Cadastro de clientes\n"); - printf("5) Cadastro de produtos\n"); - printf("6) Cadastro de fornecedores\n"); - printf("7) Cadastro de representantes\n"); - printf("8) Cadastro de funcionários\n"); - printf("9) Sair\n\n"); - - printf("Digite a opção desejada: "); - scanf("%d", &opcao); getchar(); - - switch (opcao){ - case 1: mostrarListagemPaises(); break; - case 9: - printf("Até a próxima vez!\n"); - break; - default: - printf("Opção inválida!\n"); - } - } while (opcao != 9); -} - -/** - * Função principal do programa - */ -int main(){ - mostrarMenuPrincipal(); - - return 0; -} diff --git a/src/paises.c~ b/src/paises.c~ deleted file mode 100644 index bce638d..0000000 --- a/src/paises.c~ +++ /dev/null @@ -1,222 +0,0 @@ -#include "paises.h" - -/** - * Lista todos os países cadastrados no banco de dados - * Autor: Ronneesley Moura Teles - * Data: 15/08/2017 - */ -void mostrarListagemPaises(){ - int opcao; - - do { - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Executa o comando de consulta - if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - while ( (linha = mysql_fetch_row(resultado)) ){ - //Obtém cada coluna na órdem - int id = atoi(linha[0]); - char *nome = linha[1]; - - //Imprime cada linha - printf("| %10d | %-100s |\n", *id, nome); - } - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("O que deseja fazer?\n"); - printf("1) Cadastrar um novo país\n"); - printf("2) Alterar um país\n"); - printf("3) Excluir um país\n"); - printf("4) Voltar ao menu principal\n\n"); - - printf("Digite a opção desejada: "); - scanf("%d", &opcao); - getchar(); - - switch (opcao){ - case 1: mostrarCadastroPais(); break; - case 2: mostrarAlteracaoPais(); break; - case 3: mostrarExclusaoPais(); break; - } - } while (opcao != 4); -} - -/** - * Apresenta o cadastro de países - * Autor: Ronneesley Moura Teles - * Data: 15/08/2017 - */ -void mostrarCadastroPais() { - Pais p; - - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("| NOME: "); - fgets(p.nome, sizeof(p.nome), stdin); - int tamanho = strlen(p.nome); p.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("Deseja realmente criar o país? (S/N) "); - char resposta = getchar(); getchar(); - - if (resposta == 'S' || resposta == 's'){ - inserirPais(p); - } -} - -/** - * Função responsável pela inserção de um país no banco de dados - * Autor: Ronneesley Moura Teles - * Data: 15/08/2017 - */ -void inserirPais(Pais p){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "insert into paises(nome) values('%s')", p.nome); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("País cadastrado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -void excluirPais(int codigo){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "delete from paises where id = %d", codigo); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("País excluído com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -Pais* selecionarPais(int codigo){ - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - char sql[500]; - snprintf(sql, 500, "select id, nome from paises where id = %d", codigo); - - //Executa o comando de consulta - if (mysql_query(&mysql, sql) == 0){ - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - int *id; - char *nome; - if ( (linha = mysql_fetch_row(resultado)) ){ - //Obtém cada coluna na órdem - *id = atoi(linha[0]); - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - Pais pais; - Pais *p = &pais; - strncpy(p->nome, linha[1], 100); - p->id = *id; - - //Imprime cada linha - return p; - } else { - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - return NULL; - } - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -void mostrarAlteracaoPais(){ - int codigo; - printf("Digite o código do país que deseja alterar: "); - scanf("%d", &codigo); - getchar(); - - Pais *p = selecionarPais(codigo); - - printf("Dados atuais do país\n"); - printf("Id: %d\n", p->id); - printf("Nome: %s\n", p->nome); - - getchar(); -} - -void mostrarExclusaoPais(){ - int codigo; - printf("Digite o código do país que deseja excluir: "); - scanf("%d", &codigo); - getchar(); - - excluirPais(codigo); - getchar(); -} diff --git a/src/produtos.c b/src/produtos.c deleted file mode 100644 index e69de29..0000000 diff --git a/src/produtos.h b/src/produtos.h deleted file mode 100644 index e69de29..0000000 From 81b811fa05fe25fe08b61e6ea95ace82019e6ceb Mon Sep 17 00:00:00 2001 From: Ronneesley Moura Teles Date: Sun, 10 Sep 2017 21:38:13 -0300 Subject: [PATCH 04/92] Delete .Rhistory --- .Rhistory | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .Rhistory diff --git a/.Rhistory b/.Rhistory deleted file mode 100644 index e69de29..0000000 From 918ec1568e95a9dddfb70d5496432e995086f96d Mon Sep 17 00:00:00 2001 From: Ronneesley Moura Teles Date: Mon, 11 Sep 2017 19:48:16 -0300 Subject: [PATCH 05/92] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 65c2c16..d96083e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ Ferramenta utilizada para o ensino de programação no curso de Sistemas de Info Os projetos foram desenvolvidos utilizando o NetBeans 8.2. +Em ambiente Windows é necessário instalar o MinGW seguindo o manual de configuração disponvel em: + +https://netbeans.org/community/releases/80/cpp-setup-instructions.html#compilers_windows + # Como compilar o projeto? Para compilar é necessário apenas emitir o comando: From 4542c452280ff83e71654434fcc1801813cdf15d Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 30 Oct 2017 21:29:38 -0200 Subject: [PATCH 06/92] =?UTF-8?q?Indenta=C3=A7=C3=B5es=20corrigidas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/gerais.c | 2 +- .../nbproject/private/private.xml | 1 + codigos/ControleEstoqueC/paises.c | 436 +++++++++--------- codigos/ControleEstoqueC/paises.h | 4 +- 4 files changed, 222 insertions(+), 221 deletions(-) diff --git a/codigos/ControleEstoqueC/gerais.c b/codigos/ControleEstoqueC/gerais.c index a25dad6..aefc503 100644 --- a/codigos/ControleEstoqueC/gerais.c +++ b/codigos/ControleEstoqueC/gerais.c @@ -6,5 +6,5 @@ * Data: 15/08/2017 */ void limparTela(){ - system("clear"); + system("clear"); } \ No newline at end of file diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 63a27a8..9bba057 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -4,4 +4,5 @@ 1 0 + diff --git a/codigos/ControleEstoqueC/paises.c b/codigos/ControleEstoqueC/paises.c index 249b76f..51387b8 100644 --- a/codigos/ControleEstoqueC/paises.c +++ b/codigos/ControleEstoqueC/paises.c @@ -6,65 +6,65 @@ * Data: 15/08/2017 */ void mostrarListagemPaises(){ - int opcao; - - do { - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Executa o comando de consulta - if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - while ( (linha = mysql_fetch_row(resultado)) ){ - //Obtém cada coluna na órdem - int id = atoi(linha[0]); - char *nome = linha[1]; - - //Imprime cada linha - printf("| %10d | %-100s |\n", id, nome); - } - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("O que deseja fazer?\n"); - printf("1) Cadastrar um novo país\n"); - printf("2) Alterar um país\n"); - printf("3) Excluir um país\n"); - printf("4) Voltar ao menu principal\n\n"); - - printf("Digite a opção desejada: "); - scanf("%d", &opcao); getchar(); - - switch (opcao){ - case 1: mostrarCadastroPais(); break; - case 2: mostrarAlteracaoPais(); break; - case 3: mostrarExclusaoPais(); break; - } - } while (opcao != 4); + int opcao; + + do { + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE PAÍSES |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Executa o comando de consulta + if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("| %10d | %-100s |\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("O que deseja fazer?\n"); + printf("1) Cadastrar um novo país\n"); + printf("2) Alterar um país\n"); + printf("3) Excluir um país\n"); + printf("4) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: mostrarCadastroPais(); break; + case 2: mostrarAlteracaoPais(); break; + case 3: mostrarExclusaoPais(); break; + } + } while (opcao != 4); } /** @@ -73,24 +73,24 @@ void mostrarListagemPaises(){ * Data: 15/08/2017 */ void mostrarCadastroPais() { - Pais p; + Pais p; - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| CADASTRO DE PAÍSES |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| NOME: "); - fgets(p.nome, sizeof(p.nome), stdin); - int tamanho = strlen(p.nome); p.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| NOME: "); + fgets(p.nome, sizeof(p.nome), stdin); + int tamanho = strlen(p.nome); p.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("Deseja realmente criar o país? (S/N) "); - char resposta = getchar(); getchar(); + printf("Deseja realmente criar o país? (S/N) "); + char resposta = getchar(); getchar(); - if (resposta == 'S' || resposta == 's'){ - inserirPais(p); - } + if (resposta == 'S' || resposta == 's'){ + inserirPais(p); + } } /** @@ -99,164 +99,164 @@ void mostrarCadastroPais() { * Data: 15/08/2017 */ void inserirPais(Pais p){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "insert into paises(nome) values('%s')", p.nome); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("País cadastrado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "insert into paises(nome) values('%s')", p.nome); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("País cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } } void alterarPais(Pais p){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "update paises set nome = '%s' where id = %d", p.nome, p.id); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("País alterado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update paises set nome = '%s' where id = %d", p.nome, p.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("País alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } } void excluirPais(int codigo){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "delete from paises where id = %d", codigo); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("País excluído com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from paises where id = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("País excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } } Pais* selecionarPais(int codigo){ - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - char sql[500]; - snprintf(sql, 500, "select id, nome from paises where id = %d", codigo); - - //Executa o comando de consulta - if (mysql_query(&mysql, sql) == 0){ - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - int *id; - char *nome; - if ( (linha = mysql_fetch_row(resultado)) ){ - //Obtém cada coluna na órdem - *id = atoi(linha[0]); - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - Pais pais; - Pais *p = &pais; - strncpy(p->nome, linha[1], 100); - p->id = *id; - - //Imprime cada linha - return p; - } else { - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - return NULL; - } - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "select id, nome from paises where id = %d", codigo); + + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0){ + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + int *id; + char *nome; + if ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem + *id = atoi(linha[0]); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + Pais pais; + Pais *p = &pais; + strncpy(p->nome, linha[1], 100); + p->id = *id; + + //Imprime cada linha + return p; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } } void mostrarAlteracaoPais(){ - int codigo; - printf("Digite o código do país que deseja alterar: "); - scanf("%d", &codigo); getchar(); - - Pais *p = selecionarPais(codigo); - - limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| Id: %d\n", p->id); - printf("| Nome: %s\n", p->nome); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("Digite o novo nome do país: "); - char nome[100]; - fgets(nome, sizeof(nome), stdin); - int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(p->nome, nome, 100); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - - printf("Deseja realmente salvar as alterações? (S/N) "); - char resposta = getchar(); getchar(); - - if (resposta == 'S' || resposta == 's'){ - alterarPais(*p); - } - - getchar(); + int codigo; + printf("Digite o código do país que deseja alterar: "); + scanf("%d", &codigo); getchar(); + + Pais *p = selecionarPais(codigo); + + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| CADASTRO DE PAÍSES |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| Id: %d\n", p->id); + printf("| Nome: %s\n", p->nome); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Digite o novo nome do país: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(p->nome, nome, 100); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + alterarPais(*p); + } + + getchar(); } void mostrarExclusaoPais(){ - int codigo; - printf("Digite o código do país que deseja excluir: "); - scanf("%d", &codigo); - getchar(); - - excluirPais(codigo); - getchar(); + int codigo; + printf("Digite o código do país que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + excluirPais(codigo); + getchar(); } \ No newline at end of file diff --git a/codigos/ControleEstoqueC/paises.h b/codigos/ControleEstoqueC/paises.h index 9928014..3664558 100644 --- a/codigos/ControleEstoqueC/paises.h +++ b/codigos/ControleEstoqueC/paises.h @@ -11,8 +11,8 @@ * Estrutura para representar um pais */ typedef struct { - int id; - char nome[100]; + int id; + char nome[100]; } Pais; /** From 9272b2185288a5846d91ce38eb659a299f349219 Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 30 Oct 2017 22:02:34 -0200 Subject: [PATCH 07/92] Ajuste do problema alterar --- codigos/ControleEstoqueC/main.c | 6 +-- .../nbproject/private/configurations.xml | 2 + codigos/ControleEstoqueC/paises.c | 38 +++++++++---------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 051e5a9..a063dfd 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -13,9 +13,9 @@ void mostrarMenuPrincipal(){ do { limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); + printf("|--------------------------------------------------------------------|\n"); printf("1) Cadastro de países\n"); printf("2) Cadastro de estados\n"); diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 30b54f8..7560ded 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,6 +13,8 @@ + + diff --git a/codigos/ControleEstoqueC/paises.c b/codigos/ControleEstoqueC/paises.c index 51387b8..72f4913 100644 --- a/codigos/ControleEstoqueC/paises.c +++ b/codigos/ControleEstoqueC/paises.c @@ -10,11 +10,11 @@ void mostrarListagemPaises(){ do { limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE PAÍSES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| ID | NOME |\n"); + printf("|--------------------------------------------------------------------|\n"); //Cria a variável de conexão com o MySQL MYSQL mysql; @@ -35,7 +35,7 @@ void mostrarListagemPaises(){ char *nome = linha[1]; //Imprime cada linha - printf("| %10d | %-100s |\n", id, nome); + printf("| %10d | %-53s |\n", id, nome); } //Libera os resultado e fecha a conexão @@ -48,7 +48,7 @@ void mostrarListagemPaises(){ printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); printf("O que deseja fazer?\n"); printf("1) Cadastrar um novo país\n"); @@ -76,14 +76,14 @@ void mostrarCadastroPais() { Pais p; limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE PAÍSES |\n"); + printf("|--------------------------------------------------------------------|\n"); printf("| NOME: "); fgets(p.nome, sizeof(p.nome), stdin); int tamanho = strlen(p.nome); p.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); printf("Deseja realmente criar o país? (S/N) "); char resposta = getchar(); getchar(); @@ -187,11 +187,11 @@ Pais* selecionarPais(int codigo){ //Cria uma variável para guardar a linha MYSQL_ROW linha; - int *id; + int id; char *nome; if ( (linha = mysql_fetch_row(resultado)) ){ //Obtém cada coluna na órdem - *id = atoi(linha[0]); + id = atoi(linha[0]); //Libera os resultado e fecha a conexão mysql_free_result(resultado); @@ -200,7 +200,7 @@ Pais* selecionarPais(int codigo){ Pais pais; Pais *p = &pais; strncpy(p->nome, linha[1], 100); - p->id = *id; + p->id = id; //Imprime cada linha return p; @@ -227,19 +227,19 @@ void mostrarAlteracaoPais(){ Pais *p = selecionarPais(codigo); limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE PAÍSES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE PAÍSES |\n"); + printf("|--------------------------------------------------------------------|\n"); printf("| Id: %d\n", p->id); printf("| Nome: %s\n", p->nome); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); printf("Digite o novo nome do país: "); char nome[100]; fgets(nome, sizeof(nome), stdin); int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(p->nome, nome, 100); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); From ddb7ca62edbe6f1148ab20e7a628f5fda6756317 Mon Sep 17 00:00:00 2001 From: aluno Date: Mon, 30 Oct 2017 22:17:30 -0200 Subject: [PATCH 08/92] Arquivos do grupo estado --- codigos/ControleEstoqueC/estados.c | 289 ++++++++++++++++++ codigos/ControleEstoqueC/estados.h | 30 ++ codigos/ControleEstoqueC/main.c | 2 + .../nbproject/Makefile-Debug.mk | 6 + .../nbproject/Makefile-Release.mk | 6 + .../nbproject/configurations.xml | 10 + .../nbproject/private/configurations.xml | 2 - 7 files changed, 343 insertions(+), 2 deletions(-) create mode 100644 codigos/ControleEstoqueC/estados.c create mode 100644 codigos/ControleEstoqueC/estados.h diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c new file mode 100644 index 0000000..0066720 --- /dev/null +++ b/codigos/ControleEstoqueC/estados.c @@ -0,0 +1,289 @@ +#include "estados.h" + +/** + * Lista todos os países cadastrados no banco de dados + * Autor: Ana Luiza, Alexandre, Samuel, Antonio + * Data: 02/10/2017 + */ + +void mostrarListagemEstados() { + + int opcao; + do { + limparTela(); + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE ESTADOS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | UF | ID PAÍS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Executa o comando de consulta + if (mysql_query(&mysql, "select idEstado, nomeEstado, uf, idPais from estados order by nomeEstado") == 0) { + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + MYSQL_ROW linha; + + while ((linha = mysql_fetch_row(resultado))) { + int idEstado = atoi(linha[0]), idPais = atoi(linha[3]); + char *nomeEstado = linha[1], *uf = linha[2]; + + //Imprime + printf("| %10d | %-32s | %-22s | %40d |\n", idEstado, nomeEstado, uf, idPais); + } + + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("O que deseja fazer?\n"); + printf("1) Cadastrar um novo Estado\n"); + printf("2) Alterar um Estado\n"); + printf("3) Excluir um Estado\n"); + printf("4) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); + getchar(); + + switch (opcao) { + case 1: + mostrarCadastroEstado(); + break; + case 2: + mostrarAlteracaoEstado(); + break; + case 3: + mostrarExclusaoEstado(); + break; + } + + } while (opcao != 4); +} + +void mostrarCadastroEstado() { + Estado e; + limparTela(); + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| CADASTRO DE ESTADOS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("| NOME: "); + fgets(e.nomeEstado, sizeof (e.nomeEstado), stdin); + int tamanhoNome = strlen(e.nomeEstado); + e.nomeEstado[tamanhoNome - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("| UF: "); + fgets(e.uf, sizeof (e.uf), stdin); + int tamanhoUf = strlen(e.uf); + e.uf[tamanhoUf ] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("| ID PAÍS: "); + scanf("%d", &e.idPais); + getchar(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Deseja realmente criar o país? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + inserirEstado(e); + } + +} + +void inserirEstado(Estado e) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "insert into estados(nomeEstado, uf, idPais) values('%s','%s',%d)", e.nomeEstado, e.uf, e.idPais); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Estado cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void alterarEstado(Estado e) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update estados set nomeEstado = '%s', uf = '%s', idPais = %d where idEstado = %d", e.nomeEstado, e.uf, e.idPais, e.idEstado); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Estado alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void excluirEstado(int codigo) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from estados where idEstado = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Estado excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +Estado* selecionarEstado(int codigo) { + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "select idEstado, nomeEstado, uf, idPais from estados where idEstado = %d", codigo); + + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0) { + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + int idEstado; + char *nomeEstado; + char *uf; + int idPais; + if ((linha = mysql_fetch_row(resultado))) { + //Obtém cada coluna na órdem + idEstado = atoi(linha[0]); + idPais = atoi(linha[3]); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + Estado estado; + Estado *e = &estado; + strncpy(e->nomeEstado, linha[1], 60); + strncpy(e->uf, linha[2], 3); + e->idEstado = idEstado; + e->idPais = idPais; + + //Imprime cada linha + return e; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void mostrarAlteracaoEstado() { + int codigo; + printf("Digite o código do estado que deseja alterar: "); + scanf("%d", &codigo); + getchar(); + + Estado *e = selecionarEstado(codigo); + + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| CADASTRO DE ESTADO |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| Id: %d\n", e->idEstado); + printf("| Nome: %s\n", e->nomeEstado); + printf("| UF: %s\n", e->uf); + printf("| isPais: %d\n", e->idPais); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Digite o novo nome do estado: "); + char nomeEstado[100]; + fgets(nomeEstado, sizeof (nomeEstado), stdin); + int tamanhoNome = strlen(nomeEstado); + nomeEstado[tamanhoNome - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(e->nomeEstado, nomeEstado, 100); + + printf("Digite o novo uf do estado: "); + char uf[100]; + fgets(uf, sizeof (uf), stdin); + int tamanhoUf = strlen(uf); + uf[tamanhoUf - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(e->uf, uf, 100); + + printf("Digite o novo id do Pais: "); + scanf("%d", &e->idPais); + getchar(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + alterarEstado(*e); + } + + getchar(); +} + +void mostrarExclusaoEstado() { + int codigo; + printf("Digite o código do estado que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + excluirEstado(codigo); +} \ No newline at end of file diff --git a/codigos/ControleEstoqueC/estados.h b/codigos/ControleEstoqueC/estados.h new file mode 100644 index 0000000..6423816 --- /dev/null +++ b/codigos/ControleEstoqueC/estados.h @@ -0,0 +1,30 @@ +#ifndef ESTADOS_H +#define ESTADOS_H + +#include +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + +typedef struct { + int idEstado; + char nomeEstado[60]; + char uf[3];// enquanto o limite do vetor estava como 2 o cadastro não funcionava + int idPais; +} Estado; + +void mostrarListagemEstados(); + +void mostrarCadastroEstado(); + +void inserirEstado(Estado e); +void excluirPais(int codigo); +void alterarEstado(Estado e); +Estado* selecionarEstado(int codigo); + +void mostrarAlteracaoEstado(); +void mostrarExclusaoEstado(); +void excluirEstado(int codigo); + +#endif diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index a063dfd..1610310 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -1,5 +1,6 @@ #include #include "paises.h" +#include "estados.h" #include "clientes.h" #include "gerais.h" @@ -32,6 +33,7 @@ void mostrarMenuPrincipal(){ switch (opcao){ case 1: mostrarListagemPaises(); break; + case 2: mostrarListagemEstados(); break; case 4: mostrarCadastroClientes(); break; case 9: printf("Até a próxima vez!\n"); diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk index 96097a4..20a7de7 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -36,6 +36,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ ${OBJECTDIR}/clientes.o \ + ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -71,6 +72,11 @@ ${OBJECTDIR}/clientes.o: clientes.c ${RM} "$@.d" $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/clientes.o clientes.c +${OBJECTDIR}/estados.o: estados.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/estados.o estados.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk index 2dfdc05..ed2f736 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -36,6 +36,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ ${OBJECTDIR}/clientes.o \ + ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -71,6 +72,11 @@ ${OBJECTDIR}/clientes.o: clientes.c ${RM} "$@.d" $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/clientes.o clientes.c +${OBJECTDIR}/estados.o: estados.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/estados.o estados.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index 5dedd43..aa7c1fc 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -6,6 +6,7 @@ projectFiles="true"> clientes.h diretivas_conexao.h + estados.h gerais.h paises.h @@ -13,6 +14,7 @@ displayName="Arquivos de Código-Fonte" projectFiles="true"> clientes.c + estados.c gerais.c main.c paises.c @@ -56,6 +58,10 @@ + + + + @@ -96,6 +102,10 @@ + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 7560ded..30b54f8 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,8 +13,6 @@ - - From 3699aac59234d1e08980b0d79be202fcf3844763 Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 30 Oct 2017 22:18:20 -0200 Subject: [PATCH 09/92] =?UTF-8?q?Cria=C3=A7=C3=A3o=20produtos.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nbproject/configurations.xml | 5 ++++ .../nbproject/private/configurations.xml | 2 -- .../nbproject/private/private.xml | 7 ++++- codigos/ControleEstoqueC/produtos.h | 29 +++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 codigos/ControleEstoqueC/produtos.h diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index 5dedd43..3f2272b 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -8,6 +8,7 @@ diretivas_conexao.h gerais.h paises.h + produtos.h + + @@ -108,6 +111,8 @@ + + diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 7560ded..30b54f8 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,8 +13,6 @@ - - diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 9bba057..ec71d0d 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -4,5 +4,10 @@ 1 0 - + + + file:/home/aluno/git/controleestoque_c/codigos/ControleEstoqueC/main.c + file:/home/aluno/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + + diff --git a/codigos/ControleEstoqueC/produtos.h b/codigos/ControleEstoqueC/produtos.h new file mode 100644 index 0000000..1dbecaf --- /dev/null +++ b/codigos/ControleEstoqueC/produtos.h @@ -0,0 +1,29 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: produtos.h + * Author: aluno + * + * Created on 30 de Outubro de 2017, 22:14 + */ + +#ifndef PRODUTOS_H +#define PRODUTOS_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif /* PRODUTOS_H */ + From c58c013261b89e80004a27c35cbdc592adaa7353 Mon Sep 17 00:00:00 2001 From: Matheus H Date: Mon, 30 Oct 2017 22:19:05 -0200 Subject: [PATCH 10/92] arquivos add: cidade.h e cidade.c --- codigos/ControleEstoqueC/cidade.c | 3 ++ codigos/ControleEstoqueC/cidade.h | 29 +++++++++++++++++++ .../nbproject/Makefile-Debug.mk | 6 ++++ .../nbproject/Makefile-Release.mk | 6 ++++ .../nbproject/configurations.xml | 10 +++++++ .../nbproject/private/configurations.xml | 2 -- 6 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 codigos/ControleEstoqueC/cidade.c create mode 100644 codigos/ControleEstoqueC/cidade.h diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c new file mode 100644 index 0000000..8413c8d --- /dev/null +++ b/codigos/ControleEstoqueC/cidade.c @@ -0,0 +1,3 @@ +#include "cidade.h"; + + diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidade.h new file mode 100644 index 0000000..dc26a01 --- /dev/null +++ b/codigos/ControleEstoqueC/cidade.h @@ -0,0 +1,29 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: cidade.h + * Author: blackowl + * + * Created on October 30, 2017, 10:13 PM + */ + +#ifndef CIDADE_H +#define CIDADE_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif /* CIDADE_H */ + diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk index 96097a4..9e16665 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -35,6 +35,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ + ${OBJECTDIR}/cidade.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ @@ -66,6 +67,11 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} `mysql_config --libs` +${OBJECTDIR}/cidade.o: cidade.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidade.o cidade.c + ${OBJECTDIR}/clientes.o: clientes.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk index 2dfdc05..2e6b3e3 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -35,6 +35,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ + ${OBJECTDIR}/cidade.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ @@ -66,6 +67,11 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} +${OBJECTDIR}/cidade.o: cidade.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidade.o cidade.c + ${OBJECTDIR}/clientes.o: clientes.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index 5dedd43..cbeb54e 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -4,6 +4,7 @@ + cidade.h clientes.h diretivas_conexao.h gerais.h @@ -12,6 +13,7 @@ + cidade.c clientes.c gerais.c main.c @@ -50,6 +52,10 @@ `mysql_config --libs` + + + + @@ -90,6 +96,10 @@ 5 + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 7560ded..30b54f8 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,8 +13,6 @@ - - From fef57f9c87fc7f3e28d89fa9fc3f6cb41c51d89f Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 30 Oct 2017 22:22:57 -0200 Subject: [PATCH 11/92] Arquivos do grupo estado. --- codigos/ControleEstoqueC/estados.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c index 0066720..792519b 100644 --- a/codigos/ControleEstoqueC/estados.c +++ b/codigos/ControleEstoqueC/estados.c @@ -246,7 +246,7 @@ void mostrarAlteracaoEstado() { printf("| Id: %d\n", e->idEstado); printf("| Nome: %s\n", e->nomeEstado); printf("| UF: %s\n", e->uf); - printf("| isPais: %d\n", e->idPais); + printf("| idPais: %d\n", e->idPais); printf("|-------------------------------------------------------------------------------------------------------------------|\n"); printf("Digite o novo nome do estado: "); From acf74bababb6e1454d28240fabb2e9374e343173 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 30 Oct 2017 22:30:39 -0200 Subject: [PATCH 12/92] grupo funcionarios --- codigos/ControleEstoqueC/funcionarios.c | 6 +++++ codigos/ControleEstoqueC/funcionarios.h | 29 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 codigos/ControleEstoqueC/funcionarios.c create mode 100644 codigos/ControleEstoqueC/funcionarios.h diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c new file mode 100644 index 0000000..a9d4fb1 --- /dev/null +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -0,0 +1,6 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h new file mode 100644 index 0000000..fae137c --- /dev/null +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -0,0 +1,29 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: funcionarios.h + * Author: aluno + * + * Created on 30 de Outubro de 2017, 22:11 + */ + +#ifndef FUNCIONARIOS_H +#define FUNCIONARIOS_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif /* FUNCIONARIOS_H */ + From 02c68cf46894636e0b19f370e51153ac2578e8f7 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Tue, 31 Oct 2017 12:21:26 -0200 Subject: [PATCH 13/92] Criacao do arquivo fornecedores.h e .c do Grupo Fornecedores. --- codigos/ControleEstoqueC/fornecedores.c | 6 ++++ codigos/ControleEstoqueC/fornecedores.h | 29 +++++++++++++++++++ .../nbproject/Makefile-Debug.mk | 6 ++++ .../nbproject/Makefile-Release.mk | 6 ++++ .../nbproject/configurations.xml | 10 +++++++ .../nbproject/private/private.xml | 5 ++-- 6 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 codigos/ControleEstoqueC/fornecedores.c create mode 100644 codigos/ControleEstoqueC/fornecedores.h diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c new file mode 100644 index 0000000..a9d4fb1 --- /dev/null +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -0,0 +1,6 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h new file mode 100644 index 0000000..43badcd --- /dev/null +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -0,0 +1,29 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: fornecedores.h + * Author: welliton + * + * Created on 31 de Outubro de 2017, 12:17 + */ + +#ifndef FORNECEDORES_H +#define FORNECEDORES_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif /* FORNECEDORES_H */ + diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk index b7e2b6b..2b2ac71 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -38,6 +38,7 @@ OBJECTFILES= \ ${OBJECTDIR}/cidade.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ + ${OBJECTDIR}/fornecedores.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -83,6 +84,11 @@ ${OBJECTDIR}/estados.o: estados.c ${RM} "$@.d" $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/estados.o estados.c +${OBJECTDIR}/fornecedores.o: fornecedores.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fornecedores.o fornecedores.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk index 2c3c1fc..6bc4dfb 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -38,6 +38,7 @@ OBJECTFILES= \ ${OBJECTDIR}/cidade.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ + ${OBJECTDIR}/fornecedores.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -83,6 +84,11 @@ ${OBJECTDIR}/estados.o: estados.c ${RM} "$@.d" $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/estados.o estados.c +${OBJECTDIR}/fornecedores.o: fornecedores.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fornecedores.o fornecedores.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index 5660a06..d9fb467 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -8,6 +8,7 @@ clientes.h diretivas_conexao.h estados.h + fornecedores.h gerais.h paises.h produtos.h @@ -18,6 +19,7 @@ cidade.c clientes.c estados.c + fornecedores.c gerais.c main.c paises.c @@ -69,6 +71,10 @@ + + + + @@ -119,6 +125,10 @@ + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index ec71d0d..47d01c4 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -4,10 +4,11 @@ 1 0 + - file:/home/aluno/git/controleestoque_c/codigos/ControleEstoqueC/main.c - file:/home/aluno/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h From 8609d032152cd8fcf8730aff9531be265b88c01d Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Wed, 1 Nov 2017 02:04:31 -0200 Subject: [PATCH 14/92] =?UTF-8?q?Teste=20de=20Codifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/funcionarios.sql | 19 + codigos/ControleEstoqueC/cidade.c | 2 +- codigos/ControleEstoqueC/funcionarios.c | 362 +++++++++++++++++- codigos/ControleEstoqueC/funcionarios.h | 68 +++- codigos/ControleEstoqueC/main.c | 2 + .../nbproject/private/private.xml | 5 +- 6 files changed, 429 insertions(+), 29 deletions(-) create mode 100644 banco_de_dados/funcionarios.sql diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql new file mode 100644 index 0000000..72a6fdb --- /dev/null +++ b/banco_de_dados/funcionarios.sql @@ -0,0 +1,19 @@ +create database if not exists controleestoque; + +use controleestoque; +--teste +create table paises ( + idFuncionario int auto_increment primary key, + NomeFuncionario varchar(100) not null, + SexoFuncionario varchar (2) not null, + DataNascimentoFuncionario date not null, + EnderecoFuncionario varchar (300) not null, + cidadeFuncionario varchar (200) not null, + cepFuncionario int(10) not null, + telefoneFuncionario int(10) not null, + cpfFuncionario int(12) not null, + rgFuncionario int (10) not null + profissaoFuncionario varchar(100) not null, + pisPasepFuncionario varchar (200) not null + +); diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index 8413c8d..e771d32 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -1,3 +1,3 @@ -#include "cidade.h"; +#include "cidade.h" diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index a9d4fb1..04f91bb 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -1,6 +1,360 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +#include "funcionarios.h" +#include +#include + +/** + * Mostra os Funcionarios cadastrados + * Autor: Bruno Qualhato + * Data: 26/08/2017 + */ + +// teste + +void mostrarListagemFuncionarios() { + int opcao; + + do { + limparTela(); + printf("|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE FUNCIONARIOS |\n"); + printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO | CIDADE | CEP | TELEFONE | CPF | RG | PROFISSAO | PIS/PASEP | \n"); + printf("|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Executa o comando de consulta + if (mysql_query(&mysql, "SELECT idFuncionario," + " NomeFuncionario," + " SexoFuncionario," + " DataNascimentoFuncionario," + " EnderecoFuncionario," + " cidadeFuncionario," + " cepFuncionario," + " telefoneFuncionario," + "cpfFuncionario, FROM Funcionarios ORDER BY nome") == 0) { + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ((linha = mysql_fetch_row(resultado))) { + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + char *sexo = linha[2]; + char *datanascimento = linha[3]; + char *endereco = linha[4]; + char *cidade = linha[5]; + int cep = atoi(linha[6]); + int telefone = atoi(linha[7]); + int cpf = atoi(linha[8]); + int rg = atoi(linha[9]); + char *profissao = linha[10]; + int pispasep = atoi(linha[11]); + char *dataCadastro = linha[12]; + //atoi = converter para "string" para int + //atof = converter para 'string' para double + + + //Imprime cada linha + printf("| %d | %s | %s| %s | %s| %s | %d | %d | %d | %d | %s | %d | %s |\n", + id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep, dataCadastro); + + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + printf("|------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("\nO que deseja fazer?\n"); + printf("1) Cadastrar um novo Funcionario\f"); + printf("2) Alterar um Funcionario\f"); + printf("3) Excluir um Funcionario\f"); + printf("4) Voltar ao menu principal\n\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao); + getchar(); + + switch (opcao) { + case 1: mostrarCadastroFuncionario(); + break; + case 2: mostrarListagemFuncionarios(); + break; + case 3: mostrarExclusaoFuncionario(); + break; + + } + } while (opcao != 4); +} + +/** + * mostra tela de cadastro de Funcionarios + * Autor: + * Data: 26/08/2017 + */ +void mostrarCadastroFuncionario() { + Funcionarios f; + + limparTela(); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| CADASTRO DE FUNCIONARIOS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + //Obten o Nome + printf("| NOME: "); + fgets(f.nome, sizeof (f.nome), stdin); + int tamanho = strlen(f.nome); + f.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("| SEXO (F/M): "); + fgets(f.sexo, sizeof (f.sexo), stdin); + tamanho = strlen(f.sexo); + f.sexo[tamanho - 1] = '\0'; + + printf("| DATA DE NASCIOMENTO (XX/XX/XXX): "); + fgets(f.datanasci, sizeof (f.datanasci), stdin); + tamanho = strlen(f.datanasci); + f.datanasci[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + getchar(); + + printf("| ENDEREÇO: "); + fgets(f.endereco, sizeof (f.endereco), stdin); + tamanho = strlen(f.endereco); + f.endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("| CIDADE: "); + fgets(f.cidade, sizeof (f.cidade), stdin); + tamanho = strlen(f.cidade); + f.cidade[tamanho - 1] = '\0'; + + printf("| CEP: "); + scanf("%d", &f.cep); + getchar(); + + printf("| TELEFONE(XX)XXXXX-XXXX: "); + scanf("%d", &f.telefone); + getchar(); + + printf("| CPF: "); + scanf("%d", &f.cpf); + getchar(); + + printf("| RG: "); + scanf("%d", &f.rg); + getchar(); + + printf("| PROFISSÃO: "); + fgets(f.profissao, sizeof (f.profissao), stdin); + tamanho = strlen(f.profissao); + f.profissao[tamanho - 1] = '\0'; + + printf("| PIS/PASEP: "); + scanf("%d", &f.pispasep); + getchar(); + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("Deseja realmente cadastrar esse funcionario? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + inserirFuncionario(f); + } else { + mostrarListagemFuncionarios(); + } +} + + +/** + * Insere um novo funcionario + * Autor: Bruno Qualhato + * Data: 26/08/2017 */ +//Inicializa a variável de conexão com o MySQL + +void inserirFuncionario(Funcionarios f) { + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + + snprintf(sql, 500, "INSERT INTO funcionarios(nome,sexo,datanascimento,endereco,cidade,cep, telefone,cpf,rg,profissao,pispasep) values('%s','%s','%s','%s','%s','%d','%d','%d','%d','%s','%d')" + , f.nome, f.sexo, f.datanasci, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); + + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Funcionario fadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void alterarFuncionario(Funcionarios f) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update funcionario set nome = '%s' where id = %d", f.nome, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("País alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Exclui um Funcionario +f* Autor: + * Data: /08/2017 + */ +void ExclusaoFuncionario(int codigo) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from funcionario where id = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Funcionario excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + +} + +Funcionarios* selecionarFuncionario(int codigo) { + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "select id, nome from funcionarios where id = %d", codigo); + + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0) { + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + int id; + char *nome; + if ((linha = mysql_fetch_row(resultado))) { + //Obtém cada coluna na órdem + id = atoi(linha[0]); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + Funcionarios funcionarios; + + Funcionarios *f = &funcionarios; + strncpy(f->nome, linha[1], 100); + f->id = id; + + //Imprime cada linha + return f; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void mostrarAlteracaoFuncionario() { + int codigo; + printf("Digite o código do Funcionarios que deseja alterar: "); + scanf("%d", &codigo); + getchar(); + + Funcionarios *f = selecionarFuncionario(codigo); + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE FUNCIONARIOS |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| Id: %d\n", f->id); + printf("| Nome: %s\n", f->nome); + printf("|--------------------------------------------------------------------|\n"); + + printf("Digite o novo nome do Funcionario: "); + char nome[100]; + fgets(nome, sizeof (nome), stdin); + int tamanho = strlen(nome); + nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + alterarFuncionario(*f); + } + + getchar(); +} + +void mostrarExclusaoFuncionario() { + int codigo; + printf("Digite o código do funcionario que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + ExclusaoFuncionario(codigo); + getchar(); +} diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index fae137c..4780c10 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -1,29 +1,57 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -/* - * File: funcionarios.h - * Author: aluno - * - * Created on 30 de Outubro de 2017, 22:11 - */ - #ifndef FUNCIONARIOS_H #define FUNCIONARIOS_H -#ifdef __cplusplus -extern "C" { -#endif +#include +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + +typedef struct { + int id; + char nome [100]; + char sexo [5]; + char datanasci [10]; + char endereco[100]; + char cidade[100]; + char profissao[100]; + int cep; + int telefone; + int cpf; + int rg; + int pispasep; +} Funcionarios; + + +/** + * Lista todos os funcinarios cadastrados no banco de dados + */ +void mostrarListagemFuncionarios();//OK +/** + * Apresenta o cadastro de funcionario + */ +void mostrarCadastroFuncionario();//OK + +/** + * Função para inserção de um funcionario no banco de dados + */ +void inserirFuncionario(Funcionarios f);//OK +/** + * Edita funcionario cadastrados no banco de dados + */ +void alterarfuncionario(Funcionarios f); + /** + * Exclui funcionario cadastrado no banco de dados + */ +void ExclusaoFuncionario(int codigo); -#ifdef __cplusplus -} -#endif +Funcionarios* selecionarFuncionario(int codigo); + +void mostrarAlteracaoFuncionario(); -#endif /* FUNCIONARIOS_H */ +void mostrarExclusaoFuncionario(); +#endif \ No newline at end of file diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 1610310..e32bf70 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -3,6 +3,7 @@ #include "estados.h" #include "clientes.h" #include "gerais.h" +#include "funcionarios.h" /** * Mostra o menu principal do sistema @@ -35,6 +36,7 @@ void mostrarMenuPrincipal(){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; case 4: mostrarCadastroClientes(); break; + //case 8: mostrarListagemFuncionarios(); break; //erro "referência indefinida para `mostrarListagemFuncionarios'" case 9: printf("Até a próxima vez!\n"); break; diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 47d01c4..aef7ea3 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,9 +6,6 @@ - - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h - + From d2f5915ac55e1b6c0b4f9f874f976d4b286b9b40 Mon Sep 17 00:00:00 2001 From: Bruno Qualhato Date: Wed, 1 Nov 2017 22:30:48 -0200 Subject: [PATCH 15/92] Update funcionarios.sql --- banco_de_dados/funcionarios.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql index 72a6fdb..bc5e7cc 100644 --- a/banco_de_dados/funcionarios.sql +++ b/banco_de_dados/funcionarios.sql @@ -2,7 +2,7 @@ create database if not exists controleestoque; use controleestoque; --teste -create table paises ( +create table funcionarios ( idFuncionario int auto_increment primary key, NomeFuncionario varchar(100) not null, SexoFuncionario varchar (2) not null, From 546bb614ca6c603f6946c4c8d19c21f98b8b8307 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Thu, 2 Nov 2017 23:45:48 -0200 Subject: [PATCH 16/92] Ajustes --- funcionarios.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 funcionarios.sql diff --git a/funcionarios.sql b/funcionarios.sql new file mode 100644 index 0000000..b1621e6 --- /dev/null +++ b/funcionarios.sql @@ -0,0 +1,19 @@ +create database if not exists controleestoque; + +use controleestoque; + +create table funcionarios ( + idFuncionario int auto_increment primary key not null, + NomeFuncionario varchar(100) not null, + SexoFuncionario varchar (2) not null, + DataNascimentoFuncionario date not null, + EnderecoFuncionario varchar (300) not null, + cidadeFuncionario varchar (200) not null, + cepFuncionario int(10) not null, + telefoneFuncionario int(10) not null, + cpfFuncionario int(12) not null, + rgFuncionario int (10) not null + profissaoFuncionario varchar(100) not null, + pisPasepFuncionario varchar (200) not null + +); From 42c2aed1141878a68a557a720dcaaabaa88d0e95 Mon Sep 17 00:00:00 2001 From: Bruno Qualhato Date: Thu, 2 Nov 2017 23:49:19 -0200 Subject: [PATCH 17/92] Delete funcionarios.sql --- funcionarios.sql | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 funcionarios.sql diff --git a/funcionarios.sql b/funcionarios.sql deleted file mode 100644 index b1621e6..0000000 --- a/funcionarios.sql +++ /dev/null @@ -1,19 +0,0 @@ -create database if not exists controleestoque; - -use controleestoque; - -create table funcionarios ( - idFuncionario int auto_increment primary key not null, - NomeFuncionario varchar(100) not null, - SexoFuncionario varchar (2) not null, - DataNascimentoFuncionario date not null, - EnderecoFuncionario varchar (300) not null, - cidadeFuncionario varchar (200) not null, - cepFuncionario int(10) not null, - telefoneFuncionario int(10) not null, - cpfFuncionario int(12) not null, - rgFuncionario int (10) not null - profissaoFuncionario varchar(100) not null, - pisPasepFuncionario varchar (200) not null - -); From 34888dbbf7987c17a0a62cdd2381ed68fd767dcd Mon Sep 17 00:00:00 2001 From: Bruno Qualhato Date: Fri, 3 Nov 2017 00:19:14 -0200 Subject: [PATCH 18/92] Ajustes Adicionar Funcionario = Pass Remover Funcionario = Pass --- codigos/ControleEstoqueC/funcionarios.c | 89 +++++++++++++------------ 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 04f91bb..4030b85 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -1,3 +1,9 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + #include "funcionarios.h" #include #include @@ -15,26 +21,18 @@ void mostrarListagemFuncionarios() { do { limparTela(); - printf("|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE FUNCIONARIOS |\n"); - printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO | CIDADE | CEP | TELEFONE | CPF | RG | PROFISSAO | PIS/PASEP | \n"); - printf("|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("-----------------------------------------|\n"); + printf("| LISTAGEM DE FUNCIONARIOS |\n"); + printf("|---------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO |CIDADE| CEP |TELEFONE| CPF |RG |PROFISSAO| PIS/PASEP |\n"); + printf("|---------------------------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Executa o comando de consulta - if (mysql_query(&mysql, "SELECT idFuncionario," - " NomeFuncionario," - " SexoFuncionario," - " DataNascimentoFuncionario," - " EnderecoFuncionario," - " cidadeFuncionario," - " cepFuncionario," - " telefoneFuncionario," - "cpfFuncionario, FROM Funcionarios ORDER BY nome") == 0) { + if (mysql_query(&mysql, "SELECT idFuncionario, NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario,rgFuncionario,profissaoFuncionario, pisPasepFuncionario from funcionarios") == 0) { //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -54,14 +52,14 @@ void mostrarListagemFuncionarios() { int rg = atoi(linha[9]); char *profissao = linha[10]; int pispasep = atoi(linha[11]); - char *dataCadastro = linha[12]; + //atoi = converter para "string" para int //atof = converter para 'string' para double //Imprime cada linha - printf("| %d | %s | %s| %s | %s| %s | %d | %d | %d | %d | %s | %d | %s |\n", - id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep, dataCadastro); + printf("| %d | %s | %s| %s | %s| %s | %d | %d | %d | %d | %s | %d |\n", + id,nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -77,10 +75,11 @@ void mostrarListagemFuncionarios() { printf("|------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); printf("\nO que deseja fazer?\n"); - printf("1) Cadastrar um novo Funcionario\f"); - printf("2) Alterar um Funcionario\f"); - printf("3) Excluir um Funcionario\f"); - printf("4) Voltar ao menu principal\n\n"); + printf("1) Cadastrar um novo Funcionario\n"); + printf("2) Alterar um Funcionario\n"); + printf("3) Excluir um Funcionario\n"); + printf("4) Voltar ao menu principal\ +n\n"); printf("Digite a opção desejada: "); scanf("%d", &opcao); getchar(); @@ -88,7 +87,7 @@ void mostrarListagemFuncionarios() { switch (opcao) { case 1: mostrarCadastroFuncionario(); break; - case 2: mostrarListagemFuncionarios(); + case 2: mostrarAlteracaoFuncionario(); break; case 3: mostrarExclusaoFuncionario(); break; @@ -106,28 +105,27 @@ void mostrarCadastroFuncionario() { Funcionarios f; limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| CADASTRO DE FUNCIONARIOS |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|---------------------------------------------------------------|\n"); + printf("| CADASTRO DE FUNCIONARIOS |\n"); + printf("|---------------------------------------------------------------|\n"); - //Obten o Nome + printf("| NOME: "); fgets(f.nome, sizeof (f.nome), stdin); int tamanho = strlen(f.nome); f.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("| SEXO (F/M): "); fgets(f.sexo, sizeof (f.sexo), stdin); tamanho = strlen(f.sexo); f.sexo[tamanho - 1] = '\0'; printf("| DATA DE NASCIOMENTO (XX/XX/XXX): "); - fgets(f.datanasci, sizeof (f.datanasci), stdin); - tamanho = strlen(f.datanasci); - f.datanasci[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - - getchar(); - + fgets(f.datanascimento, sizeof (f.datanascimento), stdin); + tamanho = strlen(f.datanascimento); + f.datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("| ENDEREÇO: "); fgets(f.endereco, sizeof (f.endereco), stdin); tamanho = strlen(f.endereco); @@ -163,12 +161,14 @@ void mostrarCadastroFuncionario() { scanf("%d", &f.pispasep); getchar(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("|--------------------------------------------------------------|\n"); printf("Deseja realmente cadastrar esse funcionario? (S/N) "); char resposta = getchar(); getchar(); - + + if (resposta == 'S' || resposta == 's') { inserirFuncionario(f); } else { @@ -191,17 +191,18 @@ void inserirFuncionario(Funcionarios f) { //Conecta no banco de dados if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio - char sql[500]; - - snprintf(sql, 500, "INSERT INTO funcionarios(nome,sexo,datanascimento,endereco,cidade,cep, telefone,cpf,rg,profissao,pispasep) values('%s','%s','%s','%s','%s','%d','%d','%d','%d','%s','%d')" - , f.nome, f.sexo, f.datanasci, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); + char sql[2000]; + + snprintf(sql, 2000, "INSERT INTO funcionarios(NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario, rgFuncionario, profissaoFuncionario, pisPasepFuncionario) values('%s','%s','%s','%s','%s','%d','%d','%d','%d','%s','%d')" + , f.nome, f.sexo, f.datanascimento, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão - printf("Funcionario fadastrado com sucesso\n"); //Exibe mensagem de sucesso + printf("Funcionario cadastrado com sucesso\n"); //Exibe mensagem de sucesso } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } @@ -219,13 +220,13 @@ void alterarFuncionario(Funcionarios f) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "update funcionario set nome = '%s' where id = %d", f.nome, f.id); + snprintf(sql, 500, "update funcionarios set NomeFuncionario = '%s' where idFuncionario = %d", f.nome, f.id); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão - printf("País alterado com sucesso\n"); //Exibe mensagem de sucesso + printf("funcionario alterado com sucesso\n"); //Exibe mensagem de sucesso } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } @@ -248,7 +249,7 @@ void ExclusaoFuncionario(int codigo) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "delete from funcionario where id = %d", codigo); + snprintf(sql, 500, "delete from funcionarios where idFuncionario = %d", codigo); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { @@ -256,7 +257,7 @@ void ExclusaoFuncionario(int codigo) { printf("Funcionario excluído com sucesso\n"); //Exibe mensagem de sucesso } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + pgrintf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar @@ -272,7 +273,7 @@ Funcionarios* selecionarFuncionario(int codigo) { //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { char sql[500]; - snprintf(sql, 500, "select id, nome from funcionarios where id = %d", codigo); + snprintf(sql, 500, "select idFuncionario, NomeFuncionario from funcionarios where idFuncionario = %d", codigo); //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0) { From 1cc980e2fc92db29a973126140b777f6a498abb6 Mon Sep 17 00:00:00 2001 From: Bruno Qualhato Date: Fri, 3 Nov 2017 00:19:48 -0200 Subject: [PATCH 19/92] Ajustes --- codigos/ControleEstoqueC/funcionarios.h | 41 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 4780c10..8b3a7d3 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -1,3 +1,16 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: funcionarios.h + * Author: brunoqualhato + * + * Created on 2 de Novembro de 2017, 21:11 + */ + #ifndef FUNCIONARIOS_H #define FUNCIONARIOS_H @@ -8,18 +21,19 @@ #include "gerais.h" typedef struct { - int id; - char nome [100]; - char sexo [5]; - char datanasci [10]; - char endereco[100]; - char cidade[100]; + int id; + char nome[100]; + char sexo[3]; + char datanascimento[20]; + char endereco[200]; + char cidade[50]; + int cep; + int telefone; + int cpf; + int rg; char profissao[100]; - int cep; - int telefone; - int cpf; - int rg; - int pispasep; + int pispasep; + char dataCadastro[20]; } Funcionarios; @@ -41,7 +55,7 @@ void inserirFuncionario(Funcionarios f);//OK /** * Edita funcionario cadastrados no banco de dados */ -void alterarfuncionario(Funcionarios f); +void alterarFuncionario(Funcionarios f); /** * Exclui funcionario cadastrado no banco de dados @@ -54,4 +68,5 @@ void mostrarAlteracaoFuncionario(); void mostrarExclusaoFuncionario(); -#endif \ No newline at end of file + +#endif /* FUNCIONARIOS_H */ From 5d8d949052343a9c7b1348bb6b2a4e2598e7e5ee Mon Sep 17 00:00:00 2001 From: Bruno Qualhato Date: Fri, 3 Nov 2017 00:22:38 -0200 Subject: [PATCH 20/92] Ajustes --- banco_de_dados/funcionarios.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql index bc5e7cc..b1621e6 100644 --- a/banco_de_dados/funcionarios.sql +++ b/banco_de_dados/funcionarios.sql @@ -1,9 +1,9 @@ create database if not exists controleestoque; use controleestoque; ---teste + create table funcionarios ( - idFuncionario int auto_increment primary key, + idFuncionario int auto_increment primary key not null, NomeFuncionario varchar(100) not null, SexoFuncionario varchar (2) not null, DataNascimentoFuncionario date not null, From 300cc0bb63099f896e6d629a0ebed275691ed9a4 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Fri, 3 Nov 2017 00:34:32 -0200 Subject: [PATCH 21/92] Ajustes --- codigos/ControleEstoqueC/funcionarios.c | 4 ++-- codigos/ControleEstoqueC/funcionarios.h | 2 +- codigos/ControleEstoqueC/main.c | 2 +- codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk | 6 ++++++ codigos/ControleEstoqueC/nbproject/Makefile-Release.mk | 6 ++++++ codigos/ControleEstoqueC/nbproject/configurations.xml | 10 ++++++++++ codigos/ControleEstoqueC/nbproject/private/private.xml | 7 ++++++- 7 files changed, 32 insertions(+), 5 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 4030b85..5fac983 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -257,7 +257,7 @@ void ExclusaoFuncionario(int codigo) { printf("Funcionario excluído com sucesso\n"); //Exibe mensagem de sucesso } else { - pgrintf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar @@ -358,4 +358,4 @@ void mostrarExclusaoFuncionario() { ExclusaoFuncionario(codigo); getchar(); -} +} \ No newline at end of file diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 8b3a7d3..a93dab8 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -69,4 +69,4 @@ void mostrarAlteracaoFuncionario(); void mostrarExclusaoFuncionario(); -#endif /* FUNCIONARIOS_H */ +#endif /* FUNCIONARIOS_H */ \ No newline at end of file diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index e32bf70..bd48a46 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -36,7 +36,7 @@ void mostrarMenuPrincipal(){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; case 4: mostrarCadastroClientes(); break; - //case 8: mostrarListagemFuncionarios(); break; //erro "referência indefinida para `mostrarListagemFuncionarios'" + case 8: mostrarListagemFuncionarios(); break; case 9: printf("Até a próxima vez!\n"); break; diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk index 2b2ac71..aa37ac4 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -39,6 +39,7 @@ OBJECTFILES= \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/fornecedores.o \ + ${OBJECTDIR}/funcionarios.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -89,6 +90,11 @@ ${OBJECTDIR}/fornecedores.o: fornecedores.c ${RM} "$@.d" $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fornecedores.o fornecedores.c +${OBJECTDIR}/funcionarios.o: funcionarios.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/funcionarios.o funcionarios.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk index 6bc4dfb..c7f1c9d 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -39,6 +39,7 @@ OBJECTFILES= \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/fornecedores.o \ + ${OBJECTDIR}/funcionarios.o \ ${OBJECTDIR}/gerais.o \ ${OBJECTDIR}/main.o \ ${OBJECTDIR}/paises.o \ @@ -89,6 +90,11 @@ ${OBJECTDIR}/fornecedores.o: fornecedores.c ${RM} "$@.d" $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/fornecedores.o fornecedores.c +${OBJECTDIR}/funcionarios.o: funcionarios.c + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/funcionarios.o funcionarios.c + ${OBJECTDIR}/gerais.o: gerais.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index d9fb467..7ac2d51 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -9,6 +9,7 @@ diretivas_conexao.h estados.h fornecedores.h + funcionarios.h gerais.h paises.h produtos.h @@ -20,6 +21,7 @@ clientes.c estados.c fornecedores.c + funcionarios.c gerais.c main.c paises.c @@ -75,6 +77,10 @@ + + + + @@ -129,6 +135,10 @@ + + + + diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index aef7ea3..b29e4b3 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,6 +6,11 @@ - + + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/main.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + From e354db5b31cbfc2cb3b17b0744e3de75dd912df2 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sun, 5 Nov 2017 23:49:14 -0200 Subject: [PATCH 22/92] ajustes --- codigos/ControleEstoqueC/funcionarios.c | 141 +++++++++++------- .../nbproject/private/configurations.xml | 2 + .../nbproject/private/private.xml | 3 - 3 files changed, 92 insertions(+), 54 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 5fac983..1b45505 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -8,25 +8,16 @@ #include #include -/** - * Mostra os Funcionarios cadastrados - * Autor: Bruno Qualhato - * Data: 26/08/2017 - */ - -// teste - void mostrarListagemFuncionarios() { int opcao; do { limparTela(); - printf("-----------------------------------------|\n"); - printf("| LISTAGEM DE FUNCIONARIOS |\n"); - printf("|---------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO |CIDADE| CEP |TELEFONE| CPF |RG |PROFISSAO| PIS/PASEP |\n"); - printf("|---------------------------------------------------------------------------------------------------------|\n"); - + printf("|------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE FUNCIONARIOS |\n"); + printf("|------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO |CIDADE| CEP |TELEFONE| CPF |RG |PROFISSAO| PIS/PASEP |\n"); + printf("|------------------------------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); @@ -52,14 +43,14 @@ void mostrarListagemFuncionarios() { int rg = atoi(linha[9]); char *profissao = linha[10]; int pispasep = atoi(linha[11]); - + //atoi = converter para "string" para int //atof = converter para 'string' para double //Imprime cada linha - printf("| %d | %s | %s| %s | %s| %s | %d | %d | %d | %d | %s | %d |\n", - id,nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); + printf("| %-2d | %-6s | %-2s | %-8s | %-6s | %-2s |%-2d | %-2d | %-2d | %d| %7s | %d |\n", + id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -73,13 +64,12 @@ void mostrarListagemFuncionarios() { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } - printf("|------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("|------------------------------------------------------------------------------------------------------------|\n"); printf("\nO que deseja fazer?\n"); printf("1) Cadastrar um novo Funcionario\n"); printf("2) Alterar um Funcionario\n"); printf("3) Excluir um Funcionario\n"); - printf("4) Voltar ao menu principal\ -n\n"); + printf("4) Voltar ao menu principal\n"); printf("Digite a opção desejada: "); scanf("%d", &opcao); getchar(); @@ -96,11 +86,6 @@ n\n"); } while (opcao != 4); } -/** - * mostra tela de cadastro de Funcionarios - * Autor: - * Data: 26/08/2017 - */ void mostrarCadastroFuncionario() { Funcionarios f; @@ -109,13 +94,13 @@ void mostrarCadastroFuncionario() { printf("| CADASTRO DE FUNCIONARIOS |\n"); printf("|---------------------------------------------------------------|\n"); - + printf("| NOME: "); fgets(f.nome, sizeof (f.nome), stdin); int tamanho = strlen(f.nome); f.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - + printf("| SEXO (F/M): "); fgets(f.sexo, sizeof (f.sexo), stdin); tamanho = strlen(f.sexo); @@ -125,7 +110,7 @@ void mostrarCadastroFuncionario() { fgets(f.datanascimento, sizeof (f.datanascimento), stdin); tamanho = strlen(f.datanascimento); f.datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - + printf("| ENDEREÇO: "); fgets(f.endereco, sizeof (f.endereco), stdin); tamanho = strlen(f.endereco); @@ -167,8 +152,8 @@ void mostrarCadastroFuncionario() { printf("Deseja realmente cadastrar esse funcionario? (S/N) "); char resposta = getchar(); getchar(); - - + + if (resposta == 'S' || resposta == 's') { inserirFuncionario(f); } else { @@ -176,14 +161,6 @@ void mostrarCadastroFuncionario() { } } - -/** - * Insere um novo funcionario - * Autor: Bruno Qualhato - * Data: 26/08/2017 - */ -//Inicializa a variável de conexão com o MySQL - void inserirFuncionario(Funcionarios f) { MYSQL mysql; mysql_init(&mysql); @@ -193,11 +170,11 @@ void inserirFuncionario(Funcionarios f) { //Cria o comando SQL para envio char sql[2000]; - + snprintf(sql, 2000, "INSERT INTO funcionarios(NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario, rgFuncionario, profissaoFuncionario, pisPasepFuncionario) values('%s','%s','%s','%s','%s','%d','%d','%d','%d','%s','%d')" , f.nome, f.sexo, f.datanascimento, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); - + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão @@ -220,8 +197,9 @@ void alterarFuncionario(Funcionarios f) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "update funcionarios set NomeFuncionario = '%s' where idFuncionario = %d", f.nome, f.id); - + snprintf(sql, 500, "update funcionarios set pisPasepFuncionario = '%d',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%d',telefoneFuncionario = '%d',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", + f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep , f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão @@ -235,11 +213,6 @@ void alterarFuncionario(Funcionarios f) { } } -/** - * Exclui um Funcionario -f* Autor: - * Data: /08/2017 - */ void ExclusaoFuncionario(int codigo) { //Inicializa a variável de conexão com o MySQL MYSQL mysql; @@ -273,7 +246,9 @@ Funcionarios* selecionarFuncionario(int codigo) { //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { char sql[500]; - snprintf(sql, 500, "select idFuncionario, NomeFuncionario from funcionarios where idFuncionario = %d", codigo); + snprintf(sql, 500, "select idFuncionario, NomeFuncionario,SexoFuncionario,DataNascimentoFuncionario,EnderecoFuncionario,cidadeFuncionario,cepFuncionario,telefoneFuncionario,cpfFuncionario,rgFuncionario,profissaoFuncionario,pisPasepFuncionario from funcionarios where idFuncionario = %d", codigo); + + //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0) { @@ -283,10 +258,21 @@ Funcionarios* selecionarFuncionario(int codigo) { //Cria uma variável para guardar a linha MYSQL_ROW linha; int id; - char *nome; + int cep; + int telefone; + int cpf; + int rg; + int pispasep; if ((linha = mysql_fetch_row(resultado))) { //Obtém cada coluna na órdem id = atoi(linha[0]); + cep = atoi(linha[6]); + telefone = atoi(linha[7]); + cpf = atoi(linha[8]); + rg = atoi(linha[9]); + pispasep = atoi(linha[11]); + + //Libera os resultado e fecha a conexão mysql_free_result(resultado); @@ -296,7 +282,18 @@ Funcionarios* selecionarFuncionario(int codigo) { Funcionarios *f = &funcionarios; strncpy(f->nome, linha[1], 100); + strncpy(f->sexo, linha[2], 100); + strncpy(f->datanascimento, linha[3], 100); + strncpy(f->endereco, linha[4], 100); + strncpy(f->cidade, linha[5], 100); + strncpy(f->profissao, linha[10], 100); f->id = id; + f->cep = cep; + f->telefone = telefone; + f->cpf = cpf; + f->rg = rg; + f->pispasep = pispasep; + //Imprime cada linha return f; @@ -324,13 +321,28 @@ void mostrarAlteracaoFuncionario() { Funcionarios *f = selecionarFuncionario(codigo); limparTela(); + printf("|--------------------------------------------------------------------|\n"); - printf("| CADASTRO DE FUNCIONARIOS |\n"); + printf("| EDIÇÃO DE FUNCIONARIOS |\n"); printf("|--------------------------------------------------------------------|\n"); printf("| Id: %d\n", f->id); printf("| Nome: %s\n", f->nome); + printf("| Sexo: %s\n", f->sexo); + printf("| Data de Nascimento: %s\n", f->datanascimento); + printf("| Endereço: %s\n", f->endereco); + printf("| Cidade : %s\n", f->cidade); + printf("| Cep: %d\n", f->cep); + printf("| Telefone: %d\n", f->telefone); + printf("| Cpf: %d\n", f->cpf); + printf("| rg: %d\n", f->rg); + printf("| Profissão: %s\n", f->profissao); + printf("| PisPasep: %d\n", f->pispasep); + + printf("|--------------------------------------------------------------------|\n"); + + printf("Digite o novo nome do Funcionario: "); char nome[100]; fgets(nome, sizeof (nome), stdin); @@ -339,6 +351,32 @@ void mostrarAlteracaoFuncionario() { strncpy(f->nome, nome, 100); printf("|--------------------------------------------------------------------|\n"); + + + printf("Digite o novo sexo do Funcionario: "); + char sexo[100]; + fgets(sexo, sizeof (sexo), stdin); + tamanho = strlen(sexo); + sexo[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->sexo, sexo, 100); + printf("|--------------------------------------------------------------------|\n"); + + + + + printf("Digite a nova Data de Nascimento do Funcionario: "); + char datanascimento[100]; + fgets(datanascimento, sizeof (datanascimento), stdin); + tamanho = strlen(datanascimento); + datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->datanascimento, datanascimento, 100); + printf("|--------------------------------------------------------------------|\n"); + + + //Falta alterar numeros inteiros + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); @@ -348,6 +386,7 @@ void mostrarAlteracaoFuncionario() { } getchar(); + } void mostrarExclusaoFuncionario() { @@ -358,4 +397,4 @@ void mostrarExclusaoFuncionario() { ExclusaoFuncionario(codigo); getchar(); -} \ No newline at end of file +} diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 30b54f8..7560ded 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,6 +13,8 @@ + + diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index b29e4b3..e201f08 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,10 +7,7 @@ - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/main.c file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/paises.c - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h From 36931e0bb5ac2a327cc41424be54d59a9d7e5383 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 6 Nov 2017 21:10:36 -0200 Subject: [PATCH 23/92] ajustes --- codigos/ControleEstoqueC/funcionarios.c | 160 ++++++++++++++++++------ 1 file changed, 121 insertions(+), 39 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 1b45505..3ef4712 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -49,7 +49,7 @@ void mostrarListagemFuncionarios() { //Imprime cada linha - printf("| %-2d | %-6s | %-2s | %-8s | %-6s | %-2s |%-2d | %-2d | %-2d | %d| %7s | %d |\n", + printf("| %d | %s | %s | %-8s | %s | %s |%d | %d | %d | %d| %s | %d |\n", id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -198,8 +198,8 @@ void alterarFuncionario(Funcionarios f) { //Cria o comando SQL para envio char sql[500]; snprintf(sql, 500, "update funcionarios set pisPasepFuncionario = '%d',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%d',telefoneFuncionario = '%d',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", - f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep , f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); - + f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão @@ -314,6 +314,7 @@ Funcionarios* selecionarFuncionario(int codigo) { void mostrarAlteracaoFuncionario() { int codigo; + int opcao; printf("Digite o código do Funcionarios que deseja alterar: "); scanf("%d", &codigo); getchar(); @@ -338,44 +339,125 @@ void mostrarAlteracaoFuncionario() { printf("| Profissão: %s\n", f->profissao); printf("| PisPasep: %d\n", f->pispasep); + limparTela(); + printf("1) Para alterar o nome do funcionario\n"); + printf("2) Para alterar o Sexo do funcionario\n"); + printf("3) Para alterar a Data de Nascimento do funcionario\n"); + printf("4) Para alterar o Endereço do funcionario\n"); + printf("5) Para alterar a Cidade do funcionario\n"); + printf("6) Para alterar o Cep do funcionario\n"); + printf("7) Para alterar o Telefone do funcionario\n"); + printf("8) Para alterar o CPF do funcionario\n"); + printf("9) Para alterar o RG do funcionario\n"); + printf("10) Para alterar a Profissão do funcionario\n"); + printf("11) Para alterar o PisPasep do funcionario\n"); + scanf("%d", &opcao); + getchar(); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite o novo nome do Funcionario: "); - char nome[100]; - fgets(nome, sizeof (nome), stdin); - int tamanho = strlen(nome); - nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->nome, nome, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite o novo sexo do Funcionario: "); - char sexo[100]; - fgets(sexo, sizeof (sexo), stdin); - tamanho = strlen(sexo); - sexo[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->sexo, sexo, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - - printf("Digite a nova Data de Nascimento do Funcionario: "); - char datanascimento[100]; - fgets(datanascimento, sizeof (datanascimento), stdin); - tamanho = strlen(datanascimento); - datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->datanascimento, datanascimento, 100); - printf("|--------------------------------------------------------------------|\n"); - - - //Falta alterar numeros inteiros - printf("|--------------------------------------------------------------------|\n"); + switch (opcao) { + case 1: + printf("|--------------------------------------------------------------------|\n"); + printf("Digite o novo nome do Funcionario: "); + char nome[100]; + fgets(nome, sizeof (nome), stdin); + int tamanho = strlen(nome); + nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + break; + + case 2: + printf("Digite o novo sexo do Funcionario: "); + char sexo[100]; + fgets(sexo, sizeof (sexo), stdin); + tamanho = strlen(sexo); + sexo[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->sexo, sexo, 100); + printf("|--------------------------------------------------------------------|\n"); + + break; + + case 3: + + printf("Digite a nova Data de Nascimento do Funcionario: "); + char datanascimento[100]; + fgets(datanascimento, sizeof (datanascimento), stdin); + tamanho = strlen(datanascimento); + datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->datanascimento, datanascimento, 100); + printf("|--------------------------------------------------------------------|\n"); + break; + case 4: + printf("Digite novo Endereço do Funcionario: "); + char endereco[100]; + fgets(endereco, sizeof (endereco), stdin); + tamanho = strlen(endereco); + endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->endereco, endereco, 100); + printf("|--------------------------------------------------------------------|\n"); + break; + case 5: + printf("Digite a nova Cidade do Funcionario: "); + char cidade[100]; + fgets(cidade, sizeof (cidade), stdin); + tamanho = strlen(cidade); + cidade[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->cidade, cidade, 100); + printf("|--------------------------------------------------------------------|\n"); + break; + case 6: + printf("| Digite o novo CEP: "); + scanf("%d", &f->cep); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + break; + case 7: + printf("| Digite o novo Telefone: "); + scanf("%d", &f->telefone); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + break; + case 8: + printf("| Digite o novo CPF: "); + scanf("%d", &f->cpf); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + break; + case 9: + + printf("| Digite o novo RG: "); + scanf("%d", &f->rg); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + + + break; + case 10: + + + printf("Digite a nova Profissão do Funcionario: "); + char profissao[100]; + fgets(profissao, sizeof (profissao), stdin); + tamanho = strlen(profissao); + profissao[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->profissao, profissao, 100); + printf("|--------------------------------------------------------------------|\n"); + + break; + case 11: + + printf("| Digite o novo PisPasep: "); + scanf("%d", &f->pispasep); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + break; + } printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); From 5a8f6505b91a52e22689baa46c35d67c1ab50e06 Mon Sep 17 00:00:00 2001 From: Alexandre Lopes Date: Wed, 8 Nov 2017 21:48:12 -0200 Subject: [PATCH 24/92] =?UTF-8?q?Adi=C3=A7=C3=A3o=20da=20tabela=20estados?= =?UTF-8?q?=20no=20banco=20de=20dados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 88b7721..92a3926 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -6,3 +6,11 @@ create table paises ( id int auto_increment primary key, nome varchar(100) not null ); + +create table estados ( + idEstado int auto_increment primary key, + nomeEstado varchar(100) not null, + uf varchar(2) not null, + idPais int not null, + constraint foreign key (idPais) references paises(id) +); From b9533fbd9bdeb39c17766a75a94d466d27fcd544 Mon Sep 17 00:00:00 2001 From: Alexandre Lopes Date: Wed, 8 Nov 2017 21:59:45 -0200 Subject: [PATCH 25/92] =?UTF-8?q?Adi=C3=A7=C3=A3o=20da=20Listagem=20de=20p?= =?UTF-8?q?a=C3=ADses=20no=20cadastro=20estados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/estados.c | 66 ++++++++++++++++++++++++++---- codigos/ControleEstoqueC/estados.h | 2 + 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c index 792519b..064ab99 100644 --- a/codigos/ControleEstoqueC/estados.c +++ b/codigos/ControleEstoqueC/estados.c @@ -7,8 +7,8 @@ */ void mostrarListagemEstados() { - int opcao; + do { limparTela(); @@ -51,7 +51,8 @@ void mostrarListagemEstados() { printf("1) Cadastrar um novo Estado\n"); printf("2) Alterar um Estado\n"); printf("3) Excluir um Estado\n"); - printf("4) Voltar ao menu principal\n\n"); + printf("4) Listar Países\n"); + printf("5) Voltar ao menu principal\n\n"); printf("Digite a opção desejada: "); scanf("%d", &opcao); @@ -67,15 +68,63 @@ void mostrarListagemEstados() { case 3: mostrarExclusaoEstado(); break; + case 4: + mostrarListagemPaises_Cadastro(); + break; + } + } while (opcao != 5); +} + +void mostrarListagemPaises_Cadastro(){ + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE PAÍSES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| ID | NOME |\n"); + printf("|--------------------------------------------------------------------|\n"); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Executa o comando de consulta + if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("| %10d | %-53s |\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } - } while (opcao != 4); + printf("|--------------------------------------------------------------------|\n"); + printf("Pressione qualquer tecla para retornar ao menu \n"); + getchar(); } + void mostrarCadastroEstado() { Estado e; - limparTela(); + limparTela(); printf("|-------------------------------------------------------------------------------------------------------------------|\n"); printf("| CADASTRO DE ESTADOS |\n"); printf("|-------------------------------------------------------------------------------------------------------------------|\n"); @@ -89,7 +138,7 @@ void mostrarCadastroEstado() { fgets(e.uf, sizeof (e.uf), stdin); int tamanhoUf = strlen(e.uf); e.uf[tamanhoUf ] = '\0'; //Retira o \n do final da string e coloca \0 - + printf("| ID PAÍS: "); scanf("%d", &e.idPais); getchar(); @@ -102,7 +151,6 @@ void mostrarCadastroEstado() { if (resposta == 'S' || resposta == 's') { inserirEstado(e); } - } void inserirEstado(Estado e) { @@ -257,11 +305,11 @@ void mostrarAlteracaoEstado() { strncpy(e->nomeEstado, nomeEstado, 100); printf("Digite o novo uf do estado: "); - char uf[100]; + char uf[3]; fgets(uf, sizeof (uf), stdin); int tamanhoUf = strlen(uf); uf[tamanhoUf - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(e->uf, uf, 100); + strncpy(e->uf, uf, 3); printf("Digite o novo id do Pais: "); scanf("%d", &e->idPais); @@ -275,7 +323,7 @@ void mostrarAlteracaoEstado() { if (resposta == 'S' || resposta == 's') { alterarEstado(*e); } - + getchar(); } diff --git a/codigos/ControleEstoqueC/estados.h b/codigos/ControleEstoqueC/estados.h index 6423816..80bb9ad 100644 --- a/codigos/ControleEstoqueC/estados.h +++ b/codigos/ControleEstoqueC/estados.h @@ -16,6 +16,8 @@ typedef struct { void mostrarListagemEstados(); +void mostrarListagemPaises_Cadastro(); + void mostrarCadastroEstado(); void inserirEstado(Estado e); From 256267a7460f719cd0025eac263ed8825d0bb1aa Mon Sep 17 00:00:00 2001 From: wellcerv Date: Fri, 10 Nov 2017 11:52:24 -0200 Subject: [PATCH 26/92] Codigo iniciais do cadastro de Fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 53 +++++++++++++++++-- codigos/ControleEstoqueC/fornecedores.h | 31 ++++++----- codigos/ControleEstoqueC/main.c | 2 + .../nbproject/private/private.xml | 6 ++- 4 files changed, 74 insertions(+), 18 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index a9d4fb1..6ad5c71 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -1,6 +1,49 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ +#include"fornecedores.h" + + +// Menu Principal do Cadastro de Fornecedores +void MenuFornecedores(){ + + int opcao; + + do{ + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("|\t\t\tO que deseja fazer?\t\t\t |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("\n"); + printf("1) Consultar o Cadastro Fornecedores\n"); + printf("2) Cadastrar um novo país\n"); + printf("3) Alterar um país\n"); + printf("4) Excluir um país\n"); + printf("5) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: ConsultaFornecedores(); break; + + } + } while (opcao != 5); + + + } + + +void ConsultaFornecedores(){ + + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE FORNECEDORES |\n"); + printf("|--------------------------------------------------------------------|\n"); + + + + + + +} diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 43badcd..d3e945d 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -1,9 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - /* * File: fornecedores.h * Author: welliton @@ -14,16 +8,29 @@ #ifndef FORNECEDORES_H #define FORNECEDORES_H -#ifdef __cplusplus -extern "C" { -#endif +#include +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + +// Estrutura Fornecedores + +typedef struct { + int id; + char nome[100]; + int CNPJ; +} Fornecedores; + +// Menu Principal do Cadastro de Fornecedores + +void MenuFornecedores(); +// Lista todos os Fornecedores cadastrados no banco de dados +void ConsultaFornecedores(); -#ifdef __cplusplus -} -#endif #endif /* FORNECEDORES_H */ diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index bd48a46..fc7bf46 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -4,6 +4,7 @@ #include "clientes.h" #include "gerais.h" #include "funcionarios.h" +#include "fornecedores.h" /** * Mostra o menu principal do sistema @@ -36,6 +37,7 @@ void mostrarMenuPrincipal(){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; case 4: mostrarCadastroClientes(); break; + case 6: MenuFornecedores(); break; case 8: mostrarListagemFuncionarios(); break; case 9: printf("Até a próxima vez!\n"); diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index e201f08..0d4618e 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,7 +7,11 @@ - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.h + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/main.c From e990952f6a2c9f3d10bfe6c9c41c38e5703b9cbf Mon Sep 17 00:00:00 2001 From: wellcerv Date: Fri, 10 Nov 2017 13:46:13 -0200 Subject: [PATCH 27/92] Inicando a codificacao do Cadastro de Fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 2 +- codigos/ControleEstoqueC/fornecedores.h | 2 +- codigos/ControleEstoqueC/nbproject/private/private.xml | 8 +------- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 6ad5c71..aae60bd 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -1,7 +1,7 @@ #include"fornecedores.h" -// Menu Principal do Cadastro de Fornecedores +// Menu Principal do Cadastro de Fornecedores. void MenuFornecedores(){ int opcao; diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index d3e945d..43f5182 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -1,4 +1,4 @@ -/* +/** * File: fornecedores.h * Author: welliton * diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 0d4618e..aef7ea3 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,12 +6,6 @@ - - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.h - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/main.c - + From ecd8c7e863e2ebcf2cb9ad36a050c21db87455a5 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Fri, 10 Nov 2017 15:05:53 -0200 Subject: [PATCH 28/92] Alteracao Fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 66 ++++++++++++++++++++----- codigos/ControleEstoqueC/fornecedores.h | 1 + 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index aae60bd..b1dfd1a 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -1,5 +1,14 @@ #include"fornecedores.h" +//Borda Padrão dos Menus +void BordaPadrao(){ + printf("|--------------------------------------------------------------------|\n"); +} + +//Pausar uma Funcao +void pause(){ + system("pause"); +} // Menu Principal do Cadastro de Fornecedores. void MenuFornecedores(){ @@ -9,14 +18,14 @@ void MenuFornecedores(){ do{ limparTela(); - printf("|--------------------------------------------------------------------|\n"); + BordaPadrao(); printf("|\t\t\tO que deseja fazer?\t\t\t |\n"); - printf("|--------------------------------------------------------------------|\n"); + BordaPadrao(); printf("\n"); - printf("1) Consultar o Cadastro Fornecedores\n"); - printf("2) Cadastrar um novo país\n"); - printf("3) Alterar um país\n"); - printf("4) Excluir um país\n"); + printf("1) Consultar Fornecedores\n"); + printf("2) Cadastrar um Novo Fornecedor\n"); + printf("3) Alterar um Fornecedor\n"); + printf("4) Excluir um Fornecedor\n"); printf("5) Voltar ao menu principal\n\n"); printf("Digite a opção desejada: "); @@ -34,15 +43,46 @@ void MenuFornecedores(){ void ConsultaFornecedores(){ - limparTela(); - printf("|--------------------------------------------------------------------|\n"); - printf("| CADASTRO DE FORNECEDORES |\n"); - printf("|--------------------------------------------------------------------|\n"); - - - + BordaPadrao(); + printf("| LISTAGEM DE FORNECEDORES |\n"); + BordaPadrao(); + BordaPadrao(); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Executa o comando de consulta + if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("| %10d | %-53s |\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +printf("Pressione qualquer tecla para voltar ao Menu Anterior:"); +pause(); } diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 43f5182..19c06cb 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -9,6 +9,7 @@ #define FORNECEDORES_H #include +#include #include #include #include "diretivas_conexao.h" From 642eb1d9909545325e0c288ff118d9f2ef9a29c8 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Fri, 10 Nov 2017 17:40:32 -0200 Subject: [PATCH 29/92] Alteracao codigo fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 25 +++++++++++++------------ codigos/ControleEstoqueC/fornecedores.h | 1 - 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index b1dfd1a..8896103 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -2,13 +2,9 @@ //Borda Padrão dos Menus void BordaPadrao(){ - printf("|--------------------------------------------------------------------|\n"); + printf("||====================================================================||\n"); } -//Pausar uma Funcao -void pause(){ - system("pause"); -} // Menu Principal do Cadastro de Fornecedores. void MenuFornecedores(){ @@ -19,7 +15,7 @@ void MenuFornecedores(){ limparTela(); BordaPadrao(); - printf("|\t\t\tO que deseja fazer?\t\t\t |\n"); + printf("||\t\t\tO que deseja fazer?\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); @@ -45,7 +41,7 @@ void ConsultaFornecedores(){ limparTela(); BordaPadrao(); - printf("| LISTAGEM DE FORNECEDORES |\n"); + printf("|| LISTAGEM DE FORNECEDORES ||\n"); BordaPadrao(); BordaPadrao(); @@ -55,20 +51,23 @@ void ConsultaFornecedores(){ //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Executa o comando de consulta - if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJFornecedor from fornecedores order by nomeFornecedor") == 0){ + //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); //Cria uma variável para guardar a linha MYSQL_ROW linha; while ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem int id = atoi(linha[0]); char *nome = linha[1]; //Imprime cada linha - printf("| %10d | %-53s |\n", id, nome); + printf("|| %10d | %-53s ||\n", id, nome); } //Libera os resultado e fecha a conexão @@ -80,9 +79,11 @@ void ConsultaFornecedores(){ } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } - -printf("Pressione qualquer tecla para voltar ao Menu Anterior:"); -pause(); + + BordaPadrao(); + printf("\n"); + printf("Pressione para voltar ao Menu Anterior:"); + getchar(); } diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 19c06cb..43f5182 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -9,7 +9,6 @@ #define FORNECEDORES_H #include -#include #include #include #include "diretivas_conexao.h" From 8fa21354492e3a72f689276e1b56ef1b6254fd04 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Sat, 11 Nov 2017 13:25:56 -0200 Subject: [PATCH 30/92] alteracao fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 90 +++++++++++++++++++++++-- codigos/ControleEstoqueC/fornecedores.h | 11 +-- 2 files changed, 92 insertions(+), 9 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 8896103..1f5977f 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -12,10 +12,10 @@ void MenuFornecedores(){ int opcao; do{ - + limparTela(); BordaPadrao(); - printf("||\t\t\tO que deseja fazer?\t\t\t ||\n"); + printf("||\t\t\tO QUE DESEJA FAZER?\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); @@ -36,12 +36,92 @@ void MenuFornecedores(){ } - +// Sub Menu para consultar os Fornecedores void ConsultaFornecedores(){ + int opcao2; + + do{ + limparTela(); + BordaPadrao(); + printf("||\t\t\tCONSULTAR FORNECEDORES\t\t\t ||\n"); + BordaPadrao(); + printf("\n"); + printf("1) Por Nome\n"); + printf("2) Por ID\n"); + printf("3) Para Voltar ao Menu Anterior"); + printf("\n"); + printf("\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao2); getchar(); + + switch (opcao2){ + case 1: consultaNome(); break; + case 2: consultaId();break; + } + + }while (opcao2 !=3); + + +} + +// Consulta os Forncedores por ordem de Nome +void consultaNome(){ + + limparTela(); + BordaPadrao(); + printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t\t||\n"); + BordaPadrao(); + BordaPadrao(); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Executa o comando de consulta + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by nomeFornecedor") == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("|| %10d | %-53s ||\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + BordaPadrao(); + printf("\n"); + printf("Pressione para voltar ao Menu Anterior:"); + getchar(); + +} + +//Consulta os fornecedores por ordem de ID +void consultaId(){ + limparTela(); BordaPadrao(); - printf("|| LISTAGEM DE FORNECEDORES ||\n"); + printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE ID\t\t ||\n"); BordaPadrao(); BordaPadrao(); @@ -53,7 +133,7 @@ void ConsultaFornecedores(){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJFornecedor from fornecedores order by nomeFornecedor") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by idFornecedor") == 0){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 43f5182..76bcce0 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -15,7 +15,6 @@ #include "gerais.h" // Estrutura Fornecedores - typedef struct { int id; char nome[100]; @@ -23,13 +22,17 @@ typedef struct { } Fornecedores; // Menu Principal do Cadastro de Fornecedores - void MenuFornecedores(); -// Lista todos os Fornecedores cadastrados no banco de dados - +// Acessa o sub Menu de consultas void ConsultaFornecedores(); +// Consulta os Fornecedores por ordem de nome +void consultaNome(); + +// consulta os Fornecedores por ordem de ID +void consultaId(); + #endif /* FORNECEDORES_H */ From f9dc65916dba5a9a6c8a008993da3ce9b7a6bba4 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 13 Nov 2017 22:36:29 -0200 Subject: [PATCH 31/92] Alteracao do grupo fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 16 +++++++++++++++- codigos/ControleEstoqueC/fornecedores.h | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 1f5977f..8ce1611 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -29,6 +29,7 @@ void MenuFornecedores(){ switch (opcao){ case 1: ConsultaFornecedores(); break; + case 4: MenuExclusao(); break; } } while (opcao != 5); @@ -37,7 +38,7 @@ void MenuFornecedores(){ } // Sub Menu para consultar os Fornecedores -void ConsultaFornecedores(){ +void ConsultaFornecedores(){ int opcao2; @@ -87,6 +88,7 @@ void consultaNome(){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); + //Cria uma variável para guardar a linha MYSQL_ROW linha; while ( (linha = mysql_fetch_row(resultado)) ){ @@ -168,3 +170,15 @@ void consultaId(){ } +// Mostra o menu de opções de exclusão + +void MenuExclusao(){ + int codigo; + printf("Digite o código do país que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + excluirPais(codigo); + getchar(); +} + diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 76bcce0..fb2b42b 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -33,6 +33,9 @@ void consultaNome(); // consulta os Fornecedores por ordem de ID void consultaId(); +// Mostra o menu de opções de exclusão +void MenuExclusao(); + #endif /* FORNECEDORES_H */ From 134bf1b69a6418a35cf62c68b74aea0706e17bbe Mon Sep 17 00:00:00 2001 From: Matheus H Date: Tue, 14 Nov 2017 12:41:21 -0200 Subject: [PATCH 32/92] listagem de cidades funcionando. --- codigos/ControleEstoqueC/cidade.c | 25 ++++++++++++++++++- codigos/ControleEstoqueC/cidade.h | 25 +++++++++++-------- codigos/ControleEstoqueC/main.c | 4 ++- .../nbproject/private/private.xml | 8 +++++- 4 files changed, 48 insertions(+), 14 deletions(-) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index e771d32..611bd85 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -1,3 +1,26 @@ -#include "cidade.h" +#include +#include "cidade.h" +void mostrarListagemCidades(){ + cidade cidade; + MYSQL mysql; + mysql_init(&mysql); + if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ + if(!mysql_query(&mysql,"SELECT idCidade,nomeCidade,uf,cidades.idEstado from cidades,estados where estados.idEstado = cidades.idEstado")){ + MYSQL_RES *resultado = mysql_store_result(&mysql); + MYSQL_ROW linha; + while((linha = mysql_fetch_row(resultado))){ + cidade.id = atoi(linha[0]); + strcpy(cidade.nome,linha[1]); + strcpy(cidade.uf,linha[2]); + cidade.idEstado = atoi(linha[3]); + printf("|%-10d|%-100s|%-2s|\n",cidade.id,cidade.nome,cidade.uf); + } + }else{ + printf("erro: %s",mysql_error(&mysql)); + } + }else{ + printf("Falha ao conectar ao banco de dados: %s",mysql_error(&mysql)); + } +} diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidade.h index dc26a01..d94e82b 100644 --- a/codigos/ControleEstoqueC/cidade.h +++ b/codigos/ControleEstoqueC/cidade.h @@ -13,17 +13,20 @@ #ifndef CIDADE_H #define CIDADE_H - -#ifdef __cplusplus -extern "C" { -#endif - - - - -#ifdef __cplusplus -} -#endif +#include "diretivas_conexao.h" +#include +#include +#include +typedef struct { + int id; + int idEstado; + char uf[3]; + char nome[101]; +}cidade; + +void mostrarListagemCidades(); +void mostrarCadastroCidade(); +void inserirCidade(cidade); #endif /* CIDADE_H */ diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index fc7bf46..ec55df7 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -1,4 +1,5 @@ #include +#include "cidade.h" #include "paises.h" #include "estados.h" #include "clientes.h" @@ -36,6 +37,7 @@ void mostrarMenuPrincipal(){ switch (opcao){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; + case 3: mostrarListagemCidades(); break; case 4: mostrarCadastroClientes(); break; case 6: MenuFornecedores(); break; case 8: mostrarListagemFuncionarios(); break; @@ -45,7 +47,7 @@ void mostrarMenuPrincipal(){ default: printf("Opção inválida!\n"); } - } while (opcao != 9); + } while (opcao != 3); } /** diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index aef7ea3..99509ae 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,6 +6,12 @@ - + + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/main.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/diretivas_conexao.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + From c7c0c05eff1ca3af6d68fb616b54016b2546a27f Mon Sep 17 00:00:00 2001 From: wellcerv Date: Wed, 15 Nov 2017 10:52:27 -0200 Subject: [PATCH 33/92] =?UTF-8?q?fun=C3=A7=C3=A3o=20exclus=C3=A3o=20de=20f?= =?UTF-8?q?ornecedores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/fornecedores.c | 122 +++++++++++++++++- codigos/ControleEstoqueC/fornecedores.h | 8 ++ codigos/ControleEstoqueC/main.c | 2 +- .../nbproject/private/private.xml | 10 +- 4 files changed, 129 insertions(+), 13 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 8ce1611..a6a2e8c 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -71,7 +71,7 @@ void consultaNome(){ limparTela(); BordaPadrao(); - printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t\t||\n"); + printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t ||\n"); BordaPadrao(); BordaPadrao(); @@ -173,12 +173,120 @@ void consultaId(){ // Mostra o menu de opções de exclusão void MenuExclusao(){ - int codigo; - printf("Digite o código do país que deseja excluir: "); - scanf("%d", &codigo); - getchar(); + + int opcao2; + + do{ + limparTela(); + BordaPadrao(); + printf("||\t\t\tMENU EXCLUSÃO\t\t\t\t ||\n"); + BordaPadrao(); + printf("\n"); + printf("1) Consultar Fornecedores\n"); + printf("2) Excluir Fornecedores\n"); + printf("3) Para Voltar ao Menu Anterior"); + printf("\n\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao2); getchar(); + + switch (opcao2){ + case 1: ConsultaExclusao(); break; + case 2: ExcluirFornecedor();break; + } + + }while (opcao2 !=3); + +} + + + + void ConsultaExclusao(){ + + limparTela(); + BordaPadrao(); + printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t ||\n"); + BordaPadrao(); + BordaPadrao(); - excluirPais(codigo); - getchar(); + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Executa o comando de consulta + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by idFornecedor") == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na órdem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("|| %10d | %-53s ||\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + BordaPadrao(); + printf("\n"); + printf("Pressione para voltar ao Menu Anterior:"); + getchar(); + } + + void ExcluirFornecedor(){ + + int codigo; + printf("Digite o código do Fornecedor que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + DeletarFornecedor(codigo); + getchar(); + + } + + void DeletarFornecedor(int codigo){ + + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from fornecedores where idFornecedor = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Fornecedores excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + } + + diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index fb2b42b..b023218 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -36,6 +36,14 @@ void consultaId(); // Mostra o menu de opções de exclusão void MenuExclusao(); +// Consulta Fornecedores dentro da função Excluir Fornecedores +void ConsultaExclusao(); + +// Função para Excluir os Fornecedores +void ExcluirFornecedor(); + +// Função que excluir o Fornecedor do Banco de Dados +void DeletarFornecedor(int codigo); #endif /* FORNECEDORES_H */ diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index ec55df7..1af095f 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -47,7 +47,7 @@ void mostrarMenuPrincipal(){ default: printf("Opção inválida!\n"); } - } while (opcao != 3); + } while (opcao != 9); } /** diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 99509ae..0d4618e 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,11 +7,11 @@ - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/main.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/diretivas_conexao.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.h + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/main.c From 49aac6cb83b9b515a870931ae39bbf7a1833f823 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Wed, 15 Nov 2017 13:47:16 -0200 Subject: [PATCH 34/92] =?UTF-8?q?Fun=C3=A7=C3=A3o=20Inserir=20Fornecedores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/fornecedores.c | 52 ++++++++++++++++++++++++- codigos/ControleEstoqueC/fornecedores.h | 8 +++- 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index a6a2e8c..dd4b609 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -19,7 +19,7 @@ void MenuFornecedores(){ BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); - printf("2) Cadastrar um Novo Fornecedor\n"); + printf("2) Cadastrar um Fornecedor\n"); printf("3) Alterar um Fornecedor\n"); printf("4) Excluir um Fornecedor\n"); printf("5) Voltar ao menu principal\n\n"); @@ -29,6 +29,7 @@ void MenuFornecedores(){ switch (opcao){ case 1: ConsultaFornecedores(); break; + case 2: CadastrarFornecedor(); break; case 4: MenuExclusao(); break; } @@ -277,7 +278,8 @@ void MenuExclusao(){ if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); //Encerra a conexão - printf("Fornecedores excluído com sucesso\n"); //Exibe mensagem de sucesso + printf("Fornecedor excluído com sucesso\n\n"); //Exibe mensagem de sucesso + printf("Pressione a Tecla para continuar"); } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } @@ -288,5 +290,51 @@ void MenuExclusao(){ } + +void CadastrarFornecedor() { + Fornecedores f; + + limparTela(); + BordaPadrao(); + printf("| CADASTRO DE FORNECEDORES |\n"); + BordaPadrao(); + + printf("NOME FORNECEDORES: "); + fgets(f.nomeFornecedor, sizeof(f.nomeFornecedor), stdin); + int tamanho = strlen(f.nomeFornecedor); f.nomeFornecedor[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + BordaPadrao(); + + printf("Deseja realmente cadastrar o fornecedor? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + inserirFornecedores(f); + } +} + +void inserirFornecedores(Fornecedores f){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "insert into fornecedores(nomeFornecedor) values('%s')", f.nomeFornecedor); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Fornecedor cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index b023218..4faf9ca 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -17,7 +17,7 @@ // Estrutura Fornecedores typedef struct { int id; - char nome[100]; + char nomeFornecedor[100]; int CNPJ; } Fornecedores; @@ -45,6 +45,12 @@ void ExcluirFornecedor(); // Função que excluir o Fornecedor do Banco de Dados void DeletarFornecedor(int codigo); +// Função para cadastrar os Fornecedores +void CadastrarFornecedor(); + +// Função para inserir o nome dos Fornecedores +void inserirFornecedores(Fornecedores f); + #endif /* FORNECEDORES_H */ From 16e99546c3c6c5a42449ae183bb84665c94fd1c4 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Wed, 15 Nov 2017 15:15:16 -0200 Subject: [PATCH 35/92] Alteracao Fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index dd4b609..25039bd 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -327,13 +327,16 @@ void inserirFornecedores(Fornecedores f){ if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); //Encerra a conexão - printf("Fornecedor cadastrado com sucesso\n"); //Exibe mensagem de sucesso + printf("Fornecedor cadastrado com sucesso\n\n"); //Exibe mensagem de sucesso + printf("Pressione a tecla para continuar"); } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + getchar(); } From d2721ccbf513504c1fc9112bc4cace07942f8ed4 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Wed, 15 Nov 2017 16:54:47 -0200 Subject: [PATCH 36/92] =?UTF-8?q?Fun=C3=A7=C3=A3o=20Altera=C3=A7=C3=A3oFor?= =?UTF-8?q?necedores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/fornecedores.c | 108 ++++++++++++++++++++++++ codigos/ControleEstoqueC/fornecedores.h | 4 + 2 files changed, 112 insertions(+) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 25039bd..d9c32e4 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -30,6 +30,7 @@ void MenuFornecedores(){ switch (opcao){ case 1: ConsultaFornecedores(); break; case 2: CadastrarFornecedor(); break; + case 3: MostrarAlteracaoFornecedores(); break; case 4: MenuExclusao(); break; } @@ -338,6 +339,113 @@ void inserirFornecedores(Fornecedores f){ } getchar(); } + +void AlterarFornecedores(Fornecedores f){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update fornecedores set nomeFornecedor = '%s' where id = %d", f.nomeFornecedor, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Fornecedor alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + getchar(); +} + +Fornecedores* SelecionarFornecedores(int codigo){ + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "select idFornecedor, nomeFornecedor from fornecedores where id = %d", codigo); + + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0){ + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + + MYSQL_ROW linha; + int id; + char *nome; + if ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem + id = atoi(linha[0]); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + Fornecedores fornecedor; + Fornecedores *f = &fornecedor; + strncpy(f->nomeFornecedor, linha[1], 100); + f->id = id; + + //Imprime cada linha + return f; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +void MostrarAlteracaoFornecedores(){ + int codigo; + printf("Digite o código do Fornecedor que deseja alterar: "); + scanf("%d", &codigo); getchar(); + + Fornecedores *f = SelecionarFornecedores(codigo); + + limparTela(); + BordaPadrao(); + printf("| CADASTRO DE FORNECEDORES |\n"); + BordaPadrao(); + printf("| Id: %d\n", f->id); + printf("| Nome: %s\n", f->nomeFornecedor); + BordaPadrao(); + + printf("Digite o novo nome do fornecedor: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nomeFornecedor, nome, 100); + BordaPadrao(); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + AlterarFornecedores(*f); + } + + getchar(); +} diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 4faf9ca..13f57ba 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -51,6 +51,10 @@ void CadastrarFornecedor(); // Função para inserir o nome dos Fornecedores void inserirFornecedores(Fornecedores f); +void AlterarFornecedores(Fornecedores f); +Fornecedores* SelecionarFornecedores(int codigo); + +void MostrarAlteracaoFornecedores(); #endif /* FORNECEDORES_H */ From 3c81e8dee7ac91c538b25ef7f1a5ff79c9f566d8 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Thu, 16 Nov 2017 17:46:28 -0200 Subject: [PATCH 37/92] Ajustes Fornecedores --- codigos/ControleEstoqueC/fornecedores.c | 400 ++++++++++-------- codigos/ControleEstoqueC/fornecedores.h | 24 +- .../nbproject/private/private.xml | 8 +- codigos/ControleEstoqueC/paises.c | 1 + 4 files changed, 235 insertions(+), 198 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index d9c32e4..39f07e1 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -1,7 +1,15 @@ +/** + * File: fornecedores.c + * Author: Andreia, Ana Paula, Láila e Welliton + * + * Created on 31 de Outubro de 2017, 12:17 + */ + #include"fornecedores.h" //Borda Padrão dos Menus void BordaPadrao(){ + printf("||====================================================================||\n"); } @@ -19,16 +27,16 @@ void MenuFornecedores(){ BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); - printf("2) Cadastrar um Fornecedor\n"); - printf("3) Alterar um Fornecedor\n"); - printf("4) Excluir um Fornecedor\n"); - printf("5) Voltar ao menu principal\n\n"); + printf("2) Cadastrar Fornecedor\n"); + printf("3) Alterar Fornecedor\n"); + printf("4) Excluir Fornecedor\n"); + printf("5) Voltar ao Menu Principal\n\n"); printf("Digite a opção desejada: "); scanf("%d", &opcao); getchar(); switch (opcao){ - case 1: ConsultaFornecedores(); break; + case 1: ConsultarFornecedores(); break; case 2: CadastrarFornecedor(); break; case 3: MostrarAlteracaoFornecedores(); break; case 4: MenuExclusao(); break; @@ -37,10 +45,10 @@ void MenuFornecedores(){ } while (opcao != 5); - } + } // Sub Menu para consultar os Fornecedores -void ConsultaFornecedores(){ +void ConsultarFornecedores(){ int opcao2; @@ -59,8 +67,8 @@ void ConsultaFornecedores(){ scanf("%d", &opcao2); getchar(); switch (opcao2){ - case 1: consultaNome(); break; - case 2: consultaId();break; + case 1: consultarNome(); break; + case 2: consultarId();break; } }while (opcao2 !=3); @@ -69,12 +77,13 @@ void ConsultaFornecedores(){ } // Consulta os Forncedores por ordem de Nome -void consultaNome(){ +void consultarNome(){ limparTela(); BordaPadrao(); printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t ||\n"); BordaPadrao(); + printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -85,11 +94,10 @@ void consultaNome(){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by nomeFornecedor") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores order by nomeFornecedor") == 0){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); - //Cria uma variável para guardar a linha MYSQL_ROW linha; @@ -98,9 +106,10 @@ void consultaNome(){ //Obtém cada coluna na órdem int id = atoi(linha[0]); char *nome = linha[1]; + int cnpj = atoi(linha[2]); //Imprime cada linha - printf("|| %10d | %-53s ||\n", id, nome); + printf("|| %5d | %-25s | %-14d ||\n", id, nome, cnpj); } //Libera os resultado e fecha a conexão @@ -121,12 +130,13 @@ void consultaNome(){ } //Consulta os fornecedores por ordem de ID -void consultaId(){ +void consultarId(){ limparTela(); BordaPadrao(); printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE ID\t\t ||\n"); BordaPadrao(); + printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -137,7 +147,7 @@ void consultaId(){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by idFornecedor") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores order by idFornecedor") == 0){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -149,9 +159,10 @@ void consultaId(){ //Obtém cada coluna na órdem int id = atoi(linha[0]); char *nome = linha[1]; + int cnpj = atoi(linha[2]); //Imprime cada linha - printf("|| %10d | %-53s ||\n", id, nome); + printf("|| %5d | %-25s | %-14d ||\n", id, nome, cnpj); } //Libera os resultado e fecha a conexão @@ -172,127 +183,9 @@ void consultaId(){ } -// Mostra o menu de opções de exclusão - -void MenuExclusao(){ - - int opcao2; - - do{ - limparTela(); - BordaPadrao(); - printf("||\t\t\tMENU EXCLUSÃO\t\t\t\t ||\n"); - BordaPadrao(); - printf("\n"); - printf("1) Consultar Fornecedores\n"); - printf("2) Excluir Fornecedores\n"); - printf("3) Para Voltar ao Menu Anterior"); - printf("\n\n"); - printf("Digite a opção desejada: "); - scanf("%d", &opcao2); getchar(); - - switch (opcao2){ - case 1: ConsultaExclusao(); break; - case 2: ExcluirFornecedor();break; - } - - }while (opcao2 !=3); - -} - - - - void ConsultaExclusao(){ - - limparTela(); - BordaPadrao(); - printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t ||\n"); - BordaPadrao(); - BordaPadrao(); - - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - - //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by idFornecedor") == 0){ - - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - while ( (linha = mysql_fetch_row(resultado)) ){ - - //Obtém cada coluna na órdem - int id = atoi(linha[0]); - char *nome = linha[1]; - - //Imprime cada linha - printf("|| %10d | %-53s ||\n", id, nome); - } - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - - BordaPadrao(); - printf("\n"); - printf("Pressione para voltar ao Menu Anterior:"); - getchar(); - } - - void ExcluirFornecedor(){ - - int codigo; - printf("Digite o código do Fornecedor que deseja excluir: "); - scanf("%d", &codigo); - getchar(); - - DeletarFornecedor(codigo); - getchar(); - - } - - void DeletarFornecedor(int codigo){ - - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "delete from fornecedores where idFornecedor = %d", codigo); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("Fornecedor excluído com sucesso\n\n"); //Exibe mensagem de sucesso - printf("Pressione a Tecla para continuar"); - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - - -} - - +// Função para cadastrar os Fornecedores void CadastrarFornecedor() { + Fornecedores f; limparTela(); @@ -300,72 +193,99 @@ void CadastrarFornecedor() { printf("| CADASTRO DE FORNECEDORES |\n"); BordaPadrao(); - printf("NOME FORNECEDORES: "); + printf("NOME DO FORNECEDOR: "); fgets(f.nomeFornecedor, sizeof(f.nomeFornecedor), stdin); int tamanho = strlen(f.nomeFornecedor); f.nomeFornecedor[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("\n"); + printf("CNPJ DO FORNECEDOR: "); + scanf("%d", &f.CNPJ); + getchar(); BordaPadrao(); - + printf("Deseja realmente cadastrar o fornecedor? (S/N) "); char resposta = getchar(); getchar(); if (resposta == 'S' || resposta == 's'){ inserirFornecedores(f); } -} + } + +// Função para inserir um Fornecedor no Banco de Dados void inserirFornecedores(Fornecedores f){ + //Inicializa a variável de conexão com o MySQL MYSQL mysql; mysql_init(&mysql); //Conecta no banco de dados if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "insert into fornecedores(nomeFornecedor) values('%s')", f.nomeFornecedor); + snprintf(sql, 500, "insert into fornecedores(nomeFornecedor, CNPJ) values('%s', '%d')", f.nomeFornecedor, f.CNPJ); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); //Encerra a conexão - - printf("Fornecedor cadastrado com sucesso\n\n"); //Exibe mensagem de sucesso + + printf("\n"); + printf("----- Fornecedor cadastrado com sucesso -----\n\n"); //Exibe mensagem de sucesso printf("Pressione a tecla para continuar"); } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - + } getchar(); } -void AlterarFornecedores(Fornecedores f){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); +// Função para Alterar um Fornecedor +void MostrarAlteracaoFornecedores(){ + + int codigo; + limparTela(); + BordaPadrao(); + printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); + BordaPadrao(); + printf("\n"); + printf("Digite o código do Fornecedor que deseja alterar: "); + scanf("%d", &codigo); getchar(); - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "update fornecedores set nomeFornecedor = '%s' where id = %d", f.nomeFornecedor, f.id); + Fornecedores *f = SelecionarFornecedores(codigo); - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão + limparTela(); + BordaPadrao(); + printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); + BordaPadrao(); + printf("|| Id: %d\n", f->id); + printf("|| Nome: %s\n", f->nomeFornecedor); + BordaPadrao(); - printf("Fornecedor alterado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + printf("\n"); + printf("Digite o novo nome do fornecedor: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nomeFornecedor, nome, 100); + BordaPadrao(); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + AlterarFornecedores(*f); } - getchar(); + } + +// Mostra as informações do fornecedor a ser alterado antes de executar a alteração Fornecedores* SelecionarFornecedores(int codigo){ + //Cria a variável de conexão com o MySQL MYSQL mysql; mysql_init(&mysql); @@ -373,7 +293,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ char sql[500]; - snprintf(sql, 500, "select idFornecedor, nomeFornecedor from fornecedores where id = %d", codigo); + snprintf(sql, 500, "select idFornecedor, nomeFornecedor from fornecedores where idFornecedor = %d", codigo); //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0){ @@ -415,37 +335,153 @@ Fornecedores* SelecionarFornecedores(int codigo){ } } -void MostrarAlteracaoFornecedores(){ - int codigo; - printf("Digite o código do Fornecedor que deseja alterar: "); - scanf("%d", &codigo); getchar(); +// Função para alterar os dados do Fornecedor no Banco de Dados. +void AlterarFornecedores(Fornecedores f){ + + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); - Fornecedores *f = SelecionarFornecedores(codigo); + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update fornecedores set nomeFornecedor = '%s' where idFornecedor = %d", f.nomeFornecedor, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("\n"); + printf("----- Fornecedor alterado com sucesso -----\n\n"); //Exibe mensagem de sucesso + printf("Pressione a tecla para continuar"); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + getchar(); +} + +// Mostra Sub Menu da opção de exclusão +void MenuExclusao(){ + + int opcao2; + + do{ + limparTela(); + BordaPadrao(); + printf("||\t\t\tMENU EXCLUSÃO\t\t\t\t ||\n"); + BordaPadrao(); + printf("\n"); + printf("1) Consultar Fornecedores\n"); + printf("2) Excluir Fornecedor\n"); + printf("3) Para Voltar ao Menu Anterior"); + printf("\n\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao2); getchar(); + + switch (opcao2){ + case 1: ConsultarExclusao(); break; + case 2: ExcluirFornecedor();break; + } + + }while (opcao2 !=3); + +} + + // Consulta Fornecedores dentro da Função Excluir Fornecedores +void ConsultarExclusao(){ limparTela(); BordaPadrao(); - printf("| CADASTRO DE FORNECEDORES |\n"); + printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t ||\n"); BordaPadrao(); - printf("| Id: %d\n", f->id); - printf("| Nome: %s\n", f->nomeFornecedor); BordaPadrao(); - printf("Digite o novo nome do fornecedor: "); - char nome[100]; - fgets(nome, sizeof(nome), stdin); - int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->nomeFornecedor, nome, 100); - BordaPadrao(); + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); - printf("Deseja realmente salvar as alterações? (S/N) "); - char resposta = getchar(); getchar(); + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - if (resposta == 'S' || resposta == 's'){ - AlterarFornecedores(*f); + //Executa o comando de consulta + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor from fornecedores order by idFornecedor") == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na ordem + int id = atoi(linha[0]); + char *nome = linha[1]; + + //Imprime cada linha + printf("|| %10d | %-53s ||\n", id, nome); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } + BordaPadrao(); + printf("\n"); + printf("Pressione para voltar ao Menu Anterior:"); + getchar(); +} + + +// Função para Excluir os Fornecedores +void ExcluirFornecedor(){ + + int codigo; + printf("Digite o código do Fornecedor que deseja excluir: "); + scanf("%d", &codigo); getchar(); + + DeletarFornecedor(codigo); + getchar(); + } - + +// Função que excluir o Fornecedor do Banco de Dados +void DeletarFornecedor(int codigo){ + + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from fornecedores where idFornecedor = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + printf("\n"); + printf("----- Fornecedor excluído com sucesso -----\n\n"); //Exibe mensagem de sucesso + printf("Pressione a Tecla para continuar"); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + } \ No newline at end of file diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 13f57ba..54730f9 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -1,6 +1,6 @@ /** * File: fornecedores.h - * Author: welliton + * Author: Andreia, Ana Paula, Láila e Welliton * * Created on 31 de Outubro de 2017, 12:17 */ @@ -25,19 +25,19 @@ typedef struct { void MenuFornecedores(); // Acessa o sub Menu de consultas -void ConsultaFornecedores(); +void ConsultarFornecedores(); // Consulta os Fornecedores por ordem de nome -void consultaNome(); +void consultarNome(); // consulta os Fornecedores por ordem de ID -void consultaId(); +void consultarId(); -// Mostra o menu de opções de exclusão +// Mostra Sub Menu da opção de exclusão void MenuExclusao(); -// Consulta Fornecedores dentro da função Excluir Fornecedores -void ConsultaExclusao(); +// Consulta Fornecedores dentro da Função Excluir Fornecedores +void ConsultarExclusao(); // Função para Excluir os Fornecedores void ExcluirFornecedor(); @@ -48,13 +48,19 @@ void DeletarFornecedor(int codigo); // Função para cadastrar os Fornecedores void CadastrarFornecedor(); -// Função para inserir o nome dos Fornecedores +// Função para inserir um Fornecedor no Banco de Dados void inserirFornecedores(Fornecedores f); +// Função para Alterar um Fornecedor +void MostrarAlteracaoFornecedores(); + +// Função para alterar os dados do Fornecedor no Banco de Dados. void AlterarFornecedores(Fornecedores f); + +// Mostra as informações do fornecedor a ser alterado antes de executar a alteração Fornecedores* SelecionarFornecedores(int codigo); -void MostrarAlteracaoFornecedores(); + #endif /* FORNECEDORES_H */ diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 0d4618e..aef7ea3 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,12 +6,6 @@ - - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.h - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/paises.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/main.c - + diff --git a/codigos/ControleEstoqueC/paises.c b/codigos/ControleEstoqueC/paises.c index 72f4913..8656124 100644 --- a/codigos/ControleEstoqueC/paises.c +++ b/codigos/ControleEstoqueC/paises.c @@ -217,6 +217,7 @@ Pais* selecionarPais(int codigo){ } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } + getchar(); } void mostrarAlteracaoPais(){ From a41d747696382272a44f63ea0a3407a39d95b504 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Fri, 17 Nov 2017 23:13:02 -0200 Subject: [PATCH 38/92] CNPJ funcionando --- codigos/ControleEstoqueC/fornecedores.c | 12 ++++++------ codigos/ControleEstoqueC/fornecedores.h | 5 ++++- .../ControleEstoqueC/nbproject/private/private.xml | 5 ++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 39f07e1..bfe4796 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -106,10 +106,10 @@ void consultarNome(){ //Obtém cada coluna na órdem int id = atoi(linha[0]); char *nome = linha[1]; - int cnpj = atoi(linha[2]); + ulong cnpj = atoll(linha[2]); //Imprime cada linha - printf("|| %5d | %-25s | %-14d ||\n", id, nome, cnpj); + printf("|| %5d | %-25s | %-14llu ||\n", id, nome, cnpj); } //Libera os resultado e fecha a conexão @@ -159,10 +159,10 @@ void consultarId(){ //Obtém cada coluna na órdem int id = atoi(linha[0]); char *nome = linha[1]; - int cnpj = atoi(linha[2]); + ulong cnpj = atoll(linha[2]); //Imprime cada linha - printf("|| %5d | %-25s | %-14d ||\n", id, nome, cnpj); + printf("|| %5d | %-25s | %-14llu ||\n", id, nome, cnpj); } //Libera os resultado e fecha a conexão @@ -199,7 +199,7 @@ void CadastrarFornecedor() { printf("\n"); printf("CNPJ DO FORNECEDOR: "); - scanf("%d", &f.CNPJ); + scanf("%llu", &f.CNPJ); getchar(); BordaPadrao(); @@ -224,7 +224,7 @@ void inserirFornecedores(Fornecedores f){ //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "insert into fornecedores(nomeFornecedor, CNPJ) values('%s', '%d')", f.nomeFornecedor, f.CNPJ); + snprintf(sql, 500, "insert into fornecedores(nomeFornecedor, CNPJ) values('%s', '%llu')", f.nomeFornecedor, f.CNPJ); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0){ diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 54730f9..7cc4348 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -14,11 +14,14 @@ #include "diretivas_conexao.h" #include "gerais.h" +// Tipo Variável para receber o campo CNPJ do Banco de Dados +typedef unsigned long long int ulong; + // Estrutura Fornecedores typedef struct { int id; char nomeFornecedor[100]; - int CNPJ; + ulong CNPJ; } Fornecedores; // Menu Principal do Cadastro de Fornecedores diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index aef7ea3..47d01c4 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,6 +6,9 @@ - + + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c + file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h + From b757e78d34144c1177cc4adf5fe8ba7f9f04d9c2 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 20 Nov 2017 15:20:27 -0200 Subject: [PATCH 39/92] Menu Alterar em construcao --- codigos/ControleEstoqueC/fornecedores.c | 113 +++++++++++++++++++++--- codigos/ControleEstoqueC/fornecedores.h | 16 ++-- 2 files changed, 112 insertions(+), 17 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index bfe4796..b0d01d3 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -38,7 +38,7 @@ void MenuFornecedores(){ switch (opcao){ case 1: ConsultarFornecedores(); break; case 2: CadastrarFornecedor(); break; - case 3: MostrarAlteracaoFornecedores(); break; + case 3: MenuAlteracao(); break; case 4: MenuExclusao(); break; } @@ -243,10 +243,39 @@ void inserirFornecedores(Fornecedores f){ getchar(); } + +// Mostra Sub Menu da opção de Ateração +void MenuAlteracao(){ + + int opcao2; + + do{ + limparTela(); + BordaPadrao(); + printf("||\t\t\tMENU ALTERAÇÃO\t\t\t\t ||\n"); + BordaPadrao(); + printf("\n"); + printf("1) Consultar Fornecedores\n"); + printf("2) Alterar Fornecedor\n"); + printf("3) Para Voltar ao Menu Anterior"); + printf("\n\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao2); getchar(); + + switch (opcao2){ + case 1: ConsultarPadrao(); break; + case 2: MostrarAlteracaoFornecedores();break; + } + + }while (opcao2 !=3); + +} + // Função para Alterar um Fornecedor void MostrarAlteracaoFornecedores(){ int codigo; + int codigoAlterar; limparTela(); BordaPadrao(); printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); @@ -254,7 +283,8 @@ void MostrarAlteracaoFornecedores(){ printf("\n"); printf("Digite o código do Fornecedor que deseja alterar: "); scanf("%d", &codigo); getchar(); - + + // Consulta Apenas o Código que foi selecionado do Fornecedor Fornecedores *f = SelecionarFornecedores(codigo); limparTela(); @@ -263,9 +293,17 @@ void MostrarAlteracaoFornecedores(){ BordaPadrao(); printf("|| Id: %d\n", f->id); printf("|| Nome: %s\n", f->nomeFornecedor); + printf("|| CNPJ: %llu\n", f->CNPJ); BordaPadrao(); - printf("\n"); + + // Escolha do campo a ser alterado no cadastro de Fornecedores + printf("Digite: 1)Para Alterar o Nome - 2)Para Alterar o CNPJ: "); + scanf("%d", &codigoAlterar);getchar(); + printf("\n"); + + // Alteração do campo Nome do Cadastro de Fornecedores + if (codigoAlterar == 1){ printf("Digite o novo nome do fornecedor: "); char nome[100]; fgets(nome, sizeof(nome), stdin); @@ -276,8 +314,22 @@ void MostrarAlteracaoFornecedores(){ printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); - if (resposta == 'S' || resposta == 's'){ - AlterarFornecedores(*f); + if (resposta == 'S' || resposta == 's'){ + AlterarNomeFornecedores(*f); + } + } + + // Alteração do campo CNPJ do Cadastro de Fornecedores + if (codigoAlterar == 2){ + printf("Digite o novo CNPJ do fornecedor: "); + scanf("%llu", &f->CNPJ); + BordaPadrao(); + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + AlterarCnpjFornecedores(*f); + } } } @@ -293,7 +345,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ char sql[500]; - snprintf(sql, 500, "select idFornecedor, nomeFornecedor from fornecedores where idFornecedor = %d", codigo); + snprintf(sql, 500, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores where idFornecedor = %d", codigo); //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0){ @@ -305,9 +357,14 @@ Fornecedores* SelecionarFornecedores(int codigo){ MYSQL_ROW linha; int id; char *nome; + ulong cnpj; + + if ( (linha = mysql_fetch_row(resultado)) ){ + //Obtém cada coluna na órdem id = atoi(linha[0]); + cnpj = atoll(linha[2]); //Libera os resultado e fecha a conexão mysql_free_result(resultado); @@ -316,6 +373,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ Fornecedores fornecedor; Fornecedores *f = &fornecedor; strncpy(f->nomeFornecedor, linha[1], 100); + f->CNPJ = cnpj; f->id = id; //Imprime cada linha @@ -335,8 +393,8 @@ Fornecedores* SelecionarFornecedores(int codigo){ } } -// Função para alterar os dados do Fornecedor no Banco de Dados. -void AlterarFornecedores(Fornecedores f){ +// Função para alterar o Nome do Fornecedor no Banco de Dados. +void AlterarNomeFornecedores(Fornecedores f){ //Inicializa a variável de conexão com o MySQL MYSQL mysql; @@ -365,6 +423,36 @@ void AlterarFornecedores(Fornecedores f){ getchar(); } +// Função para alterar o Cnpj do Fornecedor no Banco de Dados. +void AlterarCnpjFornecedores(Fornecedores f){ + + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update fornecedores set CNPJ = %llu where idFornecedor = %d", f.CNPJ, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("\n"); + printf("----- Fornecedor alterado com sucesso -----\n\n"); //Exibe mensagem de sucesso + printf("Pressione a tecla para continuar"); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + getchar(); +} + // Mostra Sub Menu da opção de exclusão void MenuExclusao(){ @@ -384,7 +472,7 @@ void MenuExclusao(){ scanf("%d", &opcao2); getchar(); switch (opcao2){ - case 1: ConsultarExclusao(); break; + case 1: ConsultarPadrao(); break; case 2: ExcluirFornecedor();break; } @@ -392,13 +480,14 @@ void MenuExclusao(){ } - // Consulta Fornecedores dentro da Função Excluir Fornecedores -void ConsultarExclusao(){ + // Consulta Fornecedores dentro da Função Excluir e Alterar Fornecedores +void ConsultarPadrao(){ limparTela(); BordaPadrao(); printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t ||\n"); BordaPadrao(); + printf("||CÓDIGO | RAZÃO SOCIAL\t\t\t\t\t\t ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -423,7 +512,7 @@ void ConsultarExclusao(){ char *nome = linha[1]; //Imprime cada linha - printf("|| %10d | %-53s ||\n", id, nome); + printf("|| %5d | %-58s ||\n", id, nome); } //Libera os resultado e fecha a conexão diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 7cc4348..dd6802f 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -36,11 +36,11 @@ void consultarNome(); // consulta os Fornecedores por ordem de ID void consultarId(); -// Mostra Sub Menu da opção de exclusão +// Mostra Sub Menu da opção de exclusão de Fornecedores void MenuExclusao(); -// Consulta Fornecedores dentro da Função Excluir Fornecedores -void ConsultarExclusao(); +// Consulta Fornecedores dentro da Função Excluir e Alterar Fornecedores +void ConsultarPadrao(); // Função para Excluir os Fornecedores void ExcluirFornecedor(); @@ -54,11 +54,17 @@ void CadastrarFornecedor(); // Função para inserir um Fornecedor no Banco de Dados void inserirFornecedores(Fornecedores f); +// Mostra Sub Menu da opção de Alteração de Fornecedores +void MenuAlteracao(); + // Função para Alterar um Fornecedor void MostrarAlteracaoFornecedores(); -// Função para alterar os dados do Fornecedor no Banco de Dados. -void AlterarFornecedores(Fornecedores f); +// Função para alterar o nome do Fornecedor no Banco de Dados. +void AlterarNomeFornecedores(Fornecedores f); + +// Função para alterar o Cnpj do Fornecedor no Banco de Dados. +void AlterarCnpjFornecedores(Fornecedores f); // Mostra as informações do fornecedor a ser alterado antes de executar a alteração Fornecedores* SelecionarFornecedores(int codigo); From a2ac6836e19e4763c26f36110c1b1a5b12846e9d Mon Sep 17 00:00:00 2001 From: Alexandre Lopes Date: Mon, 20 Nov 2017 22:22:20 -0200 Subject: [PATCH 40/92] =?UTF-8?q?Resolu=C3=A7=C3=A3o=20da=20op=C3=A7=C3=A3?= =?UTF-8?q?o=20AlterarEstado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/estados.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c index 064ab99..6663c8f 100644 --- a/codigos/ControleEstoqueC/estados.c +++ b/codigos/ControleEstoqueC/estados.c @@ -255,8 +255,7 @@ Estado* selecionarEstado(int codigo) { mysql_free_result(resultado); mysql_close(&mysql); - Estado estado; - Estado *e = &estado; + Estado *e = (Estado *) malloc(sizeof(Estado)); // alocação dinâmica de memória strncpy(e->nomeEstado, linha[1], 60); strncpy(e->uf, linha[2], 3); e->idEstado = idEstado; @@ -298,17 +297,17 @@ void mostrarAlteracaoEstado() { printf("|-------------------------------------------------------------------------------------------------------------------|\n"); printf("Digite o novo nome do estado: "); - char nomeEstado[100]; + char nomeEstado[60]; fgets(nomeEstado, sizeof (nomeEstado), stdin); int tamanhoNome = strlen(nomeEstado); nomeEstado[tamanhoNome - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(e->nomeEstado, nomeEstado, 100); + strncpy(e->nomeEstado, nomeEstado, 60); printf("Digite o novo uf do estado: "); char uf[3]; fgets(uf, sizeof (uf), stdin); int tamanhoUf = strlen(uf); - uf[tamanhoUf - 1] = '\0'; //Retira o \n do final da string e coloca \0 + uf[tamanhoUf] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(e->uf, uf, 3); printf("Digite o novo id do Pais: "); From e607d78e583c9dcb11a0666c78998904b05e16a2 Mon Sep 17 00:00:00 2001 From: Alexandre Lopes Date: Mon, 20 Nov 2017 22:24:49 -0200 Subject: [PATCH 41/92] =?UTF-8?q?Resolu=C3=A7=C3=A3o=20da=20Altera=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20Estado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/estados.c | 4 ++-- codigos/ControleEstoqueC/estados.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c index 6663c8f..2777e12 100644 --- a/codigos/ControleEstoqueC/estados.c +++ b/codigos/ControleEstoqueC/estados.c @@ -297,11 +297,11 @@ void mostrarAlteracaoEstado() { printf("|-------------------------------------------------------------------------------------------------------------------|\n"); printf("Digite o novo nome do estado: "); - char nomeEstado[60]; + char nomeEstado[100]; fgets(nomeEstado, sizeof (nomeEstado), stdin); int tamanhoNome = strlen(nomeEstado); nomeEstado[tamanhoNome - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(e->nomeEstado, nomeEstado, 60); + strncpy(e->nomeEstado, nomeEstado, 100); printf("Digite o novo uf do estado: "); char uf[3]; diff --git a/codigos/ControleEstoqueC/estados.h b/codigos/ControleEstoqueC/estados.h index 80bb9ad..d913991 100644 --- a/codigos/ControleEstoqueC/estados.h +++ b/codigos/ControleEstoqueC/estados.h @@ -9,7 +9,7 @@ typedef struct { int idEstado; - char nomeEstado[60]; + char nomeEstado[100]; char uf[3];// enquanto o limite do vetor estava como 2 o cadastro não funcionava int idPais; } Estado; From e3d996f86532f2eb5ec1483aac3493240ac62fb4 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 20 Nov 2017 23:48:30 -0200 Subject: [PATCH 42/92] Funcao alterar funcionando --- codigos/ControleEstoqueC/fornecedores.c | 43 +++++++++++-------- codigos/ControleEstoqueC/fornecedores.h | 1 + .../nbproject/private/private.xml | 5 +-- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index b0d01d3..12881dc 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -275,7 +275,6 @@ void MenuAlteracao(){ void MostrarAlteracaoFornecedores(){ int codigo; - int codigoAlterar; limparTela(); BordaPadrao(); printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); @@ -297,6 +296,8 @@ void MostrarAlteracaoFornecedores(){ BordaPadrao(); printf("\n"); + int codigoAlterar; + // Escolha do campo a ser alterado no cadastro de Fornecedores printf("Digite: 1)Para Alterar o Nome - 2)Para Alterar o CNPJ: "); scanf("%d", &codigoAlterar);getchar(); @@ -304,15 +305,16 @@ void MostrarAlteracaoFornecedores(){ // Alteração do campo Nome do Cadastro de Fornecedores if (codigoAlterar == 1){ - printf("Digite o novo nome do fornecedor: "); - char nome[100]; - fgets(nome, sizeof(nome), stdin); - int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->nomeFornecedor, nome, 100); - BordaPadrao(); + printf("Digite o novo nome do fornecedor: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nomeFornecedor, nome, 100); + BordaPadrao(); + printf("|| Id: %d\n", f->id); - printf("Deseja realmente salvar as alterações? (S/N) "); - char resposta = getchar(); getchar(); + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); if (resposta == 'S' || resposta == 's'){ AlterarNomeFornecedores(*f); @@ -321,17 +323,19 @@ void MostrarAlteracaoFornecedores(){ // Alteração do campo CNPJ do Cadastro de Fornecedores if (codigoAlterar == 2){ - printf("Digite o novo CNPJ do fornecedor: "); - scanf("%llu", &f->CNPJ); - BordaPadrao(); - printf("Deseja realmente salvar as alterações? (S/N) "); - char resposta = getchar(); getchar(); + printf("Digite o novo CNPJ do fornecedor: "); + scanf("%llu", &f->CNPJ); getchar(); + BordaPadrao(); + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); if (resposta == 'S' || resposta == 's'){ AlterarCnpjFornecedores(*f); } } - + + free(f); + } @@ -370,8 +374,8 @@ Fornecedores* SelecionarFornecedores(int codigo){ mysql_free_result(resultado); mysql_close(&mysql); - Fornecedores fornecedor; - Fornecedores *f = &fornecedor; + // Alocação Dinamica de Memória + Fornecedores *f = (Fornecedores *) malloc(sizeof(Fornecedores)); strncpy(f->nomeFornecedor, linha[1], 100); f->CNPJ = cnpj; f->id = id; @@ -406,7 +410,7 @@ void AlterarNomeFornecedores(Fornecedores f){ //Cria o comando SQL para envio char sql[500]; snprintf(sql, 500, "update fornecedores set nomeFornecedor = '%s' where idFornecedor = %d", f.nomeFornecedor, f.id); - + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); //Encerra a conexão @@ -436,7 +440,8 @@ void AlterarCnpjFornecedores(Fornecedores f){ //Cria o comando SQL para envio char sql[500]; snprintf(sql, 500, "update fornecedores set CNPJ = %llu where idFornecedor = %d", f.CNPJ, f.id); - + + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); //Encerra a conexão diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index dd6802f..710c5be 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -10,6 +10,7 @@ #include #include +#include #include #include "diretivas_conexao.h" #include "gerais.h" diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 47d01c4..aef7ea3 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,9 +6,6 @@ - - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.c - file:/home/welliton/git/controleestoque_c/codigos/ControleEstoqueC/fornecedores.h - + From 1368b910d23bad87fedd1ed61bc602df8f02fda7 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 20 Nov 2017 23:55:54 -0200 Subject: [PATCH 43/92] Funcao alterar funcionando --- codigos/ControleEstoqueC/fornecedores.c | 2 +- codigos/ControleEstoqueC/fornecedores.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 12881dc..2df5d32 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -374,7 +374,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ mysql_free_result(resultado); mysql_close(&mysql); - // Alocação Dinamica de Memória + // Alocação Dinamica de Memória. Fornecedores *f = (Fornecedores *) malloc(sizeof(Fornecedores)); strncpy(f->nomeFornecedor, linha[1], 100); f->CNPJ = cnpj; diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index 710c5be..dd6802f 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -10,7 +10,6 @@ #include #include -#include #include #include "diretivas_conexao.h" #include "gerais.h" From 0984ead6783ca7ac02a79ae1cce4995052d45e89 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Tue, 21 Nov 2017 14:14:03 -0200 Subject: [PATCH 44/92] Melhorias na Exclusao --- codigos/ControleEstoqueC/fornecedores.c | 45 ++++++++++++++----------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 2df5d32..11b7abf 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -50,7 +50,7 @@ void MenuFornecedores(){ // Sub Menu para consultar os Fornecedores void ConsultarFornecedores(){ - int opcao2; + int opcao; do{ limparTela(); @@ -64,14 +64,14 @@ void ConsultarFornecedores(){ printf("\n"); printf("\n"); printf("Digite a opção desejada: "); - scanf("%d", &opcao2); getchar(); + scanf("%d", &opcao); getchar(); - switch (opcao2){ + switch (opcao){ case 1: consultarNome(); break; case 2: consultarId();break; } - }while (opcao2 !=3); + }while (opcao !=3); } @@ -247,7 +247,7 @@ void inserirFornecedores(Fornecedores f){ // Mostra Sub Menu da opção de Ateração void MenuAlteracao(){ - int opcao2; + int opcao; do{ limparTela(); @@ -260,14 +260,14 @@ void MenuAlteracao(){ printf("3) Para Voltar ao Menu Anterior"); printf("\n\n"); printf("Digite a opção desejada: "); - scanf("%d", &opcao2); getchar(); + scanf("%d", &opcao); getchar(); - switch (opcao2){ + switch (opcao){ case 1: ConsultarPadrao(); break; case 2: MostrarAlteracaoFornecedores();break; } - }while (opcao2 !=3); + }while (opcao !=3); } @@ -310,9 +310,7 @@ void MostrarAlteracaoFornecedores(){ fgets(nome, sizeof(nome), stdin); int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->nomeFornecedor, nome, 100); - BordaPadrao(); - printf("|| Id: %d\n", f->id); - + printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); @@ -325,7 +323,7 @@ void MostrarAlteracaoFornecedores(){ if (codigoAlterar == 2){ printf("Digite o novo CNPJ do fornecedor: "); scanf("%llu", &f->CNPJ); getchar(); - BordaPadrao(); + printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); @@ -461,7 +459,7 @@ void AlterarCnpjFornecedores(Fornecedores f){ // Mostra Sub Menu da opção de exclusão void MenuExclusao(){ - int opcao2; + int opcao; do{ limparTela(); @@ -474,14 +472,14 @@ void MenuExclusao(){ printf("3) Para Voltar ao Menu Anterior"); printf("\n\n"); printf("Digite a opção desejada: "); - scanf("%d", &opcao2); getchar(); + scanf("%d", &opcao); getchar(); - switch (opcao2){ + switch (opcao){ case 1: ConsultarPadrao(); break; case 2: ExcluirFornecedor();break; } - }while (opcao2 !=3); + }while (opcao !=3); } @@ -544,10 +542,16 @@ void ExcluirFornecedor(){ printf("Digite o código do Fornecedor que deseja excluir: "); scanf("%d", &codigo); getchar(); - - DeletarFornecedor(codigo); - getchar(); - + printf("\n"); + printf("Tem certeza que deseja Excluir o Fornecedor %d? (S/N)", codigo); + + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + + DeletarFornecedor(codigo); + + } } // Função que excluir o Fornecedor do Banco de Dados @@ -577,5 +581,6 @@ void DeletarFornecedor(int codigo){ } else { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } + getchar(); } \ No newline at end of file From 9cc0654f14908e02efc9910f4428519e95796544 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Wed, 22 Nov 2017 19:49:39 -0200 Subject: [PATCH 45/92] =?UTF-8?q?remo=C3=A7=C3=A3o=20do=20banco=20de=20tes?= =?UTF-8?q?te=20funcionarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/funcionarios.sql | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 banco_de_dados/funcionarios.sql diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql deleted file mode 100644 index b1621e6..0000000 --- a/banco_de_dados/funcionarios.sql +++ /dev/null @@ -1,19 +0,0 @@ -create database if not exists controleestoque; - -use controleestoque; - -create table funcionarios ( - idFuncionario int auto_increment primary key not null, - NomeFuncionario varchar(100) not null, - SexoFuncionario varchar (2) not null, - DataNascimentoFuncionario date not null, - EnderecoFuncionario varchar (300) not null, - cidadeFuncionario varchar (200) not null, - cepFuncionario int(10) not null, - telefoneFuncionario int(10) not null, - cpfFuncionario int(12) not null, - rgFuncionario int (10) not null - profissaoFuncionario varchar(100) not null, - pisPasepFuncionario varchar (200) not null - -); From 5b724b61e061e81ddf4abcceb6ed5b5e14bb9436 Mon Sep 17 00:00:00 2001 From: danieldpaula Date: Wed, 22 Nov 2017 20:00:25 -0200 Subject: [PATCH 46/92] =?UTF-8?q?add=20fun=C3=A7=C3=A3o=20excluir=20cidade?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/cidade.c | 38 +++++++++++++++++++++++++++++++ codigos/ControleEstoqueC/cidade.h | 2 ++ 2 files changed, 40 insertions(+) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index 611bd85..d19a8b4 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -24,3 +24,41 @@ void mostrarListagemCidades(){ } } + +void ExclusaoCidade(int codigo) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from cidade where idCidade = %d", codigo); + + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("cidade excluída com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + +} + + +void mostrarExclusaoCidade() { + int codigo; + printf("Digite o código da cidade que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + ExclusaoCidade(codigo); + getchar(); +} + diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidade.h index d94e82b..3710234 100644 --- a/codigos/ControleEstoqueC/cidade.h +++ b/codigos/ControleEstoqueC/cidade.h @@ -27,6 +27,8 @@ typedef struct { void mostrarListagemCidades(); void mostrarCadastroCidade(); void inserirCidade(cidade); +void mostrarExclusaoCidade(); +void ExclusaoCidade(int codigo); #endif /* CIDADE_H */ From 3fc5de4f0b9e6ff9b3dcfdca6e7c6eeb167ecde2 Mon Sep 17 00:00:00 2001 From: LuanaQ Date: Wed, 22 Nov 2017 20:14:04 -0200 Subject: [PATCH 47/92] =?UTF-8?q?corre=C3=A7oes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 3ef4712..73e1324 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -471,6 +471,8 @@ void mostrarAlteracaoFuncionario() { } + + void mostrarExclusaoFuncionario() { int codigo; printf("Digite o código do funcionario que deseja excluir: "); From 146aad6fce3efbeaddd8a138702374fa9602216b Mon Sep 17 00:00:00 2001 From: PatriciaMesquita <31022953+PatriciaMesquita@users.noreply.github.com> Date: Thu, 23 Nov 2017 14:40:13 -0200 Subject: [PATCH 48/92] Adicionou tabela Cidades --- banco_de_dados/criacao.sql | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 92a3926..9a2a00e 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -14,3 +14,14 @@ create table estados ( idPais int not null, constraint foreign key (idPais) references paises(id) ); + +create table cidades( + id int not null auto_increment, + nome varchar(65) not null, + cep varchar(10) not null, + idEstado int not null, + constraint foreign key (idEstado) references estados(idEstado), + primary key (id) +); + + From 1ad0a59933b406f7da66fecfdebbdcb98a8538ee Mon Sep 17 00:00:00 2001 From: PatriciaMesquita <31022953+PatriciaMesquita@users.noreply.github.com> Date: Thu, 23 Nov 2017 14:42:03 -0200 Subject: [PATCH 49/92] Adicionou Mostrar e Inserir Cidades --- codigos/ControleEstoqueC/cidade.c | 127 +++++++++++++++++++++++++----- codigos/ControleEstoqueC/cidade.h | 15 ++-- 2 files changed, 119 insertions(+), 23 deletions(-) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index d19a8b4..00979bd 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -1,26 +1,117 @@ -#include - #include "cidade.h" + void mostrarListagemCidades(){ - cidade cidade; - MYSQL mysql; - mysql_init(&mysql); - if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ - if(!mysql_query(&mysql,"SELECT idCidade,nomeCidade,uf,cidades.idEstado from cidades,estados where estados.idEstado = cidades.idEstado")){ - MYSQL_RES *resultado = mysql_store_result(&mysql); - MYSQL_ROW linha; - while((linha = mysql_fetch_row(resultado))){ - cidade.id = atoi(linha[0]); - strcpy(cidade.nome,linha[1]); - strcpy(cidade.uf,linha[2]); - cidade.idEstado = atoi(linha[3]); - printf("|%-10d|%-100s|%-2s|\n",cidade.id,cidade.nome,cidade.uf); + int opcao; + + do { + limparTela(); + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE CIDADES |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | CEP | ID ESTADOS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + MYSQL mysql; + mysql_init(&mysql); + + if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ + if(!mysql_query(&mysql,"SELECT id, nome, cep, cidades.idEstado from cidades, estados where estados.idEstado = cidades.idEstado")){ + MYSQL_RES *resultado = mysql_store_result(&mysql); + MYSQL_ROW linha; + while((linha = mysql_fetch_row(resultado))){ + + int id = atoi(linha[0]), idEstado = atoi(linha[3]); + char *nome = linha[1], *cep = linha[2]; + + printf("|%-12d|%-34s|%-1s|%-0d|\n", id, nome, cep, idEstado); + } + }else{ + printf("erro: %s",mysql_error(&mysql)); } }else{ - printf("erro: %s",mysql_error(&mysql)); + printf("Falha ao conectar ao banco de dados: %s",mysql_error(&mysql)); + } + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + + printf("O que deseja fazer?\n"); + printf("1) Cadastrar uma nova Cidade\n"); + printf("2) Alterar uma Cidade\n"); + printf("3) Excluir uma Cidade\n"); + printf("4) Listar Estados\n"); + printf("5) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); + getchar(); + + switch (opcao) { + case 1: + mostrarCadastroCidade(); + break; + case 2: + //mostrarAlteracaoCidade(); + break; + case 3: + mostrarExclusaoCidade(); + break; + case 4: + //mostrarListagemEstado_Cadastro(); + break; + } + }while (opcao != 5); + + } + +void mostrarCadastroCidade() { + cidade c; + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CIDADES |\n"); + printf("|--------------------------------------------------------------------|\n"); + + printf("| NOME: "); + fgets(c.nome, sizeof(c.nome), stdin); + int tamanho = strlen(c.nome); c.nome[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| CEP: "); + fgets(c.cep, sizeof (c.cep), stdin); + int tamanhoCEP = strlen(c.cep); + c.cep[tamanhoCEP] = '\0'; //Retira o \n do final da string e coloca \0 + + printf("| ID ESTADO: "); + scanf("%d", &c.idEstado); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente criar a cidade? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + inserirCidade(c); + } +} + +void inserirCidade(cidade c) { + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "insert into cidades(nome, cep, idEstado) values('%s', '%s', %d);", c.nome, c.cep, c.idEstado); + + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); + + printf("Cidade cadastrada com sucesso\n"); + } else { + printf("%s\n", mysql_error(&mysql)); } - }else{ - printf("Falha ao conectar ao banco de dados: %s",mysql_error(&mysql)); + }else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); } } diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidade.h index 3710234..47a115a 100644 --- a/codigos/ControleEstoqueC/cidade.h +++ b/codigos/ControleEstoqueC/cidade.h @@ -13,20 +13,25 @@ #ifndef CIDADE_H #define CIDADE_H + +#include +#include +#include #include "diretivas_conexao.h" -#include -#include -#include +#include "gerais.h" + typedef struct { int id; int idEstado; - char uf[3]; + char cep[10]; char nome[101]; }cidade; void mostrarListagemCidades(); void mostrarCadastroCidade(); -void inserirCidade(cidade); +void mostrarAlteracaoCidade(); +void mostrarListagemEstado_Cadastro(); +void inserirCidade(cidade c); void mostrarExclusaoCidade(); void ExclusaoCidade(int codigo); From e2066c5993e07a79402f9866f55e04fd960c707a Mon Sep 17 00:00:00 2001 From: LuanaQ <31023070+LuanaQ@users.noreply.github.com> Date: Thu, 23 Nov 2017 15:30:39 -0200 Subject: [PATCH 50/92] =?UTF-8?q?Altera=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 9a2a00e..31e33e2 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -25,3 +25,46 @@ create table cidades( ); +create table fornecedor ( + idFornecedor int not null auto_increment primary key, + nome varchar (100) not null, + endereco varchar(45) not null, + telefone varchar(15) not null, + cnpj varchar (45) not null, + insc_estadual int not null, + cep varchar(10) not null, + data_cadastro datetime not null, + idCidades int not null, + constraint foreign key (idCidades) references cidades(id) +); + +create table pessoas( + idPessoas int not null auto_increment primary key, + nome varchar (100) not null, + sexo char(1) not null, + sexo char(1) not null, + data_nascimento date not null, + endereco varchar (150) not null, + cep varchar(10) not null, + telefone varchar(20) not null, + cpf varchar (20) not null, + rg varchar(20) not null +); + +CREATE TABLE profissao( + idProfissao int auto_increment primary key, + profissao varchar(45) not null); + +create table funcionarios( + idFuncionarios int auto_increment primary key, + pis_pasep int (11) not null, + fornecedor_idFornecedor INT NOT NULL, + Pessoas_idPessoas INT NOT NULL, + profissao_idprofissao INT NOT NULL, + constraint foreign key (fornecedor_idFornecedor) references fornecedor(idFornecedor), + constraint foreign key (Pessoas_idPessoas) references pessoas(idPessoas), + constraint foreign key (profissao_idprofissao) references profissao(idProfissao) +); + + + From 3c9067a3ddfe678e3033ee1578f8668982f4dcef Mon Sep 17 00:00:00 2001 From: LuanaQ <31023070+LuanaQ@users.noreply.github.com> Date: Thu, 23 Nov 2017 15:31:54 -0200 Subject: [PATCH 51/92] =?UTF-8?q?Altera=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 73e1324..4004e78 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -23,7 +23,9 @@ void mostrarListagemFuncionarios() { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Executa o comando de consulta + // if (mysql_query(&mysql, "SELECT idPessoas, nome, data_nascimento,endereco,cep,telefone,cpf,rg from pessoas INNERfuncionarios ON pessoas.idPessoas = funcionarios.Pessoas_idPessoas;") == 0) { if (mysql_query(&mysql, "SELECT idFuncionario, NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario,rgFuncionario,profissaoFuncionario, pisPasepFuncionario from funcionarios") == 0) { + //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -106,7 +108,7 @@ void mostrarCadastroFuncionario() { tamanho = strlen(f.sexo); f.sexo[tamanho - 1] = '\0'; - printf("| DATA DE NASCIOMENTO (XX/XX/XXX): "); + printf("| DATA DE NASCIMENTO (XX/XX/XXX): "); fgets(f.datanascimento, sizeof (f.datanascimento), stdin); tamanho = strlen(f.datanascimento); f.datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 From 0b97af30c132bd6d31bd5f1cf893e59ee0fd650f Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Thu, 23 Nov 2017 16:29:16 -0200 Subject: [PATCH 52/92] =?UTF-8?q?teste=20de=20codifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/funcionarios.sql | 14 ++++ codigos/ControleEstoqueC/funcionarios.c | 82 ++++++------------- .../nbproject/private/private.xml | 5 +- 3 files changed, 41 insertions(+), 60 deletions(-) create mode 100644 banco_de_dados/funcionarios.sql diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql new file mode 100644 index 0000000..6e2719c --- /dev/null +++ b/banco_de_dados/funcionarios.sql @@ -0,0 +1,14 @@ +CREATE TABLE funcionarios ( + idFuncionario int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, + NomeFuncionario varchar(100) NOT NULL, + SexoFuncionario varchar(2) NOT NULL, + DataNascimentoFuncionario varchar(11) NOT NULL, + EnderecoFuncionario varchar(300) NOT NULL, + cidadeFuncionario varchar(200) NOT NULL, + cepFuncionario int(10) NOT NULL, + telefoneFuncionario int(10) NOT NULL, + cpfFuncionario int(12) NOT NULL, + rgFuncionario int(10) NOT NULL, + profissaoFuncionario varchar(100) NOT NULL, + pisPasepFuncionario varchar(11) NOT NULL + ); diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 73e1324..aa551e8 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -1,12 +1,5 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ #include "funcionarios.h" -#include -#include void mostrarListagemFuncionarios() { int opcao; @@ -196,10 +189,11 @@ void alterarFuncionario(Funcionarios f) { //Conecta no banco de dados if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "update funcionarios set pisPasepFuncionario = '%d',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%d',telefoneFuncionario = '%d',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", + char sql[2000]; + nome: + snprintf(sql, 2000, "update funcionarios set pisPasepFuncionario = '%d',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%d',telefoneFuncionario = '%d',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); - + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão @@ -245,8 +239,8 @@ Funcionarios* selecionarFuncionario(int codigo) { //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { - char sql[500]; - snprintf(sql, 500, "select idFuncionario, NomeFuncionario,SexoFuncionario,DataNascimentoFuncionario,EnderecoFuncionario,cidadeFuncionario,cepFuncionario,telefoneFuncionario,cpfFuncionario,rgFuncionario,profissaoFuncionario,pisPasepFuncionario from funcionarios where idFuncionario = %d", codigo); + char sql[2000]; + snprintf(sql, 2000, "select idFuncionario, NomeFuncionario,SexoFuncionario,DataNascimentoFuncionario,EnderecoFuncionario,cidadeFuncionario,cepFuncionario,telefoneFuncionario,cpfFuncionario,rgFuncionario,profissaoFuncionario,pisPasepFuncionario from funcionarios where idFuncionario = %d", codigo); @@ -314,7 +308,7 @@ Funcionarios* selecionarFuncionario(int codigo) { void mostrarAlteracaoFuncionario() { int codigo; - int opcao; + printf("Digite o código do Funcionarios que deseja alterar: "); scanf("%d", &codigo); getchar(); @@ -339,23 +333,7 @@ void mostrarAlteracaoFuncionario() { printf("| Profissão: %s\n", f->profissao); printf("| PisPasep: %d\n", f->pispasep); - limparTela(); - printf("1) Para alterar o nome do funcionario\n"); - printf("2) Para alterar o Sexo do funcionario\n"); - printf("3) Para alterar a Data de Nascimento do funcionario\n"); - printf("4) Para alterar o Endereço do funcionario\n"); - printf("5) Para alterar a Cidade do funcionario\n"); - printf("6) Para alterar o Cep do funcionario\n"); - printf("7) Para alterar o Telefone do funcionario\n"); - printf("8) Para alterar o CPF do funcionario\n"); - printf("9) Para alterar o RG do funcionario\n"); - printf("10) Para alterar a Profissão do funcionario\n"); - printf("11) Para alterar o PisPasep do funcionario\n"); - scanf("%d", &opcao); - getchar(); - - switch (opcao) { - case 1: + printf("|--------------------------------------------------------------------|\n"); printf("Digite o novo nome do Funcionario: "); char nome[100]; @@ -364,9 +342,7 @@ void mostrarAlteracaoFuncionario() { nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->nome, nome, 100); printf("|--------------------------------------------------------------------|\n"); - break; - - case 2: + printf("Digite o novo sexo do Funcionario: "); char sexo[100]; fgets(sexo, sizeof (sexo), stdin); @@ -375,9 +351,7 @@ void mostrarAlteracaoFuncionario() { strncpy(f->sexo, sexo, 100); printf("|--------------------------------------------------------------------|\n"); - break; - - case 3: + printf("Digite a nova Data de Nascimento do Funcionario: "); char datanascimento[100]; @@ -386,8 +360,9 @@ void mostrarAlteracaoFuncionario() { datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->datanascimento, datanascimento, 100); printf("|--------------------------------------------------------------------|\n"); - break; - case 4: + + + printf("Digite novo Endereço do Funcionario: "); char endereco[100]; fgets(endereco, sizeof (endereco), stdin); @@ -395,8 +370,9 @@ void mostrarAlteracaoFuncionario() { endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->endereco, endereco, 100); printf("|--------------------------------------------------------------------|\n"); - break; - case 5: + + + printf("Digite a nova Cidade do Funcionario: "); char cidade[100]; fgets(cidade, sizeof (cidade), stdin); @@ -404,29 +380,27 @@ void mostrarAlteracaoFuncionario() { cidade[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->cidade, cidade, 100); printf("|--------------------------------------------------------------------|\n"); - break; - case 6: + + + printf("| Digite o novo CEP: "); scanf("%d", &f->cep); getchar(); printf("|--------------------------------------------------------------------|\n"); - break; - case 7: + printf("| Digite o novo Telefone: "); scanf("%d", &f->telefone); getchar(); printf("|--------------------------------------------------------------------|\n"); - break; - case 8: + printf("| Digite o novo CPF: "); scanf("%d", &f->cpf); getchar(); printf("|--------------------------------------------------------------------|\n"); - break; - case 9: + printf("| Digite o novo RG: "); scanf("%d", &f->rg); @@ -435,10 +409,6 @@ void mostrarAlteracaoFuncionario() { - break; - case 10: - - printf("Digite a nova Profissão do Funcionario: "); char profissao[100]; fgets(profissao, sizeof (profissao), stdin); @@ -447,18 +417,12 @@ void mostrarAlteracaoFuncionario() { strncpy(f->profissao, profissao, 100); printf("|--------------------------------------------------------------------|\n"); - break; - case 11: - printf("| Digite o novo PisPasep: "); scanf("%d", &f->pispasep); getchar(); printf("|--------------------------------------------------------------------|\n"); - break; - - } - + printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index aef7ea3..e7fbc27 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -6,6 +6,9 @@ - + + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + From 0e8a6379862c3777c745fa11e73e17e5fc5975e5 Mon Sep 17 00:00:00 2001 From: Vitorhrf <31023107+Vitorhrf@users.noreply.github.com> Date: Thu, 23 Nov 2017 21:49:02 -0200 Subject: [PATCH 53/92] Update cidades --- codigos/ControleEstoqueC/cidade.c | 98 ++++++++++++++++++++++++++++++- codigos/ControleEstoqueC/cidade.h | 5 +- 2 files changed, 100 insertions(+), 3 deletions(-) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index 00979bd..553a013 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -1,5 +1,5 @@ #include "cidade.h" - +#include "gerais.h" void mostrarListagemCidades(){ int opcao; @@ -152,4 +152,100 @@ void mostrarExclusaoCidade() { ExclusaoCidade(codigo); getchar(); } +void alterarCidade(cidade c){ + + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "update cidades set nomeCidade = '%s' where idCidade = %d", c.nome, c.id); + + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); + + printf("Cidade alterada com sucesso\n"); + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha ao conectar-se com o banco de dados: %s\n", mysql_error(&mysql)); + } +} + +Cidade* selecionarCidade(int id){ + + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "select idCidade, nomeCidade from cidades where idCidade = %d", id); + + if (mysql_query(&mysql, sql) == 0){ + + MYSQL_RES *resultado = mysql_store_result(&mysql); + + MYSQL_ROW linha; + int id; + char *nome; + if ( (linha = mysql_fetch_row(resultado)) ){ + id = atoi(linha[0]); + + mysql_free_result(resultado); + mysql_close(&mysql); + + cidade cidade; + cidade *c = &cidade; + strncpy(c->nome, linha[1], 100); + c->id = id; + + return c; + } else { + + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha ao conectar-se com o banco de dados: %s\n", mysql_error(&mysql)); + } + getchar(); +} + +void mostrarAlteracaoCidade(){ + int id; + printf("Digite o ID da cidade que deseja alterar: "); + scanf("%d", &id); getchar(); + + cidade *c = selecionarCidade(id); + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CIDADES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| Id: %d\n", c->id); + printf("| Nome: %s\n", c->nome); + printf("|--------------------------------------------------------------------|\n"); + + printf("Digite o novo nome da cidade: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; + strncpy(c->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + alterarCidade(*c); + } + + getchar(); +} diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidade.h index 47a115a..a240f1b 100644 --- a/codigos/ControleEstoqueC/cidade.h +++ b/codigos/ControleEstoqueC/cidade.h @@ -14,6 +14,7 @@ #ifndef CIDADE_H #define CIDADE_H +#include #include #include #include @@ -34,6 +35,6 @@ void mostrarListagemEstado_Cadastro(); void inserirCidade(cidade c); void mostrarExclusaoCidade(); void ExclusaoCidade(int codigo); - +void alterarCidade(cidade c); +cidade* selecionarCidade(int id); #endif /* CIDADE_H */ - From 50cffee63e5ffb13e3a9caf28981a74821958c47 Mon Sep 17 00:00:00 2001 From: LuanaQ <31023070+LuanaQ@users.noreply.github.com> Date: Fri, 24 Nov 2017 11:30:41 -0200 Subject: [PATCH 54/92] =?UTF-8?q?Corre=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 8290e3a..2286f9e 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -16,7 +16,7 @@ void mostrarListagemFuncionarios() { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Executa o comando de consulta - // if (mysql_query(&mysql, "SELECT idPessoas, nome, data_nascimento,endereco,cep,telefone,cpf,rg from pessoas INNERfuncionarios ON pessoas.idPessoas = funcionarios.Pessoas_idPessoas;") == 0) { + if (mysql_query(&mysql, "SELECT idFuncionario, NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario,rgFuncionario,profissaoFuncionario, pisPasepFuncionario from funcionarios") == 0) { //Obtém o resultado From ab9a0f344e98d53b2c0edf5b352a1a569b2232c3 Mon Sep 17 00:00:00 2001 From: LuanaQ <31023070+LuanaQ@users.noreply.github.com> Date: Fri, 24 Nov 2017 12:13:18 -0200 Subject: [PATCH 55/92] =?UTF-8?q?Remo=C3=A7=C3=A3o=20de=20Tabela?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 42 -------------------------------------- 1 file changed, 42 deletions(-) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 31e33e2..6ff1135 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -25,46 +25,4 @@ create table cidades( ); -create table fornecedor ( - idFornecedor int not null auto_increment primary key, - nome varchar (100) not null, - endereco varchar(45) not null, - telefone varchar(15) not null, - cnpj varchar (45) not null, - insc_estadual int not null, - cep varchar(10) not null, - data_cadastro datetime not null, - idCidades int not null, - constraint foreign key (idCidades) references cidades(id) -); - -create table pessoas( - idPessoas int not null auto_increment primary key, - nome varchar (100) not null, - sexo char(1) not null, - sexo char(1) not null, - data_nascimento date not null, - endereco varchar (150) not null, - cep varchar(10) not null, - telefone varchar(20) not null, - cpf varchar (20) not null, - rg varchar(20) not null -); - -CREATE TABLE profissao( - idProfissao int auto_increment primary key, - profissao varchar(45) not null); - -create table funcionarios( - idFuncionarios int auto_increment primary key, - pis_pasep int (11) not null, - fornecedor_idFornecedor INT NOT NULL, - Pessoas_idPessoas INT NOT NULL, - profissao_idprofissao INT NOT NULL, - constraint foreign key (fornecedor_idFornecedor) references fornecedor(idFornecedor), - constraint foreign key (Pessoas_idPessoas) references pessoas(idPessoas), - constraint foreign key (profissao_idprofissao) references profissao(idProfissao) -); - - From 498f370e943082b0c4ba96546b3b12b8ac417055 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Fri, 24 Nov 2017 15:27:02 -0200 Subject: [PATCH 56/92] =?UTF-8?q?altera=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 8290e3a..9f3c91f 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -90,54 +90,54 @@ void mostrarCadastroFuncionario() { printf("|---------------------------------------------------------------|\n"); - printf("| NOME: "); + printf("| INFORME O NOME DO FUNCIONARIO: "); fgets(f.nome, sizeof (f.nome), stdin); int tamanho = strlen(f.nome); f.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("| SEXO (F/M): "); + printf("| INFORME O SEXO (F/M): "); fgets(f.sexo, sizeof (f.sexo), stdin); tamanho = strlen(f.sexo); f.sexo[tamanho - 1] = '\0'; - printf("| DATA DE NASCIMENTO (XX/XX/XXX): "); + printf("| INFORME A DATA DE NASCIMENTO (XX/XX/XXXX): "); fgets(f.datanascimento, sizeof (f.datanascimento), stdin); tamanho = strlen(f.datanascimento); f.datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("| ENDEREÇO: "); + printf("|INFORME O ENDEREÇO: "); fgets(f.endereco, sizeof (f.endereco), stdin); tamanho = strlen(f.endereco); f.endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("| CIDADE: "); + printf("| INFORME A CIDADE: "); fgets(f.cidade, sizeof (f.cidade), stdin); tamanho = strlen(f.cidade); f.cidade[tamanho - 1] = '\0'; - printf("| CEP: "); + printf("| INFORME O CEP: "); scanf("%d", &f.cep); getchar(); - printf("| TELEFONE(XX)XXXXX-XXXX: "); + printf("| INFORME O TELEFONE(XX)XXXXX-XXXX: "); scanf("%d", &f.telefone); getchar(); - printf("| CPF: "); + printf("| INFORME O CPF: "); scanf("%d", &f.cpf); getchar(); - printf("| RG: "); + printf("| INFORME O RG: "); scanf("%d", &f.rg); getchar(); - printf("| PROFISSÃO: "); + printf("| INFORME A PROFISSÃO: "); fgets(f.profissao, sizeof (f.profissao), stdin); tamanho = strlen(f.profissao); f.profissao[tamanho - 1] = '\0'; - printf("| PIS/PASEP: "); + printf("| INFORME O PIS/PASEP: "); scanf("%d", &f.pispasep); getchar(); From 8c3da843a3b10ea122ce598092bc9074b5dcab3f Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Fri, 24 Nov 2017 20:04:00 -0200 Subject: [PATCH 57/92] correcoes --- codigos/ControleEstoqueC/funcionarios.c | 10 +++++----- codigos/ControleEstoqueC/funcionarios.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 8e83c74..c5ebb20 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -328,12 +328,12 @@ void mostrarAlteracaoFuncionario() { printf("| Data de Nascimento: %s\n", f->datanascimento); printf("| Endereço: %s\n", f->endereco); printf("| Cidade : %s\n", f->cidade); - printf("| Cep: %d\n", f->cep); - printf("| Telefone: %d\n", f->telefone); - printf("| Cpf: %d\n", f->cpf); - printf("| rg: %d\n", f->rg); + printf("| Cep: %llu\n", f->cep); + printf("| Telefone: %llu\n", f->telefone); + printf("| Cpf: %llu\n", f->cpf); + printf("| rg: %llu\n", f->rg); printf("| Profissão: %s\n", f->profissao); - printf("| PisPasep: %d\n", f->pispasep); + printf("| PisPasep: %llu\n", f->pispasep); printf("|--------------------------------------------------------------------|\n"); diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index a93dab8..2df394a 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -27,12 +27,12 @@ typedef struct { char datanascimento[20]; char endereco[200]; char cidade[50]; - int cep; - int telefone; - int cpf; - int rg; + uint cep; + uint telefone; + uint cpf; + uint rg; char profissao[100]; - int pispasep; + uint pispasep; char dataCadastro[20]; } Funcionarios; From c6ff0b45f9749819b48e71a534f5f358acf9a0bb Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Fri, 24 Nov 2017 20:25:08 -0200 Subject: [PATCH 58/92] correcoes --- codigos/ControleEstoqueC/funcionarios.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 2df394a..d59b94d 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -27,12 +27,12 @@ typedef struct { char datanascimento[20]; char endereco[200]; char cidade[50]; - uint cep; - uint telefone; - uint cpf; - uint rg; + unsigned long long int cep; + unsigned long long int telefone; + unsigned long long int cpf; + unsigned long long int rg; char profissao[100]; - uint pispasep; + unsigned long long int pispasep; char dataCadastro[20]; } Funcionarios; From b6d2e4b10881b94f6016d94580cb76e9302fc435 Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Fri, 24 Nov 2017 21:11:42 -0200 Subject: [PATCH 59/92] cep removido da cidade --- codigos/ControleEstoqueC/cidade.c | 30 +++++++++---------- codigos/ControleEstoqueC/funcionarios.h | 6 ++-- .../nbproject/private/configurations.xml | 5 ++-- .../nbproject/private/private.xml | 10 +++++-- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidade.c index 00979bd..11d2b57 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidade.c @@ -6,25 +6,26 @@ void mostrarListagemCidades(){ do { limparTela(); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE CIDADES |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | CEP | ID ESTADOS |\n"); - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("|-----------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE CIDADES |\n"); + printf("|-----------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | ID ESTADOS |\n"); + printf("|-----------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ - if(!mysql_query(&mysql,"SELECT id, nome, cep, cidades.idEstado from cidades, estados where estados.idEstado = cidades.idEstado")){ + if(!mysql_query(&mysql,"SELECT idCidade, nomeCidade, cidades.idEstado from cidades, estados where estados.idEstado = cidades.idEstado")){ MYSQL_RES *resultado = mysql_store_result(&mysql); MYSQL_ROW linha; while((linha = mysql_fetch_row(resultado))){ - int id = atoi(linha[0]), idEstado = atoi(linha[3]); - char *nome = linha[1], *cep = linha[2]; + int id = atoi(linha[0]), idEstado = atoi(linha[2]); + char *nome = linha[1]; - printf("|%-12d|%-34s|%-1s|%-0d|\n", id, nome, cep, idEstado); + printf("|%-12d|%-34s|%-41d|\n", id, nome, idEstado); + printf("|-----------------------------------------------------------------------------------------|\n"); } }else{ printf("erro: %s",mysql_error(&mysql)); @@ -33,7 +34,7 @@ void mostrarListagemCidades(){ printf("Falha ao conectar ao banco de dados: %s",mysql_error(&mysql)); } - printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("O que deseja fazer?\n"); printf("1) Cadastrar uma nova Cidade\n"); @@ -76,10 +77,6 @@ void mostrarCadastroCidade() { int tamanho = strlen(c.nome); c.nome[tamanho - 1] = '\0'; printf("|--------------------------------------------------------------------|\n"); - printf("| CEP: "); - fgets(c.cep, sizeof (c.cep), stdin); - int tamanhoCEP = strlen(c.cep); - c.cep[tamanhoCEP] = '\0'; //Retira o \n do final da string e coloca \0 printf("| ID ESTADO: "); scanf("%d", &c.idEstado); @@ -93,6 +90,7 @@ void mostrarCadastroCidade() { if (resposta == 'S' || resposta == 's') { inserirCidade(c); } + limparTela(); } void inserirCidade(cidade c) { @@ -101,7 +99,7 @@ void inserirCidade(cidade c) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { char sql[500]; - snprintf(sql, 500, "insert into cidades(nome, cep, idEstado) values('%s', '%s', %d);", c.nome, c.cep, c.idEstado); + snprintf(sql, 500, "insert into cidades(nomeCidade, idEstado) values('%s', %d);", c.nome, c.idEstado); if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); @@ -125,7 +123,7 @@ void ExclusaoCidade(int codigo) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "delete from cidade where idCidade = %d", codigo); + snprintf(sql, 500, "delete from cidades where idCidade = %d", codigo); //Envia o comando e analisa a resposta diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index a93dab8..9cfb146 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -28,9 +28,9 @@ typedef struct { char endereco[200]; char cidade[50]; int cep; - int telefone; - int cpf; - int rg; + long int telefone; + long int cpf; + long int rg; char profissao[100]; int pispasep; char dataCadastro[20]; diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 7560ded..4837359 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -13,8 +13,6 @@ - - @@ -31,7 +29,8 @@ "${OUTPUT_PATH}" true - 0 + 1 + 1 0 diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index e7fbc27..a45ae58 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,8 +7,14 @@ - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/estados.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/main.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/diretivas_conexao.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/gerais.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c From 7ec05df33dc112ac888bba2393da2c9f3eab96cb Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Fri, 24 Nov 2017 21:17:17 -0200 Subject: [PATCH 60/92] cep removido da cidade e melhorias no listar --- codigos/ControleEstoqueC/funcionarios.h | 7 +++++++ .../ControleEstoqueC/nbproject/private/configurations.xml | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 3514e9e..604078b 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -27,6 +27,13 @@ typedef struct { char datanascimento[20]; char endereco[200]; char Cidade[50]; + unsigned long long int cep; + unsigned long long int telefone; + unsigned long long int cpf; + unsigned long long int rg; + char profissao[100]; + unsigned long long int pispasep; + char dataCadastro[20]; } Funcionarios; diff --git a/codigos/ControleEstoqueC/nbproject/private/configurations.xml b/codigos/ControleEstoqueC/nbproject/private/configurations.xml index 4837359..78e3906 100644 --- a/codigos/ControleEstoqueC/nbproject/private/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/private/configurations.xml @@ -29,7 +29,6 @@ "${OUTPUT_PATH}" true - 1 1 0 From 76d996570268675d94d14b1ba14c6c0845a1608f Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos de Oliveira Date: Fri, 24 Nov 2017 21:33:25 -0200 Subject: [PATCH 61/92] =?UTF-8?q?modifica=C3=A7=C3=A3o=20na=20tabela=20cid?= =?UTF-8?q?ades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 6ff1135..fb05a39 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -16,9 +16,8 @@ create table estados ( ); create table cidades( - id int not null auto_increment, - nome varchar(65) not null, - cep varchar(10) not null, + idCidade int not null auto_increment, + nomeCidade varchar(65) not null, idEstado int not null, constraint foreign key (idEstado) references estados(idEstado), primary key (id) From 5490aa3cf285614ffdea03e195542a25df45a9e9 Mon Sep 17 00:00:00 2001 From: LuanaQ <31023070+LuanaQ@users.noreply.github.com> Date: Sat, 25 Nov 2017 00:05:53 -0200 Subject: [PATCH 62/92] =?UTF-8?q?Corre=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 2605128..d7d40fc 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -9,7 +9,7 @@ void mostrarListagemFuncionarios() { printf("|------------------------------------------------------------------------------------------------------------|\n"); printf("| LISTAGEM DE FUNCIONARIOS |\n"); printf("|------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO |CIDADE| CEP |TELEFONE| CPF |RG |PROFISSAO| PIS/PASEP |\n"); + printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO | CIDADE | CEP | TELEFONE | CPF |RG | PROFISSAO | PIS/PASEP |\n"); printf("|------------------------------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); @@ -44,7 +44,7 @@ void mostrarListagemFuncionarios() { //Imprime cada linha - printf("| %d | %s | %s | %-8s | %s | %s |%d | %d | %d | %d| %s | %d |\n", + printf("|%d| %s |%s| %-8s| %s |%s |%d | %d |%d|%d| %s |%d |\n", id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } From 4ee35568828f2ad8dd4efd938e7732f448b66179 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sat, 25 Nov 2017 00:56:47 -0200 Subject: [PATCH 63/92] corecoes --- banco_de_dados/funcionarios.sql | 8 +- codigos/ControleEstoqueC/funcionarios.c | 274 +++++++++--------- codigos/ControleEstoqueC/funcionarios.h | 12 +- .../nbproject/private/private.xml | 10 +- 4 files changed, 154 insertions(+), 150 deletions(-) diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql index 6e2719c..60ccbb1 100644 --- a/banco_de_dados/funcionarios.sql +++ b/banco_de_dados/funcionarios.sql @@ -2,12 +2,12 @@ CREATE TABLE funcionarios ( idFuncionario int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, NomeFuncionario varchar(100) NOT NULL, SexoFuncionario varchar(2) NOT NULL, - DataNascimentoFuncionario varchar(11) NOT NULL, + DataNascimentoFuncionario varchar(13) NOT NULL, EnderecoFuncionario varchar(300) NOT NULL, cidadeFuncionario varchar(200) NOT NULL, - cepFuncionario int(10) NOT NULL, - telefoneFuncionario int(10) NOT NULL, - cpfFuncionario int(12) NOT NULL, + cepFuncionario int(11) NOT NULL, + telefoneFuncionario varchar(15) NOT NULL, + cpfFuncionario varchar(12) NOT NULL, rgFuncionario int(10) NOT NULL, profissaoFuncionario varchar(100) NOT NULL, pisPasepFuncionario varchar(11) NOT NULL diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 2605128..f0597ad 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -18,7 +18,7 @@ void mostrarListagemFuncionarios() { //Executa o comando de consulta if (mysql_query(&mysql, "SELECT idFuncionario, NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario,rgFuncionario,profissaoFuncionario, pisPasepFuncionario from funcionarios") == 0) { - + //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -33,18 +33,18 @@ void mostrarListagemFuncionarios() { char *endereco = linha[4]; char *cidade = linha[5]; int cep = atoi(linha[6]); - int telefone = atoi(linha[7]); - int cpf = atoi(linha[8]); + char *telefone = linha[7]; + char *cpf = linha[8]; int rg = atoi(linha[9]); char *profissao = linha[10]; - int pispasep = atoi(linha[11]); + char *pispasep = linha[11]; //atoi = converter para "string" para int //atof = converter para 'string' para double //Imprime cada linha - printf("| %d | %s | %s | %-8s | %s | %s |%d | %d | %d | %d| %s | %d |\n", + printf("| %d | %s | %s | %-8s | %s | %s |%d | %s | %s | %d| %s | %s |\n", id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -116,19 +116,24 @@ void mostrarCadastroFuncionario() { tamanho = strlen(f.Cidade); f.Cidade[tamanho - 1] = '\0'; - printf("| INFORME O CEP: "); + printf("| INFORME O CEP XXXXX-XXX: "); scanf("%d", &f.cep); getchar(); - printf("| INFORME O TELEFONE(XX)XXXXX-XXXX: "); - scanf("%d", &f.telefone); - getchar(); - printf("| INFORME O CPF: "); - scanf("%d", &f.cpf); - getchar(); + printf("| INFORME O TELEFONE (XX) XXXXX-XXXX: "); + fgets(f.telefone, sizeof (f.telefone), stdin); + tamanho = strlen(f.telefone); + f.telefone[tamanho - 1] = '\0'; + - printf("| INFORME O RG: "); + + printf("| INFORME O CPF : "); + fgets(f.cpf, sizeof (f.cpf), stdin); + tamanho = strlen(f.cpf); + f.cpf[tamanho - 1] = '\0'; + + printf("| INFORME O RG XXXXXXX: "); scanf("%d", &f.rg); getchar(); @@ -137,9 +142,10 @@ void mostrarCadastroFuncionario() { tamanho = strlen(f.profissao); f.profissao[tamanho - 1] = '\0'; - printf("| INFORME O PIS/PASEP: "); - scanf("%d", &f.pispasep); - getchar(); + printf("| INFORME O PIS/PASEP: "); + fgets(f.pispasep, sizeof (f.pispasep), stdin); + tamanho = strlen(f.pispasep); + f.pispasep[tamanho - 1] = '\0'; printf("|--------------------------------------------------------------|\n"); @@ -166,7 +172,7 @@ void inserirFuncionario(Funcionarios f) { char sql[2000]; - snprintf(sql, 2000, "INSERT INTO funcionarios(NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario, rgFuncionario, profissaoFuncionario, pisPasepFuncionario) values('%s','%s','%s','%s','%s','%d','%d','%d','%d','%s','%d')" + snprintf(sql, 2000, "INSERT INTO funcionarios(NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario, rgFuncionario, profissaoFuncionario, pisPasepFuncionario) values('%s','%s','%s','%s','%s','%d','%s','%s','%d','%s','%s')" , f.nome, f.sexo, f.datanascimento, f.endereco, f.Cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); @@ -192,10 +198,10 @@ void alterarFuncionario(Funcionarios f) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[2000]; - nome: - snprintf(sql, 2000, "update funcionarios set pisPasepFuncionario = '%d',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%d',telefoneFuncionario = '%d',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", +nome: + snprintf(sql, 2000, "update funcionarios set pisPasepFuncionario = '%s',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%s',telefoneFuncionario = '%s',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.Cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); - + //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { mysql_close(&mysql); //Encerra a conexão @@ -255,21 +261,17 @@ Funcionarios* selecionarFuncionario(int codigo) { MYSQL_ROW linha; int id; int cep; - int telefone; - int cpf; + + int rg; - int pispasep; + if ((linha = mysql_fetch_row(resultado))) { //Obtém cada coluna na órdem id = atoi(linha[0]); cep = atoi(linha[6]); - telefone = atoi(linha[7]); - cpf = atoi(linha[8]); - rg = atoi(linha[9]); - pispasep = atoi(linha[11]); - - + rg = atoi(linha[9]); + //Libera os resultado e fecha a conexão mysql_free_result(resultado); mysql_close(&mysql); @@ -277,18 +279,20 @@ Funcionarios* selecionarFuncionario(int codigo) { Funcionarios funcionarios; Funcionarios *f = &funcionarios; - strncpy(f->nome, linha[1], 100); + strncpy(f->sexo, linha[2], 100); strncpy(f->datanascimento, linha[3], 100); strncpy(f->endereco, linha[4], 100); strncpy(f->Cidade, linha[5], 100); + strncpy(f->telefone, linha[7], 100); + strncpy(f->cpf, linha[8], 100); strncpy(f->profissao, linha[10], 100); + strncpy(f->nome, linha[1], 100); + strncpy(f->pispasep, linha[11], 100); f->id = id; + f->cep = cep; - f->telefone = telefone; - f->cpf = cpf; f->rg = rg; - f->pispasep = pispasep; //Imprime cada linha @@ -310,7 +314,7 @@ Funcionarios* selecionarFuncionario(int codigo) { void mostrarAlteracaoFuncionario() { int codigo; - + printf("Digite o código do Funcionarios que deseja alterar: "); scanf("%d", &codigo); getchar(); @@ -328,103 +332,111 @@ void mostrarAlteracaoFuncionario() { printf("| Data de Nascimento: %s\n", f->datanascimento); printf("| Endereço: %s\n", f->endereco); printf("| Cidade : %s\n", f->Cidade); - printf("| Cep: %llu\n", f->cep); - printf("| Telefone: %llu\n", f->telefone); - printf("| Cpf: %llu\n", f->cpf); - printf("| rg: %llu\n", f->rg); + printf("| Cep: %d\n", f->cep); + printf("| Telefone: %s\n", f->telefone); + printf("| Cpf: %s\n", f->cpf); + printf("| rg: %d\n", f->rg); printf("| Profissão: %s\n", f->profissao); - printf("| PisPasep: %llu\n", f->pispasep); - - - printf("|--------------------------------------------------------------------|\n"); - printf("Digite o novo nome do Funcionario: "); - char nome[100]; - fgets(nome, sizeof (nome), stdin); - int tamanho = strlen(nome); - nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->nome, nome, 100); - printf("|--------------------------------------------------------------------|\n"); - - printf("Digite o novo sexo do Funcionario: "); - char sexo[100]; - fgets(sexo, sizeof (sexo), stdin); - tamanho = strlen(sexo); - sexo[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->sexo, sexo, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite a nova Data de Nascimento do Funcionario: "); - char datanascimento[100]; - fgets(datanascimento, sizeof (datanascimento), stdin); - tamanho = strlen(datanascimento); - datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->datanascimento, datanascimento, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite novo Endereço do Funcionario: "); - char endereco[100]; - fgets(endereco, sizeof (endereco), stdin); - tamanho = strlen(endereco); - endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->endereco, endereco, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite a nova Cidade do Funcionario: "); - char cidade[100]; - fgets(cidade, sizeof (cidade), stdin); - tamanho = strlen(cidade); - cidade[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->Cidade, cidade, 100); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("| Digite o novo CEP: "); - scanf("%d", &f->cep); - getchar(); - printf("|--------------------------------------------------------------------|\n"); - - - printf("| Digite o novo Telefone: "); - scanf("%d", &f->telefone); - getchar(); - printf("|--------------------------------------------------------------------|\n"); - - - printf("| Digite o novo CPF: "); - scanf("%d", &f->cpf); - getchar(); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("| Digite o novo RG: "); - scanf("%d", &f->rg); - getchar(); - printf("|--------------------------------------------------------------------|\n"); - - - - printf("Digite a nova Profissão do Funcionario: "); - char profissao[100]; - fgets(profissao, sizeof (profissao), stdin); - tamanho = strlen(profissao); - profissao[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->profissao, profissao, 100); - printf("|--------------------------------------------------------------------|\n"); - - printf("| Digite o novo PisPasep: "); - scanf("%d", &f->pispasep); - getchar(); - printf("|--------------------------------------------------------------------|\n"); - - + printf("| PisPasep: %s\n", f->pispasep); + printf("|-------------------------------------------------------------------|\n"); + + printf("|--------------------------------------------------------------------|\n"); + printf("Digite o novo nome do Funcionario: "); + char nome[100]; + fgets(nome, sizeof (nome), stdin); + int tamanho = strlen(nome); + nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("| Digite o novo sexo do Funcionario: "); + char sexo[100]; + fgets(sexo, sizeof (sexo), stdin); + tamanho = strlen(sexo); + sexo[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->sexo, sexo, 100); + printf("|--------------------------------------------------------------------|\n"); + + + + printf("| Digite a nova Data de Nascimento do Funcionario: "); + char datanascimento[100]; + fgets(datanascimento, sizeof (datanascimento), stdin); + tamanho = strlen(datanascimento); + datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->datanascimento, datanascimento, 100); + printf("|--------------------------------------------------------------------|\n"); + + + + printf("| Digite novo Endereço do Funcionario: "); + char endereco[100]; + fgets(endereco, sizeof (endereco), stdin); + tamanho = strlen(endereco); + endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->endereco, endereco, 100); + printf("|--------------------------------------------------------------------|\n"); + + + + printf("| Digite a nova Cidade do Funcionario: "); + char cidade[100]; + fgets(cidade, sizeof (cidade), stdin); + tamanho = strlen(cidade); + cidade[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->Cidade, cidade, 100); + printf("|--------------------------------------------------------------------|\n"); + + + + printf("| Digite o novo CEP: "); + scanf("%d", &f->cep); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + + printf("| Digite o novo Telefone: "); + char telefone[100]; + fgets(telefone, sizeof (telefone), stdin); + tamanho = strlen(telefone); + telefone[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->telefone, telefone, 100); + printf("|--------------------------------------------------------------------|\n"); + + + printf("| Digite o novo CPF: "); + char cpf[100]; + fgets(cpf, sizeof (cpf), stdin); + tamanho = strlen(cpf); + cpf[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->cpf, cpf, 100); + printf("|--------------------------------------------------------------------|\n"); + + + printf("| Digite o novo RG: "); + scanf("%d", &f->rg); + getchar(); + printf("|--------------------------------------------------------------------|\n"); + + + + printf("| Digite a nova Profissão do Funcionario: "); + char profissao[100]; + fgets(profissao, sizeof (profissao), stdin); + tamanho = strlen(profissao); + profissao[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->profissao, profissao, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("| Digite o novo PIS/PASEP: "); + char pis[100]; + fgets(pis, sizeof (pis), stdin); + tamanho = strlen(pis); + cpf[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->cpf, pis, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); @@ -437,8 +449,6 @@ void mostrarAlteracaoFuncionario() { } - - void mostrarExclusaoFuncionario() { int codigo; printf("Digite o código do funcionario que deseja excluir: "); diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 604078b..8963c28 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -27,13 +27,13 @@ typedef struct { char datanascimento[20]; char endereco[200]; char Cidade[50]; - unsigned long long int cep; - unsigned long long int telefone; - unsigned long long int cpf; - unsigned long long int rg; + int cep; + char telefone[13]; + char cpf[13]; + int rg; char profissao[100]; - unsigned long long int pispasep; - char dataCadastro[20]; + char pispasep[12]; + } Funcionarios; diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index a45ae58..e7fbc27 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,14 +7,8 @@ - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/estados.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/main.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/diretivas_conexao.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/gerais.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h From 336c8f782ac0c22c2e524ff9778a72b3f441c0b3 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sat, 25 Nov 2017 01:04:52 -0200 Subject: [PATCH 64/92] correcoes --- codigos/ControleEstoqueC/funcionarios.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index e620d80..242463e 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -42,14 +42,10 @@ void mostrarListagemFuncionarios() { //atoi = converter para "string" para int //atof = converter para 'string' para double - //Imprime cada linha -<<<<<<< HEAD + printf("| %d | %s | %s | %-8s | %s | %s |%d | %s | %s | %d| %s | %s |\n", -======= - printf("|%d| %s |%s| %-8s| %s |%s |%d | %d |%d|%d| %s |%d |\n", ->>>>>>> 5490aa3cf285614ffdea03e195542a25df45a9e9 - id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); + id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao,pispasep); } From 8d15127c4a261936142751c91de686657d281cae Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Sat, 25 Nov 2017 11:07:32 -0200 Subject: [PATCH 65/92] renomeados cidade.c e cidade.h para cidades.c e cidades.h --- codigos/ControleEstoqueC/{cidade.c => cidades.c} | 2 +- codigos/ControleEstoqueC/{cidade.h => cidades.h} | 0 codigos/ControleEstoqueC/main.c | 2 +- codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk | 6 +++--- .../ControleEstoqueC/nbproject/Makefile-Release.mk | 6 +++--- .../ControleEstoqueC/nbproject/configurations.xml | 12 ++++++------ .../ControleEstoqueC/nbproject/private/private.xml | 5 +++-- 7 files changed, 17 insertions(+), 16 deletions(-) rename codigos/ControleEstoqueC/{cidade.c => cidades.c} (99%) rename codigos/ControleEstoqueC/{cidade.h => cidades.h} (100%) diff --git a/codigos/ControleEstoqueC/cidade.c b/codigos/ControleEstoqueC/cidades.c similarity index 99% rename from codigos/ControleEstoqueC/cidade.c rename to codigos/ControleEstoqueC/cidades.c index 3a6236d..15caae5 100644 --- a/codigos/ControleEstoqueC/cidade.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -1,4 +1,4 @@ -#include "cidade.h" +#include "cidades.h" #include "gerais.h" void mostrarListagemCidades(){ int opcao; diff --git a/codigos/ControleEstoqueC/cidade.h b/codigos/ControleEstoqueC/cidades.h similarity index 100% rename from codigos/ControleEstoqueC/cidade.h rename to codigos/ControleEstoqueC/cidades.h diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 1af095f..85cd23a 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -1,5 +1,5 @@ #include -#include "cidade.h" +#include "cidades.h" #include "paises.h" #include "estados.h" #include "clientes.h" diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk index aa37ac4..c5475d1 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Debug.mk @@ -35,7 +35,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ - ${OBJECTDIR}/cidade.o \ + ${OBJECTDIR}/cidades.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/fornecedores.o \ @@ -70,10 +70,10 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} `mysql_config --libs` -${OBJECTDIR}/cidade.o: cidade.c +${OBJECTDIR}/cidades.o: cidades.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidade.o cidade.c + $(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidades.o cidades.c ${OBJECTDIR}/clientes.o: clientes.c ${MKDIR} -p ${OBJECTDIR} diff --git a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk index c7f1c9d..7e627eb 100644 --- a/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk +++ b/codigos/ControleEstoqueC/nbproject/Makefile-Release.mk @@ -35,7 +35,7 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} # Object Files OBJECTFILES= \ - ${OBJECTDIR}/cidade.o \ + ${OBJECTDIR}/cidades.o \ ${OBJECTDIR}/clientes.o \ ${OBJECTDIR}/estados.o \ ${OBJECTDIR}/fornecedores.o \ @@ -70,10 +70,10 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/controleestoquec ${OBJECTFILES} ${LDLIBSOPTIONS} -${OBJECTDIR}/cidade.o: cidade.c +${OBJECTDIR}/cidades.o: cidades.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidade.o cidade.c + $(COMPILE.c) -O2 -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/cidades.o cidades.c ${OBJECTDIR}/clientes.o: clientes.c ${MKDIR} -p ${OBJECTDIR} diff --git a/codigos/ControleEstoqueC/nbproject/configurations.xml b/codigos/ControleEstoqueC/nbproject/configurations.xml index 7ac2d51..48541e2 100644 --- a/codigos/ControleEstoqueC/nbproject/configurations.xml +++ b/codigos/ControleEstoqueC/nbproject/configurations.xml @@ -4,7 +4,7 @@ - cidade.h + cidades.h clientes.h diretivas_conexao.h estados.h @@ -17,7 +17,7 @@ - cidade.c + cidades.c clientes.c estados.c fornecedores.c @@ -59,9 +59,9 @@ `mysql_config --libs` - + - + @@ -117,9 +117,9 @@ 5 - + - + diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index e7fbc27..1a04776 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,8 +7,9 @@ - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c From 2731cdbf6ea84a9c1e30e49f86983d1c3dd469e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:14:04 -0200 Subject: [PATCH 66/92] =?UTF-8?q?Conclus=C3=A3o=20do=20m=C3=B3dulo=20de=20?= =?UTF-8?q?Clientes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clientes.c | 364 +++++++++++++++++++++++++++++++++++++++++++++++++++ clientes.h | 57 ++++++++ clientes.sql | 17 +++ main.c | 56 ++++++++ 4 files changed, 494 insertions(+) create mode 100644 clientes.c create mode 100644 clientes.h create mode 100644 clientes.sql create mode 100644 main.c diff --git a/clientes.c b/clientes.c new file mode 100644 index 0000000..d5238b5 --- /dev/null +++ b/clientes.c @@ -0,0 +1,364 @@ +/** + * Cadastro de clientes + * + * Autores: + * Bruno Geovane + * Gilson Soares + * Juliana Gomes + * Marco Aurelio + * Ruan Miller + * + */ + +#include +#include +#include +#include "clientes.h" + +/** + * Exibe a lista de clientes já cadastrados no banco de dados + */ +void mostrarListagemClientes(){ + int opcao; + + do { + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| ID | NOME | SEXO | DATA NASCIMENTO | ENDERECO | CIDADE | CEP | TELEFONE | CPF | RG | PROFISSAO |\n"); + printf("|--------------------------------------------------------------------|\n"); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Executa o comando de consulta + if (mysql_query(&mysql, "SELECT id, nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao" + " FROM clientes ORDER BY nome") == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na ordem + int id = atoi(linha[0]); + char *nome = linha[1]; + char *sexo = linha[2]; + char *datanasc = linha[3]; + char *endereco = linha[4]; + char *cidade = linha[5]; + char *cep = linha[6]; + char *telefone = linha[7]; + char *cpf = linha[8]; + char *rg = linha[9]; + char *profissao = linha[10]; + + //Imprime cada linha + printf("| %d | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s |\n", + id, nome, sexo, datanasc, endereco, cidade, cep, telefone, cpf, rg, profissao); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + printf("|--------------------------------------------------------------------|\n"); + + printf("O que deseja fazer?\n"); + printf("1) Cadastrar um novo cliente\n"); + printf("2) Alterar um cliente\n"); + printf("3) Excluir um cliente\n"); + printf("4) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: mostrarCadastroCliente(); break; + case 2: mostrarAlteracaoCliente(); break; + case 3: mostrarExclusaoCliente(); break; + } + } while (opcao != 4); +} + +/** + * Exibe a tela para cadastro de um novo cliente + */ +void mostrarCadastroCliente() { + Cliente c; + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o nome completo para cadastro: "); + fgets(c.nome, sizeof(c.nome), stdin); + int tamanho = strlen(c.nome); + c.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o sexo [M] ou [F]: "); + fgets(c.sexo, sizeof(c.sexo), stdin); + tamanho = strlen(c.sexo); + c.sexo[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe data de nascimento [dd/mm/aaaa]: "); + fgets(c.datanasc, sizeof(c.datanasc), stdin); + tamanho = strlen(c.datanasc); + c.datanasc[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o endereco de residencia: "); + fgets(c.endereco, sizeof(c.endereco), stdin); + tamanho = strlen(c.endereco); + c.endereco[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe a cidade: "); + fgets(c.cidade, sizeof(c.cidade), stdin); + tamanho = strlen(c.cidade); + c.cidade[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o CEP: "); + fgets(c.cep, sizeof(c.cep), stdin); + tamanho = strlen(c.cep); + c.cep[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o telefone de contato [(DD)9XXXX-XXXX]: "); + fgets(c.telefone, sizeof(c.telefone), stdin); + tamanho = strlen(c.telefone); + c.telefone[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o CPF: "); + fgets(c.cpf, sizeof(c.cpf), stdin); + tamanho = strlen(c.cpf); + c.cpf[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o RG: "); + fgets(c.rg, sizeof(c.rg), stdin); + tamanho = strlen(c.rg); + c.rg[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe a profissao: "); + fgets(c.profissao, sizeof(c.profissao), stdin); + tamanho = strlen(c.profissao); + c.profissao[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente criar o cliente? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + inserirCliente(c); + } +} + +/** + * Efetua a insercao do novo cliente no banco de dados + * @param c + */ +void inserirCliente(Cliente c){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[2000]; + snprintf(sql, 2000, "INSERT INTO clientes(nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao)" + " VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", + c.nome, c.sexo, c.datanasc, c.endereco, c.cidade, c.cep, c.telefone, c.cpf, c.rg, c.profissao); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Cliente cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Efetua a alteracao dos campos do cliente no banco de dados + * @param c + */ +void alterarCliente(Cliente c){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "UPDATE clientes SET nome = '%s' WHERE id = %d", c.nome, c.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Cliente alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Efetua a exclusao das informacoes do cliente do banco de dados + * @param codigo + */ +void excluirCliente(int codigo){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "DELETE FROM clientes WHERE id = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("Cliente excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Efetua a selecao dos dados do cliente solicitado no banco de dados + * @param codigo + * @return + */ +Cliente* selecionarCliente(int codigo){ + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "SELECT id, nome FROM clientes WHERE id = %d", codigo); + + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + int id; + char *nome; + if ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na ordem + id = atoi(linha[0]); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + Cliente cliente; + Cliente *c = &cliente; + strncpy(c->nome, linha[1], 100); + c->id = id; + + //Imprime cada linha + return c; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Exibe os dados do cliente antes de serem alterados + */ +void mostrarAlteracaoCliente(){ + int codigo; + printf("Digite o código do cliente que deseja alterar: "); + scanf("%d", &codigo); getchar(); + + Cliente *c = selecionarCliente(codigo); + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| Id: %d\n", c->id); + printf("| Nome: %s\n", c->nome); + printf("|--------------------------------------------------------------------|\n"); + + printf("Digite o novo nome do cliente: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(c->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + alterarCliente(*c); + } + + getchar(); +} + +/** + * Exibe os dados dos clientes para selecionar qual deverá ser excluído do banco de dados + */ +void mostrarExclusaoCliente(){ + int codigo; + printf("Digite o código do cliente que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + excluirCliente(codigo); + getchar(); +} \ No newline at end of file diff --git a/clientes.h b/clientes.h new file mode 100644 index 0000000..7e1a6a1 --- /dev/null +++ b/clientes.h @@ -0,0 +1,57 @@ +/* + * File: clientes.h + * Author: ronneesley + * + * Created on 10 de Setembro de 2017, 21:31 + */ + +#ifndef CLIENTES_H +#define CLIENTES_H + +#include +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + +/** + * Estrutura para representar um pais + */ +typedef struct { + int id; + char nome[100]; + char sexo[3]; + char datanasc[12]; + char endereco[200]; + char cidade[50]; + char cep[12]; + char telefone[17]; + char cpf[16]; + char rg[12]; + char profissao[50]; +} Cliente; + +/** + * Lista todos os países cadastrados no banco de dados + */ +void mostrarListagemClientes(); + +/** + * Apresenta o cadastro de países + */ +void mostrarCadastroCliente(); + +/** + * Função para inserção de um país no banco de dados + */ +void inserirCliente(Cliente c); +void excluirCliente(int codigo); +void alterarCliente(Cliente c); +Cliente* selecionarCliente(int codigo); + +void mostrarAlteracaoCliente(); +void mostrarExclusaoCliente(); +void excluirCliente(int codigo); + +#endif /* CLIENTES_H */ + diff --git a/clientes.sql b/clientes.sql new file mode 100644 index 0000000..0af4394 --- /dev/null +++ b/clientes.sql @@ -0,0 +1,17 @@ +create database if not exists controleestoque; + +use controleestoque; + +create table clientes ( + id int primary key auto_increment not null, + nome varchar(200) not null, + sexo char, + data varchar(10), + endereco varchar(200), + cidade varchar(50), + cep varchar (10), + telefone varchar(15), + cpf varchar(14), + rg varchar(15), + profissao varchar(50) +); diff --git a/main.c b/main.c new file mode 100644 index 0000000..9deed0c --- /dev/null +++ b/main.c @@ -0,0 +1,56 @@ +#include +#include "paises.h" +#include "estados.h" +#include "clientes.h" +#include "gerais.h" +#include "funcionarios.h" + +/** + * Mostra o menu principal do sistema + * Autor: Ronneesley Moura Teles + * Data: 15/08/2017 + */ +void mostrarMenuPrincipal(){ + int opcao; //Opção a ser escolhida no menu + + do { + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); + printf("|--------------------------------------------------------------------|\n"); + + printf("1) Cadastro de países\n"); + printf("2) Cadastro de estados\n"); + printf("3) Cadastro de cidades\n"); + printf("4) Cadastro de clientes\n"); + printf("5) Cadastro de produtos\n"); + printf("6) Cadastro de fornecedores\n"); + printf("7) Cadastro de representantes\n"); + printf("8) Cadastro de funcionários\n"); + printf("9) Sair\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: mostrarListagemPaises(); break; + case 2: mostrarListagemEstados(); break; + case 4: mostrarListagemClientes(); break; + case 8: mostrarListagemFuncionarios(); break; + case 9: + printf("Até a próxima vez!\n"); + break; + default: + printf("Opção inválida!\n"); + } + } while (opcao != 9); +} + +/** + * Função principal do programa + */ +int main(){ + mostrarMenuPrincipal(); + + return 0; +} From 86a29365835a7f35a63b31710e9dfd313cd2237a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:17:59 -0200 Subject: [PATCH 67/92] caminho do arquivo errado --- clientes.sql | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 clientes.sql diff --git a/clientes.sql b/clientes.sql deleted file mode 100644 index 0af4394..0000000 --- a/clientes.sql +++ /dev/null @@ -1,17 +0,0 @@ -create database if not exists controleestoque; - -use controleestoque; - -create table clientes ( - id int primary key auto_increment not null, - nome varchar(200) not null, - sexo char, - data varchar(10), - endereco varchar(200), - cidade varchar(50), - cep varchar (10), - telefone varchar(15), - cpf varchar(14), - rg varchar(15), - profissao varchar(50) -); From 8d4d7c1d1cdb4ad3e64b815ba9e3f358dd916c9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:18:44 -0200 Subject: [PATCH 68/92] caminho do arquivo errado --- clientes.c | 364 ----------------------------------------------------- 1 file changed, 364 deletions(-) delete mode 100644 clientes.c diff --git a/clientes.c b/clientes.c deleted file mode 100644 index d5238b5..0000000 --- a/clientes.c +++ /dev/null @@ -1,364 +0,0 @@ -/** - * Cadastro de clientes - * - * Autores: - * Bruno Geovane - * Gilson Soares - * Juliana Gomes - * Marco Aurelio - * Ruan Miller - * - */ - -#include -#include -#include -#include "clientes.h" - -/** - * Exibe a lista de clientes já cadastrados no banco de dados - */ -void mostrarListagemClientes(){ - int opcao; - - do { - limparTela(); - printf("|--------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE CLIENTES |\n"); - printf("|--------------------------------------------------------------------|\n"); - printf("| ID | NOME | SEXO | DATA NASCIMENTO | ENDERECO | CIDADE | CEP | TELEFONE | CPF | RG | PROFISSAO |\n"); - printf("|--------------------------------------------------------------------|\n"); - - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - - //Executa o comando de consulta - if (mysql_query(&mysql, "SELECT id, nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao" - " FROM clientes ORDER BY nome") == 0){ - - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - while ( (linha = mysql_fetch_row(resultado)) ){ - - //Obtém cada coluna na ordem - int id = atoi(linha[0]); - char *nome = linha[1]; - char *sexo = linha[2]; - char *datanasc = linha[3]; - char *endereco = linha[4]; - char *cidade = linha[5]; - char *cep = linha[6]; - char *telefone = linha[7]; - char *cpf = linha[8]; - char *rg = linha[9]; - char *profissao = linha[10]; - - //Imprime cada linha - printf("| %d | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s |\n", - id, nome, sexo, datanasc, endereco, cidade, cep, telefone, cpf, rg, profissao); - } - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - - printf("|--------------------------------------------------------------------|\n"); - - printf("O que deseja fazer?\n"); - printf("1) Cadastrar um novo cliente\n"); - printf("2) Alterar um cliente\n"); - printf("3) Excluir um cliente\n"); - printf("4) Voltar ao menu principal\n\n"); - - printf("Digite a opção desejada: "); - scanf("%d", &opcao); getchar(); - - switch (opcao){ - case 1: mostrarCadastroCliente(); break; - case 2: mostrarAlteracaoCliente(); break; - case 3: mostrarExclusaoCliente(); break; - } - } while (opcao != 4); -} - -/** - * Exibe a tela para cadastro de um novo cliente - */ -void mostrarCadastroCliente() { - Cliente c; - - limparTela(); - printf("|--------------------------------------------------------------------|\n"); - printf("| CADASTRO DE CLIENTES |\n"); - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o nome completo para cadastro: "); - fgets(c.nome, sizeof(c.nome), stdin); - int tamanho = strlen(c.nome); - c.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o sexo [M] ou [F]: "); - fgets(c.sexo, sizeof(c.sexo), stdin); - tamanho = strlen(c.sexo); - c.sexo[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe data de nascimento [dd/mm/aaaa]: "); - fgets(c.datanasc, sizeof(c.datanasc), stdin); - tamanho = strlen(c.datanasc); - c.datanasc[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o endereco de residencia: "); - fgets(c.endereco, sizeof(c.endereco), stdin); - tamanho = strlen(c.endereco); - c.endereco[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe a cidade: "); - fgets(c.cidade, sizeof(c.cidade), stdin); - tamanho = strlen(c.cidade); - c.cidade[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o CEP: "); - fgets(c.cep, sizeof(c.cep), stdin); - tamanho = strlen(c.cep); - c.cep[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o telefone de contato [(DD)9XXXX-XXXX]: "); - fgets(c.telefone, sizeof(c.telefone), stdin); - tamanho = strlen(c.telefone); - c.telefone[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o CPF: "); - fgets(c.cpf, sizeof(c.cpf), stdin); - tamanho = strlen(c.cpf); - c.cpf[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe o RG: "); - fgets(c.rg, sizeof(c.rg), stdin); - tamanho = strlen(c.rg); - c.rg[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("| Informe a profissao: "); - fgets(c.profissao, sizeof(c.profissao), stdin); - tamanho = strlen(c.profissao); - c.profissao[tamanho - 1] = '\0'; - printf("|--------------------------------------------------------------------|\n"); - - printf("Deseja realmente criar o cliente? (S/N) "); - char resposta = getchar(); getchar(); - - if (resposta == 'S' || resposta == 's'){ - inserirCliente(c); - } -} - -/** - * Efetua a insercao do novo cliente no banco de dados - * @param c - */ -void inserirCliente(Cliente c){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[2000]; - snprintf(sql, 2000, "INSERT INTO clientes(nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao)" - " VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", - c.nome, c.sexo, c.datanasc, c.endereco, c.cidade, c.cep, c.telefone, c.cpf, c.rg, c.profissao); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("Cliente cadastrado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -/** - * Efetua a alteracao dos campos do cliente no banco de dados - * @param c - */ -void alterarCliente(Cliente c){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "UPDATE clientes SET nome = '%s' WHERE id = %d", c.nome, c.id); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("Cliente alterado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -/** - * Efetua a exclusao das informacoes do cliente do banco de dados - * @param codigo - */ -void excluirCliente(int codigo){ - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "DELETE FROM clientes WHERE id = %d", codigo); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0){ - mysql_close(&mysql); //Encerra a conexão - - printf("Cliente excluído com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -/** - * Efetua a selecao dos dados do cliente solicitado no banco de dados - * @param codigo - * @return - */ -Cliente* selecionarCliente(int codigo){ - //Cria a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Efetua a conexão - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ - char sql[500]; - snprintf(sql, 500, "SELECT id, nome FROM clientes WHERE id = %d", codigo); - - //Executa o comando de consulta - if (mysql_query(&mysql, sql) == 0){ - - //Obtém o resultado - MYSQL_RES *resultado = mysql_store_result(&mysql); - - //Cria uma variável para guardar a linha - MYSQL_ROW linha; - int id; - char *nome; - if ( (linha = mysql_fetch_row(resultado)) ){ - - //Obtém cada coluna na ordem - id = atoi(linha[0]); - - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - Cliente cliente; - Cliente *c = &cliente; - strncpy(c->nome, linha[1], 100); - c->id = id; - - //Imprime cada linha - return c; - } else { - //Libera os resultado e fecha a conexão - mysql_free_result(resultado); - mysql_close(&mysql); - - return NULL; - } - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -/** - * Exibe os dados do cliente antes de serem alterados - */ -void mostrarAlteracaoCliente(){ - int codigo; - printf("Digite o código do cliente que deseja alterar: "); - scanf("%d", &codigo); getchar(); - - Cliente *c = selecionarCliente(codigo); - - limparTela(); - printf("|--------------------------------------------------------------------|\n"); - printf("| CADASTRO DE CLIENTES |\n"); - printf("|--------------------------------------------------------------------|\n"); - printf("| Id: %d\n", c->id); - printf("| Nome: %s\n", c->nome); - printf("|--------------------------------------------------------------------|\n"); - - printf("Digite o novo nome do cliente: "); - char nome[100]; - fgets(nome, sizeof(nome), stdin); - int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(c->nome, nome, 100); - printf("|--------------------------------------------------------------------|\n"); - - printf("Deseja realmente salvar as alterações? (S/N) "); - char resposta = getchar(); getchar(); - - if (resposta == 'S' || resposta == 's'){ - alterarCliente(*c); - } - - getchar(); -} - -/** - * Exibe os dados dos clientes para selecionar qual deverá ser excluído do banco de dados - */ -void mostrarExclusaoCliente(){ - int codigo; - printf("Digite o código do cliente que deseja excluir: "); - scanf("%d", &codigo); - getchar(); - - excluirCliente(codigo); - getchar(); -} \ No newline at end of file From 3577040938156b750bf7cc84a98a8b35b2aab7c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:18:58 -0200 Subject: [PATCH 69/92] caminho do arquivo errado --- clientes.h | 57 ------------------------------------------------------ 1 file changed, 57 deletions(-) delete mode 100644 clientes.h diff --git a/clientes.h b/clientes.h deleted file mode 100644 index 7e1a6a1..0000000 --- a/clientes.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * File: clientes.h - * Author: ronneesley - * - * Created on 10 de Setembro de 2017, 21:31 - */ - -#ifndef CLIENTES_H -#define CLIENTES_H - -#include -#include -#include -#include "diretivas_conexao.h" -#include "gerais.h" - -/** - * Estrutura para representar um pais - */ -typedef struct { - int id; - char nome[100]; - char sexo[3]; - char datanasc[12]; - char endereco[200]; - char cidade[50]; - char cep[12]; - char telefone[17]; - char cpf[16]; - char rg[12]; - char profissao[50]; -} Cliente; - -/** - * Lista todos os países cadastrados no banco de dados - */ -void mostrarListagemClientes(); - -/** - * Apresenta o cadastro de países - */ -void mostrarCadastroCliente(); - -/** - * Função para inserção de um país no banco de dados - */ -void inserirCliente(Cliente c); -void excluirCliente(int codigo); -void alterarCliente(Cliente c); -Cliente* selecionarCliente(int codigo); - -void mostrarAlteracaoCliente(); -void mostrarExclusaoCliente(); -void excluirCliente(int codigo); - -#endif /* CLIENTES_H */ - From cdcb729e50d1dd845f933b15630e22fecda9298b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:19:58 -0200 Subject: [PATCH 70/92] codigo para criacao do banco de dados de clientes --- banco_de_dados/clientes.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 banco_de_dados/clientes.sql diff --git a/banco_de_dados/clientes.sql b/banco_de_dados/clientes.sql new file mode 100644 index 0000000..0af4394 --- /dev/null +++ b/banco_de_dados/clientes.sql @@ -0,0 +1,17 @@ +create database if not exists controleestoque; + +use controleestoque; + +create table clientes ( + id int primary key auto_increment not null, + nome varchar(200) not null, + sexo char, + data varchar(10), + endereco varchar(200), + cidade varchar(50), + cep varchar (10), + telefone varchar(15), + cpf varchar(14), + rg varchar(15), + profissao varchar(50) +); From 11b3f562d0323f1096a8ca688766e3da897f497e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:21:22 -0200 Subject: [PATCH 71/92] conclusao do modulo de clientes --- codigos/ControleEstoqueC/clientes.c | 417 ++++++++++++++++++++++------ codigos/ControleEstoqueC/clientes.h | 45 ++- codigos/ControleEstoqueC/main.c | 6 +- 3 files changed, 379 insertions(+), 89 deletions(-) diff --git a/codigos/ControleEstoqueC/clientes.c b/codigos/ControleEstoqueC/clientes.c index 4f0ec75..d5238b5 100644 --- a/codigos/ControleEstoqueC/clientes.c +++ b/codigos/ControleEstoqueC/clientes.c @@ -1,113 +1,364 @@ -/*Cadastro de clientes - - Academicos: Bruno Geovane - Gilson Soares - Juliana Maciel - Leonardo Cordeiro - Marco Aurelio - Ruan Miller +/** + * Cadastro de clientes + * + * Autores: + * Bruno Geovane + * Gilson Soares + * Juliana Gomes + * Marco Aurelio + * Ruan Miller + * */ #include #include #include +#include "clientes.h" -//Funções para validação de dados -int validarSexo(char sexo){ - return sexo != 'M' && sexo != 'm' && sexo != 'F' && sexo != 'f'; -} +/** + * Exibe a lista de clientes já cadastrados no banco de dados + */ +void mostrarListagemClientes(){ + int opcao; + + do { + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| ID | NOME | SEXO | DATA NASCIMENTO | ENDERECO | CIDADE | CEP | TELEFONE | CPF | RG | PROFISSAO |\n"); + printf("|--------------------------------------------------------------------|\n"); + + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Executa o comando de consulta + if (mysql_query(&mysql, "SELECT id, nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao" + " FROM clientes ORDER BY nome") == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na ordem + int id = atoi(linha[0]); + char *nome = linha[1]; + char *sexo = linha[2]; + char *datanasc = linha[3]; + char *endereco = linha[4]; + char *cidade = linha[5]; + char *cep = linha[6]; + char *telefone = linha[7]; + char *cpf = linha[8]; + char *rg = linha[9]; + char *profissao = linha[10]; + + //Imprime cada linha + printf("| %d | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s |\n", + id, nome, sexo, datanasc, endereco, cidade, cep, telefone, cpf, rg, profissao); + } + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + printf("|--------------------------------------------------------------------|\n"); -int validarMes(int data_mes){ - return data_mes > 12 || data_mes < 1; + printf("O que deseja fazer?\n"); + printf("1) Cadastrar um novo cliente\n"); + printf("2) Alterar um cliente\n"); + printf("3) Excluir um cliente\n"); + printf("4) Voltar ao menu principal\n\n"); + + printf("Digite a opção desejada: "); + scanf("%d", &opcao); getchar(); + + switch (opcao){ + case 1: mostrarCadastroCliente(); break; + case 2: mostrarAlteracaoCliente(); break; + case 3: mostrarExclusaoCliente(); break; + } + } while (opcao != 4); } -int validarDia(int data_dia){ - return data_dia < 1 || data_dia > 31; +/** + * Exibe a tela para cadastro de um novo cliente + */ +void mostrarCadastroCliente() { + Cliente c; + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o nome completo para cadastro: "); + fgets(c.nome, sizeof(c.nome), stdin); + int tamanho = strlen(c.nome); + c.nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o sexo [M] ou [F]: "); + fgets(c.sexo, sizeof(c.sexo), stdin); + tamanho = strlen(c.sexo); + c.sexo[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe data de nascimento [dd/mm/aaaa]: "); + fgets(c.datanasc, sizeof(c.datanasc), stdin); + tamanho = strlen(c.datanasc); + c.datanasc[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o endereco de residencia: "); + fgets(c.endereco, sizeof(c.endereco), stdin); + tamanho = strlen(c.endereco); + c.endereco[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe a cidade: "); + fgets(c.cidade, sizeof(c.cidade), stdin); + tamanho = strlen(c.cidade); + c.cidade[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o CEP: "); + fgets(c.cep, sizeof(c.cep), stdin); + tamanho = strlen(c.cep); + c.cep[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o telefone de contato [(DD)9XXXX-XXXX]: "); + fgets(c.telefone, sizeof(c.telefone), stdin); + tamanho = strlen(c.telefone); + c.telefone[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o CPF: "); + fgets(c.cpf, sizeof(c.cpf), stdin); + tamanho = strlen(c.cpf); + c.cpf[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe o RG: "); + fgets(c.rg, sizeof(c.rg), stdin); + tamanho = strlen(c.rg); + c.rg[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("| Informe a profissao: "); + fgets(c.profissao, sizeof(c.profissao), stdin); + tamanho = strlen(c.profissao); + c.profissao[tamanho - 1] = '\0'; + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente criar o cliente? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + inserirCliente(c); + } } -void mostrarCadastroClientes() { - //Declaracao de variaveis - struct data { - int data_ano; - int data_mes; - int data_dia; - }; - struct data dataNascimento; - - struct dados { - char nome[100]; - char sexo; - char endereco[200]; - char cidade[50]; - char cep[10]; - char telefone[15]; - char cpf[14]; - char rg[10]; - char profissao[50]; - }; - struct dados cadastroCliente; +/** + * Efetua a insercao do novo cliente no banco de dados + * @param c + */ +void inserirCliente(Cliente c){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); - do { - printf("####################################\n"); - printf("# Cadastro de clientes #\n"); - printf("####################################\n\n"); + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[2000]; + snprintf(sql, 2000, "INSERT INTO clientes(nome, sexo, data, endereco, cidade, cep, telefone, cpf, rg, profissao)" + " VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", + c.nome, c.sexo, c.datanasc, c.endereco, c.cidade, c.cep, c.telefone, c.cpf, c.rg, c.profissao); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão - printf("Informe o nome completo para cadastro: "); - scanf("%s", cadastroCliente.nome); getchar(); + printf("Cliente cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Efetua a alteracao dos campos do cliente no banco de dados + * @param c + */ +void alterarCliente(Cliente c){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "UPDATE clientes SET nome = '%s' WHERE id = %d", c.nome, c.id); - if(cadastroCliente.nome != ""){ + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão - do { - printf("Informe o sexo [M]asculino ou [F]eminino? "); - scanf("%c", &cadastroCliente.sexo); + printf("Cliente alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} - if (validarSexo(cadastroCliente.sexo)){ - printf("Informe uma letra valida correspondente ao sexo\n"); - } - } while (validarSexo(cadastroCliente.sexo)); +/** + * Efetua a exclusao das informacoes do cliente do banco de dados + * @param codigo + */ +void excluirCliente(int codigo){ + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); - printf("Informe o ano de nascimento [aaaa]: "); - scanf("%d", &dataNascimento.data_ano); + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "DELETE FROM clientes WHERE id = %d", codigo); - do { - printf("Informe o mes de nascimento [mm]: "); - scanf("%d", &dataNascimento.data_mes); + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão - if (validarMes(dataNascimento.data_mes)){ - printf("Informe um mes valido!\n"); - } - } while (validarMes(dataNascimento.data_mes)); + printf("Cliente excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} - do { - printf("Informe o dia de nascimento [dd]: "); - scanf("%d", &dataNascimento.data_dia); - if (validarDia(dataNascimento.data_dia)){ - printf("Informe um dia valido!\n"); - } - } while (validarDia(dataNascimento.data_dia)); +/** + * Efetua a selecao dos dados do cliente solicitado no banco de dados + * @param codigo + * @return + */ +Cliente* selecionarCliente(int codigo){ + //Cria a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); - printf("Informe o endereco de residencia: "); - scanf("%s", cadastroCliente.endereco); getchar(); + //Efetua a conexão + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + char sql[500]; + snprintf(sql, 500, "SELECT id, nome FROM clientes WHERE id = %d", codigo); - printf("Informe a cidade: "); - scanf("%s", cadastroCliente.cidade); getchar(); + //Executa o comando de consulta + if (mysql_query(&mysql, sql) == 0){ + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); - printf("Informe o CEP: "); - scanf("%s", cadastroCliente.cep); getchar(); + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + int id; + char *nome; + if ( (linha = mysql_fetch_row(resultado)) ){ + + //Obtém cada coluna na ordem + id = atoi(linha[0]); - printf("Informe um telefone de contato [DD9XXXXXXXX]: "); - scanf("%s", cadastroCliente.telefone); getchar(); + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); - printf("Informe o seu CPF: "); - scanf("%s", cadastroCliente.cpf); getchar(); + Cliente cliente; + Cliente *c = &cliente; + strncpy(c->nome, linha[1], 100); + c->id = id; - printf("Informe o seu RG: "); - scanf("%s", cadastroCliente.rg); getchar(); + //Imprime cada linha + return c; + } else { + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); - printf("Informe a sua profissao: "); - scanf("%s", cadastroCliente.profissao); getchar(); + return NULL; + } + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro } - } while (cadastroCliente.nome != ""); + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Exibe os dados do cliente antes de serem alterados + */ +void mostrarAlteracaoCliente(){ + int codigo; + printf("Digite o código do cliente que deseja alterar: "); + scanf("%d", &codigo); getchar(); + + Cliente *c = selecionarCliente(codigo); + + limparTela(); + printf("|--------------------------------------------------------------------|\n"); + printf("| CADASTRO DE CLIENTES |\n"); + printf("|--------------------------------------------------------------------|\n"); + printf("| Id: %d\n", c->id); + printf("| Nome: %s\n", c->nome); + printf("|--------------------------------------------------------------------|\n"); - system ("PAUSE"); + printf("Digite o novo nome do cliente: "); + char nome[100]; + fgets(nome, sizeof(nome), stdin); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(c->nome, nome, 100); + printf("|--------------------------------------------------------------------|\n"); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + alterarCliente(*c); + } + + getchar(); } + +/** + * Exibe os dados dos clientes para selecionar qual deverá ser excluído do banco de dados + */ +void mostrarExclusaoCliente(){ + int codigo; + printf("Digite o código do cliente que deseja excluir: "); + scanf("%d", &codigo); + getchar(); + + excluirCliente(codigo); + getchar(); +} \ No newline at end of file diff --git a/codigos/ControleEstoqueC/clientes.h b/codigos/ControleEstoqueC/clientes.h index 8ea8849..7e1a6a1 100644 --- a/codigos/ControleEstoqueC/clientes.h +++ b/codigos/ControleEstoqueC/clientes.h @@ -8,7 +8,50 @@ #ifndef CLIENTES_H #define CLIENTES_H -void mostrarCadastroClientes(); +#include +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + +/** + * Estrutura para representar um pais + */ +typedef struct { + int id; + char nome[100]; + char sexo[3]; + char datanasc[12]; + char endereco[200]; + char cidade[50]; + char cep[12]; + char telefone[17]; + char cpf[16]; + char rg[12]; + char profissao[50]; +} Cliente; + +/** + * Lista todos os países cadastrados no banco de dados + */ +void mostrarListagemClientes(); + +/** + * Apresenta o cadastro de países + */ +void mostrarCadastroCliente(); + +/** + * Função para inserção de um país no banco de dados + */ +void inserirCliente(Cliente c); +void excluirCliente(int codigo); +void alterarCliente(Cliente c); +Cliente* selecionarCliente(int codigo); + +void mostrarAlteracaoCliente(); +void mostrarExclusaoCliente(); +void excluirCliente(int codigo); #endif /* CLIENTES_H */ diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 1af095f..9deed0c 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -1,11 +1,9 @@ #include -#include "cidade.h" #include "paises.h" #include "estados.h" #include "clientes.h" #include "gerais.h" #include "funcionarios.h" -#include "fornecedores.h" /** * Mostra o menu principal do sistema @@ -37,9 +35,7 @@ void mostrarMenuPrincipal(){ switch (opcao){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; - case 3: mostrarListagemCidades(); break; - case 4: mostrarCadastroClientes(); break; - case 6: MenuFornecedores(); break; + case 4: mostrarListagemClientes(); break; case 8: mostrarListagemFuncionarios(); break; case 9: printf("Até a próxima vez!\n"); From a9824f62fe545507f380856abfeaac8b79b2b1e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Rodrigues=20Pereira?= <31022921+marcoaureliorp@users.noreply.github.com> Date: Sat, 25 Nov 2017 16:21:54 -0200 Subject: [PATCH 72/92] caminho do arquivo errado --- main.c | 56 -------------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 main.c diff --git a/main.c b/main.c deleted file mode 100644 index 9deed0c..0000000 --- a/main.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include "paises.h" -#include "estados.h" -#include "clientes.h" -#include "gerais.h" -#include "funcionarios.h" - -/** - * Mostra o menu principal do sistema - * Autor: Ronneesley Moura Teles - * Data: 15/08/2017 - */ -void mostrarMenuPrincipal(){ - int opcao; //Opção a ser escolhida no menu - - do { - limparTela(); - printf("|--------------------------------------------------------------------|\n"); - printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n"); - printf("|--------------------------------------------------------------------|\n"); - - printf("1) Cadastro de países\n"); - printf("2) Cadastro de estados\n"); - printf("3) Cadastro de cidades\n"); - printf("4) Cadastro de clientes\n"); - printf("5) Cadastro de produtos\n"); - printf("6) Cadastro de fornecedores\n"); - printf("7) Cadastro de representantes\n"); - printf("8) Cadastro de funcionários\n"); - printf("9) Sair\n\n"); - - printf("Digite a opção desejada: "); - scanf("%d", &opcao); getchar(); - - switch (opcao){ - case 1: mostrarListagemPaises(); break; - case 2: mostrarListagemEstados(); break; - case 4: mostrarListagemClientes(); break; - case 8: mostrarListagemFuncionarios(); break; - case 9: - printf("Até a próxima vez!\n"); - break; - default: - printf("Opção inválida!\n"); - } - } while (opcao != 9); -} - -/** - * Função principal do programa - */ -int main(){ - mostrarMenuPrincipal(); - - return 0; -} From 69fade985faa4813af85d1ea85c32796d31ca01d Mon Sep 17 00:00:00 2001 From: root Date: Sun, 26 Nov 2017 05:02:42 +0000 Subject: [PATCH 73/92] up produtos --- .project | 11 + codigos/ControleEstoqueC/gerais.c | 25 +- codigos/ControleEstoqueC/gerais.h | 6 + codigos/ControleEstoqueC/produtos.c | 391 +++++++++++++++++++++++++++- codigos/ControleEstoqueC/produtos.h | 60 +++-- 5 files changed, 470 insertions(+), 23 deletions(-) create mode 100644 .project diff --git a/.project b/.project new file mode 100644 index 0000000..2200d52 --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + controleestoque_c + + + + + + + + diff --git a/codigos/ControleEstoqueC/gerais.c b/codigos/ControleEstoqueC/gerais.c index aefc503..8e831d3 100644 --- a/codigos/ControleEstoqueC/gerais.c +++ b/codigos/ControleEstoqueC/gerais.c @@ -1,4 +1,9 @@ #include "gerais.h" +#include "paises.h" +#include "produtos.h" +#include +#include + /** * Limpa a tela @@ -7,4 +12,22 @@ */ void limparTela(){ system("clear"); -} \ No newline at end of file +} + +/* + Lê uma string do teclado coletando letra por letra com o getchar + e inserindo em cada posição do vetor quando não se tem um '\n' nem '\0' + e se a String não esgotou sua capacidade (tamanho-1). + ao fim insere '\0' após a última letra. + -João Neto- + */ +void leString(char s[], int tam) { + char letra; + int i; + letra = getchar(); + for (i = 0; (letra != 10 && letra != 13) && i < tam - 1; i++) { + s[i] = letra; + letra = getchar(); + } + s[i] = '\0'; +} diff --git a/codigos/ControleEstoqueC/gerais.h b/codigos/ControleEstoqueC/gerais.h index 8f0b33f..7ea6841 100644 --- a/codigos/ControleEstoqueC/gerais.h +++ b/codigos/ControleEstoqueC/gerais.h @@ -8,4 +8,10 @@ */ void limparTela(); +/** + * Lê um vetor de caractere. + */ +void leString(char s[], int tam); + + #endif \ No newline at end of file diff --git a/codigos/ControleEstoqueC/produtos.c b/codigos/ControleEstoqueC/produtos.c index a9d4fb1..3f3570b 100644 --- a/codigos/ControleEstoqueC/produtos.c +++ b/codigos/ControleEstoqueC/produtos.c @@ -1,6 +1,389 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +#include +#include +#include "produtos.h" + +/** + * Mostra os produtos cadastrados e um MENU de opções para produtos + */ +void mostraMenuPrincipal() { + + int opcao; + do { + mostraProdutos(); + + printf("\nO que deseja fazer?\n"); + printf("1) Cadastrar um novo produto\n"); + printf("2) Alterar um produto\n"); + printf("3) Excluir\n"); + printf("4) Voltar ao menu principal\n\n"); + printf("Digite a opção desejada: "); + scanf("%d", &opcao); + getchar(); + + switch (opcao) { + case 1: mostrarCadastroProduto(); + break; + case 2: mostraAlteracaoProduto(); + break; + case 3: mostraExclusaoProduto(); + break; + } + } while (opcao != 4); +} + +/** + * mostra a tela de cadastro de produtos. + */ +void mostrarCadastroProduto() { + Produto p; + + limparTela(); + mostraLinhaMenu(); + printf("| \t\t\tCADASTRO DE PRODUTO\t\t |\n"); + mostraLinhaMenu(); + + printf(" NOME: "); + leString(p.nome, 100); + + printf(" FORNECEDOR: "); + leString(p.fornecedor, 100); + + printf(" PREÇO DE COMPRA: R$ "); + scanf("%f", &p.precoCompra); + getchar(); + + printf(" PREÇO DE VENDA: R$ "); + scanf("%f", &p.precoVenda); + getchar(); + + printf(" DESCRIÇÃO: "); + leString(p.descricao, 100); + + printf(" QUANTIDADE EM ESTOQUE: "); + scanf("%d", &p.qtdEmEstoque); + getchar(); + mostraLinhaMenu(); + + printf("Deseja realmente criar o produto? (S/N) "); + char resposta = getchar(); + getchar(); + + if (resposta == 'S' || resposta == 's') { + insereProduto(p); + } +} + +/** + * Insere um novo produto + */ +void insereProduto(Produto p) { + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "INSERT INTO produtos(nome,fornecedor,precoCompra,precoVenda,descricao,qtdEmEstoque,dataCadastro) values('%s','%s',%f,%f,'%s',%d)" + , p.nome, p.fornecedor, p.precoCompra, p.precoVenda, p.descricao, p.qtdEmEstoque); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + printf("Produto cadastrado com sucesso\n"); + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s\n", mysql_error(&mysql)); + } +} + +/** + * Mostra o quadro de produtos cadastrados + */ +void mostraProdutos() { + limparTela(); + + MYSQL mysql; + mysql_init(&mysql); + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + + //Executa o comando de consulta + if (mysql_query(&mysql, "SELECT id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro FROM produtos ORDER BY nome") == 0) { + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + + mostraCabecalhoMenu(); + while ((linha = mysql_fetch_row(resultado))) { + + //Obtém cada coluna na órdem + int id = atoi(linha[0]), qtdEmEstoque = atoi(linha[6]), i, j; + char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7]; + + float precoCompra = atof(linha[3]), precoVenda = atof(linha[4]); + + //Imprime cada linha + printf("|%4d|%-22s|%-16s|R$%-12.2f|R$%-12.2f|%-40s|%-12d| %-7s |\n", + id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro); + } + mostraLinhaMenu(); + + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + * Mostra um produto,pelo ID + */ +void mostraProduto(int id) { //por id + limparTela(); + mostraCabecalhoMenu(); + + MYSQL mysql; + mysql_init(&mysql); + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Executa o comando de consulta + char sql[500]; + snprintf(sql, 500, "SELECT * FROM produtos WHERE id=%d", id); + if (mysql_query(&mysql, sql) == 0) { + + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + + //Cria uma variável para guardar a linha + MYSQL_ROW linha; + while ((linha = mysql_fetch_row(resultado))) { + + //Obtém cada coluna na ordem + int id = atoi(linha[0]), qtdEmEstoque = atoi(linha[6]), i, j; + char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7]; + float precoCompra = atof(linha[3]), precoVenda = atof(linha[4]); + + //Imprime cada linha + printf("|%4d|%-22s|%-16s|R$%-12.2f|R$%-12.2f|%-40s|%-12d| %-7s |\n", + id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro); + } + mostraLinhaMenu(); + + //Libera os resultado e fecha a conexão + mysql_free_result(resultado); + mysql_close(&mysql); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +/** + */ +void alteraProduto(int id, char campo[], char string[], char tipoDoCampo) { + Produto p; + MYSQL mysql; + mysql_init(&mysql); + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + + //Cria o comando SQL para envio + char sql[500]; + + if (tipoDoCampo == 's')snprintf(sql, 500, "UPDATE produtos SET %s = '%s',dataCadastro = NOW() WHERE id=%d", campo, string, id); + else snprintf(sql, 500, "UPDATE produtos SET %s = %s,dataCadastro = NOW() WHERE id=%d", campo, string, id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + printf("\n[Produto alterado com sucesso!]"); + printf("\nPRESSIONE \n"); + getchar(); + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha na conexão: %s\n", mysql_error(&mysql)); + } + + +} + +/** + * Seleciona e altera campos de um produto. */ +void mostraAlteracaoProduto() { + int opcao, id = 0; + mostraProdutos(); + + printf("\nDigite o [ID] do produto : "); + scanf("%d", &id); + do { + + while (!checaSeExiste(id, "produtos")) {//obriga o usuário a digitar um id válido + limparTela(); + mostraProdutos(); + printf("\n [PRODUTO INEXISTENTE]\nDigite o [ID] Novamente! : "); + getchar(); + scanf("%d", &id); + } + + mostraProduto(id); + printf("\nQUAL CAMPO DESEJA ALTERAR?\n " + "\n[1] NOME" + "\n[2] FORNECEDOR" + "\n[3] PREÇO DE COMPRA" + "\n[4] PREÇO DE VENDA" + "\n[5] DESCRIÇÃO" + "\n[6] QTD EM ESTOQUE" + "\n[0] [VOLTAR] "); + scanf("%d", &opcao); + + switch (opcao) { + char novo[100]; + case 1: + printf("\nDigite o novo [NOME] do produto: "); + getchar(); + leString(novo, 100); + alteraProduto(id, "nome", novo, 's'); + break; + + case 2: + printf("\nDigite o novo [FORNECEDOR] do produto: "); + getchar(); + leString(novo, 100); + alteraProduto(id, "fornecedor", novo, 's'); + break; + + case 3: + printf("\nDigite o novo [PREÇO DE COMPRA] do produto: "); + getchar(); + leString(novo, 100); + alteraProduto(id, "precoCompra", novo, 'f'); + break; + + case 4: + printf("\nDigite o novo [PREÇO DE VENDA] do produto: "); + getchar(); + leString(novo, 100); + alteraProduto(id, "precoVenda", novo, 'f'); + break; + + case 5: + printf("\nDigite a nova [DESCRIÇÃO] do produto: "); + getchar(); + leString(novo, 100); + alteraProduto(id, "descricao", novo, 's'); + break; + + case 6: + printf("\nDigite a nova [QUANTIDADE EM ESTOQUE] do produto: "); + getchar(); + leString(novo, 100); + ; + alteraProduto(id, "qtdEmEstoque", novo, 'd'); + break; + + default: break; + } + } while (opcao != 0); +} + +int checaSeExiste(int id, char *tabela) {//retorna a quantidade de produtos com esse id. + + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "SELECT count(*) id FROM %s WHERE id=%d", tabela, id); + + if (mysql_query(&mysql, sql) == 0) { + MYSQL_RES *resultado = mysql_store_result(&mysql); + MYSQL_ROW linha; + linha = mysql_fetch_row(resultado); + id = atoi(linha[0]); //agora id recebe a quantidade de produtos + mysql_close(&mysql); //Encerra a conexão + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha na conexão: %s\n", mysql_error(&mysql)); + } + + return id; +} + +/** + * inicia processo de exclusão + */ +void mostraExclusaoProduto() {//mostra opção de exclusão + mostraProdutos(); + + Produto p; + printf("DIGITE O ID DESEJADO: "); + scanf("%d", &p.id); + while (!checaSeExiste(p.id, "produtos")) {//obriga o usuário a digitar um id válido + limparTela(); + mostraProdutos(); + getchar(); + printf("\n [PRODUTO INEXISTENTE]\nDigite o [ID] Novamente! : "); + scanf("%d", &p.id); + } + + mostraProduto(p.id); + char opcao; + printf("\nDESEJA REALMENTE EXCLUIR O PRODUTO? "); + getchar(); + scanf("%c", &opcao); + + if (opcao == 's' || opcao == 'S') { + excluiProduto(p.id); + } +} + +void excluiProduto(int id) {//Deleta um produto pelo ID + + MYSQL mysql; + mysql_init(&mysql); + + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + char sql[500]; + snprintf(sql, 500, "DELETE FROM produtos WHERE id=%d", id); + + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + limparTela(); + printf("\nPRODUTO EXCLUÍDO COM SUCESSO!\n [ENTER]"); + getchar(); + getchar(); + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha na conexão: %s\n", mysql_error(&mysql)); + } +} + + +//layout + +void mostraCabecalhoMenu() { + limparTela(); + mostraLinhaMenu(); + printf("| PRODUTO |\n"); + mostraLinhaMenu(); + printf("| ID | NOME | FORNECEDOR | PREÇO/COMPRA | PREÇO/VENDA | DESCRIÇÃO | EM ESTOQUE | DATA DE MODIFICAÇÃO |\n"); + mostraLinhaMenu(); +} +void mostraLinhaMenu() { + printf("|------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); +} diff --git a/codigos/ControleEstoqueC/produtos.h b/codigos/ControleEstoqueC/produtos.h index 1dbecaf..f414b89 100644 --- a/codigos/ControleEstoqueC/produtos.h +++ b/codigos/ControleEstoqueC/produtos.h @@ -1,29 +1,53 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +#ifndef PRODUTOS_H +#define PRODUTOS_H + +#include +#include +#include "diretivas_conexao.h" +#include "gerais.h" + + +typedef struct { + int id, qtdEmEstoque, dataCadastro; + char nome[100], fornecedor[100], descricao[100]; + float precoCompra, precoVenda; +} Produto; + + +/** + * Lista todos os produtos cadastrados no banco de dados */ +void mostraMenuPrincipal();//OK -/* - * File: produtos.h - * Author: aluno - * - * Created on 30 de Outubro de 2017, 22:14 +/** + * Apresenta o cadastro de produto */ +void mostrarCadastroProduto();//OK -#ifndef PRODUTOS_H -#define PRODUTOS_H +/** + * Função para inserção de um produto no banco de dados + */ +void insereProduto(Produto p);//OK -#ifdef __cplusplus -extern "C" { -#endif +/** + * Edita produto cadastrados no banco de dados + */ +void alteraProduto(int id, char vetorCampo[], char string[], char tipoDoCampo); + +void mostraProdutos(); +void mostraProduto(int id); +void mostraAlteracaoProduto(); +void leString(char *s, int tam); +int checaSeExiste(int id, char *tabela); +void mostraExclusaoProduto(); +void excluiProduto(int id); +//layout +void mostraCabecalhoMenu(); +void mostraLinhaMenu(); -#ifdef __cplusplus -} -#endif -#endif /* PRODUTOS_H */ +#endif From 10c64087b7198682ccec7ca7822674b10685af3d Mon Sep 17 00:00:00 2001 From: root Date: Sun, 26 Nov 2017 05:15:45 +0000 Subject: [PATCH 74/92] =?UTF-8?q?cria=C3=A7=C3=A3o=20tabela=20produtos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index fb05a39..2a7c286 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -23,5 +23,13 @@ create table cidades( primary key (id) ); - - +create table produtos ( + id int auto_increment primary key, + nome varchar(100) not null, + fornecedor varchar(100) not null, + precoCompra real not null, + precoVenda real not null, + descricao varchar(100) not null, + qtdEmEstoque int not null, + dataCadastro timestamp default current_timestamp() +); From 67c638a9c8dd5ff3083493ba652515728c436371 Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Sun, 26 Nov 2017 12:13:32 -0200 Subject: [PATCH 75/92] =?UTF-8?q?Melhorias=20no=20cadastro=20e=20altera?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20cidades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/cidades.c | 117 ++++++++++++++---- codigos/ControleEstoqueC/cidades.h | 14 +-- .../nbproject/private/private.xml | 5 +- 3 files changed, 103 insertions(+), 33 deletions(-) diff --git a/codigos/ControleEstoqueC/cidades.c b/codigos/ControleEstoqueC/cidades.c index 15caae5..017d366 100644 --- a/codigos/ControleEstoqueC/cidades.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -1,5 +1,12 @@ #include "cidades.h" -#include "gerais.h" +/* + *Arquivo que contém a implementação de todo o CRUD de cidades. + * Autores: Daniel, Matheus, Patricia, Vitor + */ + +/* + * Lista todos as cidades cadastradas no banco de dados. + */ void mostrarListagemCidades(){ int opcao; @@ -7,24 +14,25 @@ void mostrarListagemCidades(){ limparTela(); printf("|-----------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE CIDADES |\n"); + printf("| LISTAGEM DE CIDADES |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | ID ESTADOS |\n"); + printf("| ID | NOME | ID ESTADOS | UF |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ - if(!mysql_query(&mysql,"SELECT idCidade, nomeCidade, cidades.idEstado from cidades, estados where estados.idEstado = cidades.idEstado")){ + if(!mysql_query(&mysql,"SELECT idCidade, nomeCidade, cidades.idEstado,estados.uf from cidades, estados where estados.idEstado = cidades.idEstado")){ MYSQL_RES *resultado = mysql_store_result(&mysql); MYSQL_ROW linha; while((linha = mysql_fetch_row(resultado))){ int id = atoi(linha[0]), idEstado = atoi(linha[2]); char *nome = linha[1]; + char *uf = linha[3]; - printf("|%-12d|%-34s|%-41d|\n", id, nome, idEstado); + printf("|%-12d|%-34s|%-14d|%-26s|\n", id, nome, idEstado,uf); printf("|-----------------------------------------------------------------------------------------|\n"); } }else{ @@ -52,19 +60,22 @@ void mostrarListagemCidades(){ mostrarCadastroCidade(); break; case 2: - //mostrarAlteracaoCidade(); + mostrarAlteracaoCidade(); break; case 3: mostrarExclusaoCidade(); break; - case 4: - //mostrarListagemEstado_Cadastro(); - break; + default: + printf("Opção invalida!\n"); } }while (opcao != 5); } - + +/* + *Mostra a tela de cadastro da cidade + * + */ void mostrarCadastroCidade() { Cidade c; limparTela(); @@ -77,7 +88,7 @@ void mostrarCadastroCidade() { int tamanho = strlen(c.nome); c.nome[tamanho - 1] = '\0'; printf("|--------------------------------------------------------------------|\n"); - + mostrarListaEstados(); printf("| ID ESTADO: "); scanf("%d", &c.idEstado); getchar(); @@ -93,6 +104,9 @@ void mostrarCadastroCidade() { limparTela(); } +/* + *Insere a cidade no banco de dados. + */ void inserirCidade(Cidade c) { MYSQL mysql; mysql_init(&mysql); @@ -112,7 +126,9 @@ void inserirCidade(Cidade c) { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); } } - +/* + * + */ void ExclusaoCidade(int codigo) { //Inicializa a variável de conexão com o MySQL @@ -139,8 +155,55 @@ void ExclusaoCidade(int codigo) { } } +/* + * Lista de estados para auxiliar no cadastro de cidades + */ +void mostrarListaEstados(){ + + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE ESTADOS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID | NOME | UF | ID PAÍS |\n"); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + MYSQL mysql; + mysql_init(&mysql); + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Executa o comando de consulta + if (mysql_query(&mysql, "select idEstado, nomeEstado, uf, idPais from estados order by nomeEstado") == 0) { + //Obtém o resultado + MYSQL_RES *resultado = mysql_store_result(&mysql); + MYSQL_ROW linha; + + while ((linha = mysql_fetch_row(resultado))) { + int idEstado = atoi(linha[0]), idPais = atoi(linha[3]); + char *nomeEstado = linha[1], *uf = linha[2]; + + //Imprime + printf("| %10d | %-32s | %-22s | %40d |\n", idEstado, nomeEstado, uf, idPais); + printf("|-------------------------------------------------------------------------------------------------------------------|\n"); + } + + mysql_free_result(resultado); + mysql_close(&mysql); + printf("O estado da cidade que deseja cadastrar já está cadastrado?(S/N)"); + setbuf(stdin, NULL);//Limpa o buffer do teclado. + char resposta = getchar();getchar(); + + if(resposta == 'N' || resposta == 'n'){ + mostrarCadastroEstado(); + mostrarListaEstados(); + } + } else { + printf("%s\n", mysql_error(&mysql)); + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + + +} void mostrarExclusaoCidade() { int codigo; printf("Digite o código da cidade que deseja excluir: "); @@ -157,8 +220,7 @@ void alterarCidade(Cidade c){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ char sql[500]; - snprintf(sql, 500, "update cidades set nomeCidade = '%s' where idCidade = %d", c.nome, c.id); - + snprintf(sql, 500, "update cidades set nomeCidade = '%s',idEstado = %d where idCidade = %d", c.nome,c.idEstado ,c.id); if (mysql_query(&mysql, sql) == 0){ mysql_close(&mysql); @@ -178,7 +240,7 @@ Cidade* selecionarCidade(int id){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ char sql[500]; - snprintf(sql, 500, "select idCidade, nomeCidade from cidades where idCidade = %d", id); + snprintf(sql, 500, "select idCidade, nomeCidade,idEstado from cidades where idCidade = %d", id); if (mysql_query(&mysql, sql) == 0){ @@ -186,16 +248,18 @@ Cidade* selecionarCidade(int id){ MYSQL_ROW linha; int id; + int idEstado; char *nome; if ( (linha = mysql_fetch_row(resultado)) ){ id = atoi(linha[0]); - + idEstado = atoi(linha[2]); + mysql_free_result(resultado); mysql_close(&mysql); - Cidade cidade; - Cidade *c = &cidade; + Cidade *c = (Cidade*) malloc(sizeof(Cidade)); strncpy(c->nome, linha[1], 100); + c->idEstado = idEstado; c->id = id; return c; @@ -228,18 +292,27 @@ void mostrarAlteracaoCidade(){ printf("|--------------------------------------------------------------------|\n"); printf("| Id: %d\n", c->id); printf("| Nome: %s\n", c->nome); + printf("| id do Estado:%d\n",c->idEstado); printf("|--------------------------------------------------------------------|\n"); - + printf("Digite o novo nome da cidade: "); char nome[100]; + + int idEstado; fgets(nome, sizeof(nome), stdin); int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; - strncpy(c->nome, nome, 100); - printf("|--------------------------------------------------------------------|\n"); + strncpy(c->nome, nome,100); + + printf("Digite o id do estado:"); + scanf("%d",&c->idEstado); + + + printf("|--------------------------------------------------------------------|\n"); + getchar(); printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); - + printf("Nome c: %s\n",c->nome); if (resposta == 'S' || resposta == 's'){ alterarCidade(*c); } diff --git a/codigos/ControleEstoqueC/cidades.h b/codigos/ControleEstoqueC/cidades.h index 19ed727..9f04a8b 100644 --- a/codigos/ControleEstoqueC/cidades.h +++ b/codigos/ControleEstoqueC/cidades.h @@ -1,12 +1,7 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ /* * File: cidade.h - * Author: blackowl + * Author: Daniel, Matheus, Patricia,Vitor * * Created on October 30, 2017, 10:13 PM */ @@ -18,20 +13,21 @@ #include #include #include +#include "estados.h" #include "diretivas_conexao.h" #include "gerais.h" typedef struct { int id; int idEstado; - char cep[10]; - char nome[101]; + + char nome[100]; }Cidade; void mostrarListagemCidades(); void mostrarCadastroCidade(); void mostrarAlteracaoCidade(); -void mostrarListagemEstado_Cadastro(); +void mostrarListaEstados(); void inserirCidade(Cidade c); void mostrarExclusaoCidade(); void ExclusaoCidade(int codigo); diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index 1a04776..a87141c 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,9 +7,10 @@ - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.h file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidade.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.c From d80ca6dddbd865d146d0aed8db2ddee050734641 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sun, 26 Nov 2017 22:42:33 -0200 Subject: [PATCH 76/92] =?UTF-8?q?Vers=C3=A3o=20final=20Funcionarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banco_de_dados/criacao.sql | 15 +++ banco_de_dados/funcionarios.sql | 24 ++--- codigos/ControleEstoqueC/funcionarios.c | 137 ++++++++++++------------ codigos/ControleEstoqueC/funcionarios.h | 12 +-- 4 files changed, 102 insertions(+), 86 deletions(-) diff --git a/banco_de_dados/criacao.sql b/banco_de_dados/criacao.sql index 2a7c286..0f51459 100644 --- a/banco_de_dados/criacao.sql +++ b/banco_de_dados/criacao.sql @@ -33,3 +33,18 @@ create table produtos ( qtdEmEstoque int not null, dataCadastro timestamp default current_timestamp() ); + +create table funcionarios ( + id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, + nome varchar(100) NOT NULL, + sexo char, + dataNascimento varchar(10), + endereco varchar(200), + cidade varchar(50), + cep varchar (10), + telefone varchar(15), + cpf varchar(14), + rg varchar(15), + profissao varchar(50), + pisPasep varchar(12) + ); diff --git a/banco_de_dados/funcionarios.sql b/banco_de_dados/funcionarios.sql index 60ccbb1..68eb6a9 100644 --- a/banco_de_dados/funcionarios.sql +++ b/banco_de_dados/funcionarios.sql @@ -1,14 +1,14 @@ CREATE TABLE funcionarios ( - idFuncionario int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, - NomeFuncionario varchar(100) NOT NULL, - SexoFuncionario varchar(2) NOT NULL, - DataNascimentoFuncionario varchar(13) NOT NULL, - EnderecoFuncionario varchar(300) NOT NULL, - cidadeFuncionario varchar(200) NOT NULL, - cepFuncionario int(11) NOT NULL, - telefoneFuncionario varchar(15) NOT NULL, - cpfFuncionario varchar(12) NOT NULL, - rgFuncionario int(10) NOT NULL, - profissaoFuncionario varchar(100) NOT NULL, - pisPasepFuncionario varchar(11) NOT NULL + id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, + nome varchar(100) NOT NULL, + sexo char, + dataNascimento varchar(10), + endereco varchar(200), + cidade varchar(50), + cep varchar (10), + telefone varchar(15), + cpf varchar(14), + rg varchar(15), + profissao varchar(50), + pisPasep varchar(12) ); diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 242463e..ead4d17 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -6,18 +6,18 @@ void mostrarListagemFuncionarios() { do { limparTela(); - printf("|------------------------------------------------------------------------------------------------------------|\n"); - printf("| LISTAGEM DE FUNCIONARIOS |\n"); - printf("|------------------------------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | SEXO | DATA DE NASCIMENTO | ENDEREÇO | CIDADE | CEP | TELEFONE | CPF |RG | PROFISSAO | PIS/PASEP |\n"); - printf("|------------------------------------------------------------------------------------------------------------|\n"); + printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("| LISTAGEM DE FUNCIONARIOS |\n"); + printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("| ID |NOME | SEXO |DATA DE NASCIMENTO |ENDEREÇO |CIDADE |CEP | TELEFONE | CPF |RG | PROFISSAO | PIS/PASEP |\n"); + printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); MYSQL mysql; mysql_init(&mysql); if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Executa o comando de consulta - if (mysql_query(&mysql, "SELECT idFuncionario, NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario,rgFuncionario,profissaoFuncionario, pisPasepFuncionario from funcionarios") == 0) { + if (mysql_query(&mysql, "SELECT id, nome, sexo, dataNascimento, endereco, cidade, cep,telefone, cpf,rg,profissao, pisPasep from funcionarios") == 0) { //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -26,16 +26,16 @@ void mostrarListagemFuncionarios() { MYSQL_ROW linha; while ((linha = mysql_fetch_row(resultado))) { //Obtém cada coluna na órdem - int id = atoi(linha[0]); + int id = atoi(linha[0]); char *nome = linha[1]; char *sexo = linha[2]; char *datanascimento = linha[3]; char *endereco = linha[4]; char *cidade = linha[5]; - int cep = atoi(linha[6]); + char *cep = linha[6]; char *telefone = linha[7]; char *cpf = linha[8]; - int rg = atoi(linha[9]); + char *rg = linha[9]; char *profissao = linha[10]; char *pispasep = linha[11]; @@ -44,8 +44,8 @@ void mostrarListagemFuncionarios() { //Imprime cada linha - printf("| %d | %s | %s | %-8s | %s | %s |%d | %s | %s | %d| %s | %s |\n", - id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao,pispasep); + printf("| %d | %-10s |%-4s |%-19s|%-10s|%-7s|%-8s | %-13s | %-10s | %-10s| %-14s |%-12s|\n", + id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -59,12 +59,12 @@ void mostrarListagemFuncionarios() { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } - printf("|------------------------------------------------------------------------------------------------------------|\n"); - printf("\nO que deseja fazer?\n"); - printf("1) Cadastrar um novo Funcionario\n"); - printf("2) Alterar um Funcionario\n"); - printf("3) Excluir um Funcionario\n"); - printf("4) Voltar ao menu principal\n"); + printf("|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); + printf("|O que deseja fazer?\n"); + printf("|1) Cadastrar um novo Funcionario\n"); + printf("|2) Alterar um Funcionario\n"); + printf("|3) Excluir um Funcionario\n"); + printf("|4) Voltar ao menu principal\n\n"); printf("Digite a opção desejada: "); scanf("%d", &opcao); getchar(); @@ -101,24 +101,29 @@ void mostrarCadastroFuncionario() { tamanho = strlen(f.sexo); f.sexo[tamanho - 1] = '\0'; + printf("| INFORME A DATA DE NASCIMENTO (XX/XX/XXXX): "); fgets(f.datanascimento, sizeof (f.datanascimento), stdin); tamanho = strlen(f.datanascimento); f.datanascimento[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - printf("|INFORME O ENDEREÇO: "); + + printf("| INFORME O ENDEREÇO: "); fgets(f.endereco, sizeof (f.endereco), stdin); tamanho = strlen(f.endereco); f.endereco[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + printf("| INFORME A CIDADE: "); - fgets(f.Cidade, sizeof (f.Cidade), stdin); - tamanho = strlen(f.Cidade); - f.Cidade[tamanho - 1] = '\0'; + fgets(f.cidade, sizeof (f.cidade), stdin); + tamanho = strlen(f.cidade); + f.cidade[tamanho - 1] = '\0'; + printf("| INFORME O CEP XXXXX-XXX: "); - scanf("%d", &f.cep); - getchar(); + fgets(f.cep, sizeof (f.cep), stdin); + tamanho = strlen(f.cep); + f.cep[tamanho - 1] = '\0'; printf("| INFORME O TELEFONE (XX) XXXXX-XXXX: "); @@ -127,27 +132,29 @@ void mostrarCadastroFuncionario() { f.telefone[tamanho - 1] = '\0'; - printf("| INFORME O CPF : "); fgets(f.cpf, sizeof (f.cpf), stdin); tamanho = strlen(f.cpf); f.cpf[tamanho - 1] = '\0'; + printf("| INFORME O RG XXXXXXX: "); - scanf("%d", &f.rg); - getchar(); + fgets(f.rg, sizeof (f.rg), stdin); + tamanho = strlen(f.rg); + f.rg[tamanho - 1] = '\0'; + + printf("| INFORME A PROFISSÃO: "); fgets(f.profissao, sizeof (f.profissao), stdin); tamanho = strlen(f.profissao); f.profissao[tamanho - 1] = '\0'; + printf("| INFORME O PIS/PASEP: "); fgets(f.pispasep, sizeof (f.pispasep), stdin); tamanho = strlen(f.pispasep); f.pispasep[tamanho - 1] = '\0'; - - printf("|--------------------------------------------------------------|\n"); printf("Deseja realmente cadastrar esse funcionario? (S/N) "); @@ -171,10 +178,9 @@ void inserirFuncionario(Funcionarios f) { //Cria o comando SQL para envio char sql[2000]; - - snprintf(sql, 2000, "INSERT INTO funcionarios(NomeFuncionario, SexoFuncionario, DataNascimentoFuncionario,EnderecoFuncionario, cidadeFuncionario, cepFuncionario,telefoneFuncionario, cpfFuncionario, rgFuncionario, profissaoFuncionario, pisPasepFuncionario) values('%s','%s','%s','%s','%s','%d','%s','%s','%d','%s','%s')" - , f.nome, f.sexo, f.datanascimento, f.endereco, f.Cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); - + snprintf(sql, 2000, "INSERT INTO funcionarios(nome, sexo, dataNascimento,endereco, cidade, cep,telefone, cpf, rg, profissao, pisPasep)" + " values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" + , f.nome, f.sexo, f.datanascimento, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { @@ -198,9 +204,8 @@ void alterarFuncionario(Funcionarios f) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[2000]; -nome: - snprintf(sql, 2000, "update funcionarios set pisPasepFuncionario = '%s',profissaoFuncionario = '%s',rgFuncionario = '%d',cpfFuncionario = '%s',telefoneFuncionario = '%s',cepFuncionario = '%d',cidadeFuncionario = '%s',EnderecoFuncionario = '%s',DataNascimentoFuncionario = '%s', SexoFuncionario = '%s', NomeFuncionario = '%s' where idFuncionario = %d", - f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.Cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); + snprintf(sql, 2000, "update funcionarios set pisPasep = '%s',profissao = '%s',rg = '%s',cpf = '%s',telefone = '%s',cep = '%s',cidade = '%s',endereco = '%s',dataNascimento = '%s', sexo = '%s', nome = '%s' where id = %d", + f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { @@ -224,7 +229,7 @@ void ExclusaoFuncionario(int codigo) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "delete from funcionarios where idFuncionario = %d", codigo); + snprintf(sql, 500, "delete from funcionarios where id = %d", codigo); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { @@ -248,55 +253,45 @@ Funcionarios* selecionarFuncionario(int codigo) { //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { char sql[2000]; - snprintf(sql, 2000, "select idFuncionario, NomeFuncionario,SexoFuncionario,DataNascimentoFuncionario,EnderecoFuncionario,cidadeFuncionario,cepFuncionario,telefoneFuncionario,cpfFuncionario,rgFuncionario,profissaoFuncionario,pisPasepFuncionario from funcionarios where idFuncionario = %d", codigo); - - + snprintf(sql, 2000, "select id, nome, sexo, dataNascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pisPasep from funcionarios where id = %d", codigo); //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0) { //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); - //Cria uma variável para guardar a linha MYSQL_ROW linha; - int id; - int cep; - - int rg; + int id; if ((linha = mysql_fetch_row(resultado))) { //Obtém cada coluna na órdem id = atoi(linha[0]); - cep = atoi(linha[6]); - rg = atoi(linha[9]); - //Libera os resultado e fecha a conexão mysql_free_result(resultado); mysql_close(&mysql); Funcionarios funcionarios; - Funcionarios *f = &funcionarios; strncpy(f->sexo, linha[2], 100); strncpy(f->datanascimento, linha[3], 100); strncpy(f->endereco, linha[4], 100); - strncpy(f->Cidade, linha[5], 100); + strncpy(f->cidade, linha[5], 100); + strncpy(f->cep, linha[6], 100); strncpy(f->telefone, linha[7], 100); strncpy(f->cpf, linha[8], 100); + strncpy(f->rg, linha[9], 100); strncpy(f->profissao, linha[10], 100); strncpy(f->nome, linha[1], 100); strncpy(f->pispasep, linha[11], 100); f->id = id; - - f->cep = cep; - f->rg = rg; - //Imprime cada linha + return f; + } else { //Libera os resultado e fecha a conexão mysql_free_result(resultado); @@ -331,17 +326,18 @@ void mostrarAlteracaoFuncionario() { printf("| Sexo: %s\n", f->sexo); printf("| Data de Nascimento: %s\n", f->datanascimento); printf("| Endereço: %s\n", f->endereco); - printf("| Cidade : %s\n", f->Cidade); - printf("| Cep: %d\n", f->cep); + printf("| Cidade : %s\n", f->cidade); + printf("| Cep: %s\n", f->cep); printf("| Telefone: %s\n", f->telefone); printf("| Cpf: %s\n", f->cpf); - printf("| rg: %d\n", f->rg); + printf("| rg: %s\n", f->rg); printf("| Profissão: %s\n", f->profissao); printf("| PisPasep: %s\n", f->pispasep); printf("|-------------------------------------------------------------------|\n"); + printf("|--------------------------------------------------------------------|\n"); - printf("Digite o novo nome do Funcionario: "); + printf("| Digite o novo nome do Funcionario: "); char nome[100]; fgets(nome, sizeof (nome), stdin); int tamanho = strlen(nome); @@ -349,6 +345,7 @@ void mostrarAlteracaoFuncionario() { strncpy(f->nome, nome, 100); printf("|--------------------------------------------------------------------|\n"); + printf("| Digite o novo sexo do Funcionario: "); char sexo[100]; fgets(sexo, sizeof (sexo), stdin); @@ -358,7 +355,6 @@ void mostrarAlteracaoFuncionario() { printf("|--------------------------------------------------------------------|\n"); - printf("| Digite a nova Data de Nascimento do Funcionario: "); char datanascimento[100]; fgets(datanascimento, sizeof (datanascimento), stdin); @@ -368,7 +364,6 @@ void mostrarAlteracaoFuncionario() { printf("|--------------------------------------------------------------------|\n"); - printf("| Digite novo Endereço do Funcionario: "); char endereco[100]; fgets(endereco, sizeof (endereco), stdin); @@ -378,23 +373,25 @@ void mostrarAlteracaoFuncionario() { printf("|--------------------------------------------------------------------|\n"); - printf("| Digite a nova Cidade do Funcionario: "); char cidade[100]; fgets(cidade, sizeof (cidade), stdin); tamanho = strlen(cidade); cidade[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->Cidade, cidade, 100); + strncpy(f->cidade, cidade, 100); printf("|--------------------------------------------------------------------|\n"); - - printf("| Digite o novo CEP: "); - scanf("%d", &f->cep); - getchar(); + printf("| Digite o novo CEP: "); + char cep[100]; + fgets(cep, sizeof (cep), stdin); + tamanho = strlen(cep); + cep[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->cep, cep, 100); printf("|--------------------------------------------------------------------|\n"); + printf("| Digite o novo Telefone: "); char telefone[100]; fgets(telefone, sizeof (telefone), stdin); @@ -413,9 +410,12 @@ void mostrarAlteracaoFuncionario() { printf("|--------------------------------------------------------------------|\n"); - printf("| Digite o novo RG: "); - scanf("%d", &f->rg); - getchar(); + printf("| INFORME O RG XXXXXXX: "); + char rg[100]; + fgets(rg, sizeof (rg), stdin); + tamanho = strlen(rg); + rg[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->rg, cidade, 100); printf("|--------------------------------------------------------------------|\n"); @@ -428,6 +428,7 @@ void mostrarAlteracaoFuncionario() { strncpy(f->profissao, profissao, 100); printf("|--------------------------------------------------------------------|\n"); + printf("| Digite o novo PIS/PASEP: "); char pis[100]; fgets(pis, sizeof (pis), stdin); diff --git a/codigos/ControleEstoqueC/funcionarios.h b/codigos/ControleEstoqueC/funcionarios.h index 8963c28..1e682d9 100644 --- a/codigos/ControleEstoqueC/funcionarios.h +++ b/codigos/ControleEstoqueC/funcionarios.h @@ -26,13 +26,13 @@ typedef struct { char sexo[3]; char datanascimento[20]; char endereco[200]; - char Cidade[50]; - int cep; - char telefone[13]; - char cpf[13]; - int rg; + char cidade[50]; + char cep[11]; + char telefone[13]; + char cpf[13]; + char rg[11]; char profissao[100]; - char pispasep[12]; + char pispasep[12]; } Funcionarios; From fa2c01bb489f9bef1644b3df7410b0980d0f5df7 Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sun, 26 Nov 2017 22:59:52 -0200 Subject: [PATCH 77/92] =?UTF-8?q?Vers=C3=A3o=20final=20Funcionarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 4 ++-- codigos/ControleEstoqueC/nbproject/private/private.xml | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index ead4d17..02a5df3 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -415,7 +415,7 @@ void mostrarAlteracaoFuncionario() { fgets(rg, sizeof (rg), stdin); tamanho = strlen(rg); rg[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->rg, cidade, 100); + strncpy(f->rg, rg, 100); printf("|--------------------------------------------------------------------|\n"); @@ -434,7 +434,7 @@ void mostrarAlteracaoFuncionario() { fgets(pis, sizeof (pis), stdin); tamanho = strlen(pis); cpf[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 - strncpy(f->cpf, pis, 100); + strncpy(f->pispasep, pis, 100); printf("|--------------------------------------------------------------------|\n"); diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index a87141c..e7fbc27 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,10 +7,8 @@ - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c - file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h From f46f442c3f3c65caf13bc5f2539c9d104c134f4e Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Sun, 26 Nov 2017 23:03:49 -0200 Subject: [PATCH 78/92] =?UTF-8?q?Vers=C3=A3o=20final=20Funcionarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 02a5df3..c128398 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -48,7 +48,7 @@ void mostrarListagemFuncionarios() { id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } - + //Libera os resultado e fecha a conexão mysql_free_result(resultado); mysql_close(&mysql); From 138541d5ba483e5a80d60fd1a7ef75776be389b6 Mon Sep 17 00:00:00 2001 From: Ana Luiza Souza <31023081+gsanaluiza@users.noreply.github.com> Date: Mon, 27 Nov 2017 10:33:18 -0200 Subject: [PATCH 79/92] Pequenos detalhes corrigidos --- codigos/ControleEstoqueC/estados.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codigos/ControleEstoqueC/estados.c b/codigos/ControleEstoqueC/estados.c index 2777e12..f8efd92 100644 --- a/codigos/ControleEstoqueC/estados.c +++ b/codigos/ControleEstoqueC/estados.c @@ -2,7 +2,7 @@ /** * Lista todos os países cadastrados no banco de dados - * Autor: Ana Luiza, Alexandre, Samuel, Antonio + * Autor: Alexandre, Ana Luiza, Antonio, Darvesson, Samuel * Data: 02/10/2017 */ @@ -256,7 +256,7 @@ Estado* selecionarEstado(int codigo) { mysql_close(&mysql); Estado *e = (Estado *) malloc(sizeof(Estado)); // alocação dinâmica de memória - strncpy(e->nomeEstado, linha[1], 60); + strncpy(e->nomeEstado, linha[1], 100); strncpy(e->uf, linha[2], 3); e->idEstado = idEstado; e->idPais = idPais; @@ -333,4 +333,4 @@ void mostrarExclusaoEstado() { getchar(); excluirEstado(codigo); -} \ No newline at end of file +} From de1c1b432fb3a65d565063eeb65cffd83aec4be2 Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 27 Nov 2017 10:54:34 -0200 Subject: [PATCH 80/92] Codigo Final Fornecedores --- banco_de_dados/Banco Fornecedores.sql | 10 +++ codigos/ControleEstoqueC/fornecedores.c | 103 +++++++++++++++++++----- codigos/ControleEstoqueC/fornecedores.h | 4 + 3 files changed, 95 insertions(+), 22 deletions(-) create mode 100644 banco_de_dados/Banco Fornecedores.sql diff --git a/banco_de_dados/Banco Fornecedores.sql b/banco_de_dados/Banco Fornecedores.sql new file mode 100644 index 0000000..d2b4a5d --- /dev/null +++ b/banco_de_dados/Banco Fornecedores.sql @@ -0,0 +1,10 @@ +create database controleestoque; + +use controleestoque; + +CREATE TABLE fornecedores ( + idFornecedor int NOT NULL PRIMARY KEY AUTO_INCREMENT, + nomeFornecedor varchar(100) DEFAULT NULL, + CNPJ bigint(14) DEFAULT NULL, + endFornecedor varchar(150) DEFAULT NULL + ); diff --git a/codigos/ControleEstoqueC/fornecedores.c b/codigos/ControleEstoqueC/fornecedores.c index 11b7abf..a6b2368 100644 --- a/codigos/ControleEstoqueC/fornecedores.c +++ b/codigos/ControleEstoqueC/fornecedores.c @@ -10,7 +10,7 @@ //Borda Padrão dos Menus void BordaPadrao(){ - printf("||====================================================================||\n"); + printf("||==============================================================================||\n"); } @@ -23,7 +23,7 @@ void MenuFornecedores(){ limparTela(); BordaPadrao(); - printf("||\t\t\tO QUE DESEJA FAZER?\t\t\t ||\n"); + printf("||\t\t\tO QUE DESEJA FAZER?\t\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); @@ -55,7 +55,7 @@ void ConsultarFornecedores(){ do{ limparTela(); BordaPadrao(); - printf("||\t\t\tCONSULTAR FORNECEDORES\t\t\t ||\n"); + printf("||\t\t\tCONSULTAR FORNECEDORES\t\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Por Nome\n"); @@ -81,9 +81,9 @@ void consultarNome(){ limparTela(); BordaPadrao(); - printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t ||\n"); + printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE NOME\t\t\t ||\n"); BordaPadrao(); - printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ ||\n"); + printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ |ENDEREÇO ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -94,7 +94,7 @@ void consultarNome(){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores order by nomeFornecedor") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ, endFornecedor from fornecedores order by nomeFornecedor") == 0){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -107,9 +107,10 @@ void consultarNome(){ int id = atoi(linha[0]); char *nome = linha[1]; ulong cnpj = atoll(linha[2]); + char *end = linha[3]; //Imprime cada linha - printf("|| %5d | %-25s | %-14llu ||\n", id, nome, cnpj); + printf("|| %5d | %-25s | %-14llu |%-24s ||\n", id, nome, cnpj, end); } //Libera os resultado e fecha a conexão @@ -134,9 +135,9 @@ void consultarId(){ limparTela(); BordaPadrao(); - printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE ID\t\t ||\n"); + printf("||\t\tCONSULTA FORNECEDORES POR ORDEM DE ID\t\t\t ||\n"); BordaPadrao(); - printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ ||\n"); + printf("||CÓDIGO | RAZÃO SOCIAL | CNPJ |ENDEREÇO ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -147,7 +148,7 @@ void consultarId(){ if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ //Executa o comando de consulta - if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores order by idFornecedor") == 0){ + if (mysql_query(&mysql, "select idFornecedor, nomeFornecedor, CNPJ, endFornecedor from fornecedores order by idFornecedor") == 0){ //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -160,9 +161,10 @@ void consultarId(){ int id = atoi(linha[0]); char *nome = linha[1]; ulong cnpj = atoll(linha[2]); + char *end = linha[3]; //Imprime cada linha - printf("|| %5d | %-25s | %-14llu ||\n", id, nome, cnpj); + printf("|| %5d | %-25s | %-14llu |%-24s ||\n", id, nome, cnpj, end); } //Libera os resultado e fecha a conexão @@ -190,7 +192,7 @@ void CadastrarFornecedor() { limparTela(); BordaPadrao(); - printf("| CADASTRO DE FORNECEDORES |\n"); + printf("| CADASTRO DE FORNECEDORES |\n"); BordaPadrao(); printf("NOME DO FORNECEDOR: "); @@ -201,6 +203,13 @@ void CadastrarFornecedor() { printf("CNPJ DO FORNECEDOR: "); scanf("%llu", &f.CNPJ); getchar(); + printf("\n"); + + printf("ENDEREÇO DO FORNECEDOR: "); + fgets(f.endereco, sizeof(f.endereco), stdin); + int tamanhoend = strlen(f.endereco); f.endereco[tamanhoend - 1] = '\0'; //Retira o \n do final da string e coloca \0 + + BordaPadrao(); printf("Deseja realmente cadastrar o fornecedor? (S/N) "); @@ -224,7 +233,7 @@ void inserirFornecedores(Fornecedores f){ //Cria o comando SQL para envio char sql[500]; - snprintf(sql, 500, "insert into fornecedores(nomeFornecedor, CNPJ) values('%s', '%llu')", f.nomeFornecedor, f.CNPJ); + snprintf(sql, 500, "insert into fornecedores(nomeFornecedor, CNPJ, endFornecedor) values('%s', '%llu', '%s')", f.nomeFornecedor, f.CNPJ, f.endereco); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0){ @@ -252,7 +261,7 @@ void MenuAlteracao(){ do{ limparTela(); BordaPadrao(); - printf("||\t\t\tMENU ALTERAÇÃO\t\t\t\t ||\n"); + printf("||\t\t\tMENU ALTERAÇÃO\t\t\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); @@ -277,7 +286,7 @@ void MostrarAlteracaoFornecedores(){ int codigo; limparTela(); BordaPadrao(); - printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); + printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("Digite o código do Fornecedor que deseja alterar: "); @@ -288,18 +297,19 @@ void MostrarAlteracaoFornecedores(){ limparTela(); BordaPadrao(); - printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t ||\n"); + printf("||\t\t\tALTERARAÇÃO DE FORNECEDORES\t\t\t ||\n"); BordaPadrao(); printf("|| Id: %d\n", f->id); printf("|| Nome: %s\n", f->nomeFornecedor); printf("|| CNPJ: %llu\n", f->CNPJ); + printf("|| Endereço: %s\n", f->endereco); BordaPadrao(); printf("\n"); int codigoAlterar; // Escolha do campo a ser alterado no cadastro de Fornecedores - printf("Digite: 1)Para Alterar o Nome - 2)Para Alterar o CNPJ: "); + printf("Digite: 1)Para Alterar o Nome - 2)Para Alterar o CNPJ - 3)Para alterar endereço: "); scanf("%d", &codigoAlterar);getchar(); printf("\n"); @@ -331,7 +341,23 @@ void MostrarAlteracaoFornecedores(){ AlterarCnpjFornecedores(*f); } } + // Alteração do campo endereço do cadastro de fornecedores + if (codigoAlterar == 3){ + printf("Digite o novo endereço do fornecedor: "); + char end[150]; + fgets(end, sizeof(end), stdin); + int tamanhoend = strlen(end); end[tamanhoend - 1] = '\0'; //Retira o \n do final da string e coloca \0 + strncpy(f->endereco, end, 150); + + printf("Deseja realmente salvar as alterações? (S/N) "); + char resposta = getchar(); getchar(); + + if (resposta == 'S' || resposta == 's'){ + AlterarEndFornecedores(*f); + } + } + // Desalocar os valores incluídos com a função malloc free(f); } @@ -347,7 +373,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ //Efetua a conexão if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ char sql[500]; - snprintf(sql, 500, "select idFornecedor, nomeFornecedor, CNPJ from fornecedores where idFornecedor = %d", codigo); + snprintf(sql, 500, "select idFornecedor, nomeFornecedor, CNPJ, endFornecedor from fornecedores where idFornecedor = %d", codigo); //Executa o comando de consulta if (mysql_query(&mysql, sql) == 0){ @@ -360,6 +386,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ int id; char *nome; ulong cnpj; + char *end; if ( (linha = mysql_fetch_row(resultado)) ){ @@ -367,6 +394,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ //Obtém cada coluna na órdem id = atoi(linha[0]); cnpj = atoll(linha[2]); + //Libera os resultado e fecha a conexão mysql_free_result(resultado); @@ -375,6 +403,7 @@ Fornecedores* SelecionarFornecedores(int codigo){ // Alocação Dinamica de Memória. Fornecedores *f = (Fornecedores *) malloc(sizeof(Fornecedores)); strncpy(f->nomeFornecedor, linha[1], 100); + strncpy(f->endereco, linha[3], 150); f->CNPJ = cnpj; f->id = id; @@ -456,6 +485,36 @@ void AlterarCnpjFornecedores(Fornecedores f){ getchar(); } +// Função para alterar o Nome do Fornecedor no Banco de Dados. +void AlterarEndFornecedores(Fornecedores f){ + + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){ + + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "update fornecedores set endFornecedor = '%s' where idFornecedor = %d", f.endereco, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0){ + mysql_close(&mysql); //Encerra a conexão + + printf("\n"); + printf("----- Fornecedor alterado com sucesso -----\n\n"); //Exibe mensagem de sucesso + printf("Pressione a tecla para continuar"); + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + getchar(); +} + // Mostra Sub Menu da opção de exclusão void MenuExclusao(){ @@ -464,7 +523,7 @@ void MenuExclusao(){ do{ limparTela(); BordaPadrao(); - printf("||\t\t\tMENU EXCLUSÃO\t\t\t\t ||\n"); + printf("||\t\t\tMENU EXCLUSÃO\t\t\t\t\t ||\n"); BordaPadrao(); printf("\n"); printf("1) Consultar Fornecedores\n"); @@ -488,9 +547,9 @@ void ConsultarPadrao(){ limparTela(); BordaPadrao(); - printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t ||\n"); + printf("||\t\tCONSULTA FORNECEDORES\t\t\t\t\t ||\n"); BordaPadrao(); - printf("||CÓDIGO | RAZÃO SOCIAL\t\t\t\t\t\t ||\n"); + printf("||CÓDIGO | RAZÃO SOCIAL\t\t\t\t\t\t\t ||\n"); BordaPadrao(); //Cria a variável de conexão com o MySQL @@ -515,7 +574,7 @@ void ConsultarPadrao(){ char *nome = linha[1]; //Imprime cada linha - printf("|| %5d | %-58s ||\n", id, nome); + printf("|| %5d | %-68s ||\n", id, nome); } //Libera os resultado e fecha a conexão diff --git a/codigos/ControleEstoqueC/fornecedores.h b/codigos/ControleEstoqueC/fornecedores.h index dd6802f..05d0058 100644 --- a/codigos/ControleEstoqueC/fornecedores.h +++ b/codigos/ControleEstoqueC/fornecedores.h @@ -22,6 +22,7 @@ typedef struct { int id; char nomeFornecedor[100]; ulong CNPJ; + char endereco[150]; } Fornecedores; // Menu Principal do Cadastro de Fornecedores @@ -66,6 +67,9 @@ void AlterarNomeFornecedores(Fornecedores f); // Função para alterar o Cnpj do Fornecedor no Banco de Dados. void AlterarCnpjFornecedores(Fornecedores f); +// Função para alterar o Endereço do Fornecedor no Banco de Dados. +void AlterarEndFornecedores(Fornecedores f); + // Mostra as informações do fornecedor a ser alterado antes de executar a alteração Fornecedores* SelecionarFornecedores(int codigo); From 5df08a3f07f50032450647fe0a584f240d00458f Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 27 Nov 2017 10:58:06 -0200 Subject: [PATCH 81/92] nomes --- codigos/ControleEstoqueC/funcionarios.c | 164 +++++++++--------- .../nbproject/private/private.xml | 1 - 2 files changed, 85 insertions(+), 80 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index c128398..09c245e 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -1,6 +1,7 @@ #include "funcionarios.h" +//Andressa Viana void mostrarListagemFuncionarios() { int opcao; @@ -44,7 +45,7 @@ void mostrarListagemFuncionarios() { //Imprime cada linha - printf("| %d | %-10s |%-4s |%-19s|%-10s|%-7s|%-8s | %-13s | %-10s | %-10s| %-14s |%-12s|\n", + printf("| %d | %-10s |%-4s |%-19s|%-10s|%-7s|%-8s | %-13s | %-10s | %-10s| %-14s |%-10s|\n", id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -80,7 +81,7 @@ void mostrarListagemFuncionarios() { } } while (opcao != 4); } - +//Andressa Viana void mostrarCadastroFuncionario() { Funcionarios f; @@ -169,82 +170,7 @@ void mostrarCadastroFuncionario() { } } -void inserirFuncionario(Funcionarios f) { - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { - //Cria o comando SQL para envio - char sql[2000]; - - snprintf(sql, 2000, "INSERT INTO funcionarios(nome, sexo, dataNascimento,endereco, cidade, cep,telefone, cpf, rg, profissao, pisPasep)" - " values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" - , f.nome, f.sexo, f.datanascimento, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0) { - mysql_close(&mysql); //Encerra a conexão - - printf("Funcionario cadastrado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -void alterarFuncionario(Funcionarios f) { - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { - //Cria o comando SQL para envio - char sql[2000]; - snprintf(sql, 2000, "update funcionarios set pisPasep = '%s',profissao = '%s',rg = '%s',cpf = '%s',telefone = '%s',cep = '%s',cidade = '%s',endereco = '%s',dataNascimento = '%s', sexo = '%s', nome = '%s' where id = %d", - f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0) { - mysql_close(&mysql); //Encerra a conexão - - printf("funcionario alterado com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } -} - -void ExclusaoFuncionario(int codigo) { - //Inicializa a variável de conexão com o MySQL - MYSQL mysql; - mysql_init(&mysql); - - //Conecta no banco de dados - if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { - //Cria o comando SQL para envio - char sql[500]; - snprintf(sql, 500, "delete from funcionarios where id = %d", codigo); - - //Envia o comando e analisa a resposta - if (mysql_query(&mysql, sql) == 0) { - mysql_close(&mysql); //Encerra a conexão - - printf("Funcionario excluído com sucesso\n"); //Exibe mensagem de sucesso - } else { - printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro - } - } else { - printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar - } - -} - +//Bruno Qualhato Funcionarios* selecionarFuncionario(int codigo) { //Cria a variável de conexão com o MySQL MYSQL mysql; @@ -306,7 +232,7 @@ Funcionarios* selecionarFuncionario(int codigo) { printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar } } - +//Bruno Qualhato void mostrarAlteracaoFuncionario() { int codigo; @@ -450,6 +376,84 @@ void mostrarAlteracaoFuncionario() { } +//Denis Vitoriano +void inserirFuncionario(Funcionarios f) { + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[2000]; + + snprintf(sql, 2000, "INSERT INTO funcionarios(nome, sexo, dataNascimento,endereco, cidade, cep,telefone, cpf, rg, profissao, pisPasep)" + " values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" + , f.nome, f.sexo, f.datanascimento, f.endereco, f.cidade, f.cep, f.telefone, f.cpf, f.rg, f.profissao, f.pispasep); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Funcionario cadastrado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} +//Denis Vitoriano +void alterarFuncionario(Funcionarios f) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[2000]; + snprintf(sql, 2000, "update funcionarios set pisPasep = '%s',profissao = '%s',rg = '%s',cpf = '%s',telefone = '%s',cep = '%s',cidade = '%s',endereco = '%s',dataNascimento = '%s', sexo = '%s', nome = '%s' where id = %d", + f.pispasep, f.profissao, f.rg, f.cpf, f.telefone, f.cep, f.cidade, f.endereco, f.datanascimento, f.sexo, f.nome, f.id); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("funcionario alterado com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } +} + +//Luana Queiros +void ExclusaoFuncionario(int codigo) { + //Inicializa a variável de conexão com o MySQL + MYSQL mysql; + mysql_init(&mysql); + + //Conecta no banco de dados + if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { + //Cria o comando SQL para envio + char sql[500]; + snprintf(sql, 500, "delete from funcionarios where id = %d", codigo); + + //Envia o comando e analisa a resposta + if (mysql_query(&mysql, sql) == 0) { + mysql_close(&mysql); //Encerra a conexão + + printf("Funcionario excluído com sucesso\n"); //Exibe mensagem de sucesso + } else { + printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + } + } else { + printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + } + +} +//Luana Queiros void mostrarExclusaoFuncionario() { int codigo; printf("Digite o código do funcionario que deseja excluir: "); @@ -459,3 +463,5 @@ void mostrarExclusaoFuncionario() { ExclusaoFuncionario(codigo); getchar(); } + + diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index e7fbc27..e201f08 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -8,7 +8,6 @@ file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h From c304d8e720efda2c8f26f36aa3d6ea7c3aa5740b Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 27 Nov 2017 10:59:51 -0200 Subject: [PATCH 82/92] nomes --- codigos/ControleEstoqueC/funcionarios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 09c245e..e7b3a60 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -49,7 +49,7 @@ void mostrarListagemFuncionarios() { id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } - + //Libera os resultado e fecha a conexão mysql_free_result(resultado); mysql_close(&mysql); From 444202d6392959c7f7fe88917fa15d8e574db89c Mon Sep 17 00:00:00 2001 From: wellcerv Date: Mon, 27 Nov 2017 11:18:28 -0200 Subject: [PATCH 83/92] =?UTF-8?q?Inclus=C3=A3o=20do=20#include=20fornecedo?= =?UTF-8?q?res.h=20que=20havia=20sido=20apagado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 6d30d2b..e30f3cc 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -1,12 +1,11 @@ #include - #include "cidades.h" - #include "paises.h" #include "estados.h" #include "clientes.h" #include "gerais.h" #include "funcionarios.h" +#include "fornecedores.h" /** * Mostra o menu principal do sistema @@ -39,6 +38,7 @@ void mostrarMenuPrincipal(){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; case 4: mostrarListagemClientes(); break; + case 6: MenuFornecedores();break; case 8: mostrarListagemFuncionarios(); break; case 9: printf("Até a próxima vez!\n"); From a03af8d8943a516bdebb118811583df8b3f24a5e Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 27 Nov 2017 14:35:14 -0200 Subject: [PATCH 84/92] comenta --- codigos/ControleEstoqueC/funcionarios.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index e7b3a60..9291e58 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -45,7 +45,7 @@ void mostrarListagemFuncionarios() { //Imprime cada linha - printf("| %d | %-10s |%-4s |%-19s|%-10s|%-7s|%-8s | %-13s | %-10s | %-10s| %-14s |%-10s|\n", + printf("| %d | %-10s |%-4s |%-19s|%-10s|%-7s|%-8s | %-13s | %-10s | %-10s| %-14s |%-9s|\n", id, nome, sexo, datanascimento, endereco, cidade, cep, telefone, cpf, rg, profissao, pispasep); } @@ -90,7 +90,10 @@ void mostrarCadastroFuncionario() { printf("| CADASTRO DE FUNCIONARIOS |\n"); printf("|---------------------------------------------------------------|\n"); - + + + //fgets == Lê caracteres de fluxo e armazena-os como uma seqüência até (num-1) + //strlen == calcula o comprimento da string str, mas não incluindo o caractere nulo de término. printf("| INFORME O NOME DO FUNCIONARIO: "); fgets(f.nome, sizeof (f.nome), stdin); int tamanho = strlen(f.nome); @@ -260,13 +263,21 @@ void mostrarAlteracaoFuncionario() { printf("| Profissão: %s\n", f->profissao); printf("| PisPasep: %s\n", f->pispasep); printf("|-------------------------------------------------------------------|\n"); - - + + /* + *strncpy == copia até n caracteres da string apontada. + *Em um caso em que o comprimento de src seja menor que o de n + *o restante será preenchido com bytes nulos + */ + + //fgets == Lê caracteres de fluxo e armazena-os como uma seqüência até (num-1) + + //strlen == calcula o comprimento da string str, mas não incluindo o caractere nulo de término. printf("|--------------------------------------------------------------------|\n"); printf("| Digite o novo nome do Funcionario: "); char nome[100]; fgets(nome, sizeof (nome), stdin); - int tamanho = strlen(nome); + int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; //Retira o \n do final da string e coloca \0 strncpy(f->nome, nome, 100); printf("|--------------------------------------------------------------------|\n"); From 7c867cfbefdf168920e883267c8764f27d10250a Mon Sep 17 00:00:00 2001 From: brunoqualhato Date: Mon, 27 Nov 2017 14:35:58 -0200 Subject: [PATCH 85/92] =?UTF-8?q?coment=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/funcionarios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/funcionarios.c b/codigos/ControleEstoqueC/funcionarios.c index 9291e58..eee0930 100644 --- a/codigos/ControleEstoqueC/funcionarios.c +++ b/codigos/ControleEstoqueC/funcionarios.c @@ -50,7 +50,7 @@ void mostrarListagemFuncionarios() { } - //Libera os resultado e fecha a conexão + //Libera os resultado e fecha a conexão mysql_free_result(resultado); mysql_close(&mysql); } else { From d643060902ce1be6dff95409aa78a6fd372321ba Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Mon, 27 Nov 2017 15:03:32 -0200 Subject: [PATCH 86/92] =?UTF-8?q?Melhoria=20na=20Interface=20de=20comunica?= =?UTF-8?q?=C3=A7=C3=A3o=20com=20usuario=20relacionado=20a=20cidades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/cidades.c | 30 ++++++++++++++++-------------- codigos/ControleEstoqueC/main.c | 1 + 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/codigos/ControleEstoqueC/cidades.c b/codigos/ControleEstoqueC/cidades.c index 017d366..7917332 100644 --- a/codigos/ControleEstoqueC/cidades.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -23,7 +23,7 @@ void mostrarListagemCidades(){ mysql_init(&mysql); if(mysql_real_connect(&mysql,SERVIDOR_BD,USUARIO_BD,SENHA_BD,NOME_BD,PORTA_BD,NULL,0)){ - if(!mysql_query(&mysql,"SELECT idCidade, nomeCidade, cidades.idEstado,estados.uf from cidades, estados where estados.idEstado = cidades.idEstado")){ + if(!mysql_query(&mysql,"SELECT idCidade, nomeCidade, cidades.idEstado,estados.uf from cidades, estados where estados.idEstado = cidades.idEstado order by estados.uf,cidades.nomeCidade")){ MYSQL_RES *resultado = mysql_store_result(&mysql); MYSQL_ROW linha; while((linha = mysql_fetch_row(resultado))){ @@ -48,8 +48,8 @@ void mostrarListagemCidades(){ printf("1) Cadastrar uma nova Cidade\n"); printf("2) Alterar uma Cidade\n"); printf("3) Excluir uma Cidade\n"); - printf("4) Listar Estados\n"); - printf("5) Voltar ao menu principal\n\n"); + printf("4) Voltar ao menu principal.\n"); + printf("Digite a opção desejada: "); scanf("%d", &opcao); @@ -67,8 +67,9 @@ void mostrarListagemCidades(){ break; default: printf("Opção invalida!\n"); + break; } - }while (opcao != 5); + }while (opcao != 4); } @@ -88,7 +89,7 @@ void mostrarCadastroCidade() { int tamanho = strlen(c.nome); c.nome[tamanho - 1] = '\0'; printf("|--------------------------------------------------------------------|\n"); - mostrarListaEstados(); + mostrarListaEstados(0); printf("| ID ESTADO: "); scanf("%d", &c.idEstado); getchar(); @@ -158,7 +159,7 @@ void ExclusaoCidade(int codigo) { /* * Lista de estados para auxiliar no cadastro de cidades */ -void mostrarListaEstados(){ +void mostrarListaEstados(int segundaChamada){ printf("|-------------------------------------------------------------------------------------------------------------------|\n"); printf("| LISTAGEM DE ESTADOS |\n"); @@ -187,13 +188,15 @@ void mostrarListaEstados(){ mysql_free_result(resultado); mysql_close(&mysql); - printf("O estado da cidade que deseja cadastrar já está cadastrado?(S/N)"); - setbuf(stdin, NULL);//Limpa o buffer do teclado. - char resposta = getchar();getchar(); - if(resposta == 'N' || resposta == 'n'){ - mostrarCadastroEstado(); - mostrarListaEstados(); + if(!segundaChamada){ + printf("O estado da cidade já está cadastrado?(S/N): "); + setbuf(stdin, NULL);//Limpa o buffer do teclado. + char resposta = getchar();getchar(); + if(resposta == 'N' || resposta == 'n'){ + mostrarCadastroEstado(); + mostrarListaEstados(1); + } } } else { printf("%s\n", mysql_error(&mysql)); @@ -302,7 +305,7 @@ void mostrarAlteracaoCidade(){ fgets(nome, sizeof(nome), stdin); int tamanho = strlen(nome); nome[tamanho - 1] = '\0'; strncpy(c->nome, nome,100); - + mostrarListaEstados(0); printf("Digite o id do estado:"); scanf("%d",&c->idEstado); @@ -312,7 +315,6 @@ void mostrarAlteracaoCidade(){ getchar(); printf("Deseja realmente salvar as alterações? (S/N) "); char resposta = getchar(); getchar(); - printf("Nome c: %s\n",c->nome); if (resposta == 'S' || resposta == 's'){ alterarCidade(*c); } diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index e30f3cc..253cbf9 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -37,6 +37,7 @@ void mostrarMenuPrincipal(){ switch (opcao){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; + case 3: mostrarListagemCidades();break; case 4: mostrarListagemClientes(); break; case 6: MenuFornecedores();break; case 8: mostrarListagemFuncionarios(); break; From 893df15bfd2f40c9aa454466b483ff063dba122c Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Mon, 27 Nov 2017 15:58:10 -0200 Subject: [PATCH 87/92] Adicionado comando free para liberar a memoria alocada com malloc --- codigos/ControleEstoqueC/cidades.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codigos/ControleEstoqueC/cidades.c b/codigos/ControleEstoqueC/cidades.c index 7917332..5e0f938 100644 --- a/codigos/ControleEstoqueC/cidades.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -67,7 +67,6 @@ void mostrarListagemCidades(){ break; default: printf("Opção invalida!\n"); - break; } }while (opcao != 4); @@ -234,6 +233,7 @@ void alterarCidade(Cidade c){ } else { printf("Falha ao conectar-se com o banco de dados: %s\n", mysql_error(&mysql)); } + } Cidade* selecionarCidade(int id){ @@ -318,7 +318,7 @@ void mostrarAlteracaoCidade(){ if (resposta == 'S' || resposta == 's'){ alterarCidade(*c); } - + free(c); getchar(); } From 07cc9dcbea55c50eb30402512c721440d84f9e5c Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Mon, 27 Nov 2017 16:27:29 -0200 Subject: [PATCH 88/92] =?UTF-8?q?Mudan=C3=A7a=20na=20exebi=C3=A7=C3=A3o=20?= =?UTF-8?q?das=20cidades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/cidades.c | 2 +- codigos/ControleEstoqueC/nbproject/private/private.xml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/codigos/ControleEstoqueC/cidades.c b/codigos/ControleEstoqueC/cidades.c index 5e0f938..a144207 100644 --- a/codigos/ControleEstoqueC/cidades.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -16,7 +16,7 @@ void mostrarListagemCidades(){ printf("|-----------------------------------------------------------------------------------------|\n"); printf("| LISTAGEM DE CIDADES |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | ID ESTADOS | UF |\n"); + printf("| ID | NOME | ID ESTADO | UF |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); MYSQL mysql; diff --git a/codigos/ControleEstoqueC/nbproject/private/private.xml b/codigos/ControleEstoqueC/nbproject/private/private.xml index e201f08..04b2e69 100644 --- a/codigos/ControleEstoqueC/nbproject/private/private.xml +++ b/codigos/ControleEstoqueC/nbproject/private/private.xml @@ -7,7 +7,12 @@ - file:/home/brunoqualhato/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/estados.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/main.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/funcionarios.h + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/paises.c + file:/home/blackowl/Documents/git/controleestoque_c/codigos/ControleEstoqueC/cidades.c From 52d6a068a95a341d51a2dd51a9d261ebc7545d8e Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos de Oliveira Date: Mon, 27 Nov 2017 16:54:52 -0200 Subject: [PATCH 89/92] Update cidades.h --- codigos/ControleEstoqueC/cidades.h | 1 - 1 file changed, 1 deletion(-) diff --git a/codigos/ControleEstoqueC/cidades.h b/codigos/ControleEstoqueC/cidades.h index 9f04a8b..4db50b9 100644 --- a/codigos/ControleEstoqueC/cidades.h +++ b/codigos/ControleEstoqueC/cidades.h @@ -20,7 +20,6 @@ typedef struct { int id; int idEstado; - char nome[100]; }Cidade; From 16e02ace73f06ff80f7688d2759a99500b27c3b3 Mon Sep 17 00:00:00 2001 From: Matheus Henrique Passos Date: Mon, 27 Nov 2017 19:35:16 -0200 Subject: [PATCH 90/92] =?UTF-8?q?ultima=20mudan=C3=A7a=20visual?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codigos/ControleEstoqueC/cidades.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codigos/ControleEstoqueC/cidades.c b/codigos/ControleEstoqueC/cidades.c index a144207..d99707e 100644 --- a/codigos/ControleEstoqueC/cidades.c +++ b/codigos/ControleEstoqueC/cidades.c @@ -16,7 +16,7 @@ void mostrarListagemCidades(){ printf("|-----------------------------------------------------------------------------------------|\n"); printf("| LISTAGEM DE CIDADES |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); - printf("| ID | NOME | ID ESTADO | UF |\n"); + printf("| ID | NOME | ID ESTADO | UF |\n"); printf("|-----------------------------------------------------------------------------------------|\n"); MYSQL mysql; From 03938f8e30c5fdb9f525f2ec1679fc09e094697c Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 27 Nov 2017 19:39:35 -0200 Subject: [PATCH 91/92] final - bq --- codigos/ControleEstoqueC/produtos.c | 47 +++++++++++++++++------------ codigos/ControleEstoqueC/produtos.h | 40 ++++++++---------------- 2 files changed, 41 insertions(+), 46 deletions(-) diff --git a/codigos/ControleEstoqueC/produtos.c b/codigos/ControleEstoqueC/produtos.c index 3f3570b..935692d 100644 --- a/codigos/ControleEstoqueC/produtos.c +++ b/codigos/ControleEstoqueC/produtos.c @@ -5,7 +5,7 @@ /** * Mostra os produtos cadastrados e um MENU de opções para produtos */ -void mostraMenuPrincipal() { +void mostraMenuProdutos() { int opcao; do { @@ -82,7 +82,7 @@ void insereProduto(Produto p) { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { char sql[500]; - snprintf(sql, 500, "INSERT INTO produtos(nome,fornecedor,precoCompra,precoVenda,descricao,qtdEmEstoque,dataCadastro) values('%s','%s',%f,%f,'%s',%d)" + snprintf(sql, 500, "INSERT INTO produtos(nome,fornecedor,precoCompra,precoVenda,descricao,qtdEmEstoque) values('%s','%s',%f,%f,'%s',%d)" , p.nome, p.fornecedor, p.precoCompra, p.precoVenda, p.descricao, p.qtdEmEstoque); //Envia o comando e analisa a resposta @@ -91,9 +91,11 @@ void insereProduto(Produto p) { printf("Produto cadastrado com sucesso\n"); } else { printf("%s\n", mysql_error(&mysql)); + getchar(); } } else { - printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s\n", mysql_error(&mysql)); + printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s \n", mysql_error(&mysql)); + getchar(); } } @@ -108,7 +110,7 @@ void mostraProdutos() { if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)) { //Executa o comando de consulta - if (mysql_query(&mysql, "SELECT id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro FROM produtos ORDER BY nome") == 0) { + if (mysql_query(&mysql, "SELECT id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro, dataModificacao FROM produtos ORDER BY nome") == 0) { //Obtém o resultado MYSQL_RES *resultado = mysql_store_result(&mysql); @@ -121,13 +123,13 @@ void mostraProdutos() { //Obtém cada coluna na órdem int id = atoi(linha[0]), qtdEmEstoque = atoi(linha[6]), i, j; - char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7]; + char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7], *dataModificacao = linha[8]; float precoCompra = atof(linha[3]), precoVenda = atof(linha[4]); //Imprime cada linha - printf("|%4d|%-22s|%-16s|R$%-12.2f|R$%-12.2f|%-40s|%-12d| %-7s |\n", - id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro); + printf("| %2d | %-22s | %-16s| R$%-10.2f| R$%-10.2f| %-25s| %-5d | %-7s | %-7s |\n", + id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro, dataModificacao); } mostraLinhaMenu(); @@ -165,12 +167,12 @@ void mostraProduto(int id) { //por id //Obtém cada coluna na ordem int id = atoi(linha[0]), qtdEmEstoque = atoi(linha[6]), i, j; - char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7]; + char *nome = linha[1], *fornecedor = linha[2], *descricao = linha[5], *dataCadastro = linha[7], *dataModificacao = linha[8]; float precoCompra = atof(linha[3]), precoVenda = atof(linha[4]); //Imprime cada linha - printf("|%4d|%-22s|%-16s|R$%-12.2f|R$%-12.2f|%-40s|%-12d| %-7s |\n", - id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro); + printf("| %2d | %-22s | %-16s| R$%-10.2f| R$%-10.2f| %-25s| %-5d | %-7s | %-7s |\n", + id, nome, fornecedor, precoCompra, precoVenda, descricao, qtdEmEstoque, dataCadastro, dataModificacao); } mostraLinhaMenu(); @@ -179,13 +181,16 @@ void mostraProduto(int id) { //por id mysql_close(&mysql); } else { printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro + getchar(); } } else { - printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + printf("FALHA AO CONECTAR AO BANCO DE DADOS: %s \n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar + getchar(); } } /** + * Altera um produto, recebe id, campo, novo conteúdo do campo e o tipo */ void alteraProduto(int id, char campo[], char string[], char tipoDoCampo) { Produto p; @@ -197,8 +202,8 @@ void alteraProduto(int id, char campo[], char string[], char tipoDoCampo) { //Cria o comando SQL para envio char sql[500]; - if (tipoDoCampo == 's')snprintf(sql, 500, "UPDATE produtos SET %s = '%s',dataCadastro = NOW() WHERE id=%d", campo, string, id); - else snprintf(sql, 500, "UPDATE produtos SET %s = %s,dataCadastro = NOW() WHERE id=%d", campo, string, id); + if (tipoDoCampo == 's')snprintf(sql, 500, "UPDATE produtos SET %s = '%s', dataModificacao = NOW() WHERE id=%d", campo, string, id); + else snprintf(sql, 500, "UPDATE produtos SET %s = %s, dataModificacao = NOW() WHERE id=%d", campo, string, id); //Envia o comando e analisa a resposta if (mysql_query(&mysql, sql) == 0) { @@ -208,9 +213,11 @@ void alteraProduto(int id, char campo[], char string[], char tipoDoCampo) { getchar(); } else { printf("%s\n", mysql_error(&mysql)); + getchar(); } } else { printf("Falha na conexão: %s\n", mysql_error(&mysql)); + getchar(); } @@ -296,7 +303,8 @@ void mostraAlteracaoProduto() { } while (opcao != 0); } -int checaSeExiste(int id, char *tabela) {//retorna a quantidade de produtos com esse id. +//retorna a quantidade de produtos com esse id. +int checaSeExiste(int id, char *tabela) { MYSQL mysql; mysql_init(&mysql); @@ -349,7 +357,8 @@ void mostraExclusaoProduto() {//mostra opção de exclusão } } -void excluiProduto(int id) {//Deleta um produto pelo ID +//Deleta um produto pelo ID +void excluiProduto(int id) { MYSQL mysql; mysql_init(&mysql); @@ -378,12 +387,12 @@ void excluiProduto(int id) {//Deleta um produto pelo ID void mostraCabecalhoMenu() { limparTela(); mostraLinhaMenu(); - printf("| PRODUTO |\n"); + printf("| PRODUTOS |\n"); mostraLinhaMenu(); - printf("| ID | NOME | FORNECEDOR | PREÇO/COMPRA | PREÇO/VENDA | DESCRIÇÃO | EM ESTOQUE | DATA DE MODIFICAÇÃO |\n"); + printf("| ID | NOME | FORNECEDOR | PREÇO/COMPRA | PREÇO/VENDA | DESCRIÇÃO | EM ESTOQUE | DATA DE CADASTRO | DATA DE MODIFICAÇÃO |\n"); mostraLinhaMenu(); } void mostraLinhaMenu() { - printf("|------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); -} + printf("|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"); +} \ No newline at end of file diff --git a/codigos/ControleEstoqueC/produtos.h b/codigos/ControleEstoqueC/produtos.h index f414b89..6f0bd99 100644 --- a/codigos/ControleEstoqueC/produtos.h +++ b/codigos/ControleEstoqueC/produtos.h @@ -8,46 +8,32 @@ typedef struct { - int id, qtdEmEstoque, dataCadastro; + int id, qtdEmEstoque, dataCadastro, dataModificacao; char nome[100], fornecedor[100], descricao[100]; float precoCompra, precoVenda; } Produto; +//cadastro +void mostraMenuProdutos(); +void mostrarCadastroProduto(); +void insereProduto(Produto p); -/** - * Lista todos os produtos cadastrados no banco de dados - */ -void mostraMenuPrincipal();//OK - -/** - * Apresenta o cadastro de produto - */ -void mostrarCadastroProduto();//OK - -/** - * Função para inserção de um produto no banco de dados - */ -void insereProduto(Produto p);//OK - - -/** - * Edita produto cadastrados no banco de dados - */ +//alteração void alteraProduto(int id, char vetorCampo[], char string[], char tipoDoCampo); +void mostraAlteracaoProduto(); +//exclusão void mostraProdutos(); void mostraProduto(int id); -void mostraAlteracaoProduto(); -void leString(char *s, int tam); -int checaSeExiste(int id, char *tabela); void mostraExclusaoProduto(); void excluiProduto(int id); + //layout void mostraCabecalhoMenu(); void mostraLinhaMenu(); +//outras +void leString(char s[], int tam); +int checaSeExiste(int id, char *tabela); - - - -#endif +#endif \ No newline at end of file From 6efe4888dddbf7fac1b82ceac8393eb735e26a70 Mon Sep 17 00:00:00 2001 From: Aluno Date: Mon, 27 Nov 2017 19:58:47 -0200 Subject: [PATCH 92/92] final main e produtos --- codigos/ControleEstoqueC/main.c | 10 ++++---- codigos/ControleEstoqueC/produtos.c | 37 +++++++++++++++++------------ 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/codigos/ControleEstoqueC/main.c b/codigos/ControleEstoqueC/main.c index 253cbf9..4ddc97c 100644 --- a/codigos/ControleEstoqueC/main.c +++ b/codigos/ControleEstoqueC/main.c @@ -6,6 +6,7 @@ #include "gerais.h" #include "funcionarios.h" #include "fornecedores.h" +#include "produtos.h" /** * Mostra o menu principal do sistema @@ -37,9 +38,10 @@ void mostrarMenuPrincipal(){ switch (opcao){ case 1: mostrarListagemPaises(); break; case 2: mostrarListagemEstados(); break; - case 3: mostrarListagemCidades();break; - case 4: mostrarListagemClientes(); break; - case 6: MenuFornecedores();break; + case 3: mostrarListagemCidades(); break; + case 4: mostrarCadastroCliente(); break; + case 5: mostraMenuProdutos(); break; + case 6: MenuFornecedores(); break; case 8: mostrarListagemFuncionarios(); break; case 9: printf("Até a próxima vez!\n"); @@ -57,4 +59,4 @@ int main(){ mostrarMenuPrincipal(); return 0; -} +} \ No newline at end of file diff --git a/codigos/ControleEstoqueC/produtos.c b/codigos/ControleEstoqueC/produtos.c index 935692d..34a38a0 100644 --- a/codigos/ControleEstoqueC/produtos.c +++ b/codigos/ControleEstoqueC/produtos.c @@ -304,6 +304,7 @@ void mostraAlteracaoProduto() { } //retorna a quantidade de produtos com esse id. + int checaSeExiste(int id, char *tabela) { MYSQL mysql; @@ -336,28 +337,34 @@ void mostraExclusaoProduto() {//mostra opção de exclusão mostraProdutos(); Produto p; - printf("DIGITE O ID DESEJADO: "); + printf("DIGITE O ID DESEJADO [Ou 0 para sair]: "); scanf("%d", &p.id); - while (!checaSeExiste(p.id, "produtos")) {//obriga o usuário a digitar um id válido - limparTela(); - mostraProdutos(); - getchar(); - printf("\n [PRODUTO INEXISTENTE]\nDigite o [ID] Novamente! : "); - scanf("%d", &p.id); - } + if (p.id == 0) { + mostraMenuProdutos(); + } else { + while (!checaSeExiste(p.id, "produtos")) {//obriga o usuário a digitar um id válido + limparTela(); + mostraProdutos(); + getchar(); + printf("\n [PRODUTO INEXISTENTE]\nDigite o [ID] Novamente ! : "); + scanf("%d", &p.id); + } - mostraProduto(p.id); - char opcao; - printf("\nDESEJA REALMENTE EXCLUIR O PRODUTO? "); - getchar(); - scanf("%c", &opcao); + mostraProduto(p.id); + char opcao; + printf("\nDESEJA REALMENTE EXCLUIR O PRODUTO? "); + getchar(); + scanf("%c", &opcao); - if (opcao == 's' || opcao == 'S') { - excluiProduto(p.id); + if (opcao == 's' || opcao == 'S') { + excluiProduto(p.id); + } } + } //Deleta um produto pelo ID + void excluiProduto(int id) { MYSQL mysql;