Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #define TAM 10 // Define constante para o tamanho do vetor de dados
  4.  
  5. /*
  6. * Nesta questão foi escolhido trabalhar com Lista pois
  7. */
  8.  
  9. using namespace std;
  10.  
  11.  
  12. struct Aluno {
  13. int RU;
  14. string nome;
  15. string email;
  16. };
  17.  
  18. struct Lista {
  19. Aluno dados[TAM];
  20. int ult;
  21. };
  22.  
  23. Aluno criaAluno(int RU, string nome, string email) {
  24. Aluno aluno;
  25. aluno.nome = nome;
  26. aluno.email = email;
  27. aluno.RU = RU;
  28. return aluno;
  29. }
  30.  
  31. void iniciarLista(Lista *lista) {
  32. lista->ult = -1;
  33. }
  34.  
  35. bool listaCheia(Lista *lista) {
  36. return lista->ult == TAM - 1;
  37. }
  38.  
  39. void consultarLista(Lista *lista) {
  40. for (int i = 0; i <= lista->ult; ++i) {
  41. cout << "Ru: " << lista->dados[i].RU << endl;
  42. cout << "Nome: " << lista->dados[i].nome << endl;
  43. cout << "Email: " << lista->dados[i].email << endl << endl;
  44. }
  45. }
  46.  
  47. void insereNoFim(Lista *lista, Aluno aluno) {
  48. if (listaCheia(lista)) {
  49. cout << "Lista cheia!" << endl;
  50. return;
  51. }
  52.  
  53. lista->ult++;
  54. lista->dados[lista->ult] = aluno;
  55. }
  56.  
  57. void insereDadosNaLista(Lista *lista) {
  58. insereNoFim(lista, criaAluno(2524388, "Artur asd", "asdasd@gmail.com"));
  59. insereNoFim(lista, criaAluno(1, "Lorem", "sample@gmail.com"));
  60. insereNoFim(lista, criaAluno(2, "Ipsum Dassi", "ipsum@gmail.com"));
  61. insereNoFim(lista, criaAluno(3, "Artorios", "dolor@gmail.com"));
  62. insereNoFim(lista, criaAluno(4, "Marcos", "notenouht@gmail.com"));
  63. insereNoFim(lista, criaAluno(5, "Antonio", "samplthis@gmail.com"));
  64. insereNoFim(lista, criaAluno(6, "Marcus", "notnotnot@gmail.com"));
  65. insereNoFim(lista, criaAluno(7, "Felipe", "heythere@gmail.com"));
  66. insereNoFim(lista, criaAluno(8, "Daniele", "bangitdy@gmail.com"));
  67. insereNoFim(lista, criaAluno(9, "Soulja", "samplethis@gmail.com"));
  68. }
  69.  
  70. void buubleSort(Lista *lista) {
  71. Lista aux = *lista;
  72.  
  73. for (int i = 0; i <= aux.ult; ++i) {
  74. for (int j = 0; j <= aux.ult; ++j) {
  75. Aluno atual = aux.dados[j];
  76. Aluno prox = aux.dados[j + 1];
  77.  
  78. if (atual.RU > prox.RU) {
  79. aux.dados[j] = prox;
  80. aux.dados[j + 1] = atual;
  81. }
  82. }
  83. }
  84.  
  85.  
  86. }
  87.  
  88. int main() {
  89. Lista alunos;
  90.  
  91. iniciarLista(&alunos);
  92. insereDadosNaLista(&alunos);
  93. consultarLista(&alunos); //Quando executado aqui, os valores aparecem
  94. buubleSort(&alunos);
  95. consultarLista(&alunos); //Aqui não
  96.  
  97. cout << alunos.dados[1].nome << endl;
  98.  
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement