Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5.  
  6. void insere(struct data *pdados);
  7. void remove(struct data *pdados2);
  8. void imprime(struct data *pdados3);
  9.  
  10. typedef struct data{
  11. char nome[20];
  12. float salario;
  13. int idade;
  14. char sexo[1];
  15. int veri;
  16. }dados2;
  17.  
  18. struct data dados[100];
  19.  
  20. int contsub=0;
  21. int contdesc=100;
  22. int contsuper;
  23.  
  24. main(){
  25.  
  26. int opc;
  27.  
  28. setlocale(LC_ALL, "");
  29.  
  30. while (opc != 4){
  31. printf(" --------------------------------------------------------------\n");
  32. printf(" Cadastro de Funcinários\n");
  33. printf(" --------------------------------------------------------------\n\n");
  34. printf("Digite uma opção: \n\n");
  35. printf("1 - Inserir funcionário.\n");
  36. printf("2 - Remover funcionário\n");
  37. printf("3 - Imprimir dados.\n");
  38. printf("4 - Sair.\n");
  39. scanf("%d", &opc);
  40. if (opc != 1 && opc != 2 && opc != 3 && opc != 4){
  41. while(opc != 1 && opc != 2 && opc != 3 && opc != 4){
  42. printf("Opção não encontrada, tente novamente.\n");
  43. scanf("%d", &opc);
  44. }
  45. }
  46.  
  47. if (opc == 1){
  48. insere(dados);
  49. }
  50.  
  51. if (opc == 2){
  52. remove(dados);
  53. }
  54.  
  55. if (opc == 3){
  56. imprime(dados);
  57. }
  58.  
  59.  
  60. }
  61. }
  62.  
  63. void insere(struct data *pdados){
  64. system("cls");
  65. int quant,i;
  66.  
  67. printf("Quantos funcionários deseja cadastrar ? \n");
  68. scanf("%d", &quant);
  69. if (quant > contdesc or quant < 1){
  70. while(quant > contdesc or quant < 1){
  71. printf("Essa quantidade não é suportada, tente uma maior ou uma menor.\n");
  72. scanf("%d", &quant);
  73. }
  74. }
  75.  
  76. for (i=0; i<quant; i++){
  77. pdados = (dados+contsub);
  78. printf("\n\nDigite o nome do %d° funcionário: \n",i+1);
  79. scanf("%s", &pdados->nome);
  80. printf("Digite a idade em anos do funcionário: %s \n",pdados->nome);
  81. scanf("%d", &pdados->idade);
  82. printf("Digite o sexo do funcionário: %s / M = Masculino / F = Feminino. \n",pdados->nome);
  83. scanf("%s", &pdados->sexo);
  84. printf("Digite o salário do funcionário: %s \n", pdados->nome);
  85. scanf("%f", &pdados->salario);
  86. contsub++;
  87. contdesc--;
  88. }
  89. system("cls");
  90. printf("\nFuncionário(s) cadastrados com sucesso!\n\n");
  91. contsuper++;
  92. }
  93.  
  94. void remove(struct data *pdados2){
  95. system("cls");
  96. if (contsuper == 0)
  97. printf("\nAntes de remover um usuário, primeiro você deve cadastrar um usuário.\n");
  98.  
  99. else{
  100. int i,j,t,x=0;
  101. char nomeuser[20];
  102. int cont2=0;
  103. printf("Digite o nome do funcionário que quer remover: \n");
  104. scanf("%s", &nomeuser);
  105.  
  106. for (i=0; i<contsub; i++){
  107. pdados2 = (dados+i);
  108. if (stricmp(nomeuser, pdados2->nome)==0){
  109. printf("\nFuncionário localizado e excluído.\n\n");
  110. contsub--;
  111. contdesc++;
  112. x=1;
  113. cont2=i+1;
  114. system("cls");
  115. pdados2->veri=1;
  116. for (j=0; j<contsub;j++){
  117. if (pdados2->veri==1){
  118. if(((pdados2 + 1)->nome)!='\0'){
  119. printf("teste");
  120. while (cont2<100){
  121. strcpy(pdados2->nome,(pdados2 + 1)->nome);
  122. pdados2->idade=(pdados2 + 1)->idade;
  123. strcpy(pdados2->sexo,(pdados2 + 1)->sexo);
  124. pdados2->salario=(pdados2 + 1)->idade;
  125. pdados2++;
  126. cont2++;
  127. }
  128. }
  129.  
  130.  
  131. }
  132. }
  133. }
  134. }
  135. if (x==0){
  136. printf("\nFuncionário não encontrado, tente novamente.\n\n");
  137. }
  138. }
  139. }
  140.  
  141. void imprime(struct data *pdados3){
  142. system("cls");
  143. if (contsuper == 0)
  144. printf("\nAntes de imprimir os dados, primeiro você deve cadastrar um usuário.\n");
  145. else{
  146. int i;
  147. int opc;
  148. char nomeuser[20];
  149. int x=0;
  150.  
  151. while (opc != 4){
  152. printf("Digite uma opção: \n\n");
  153. printf("1 - Imprimir nomes de todos os funcionários.\n");
  154. printf("2 - Imprimir nome e salário.\n");
  155. printf("3 - Imprimir Informação completa de um funcionário.\n");
  156. printf("4 - Sair.\n");
  157. scanf("%d", &opc);
  158. if (opc != 1 && opc != 2 && opc != 3 && opc != 4){
  159. while(opc != 1 && opc != 2 && opc != 3 && opc != 4){
  160. printf("Opção não encontrada, tente novamente.\n");
  161. scanf("%d", &opc);
  162. }
  163. }
  164.  
  165.  
  166. if (opc == 1){
  167. for(i=0; i<contsub; i++){
  168. pdados3 = (dados+i);
  169. printf("\n\nNome: %s \n\n", pdados3->nome);
  170. }
  171. }
  172.  
  173. if (opc == 2){
  174. for(i=0; i<contsub; i++){
  175. pdados3 = (dados+i);
  176. printf("\n\nNome: %s / Salário: %.2f\n\n", pdados3->nome, pdados3->salario);
  177. }
  178. }
  179.  
  180. if (opc == 3){
  181. printf("Digite o nome do funcionário que quer imprimir os dados completos: \n");
  182. scanf("%s", &nomeuser);
  183. for (i=0; i<contsub; i++){
  184. pdados3 = (dados+i);
  185. if (stricmp(nomeuser, pdados3->nome)==0){
  186. printf("\nFuncionário localizado, Imprimindo:\n\n");
  187. printf("\nNome: %s / Idade: %d / Sexo: %s / Salário: %.2f\n\n", pdados3->nome, pdados3->idade, pdados3->sexo, pdados3->salario);
  188. x=1;
  189. }
  190. }
  191. if (x==0)
  192. printf("\nFuncionário não encontrado, tente novamente!\n");
  193. }
  194. }
  195. system("cls");
  196. }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement