Advertisement
argentinapb

Untitled

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