Advertisement
argentinapb

Untitled

Jul 11th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct data{
  5. int dia, mes, ano;
  6. };
  7.  
  8. struct aluno{
  9. struct data nascimento;
  10. int id;
  11. char nome[256];
  12. double notas[5][2];
  13. double media[5];
  14. };
  15.  
  16. void inserir(struct aluno c[], int *n);
  17. void remover(struct aluno c[], int *n);
  18. void alterar(struct aluno c[], int *n);
  19. void buscar(struct aluno c[], int *n);
  20. void mostrar_tudo(struct aluno c[], int n);
  21. void mostrar_data(struct aluno c[], int n);
  22. void mostrar_aprovados(struct aluno c[], int n);
  23. void mostrar_reprovados(struct aluno c[], int n);
  24. int main(){
  25. int opc;
  26. struct aluno c[10];
  27. int n = 0;
  28. do{
  29. printf("1. Inserir\n");
  30. printf("2. Remover\n");
  31. printf("3. Buscar\n");
  32. printf("4. Alterar\n");
  33. printf("5. Mostrar tudo\n");
  34. printf("6. Mostar por ano\n");
  35. printf("7. Mostrar alunos aprovados\n");
  36. printf("8. Mostrar alunos reprovados\n");
  37. printf("0. Sair\n");
  38. scanf("%d", &opc);
  39. switch(opc){
  40. case 1:
  41. inserir(c, &n);
  42. break;
  43. case 2:
  44. remover(c, &n);
  45. break;
  46. case 3:
  47. buscar(c, &n);
  48. break;
  49. case 4:
  50. alterar(c, &n);
  51. break;
  52. case 5:
  53. mostrar_tudo(c, n);
  54. break;
  55. case 6:
  56. mostrar_data(c, n);
  57. break;
  58. case 7:
  59. mostrar_aprovados(c, n);
  60. break;
  61. case 8:
  62. mostrar_reprovados(c, n);
  63. break;
  64. case 0:
  65. return 0;
  66. }
  67. }while(opc != 0);
  68. return 0;
  69. }
  70.  
  71. void inserir(struct aluno c[], int *n){
  72. int i, j, id;
  73. printf("Insira os dados do aluno.\n");
  74. printf("Codigo: ");
  75. scanf("%d", &id);
  76. for(i = 0; i < *n; i++){
  77. if(id == c[i].id){
  78. printf("Codigo ja cadastrado.\n");
  79. return;
  80. }
  81. }
  82. c[*n].id = id;
  83. printf("Nome: ");
  84. getchar();
  85. gets(c[*n].nome);
  86. printf("Data de nascimento (dd/mm/aaaa): ");
  87. scanf("%d/%d/%d", &c[*n].nascimento.dia, &c[*n].nascimento.mes, &c[*n].nascimento.ano);
  88. for(i = 0; i < 5; i++){
  89. printf("Notas da disciplina %d:\n", i+1);
  90. for(j = 0; j < 2; j++){
  91. printf("Nota %d: ", j+1);
  92. scanf("%lf", &c[*n].notas[i][j]);
  93. }
  94. c[*n].media[i] = (c[*n].notas[i][0] + c[*n].notas[i][1])/2;
  95. }
  96. *n = *n + 1;
  97.  
  98. printf("Inserido com sucesso.\n");
  99. return;
  100. }
  101.  
  102. void buscar(struct aluno c[], int *n){
  103. int id, achou = 0, i, j, k;
  104. printf("Insira o codigo para busca: ");
  105. scanf("%d", &id);
  106. for(i = 0; i < *n; i++){
  107. if(id == c[i].id){
  108. achou = 1;
  109. printf("Nome: %s\n", c[i].nome);
  110. printf("Data de nascimento: %d/%d/%d\n", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  111. printf("Notas:\n");
  112. for(j = 0; j < 5; j++){
  113. printf("Notas da disciplina %d:", j+1);
  114. for(k = 0; k < 2; k++){
  115. printf(" %.1lf", c[i].notas[j][k]);
  116. }
  117. printf("\n");
  118. printf("Media da disciplina %d: %.1lf",j+1,c[i].media[j]);
  119. printf("\n");
  120. }
  121. }
  122. }
  123. if(achou == 0){
  124. printf("Nao encontrado.\n");
  125. }
  126. return;
  127. }
  128.  
  129. void alterar(struct aluno c[], int *n){
  130. int i, j, k, achou = 0,cod;
  131. printf("Insira o codigo do aluno:");
  132. scanf("%d", &cod);
  133. for(i = 0; i < *n; i++){
  134. if(cod == c[i].id){
  135. achou = 1;
  136. printf("Insira o novo nome: ");
  137. getchar();
  138. gets(c[i].nome);
  139. getchar();
  140. printf("Insira a nova data de nascimento (dd/mm/aaaa):");
  141. scanf("%d/%d/%d", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  142. printf("Insira as novas notas:");
  143. for(j = 0; j < 5; j++){
  144. printf("Notas da disciplina %d:\n", j+1);
  145. for(k = 0; k < 2; k++){
  146. printf("Nota %d: ", k+1);
  147. scanf("%lf", c[i].notas[i][j]);
  148. }
  149. }
  150. }
  151. }
  152. if(achou == 0){
  153. printf("Nao encontrado.");
  154. }
  155. return;
  156. }
  157.  
  158. void remover(struct aluno c[], int *n){
  159. int id, i, j, achou = 0;
  160. printf("Insira o codigo:");
  161. scanf("%d", &id);
  162. for(int i = 0; i < *n; i++){
  163. if(id == c[i].id){
  164. achou = 1;
  165. for(j = i+1; j < *n; j++){
  166. c[j-1] = c[j];
  167. }
  168. printf("Excluido com sucesso.\n");
  169. *n = *n - 1;
  170. }
  171. }
  172. if(achou == 0){
  173. printf("Nao encontrado.\n");
  174. }
  175. return;
  176. }
  177.  
  178. void mostrar_tudo(struct aluno c[], int n){
  179. int i, j, k;
  180. for(i = 0; i < n; i++){
  181. printf("Codigo: %d\n", c[i].id);
  182. printf("Nome: %s\n", c[i].nome);
  183. printf("Data de nascimento: %d/%d/%d\n", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  184. printf("Notas:");
  185. for(j = 0; j < 5; j++){
  186. printf("Notas da disciplina %d:", j+1);
  187. for(k = 0; k < 2; k++){
  188. printf(" %.1lf", c[i].notas[j][k]);
  189. }
  190. printf("\n");
  191. printf("Media da disciplina %d: %.1lf",j+1, c[i].media[j]);
  192. printf("\n");
  193. }
  194. }
  195. return;
  196. }
  197. void mostrar_data(struct aluno c[], int n){
  198. int i,j,ano,k;
  199. printf("Ano: \n");
  200. scanf("%d", &ano);
  201.  
  202. for(i = 0; i < n; i++){
  203. if(ano <= c[i].nascimento.ano){
  204. printf("Codigo: %d\n", c[i].id);
  205. printf("Nome: %s\n", c[i].nome);
  206. printf("Data de nascimento: %d/%d/%d\n", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  207. printf("Notas:");
  208. for(j = 0; j < 5; j++){
  209. printf("Notas da disciplina %d:", j+1);
  210. for(k = 0; k < 2; k++){
  211. printf(" %.1lf", c[i].notas[j][k]);
  212. }
  213. printf("\n");
  214. printf("Media da disciplina %d: %.1lf",j+1,c[i].media[j]);
  215. printf("\n");
  216. }
  217. }
  218. }
  219. return;
  220. }
  221. void mostrar_aprovados(struct aluno c[], int n){
  222. int i,j,k,cont = 0,media=6;
  223. for(i = 0; i < n; i++){
  224. for(j = 0; j < 5; j++){
  225. if(c[i].media[j] < media){
  226. cont++;
  227. }
  228. }
  229. if(cont == 0){
  230. printf("Codigo: %d\n", c[i].id);
  231. printf("Nome: %s\n", c[i].nome);
  232. printf("Data de nascimento: %d/%d/%d\n", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  233. printf("Notas:");
  234. for(j = 0; j < 5; j++){
  235. printf("Notas da disciplina %d:", j+1);
  236. for(k = 0; k < 2; k++){
  237. printf(" %.1lf", c[i].notas[j][k]);
  238. }
  239. printf("\n");
  240. printf("Media da disciplina %d: %.1lf",j+1,c[i].media[j]);
  241. printf("\n");
  242. }
  243.  
  244. }
  245. }
  246. return;
  247. }
  248. void mostrar_reprovados(struct aluno c[], int n){
  249. int i,j,k,cont = 0,media=6;
  250. for(i = 0; i < n; i++){
  251. for(j = 0; j < 5; j++){
  252. if(c[i].media[j] < media){
  253. cont++;
  254. }
  255. }
  256. if(cont > 0){
  257. printf("Codigo: %d\n", c[i].id);
  258. printf("Nome: %s\n", c[i].nome);
  259. printf("Data de nascimento: %d/%d/%d\n", c[i].nascimento.dia, c[i].nascimento.mes, c[i].nascimento.ano);
  260. printf("Notas:");
  261. for(j = 0; j < 5; j++){
  262. printf("Notas da disciplina %d:", j+1);
  263. for(k = 0; k < 2; k++){
  264. printf(" %.1lf", c[i].notas[j][k]);
  265. }
  266. printf("\n");
  267. printf("Media da disciplina %d: %.1lf",j+1,c[i].media[j]);
  268. printf("\n");
  269. }
  270.  
  271. }
  272. }
  273. return;
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement