// File: DaCasBe[P]Gestion-de-asignaturas-mediante-arboles-binarios-ordenados/funcionesAuxiliares.cpp
// Function: ed::consultarEstudianteDeAsignatura(ed::Asignatura&)
void ed::consultarEstudianteDeAsignatura(ed::Asignatura &asignatura){
	if(asignatura.estaVacia()){ //La asignatura está vacía
		std::cout << std::endl << BIRED << "Error: no hay ningún estudiante cargado" << RESET << std::endl;
	}

	else{ //La asignatura no está vacía
		std::string nombre;
		std::string apellidos;

		//Pedimos al usuario los datos del estudiante a consultar
		std::cout << std::endl << BIYELLOW << "Introduzca el nombre y los apellidos del estudiante" << RESET << std::endl;
		std::cout << IYELLOW << "Nombre: " << RESET;
		getline(std::cin,nombre);
		std::cout << IYELLOW << "Apellidos: " << RESET;
		getline(std::cin,apellidos);

		if(!asignatura.existeEstudiante(nombre,apellidos)){ //No existe el estudiante indicado por el usuario
			std::cout << std::endl << BIRED << "Error: el estudiante " << nombre << " " << apellidos << " no pertenece a la asignatura" << RESET << std::endl;
		}

		else{ //Existe el estudiante indicado por el usuario
			//Mostramos las notas del estudiante
			std::cout << std::endl << BBLUE << "Notas de " << asignatura.getEstudiante(nombre,apellidos).getNombre() << " " << asignatura.getEstudiante(nombre,apellidos).getApellidos() << RESET << std::endl;
			std::cout << BBLUE << "Teoría: " << BLUE << asignatura.getEstudiante(nombre,apellidos).getTeoria() << RESET << std::endl;
			std::cout << BBLUE << "Practíca: " << BLUE << asignatura.getEstudiante(nombre,apellidos).getPractica() << RESET << std::endl;
			std::cout << BBLUE << "Final: " << BLUE << asignatura.getEstudiante(nombre,apellidos).getFinal() << RESET << std::endl;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x65af
jmp 0x6603
movq 0x8a1a(%rip), %rdi      # 0xefd0
movq 0x8a03(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, %rdi
leaq 0x4668(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, %rdi
leaq 0x46ad(%rip), %rsi      # 0xac88
callq 0x21a0
movq %rax, %rdi
leaq 0x49d1(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, %rdi
movq 0x89c7(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6c80
leaq -0x28(%rbp), %rdi
callq 0x2220
leaq -0x48(%rbp), %rdi
callq 0x2220
jmp 0x6617
movq 0x89b2(%rip), %rdi      # 0xefd0
movq 0x899b(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x60(%rbp)
jmp 0x6630
movq -0x60(%rbp), %rdi
leaq 0x45f1(%rip), %rsi      # 0xac2c
callq 0x21a0
movq %rax, -0x68(%rbp)
jmp 0x6646
movq -0x68(%rbp), %rdi
leaq 0x4809(%rip), %rsi      # 0xae5a
callq 0x21a0
movq %rax, -0x70(%rbp)
jmp 0x665c
movq -0x70(%rbp), %rdi
leaq 0x4954(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x78(%rbp)
jmp 0x6672
movq -0x78(%rbp), %rdi
movq 0x8943(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6684
movq 0x8945(%rip), %rdi      # 0xefd0
leaq 0x397e(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x80(%rbp)
jmp 0x669d
movq -0x80(%rbp), %rdi
leaq 0x39e8(%rip), %rsi      # 0xa090
callq 0x21a0
movq %rax, -0x88(%rbp)
jmp 0x66b6
movq -0x88(%rbp), %rdi
leaq 0x48f7(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x66cb
movq 0x890e(%rip), %rdi      # 0xefe0
leaq -0x28(%rbp), %rsi
callq 0x2070
jmp 0x66dd
movq 0x88ec(%rip), %rdi      # 0xefd0
leaq 0x3925(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x90(%rbp)
jmp 0x66f9
movq -0x90(%rbp), %rdi
leaq 0x399a(%rip), %rsi      # 0xa0a1
callq 0x21a0
movq %rax, -0x98(%rbp)
jmp 0x6715
movq -0x98(%rbp), %rdi
leaq 0x4898(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x672a
movq 0x88af(%rip), %rdi      # 0xefe0
leaq -0x48(%rbp), %rsi
callq 0x2070
jmp 0x673c
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movb %al, -0x99(%rbp)
jmp 0x6759
movb -0x99(%rbp), %al
testb $0x1, %al
jne 0x6888
jmp 0x6769
movq 0x8860(%rip), %rdi      # 0xefd0
movq 0x8849(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0xa8(%rbp)
jmp 0x6785
movq -0xa8(%rbp), %rdi
leaq 0x44a1(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0xb0(%rbp)
jmp 0x67a1
movq -0xb0(%rbp), %rdi
leaq 0x4986(%rip), %rsi      # 0xb135
callq 0x21a0
movq %rax, -0xb8(%rbp)
jmp 0x67bd
movq -0xb8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x2180
movq %rax, -0xc0(%rbp)
jmp 0x67d6
movq -0xc0(%rbp), %rdi
leaq 0x4248(%rip), %rsi      # 0xaa2c
callq 0x21a0
movq %rax, -0xc8(%rbp)
jmp 0x67f2
movq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2180
movq %rax, -0xd0(%rbp)
jmp 0x680b
movq -0xd0(%rbp), %rdi
leaq 0x4675(%rip), %rsi      # 0xae8e
callq 0x21a0
movq %rax, -0xd8(%rbp)
jmp 0x6827
movq -0xd8(%rbp), %rdi
leaq 0x4786(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0xe0(%rbp)
jmp 0x6843
movq -0xe0(%rbp), %rdi
movq 0x876f(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6858
jmp 0x6c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6c73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x2120
jmp 0x6c71
movq 0x8741(%rip), %rdi      # 0xefd0
movq 0x872a(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0xe8(%rbp)
jmp 0x68a4
movq -0xe8(%rbp), %rdi
leaq 0x37d6(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0xf0(%rbp)
jmp 0x68c0
movq -0xf0(%rbp), %rdi
leaq 0x45de(%rip), %rsi      # 0xaeac
callq 0x21a0
movq %rax, -0xf8(%rbp)
jmp 0x68dc
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x100(%rbp)
jmp 0x68fa
movq -0x100(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x108(%rbp)
jmp 0x6913
movq -0x108(%rbp), %rsi
movq -0xf8(%rbp), %rdi
callq 0x2180
movq %rax, -0x110(%rbp)
jmp 0x692f
movq -0x110(%rbp), %rdi
leaq 0x40ef(%rip), %rsi      # 0xaa2c
callq 0x21a0
movq %rax, -0x118(%rbp)
jmp 0x694b
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x120(%rbp)
jmp 0x6969
movq -0x120(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movq %rax, -0x128(%rbp)
jmp 0x6982
movq -0x128(%rbp), %rsi
movq -0x118(%rbp), %rdi
callq 0x2180
movq %rax, -0x130(%rbp)
jmp 0x699e
movq -0x130(%rbp), %rdi
leaq 0x460f(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x138(%rbp)
jmp 0x69ba
movq -0x138(%rbp), %rdi
movq 0x85f8(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x69cf
movq 0x85fa(%rip), %rdi      # 0xefd0
leaq 0x36ab(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0x140(%rbp)
jmp 0x69eb
movq -0x140(%rbp), %rdi
leaq 0x44bd(%rip), %rsi      # 0xaeb6
callq 0x21a0
movq %rax, -0x148(%rbp)
jmp 0x6a07
movq -0x148(%rbp), %rdi
leaq 0x3684(%rip), %rsi      # 0xa099
callq 0x21a0
movq %rax, -0x150(%rbp)
jmp 0x6a23
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x158(%rbp)
jmp 0x6a41
movq -0x158(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movss %xmm0, -0x15c(%rbp)
jmp 0x6a5b
movss -0x15c(%rbp), %xmm0
movq -0x150(%rbp), %rdi
callq 0x2160
movq %rax, -0x168(%rbp)
jmp 0x6a78
movq -0x168(%rbp), %rdi
leaq 0x4535(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x170(%rbp)
jmp 0x6a94
movq -0x170(%rbp), %rdi
movq 0x851e(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6aa9
movq 0x8520(%rip), %rdi      # 0xefd0
leaq 0x35d1(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0x178(%rbp)
jmp 0x6ac5
movq -0x178(%rbp), %rdi
leaq 0x43ed(%rip), %rsi      # 0xaec0
callq 0x21a0
movq %rax, -0x180(%rbp)
jmp 0x6ae1
movq -0x180(%rbp), %rdi
leaq 0x35aa(%rip), %rsi      # 0xa099
callq 0x21a0
movq %rax, -0x188(%rbp)
jmp 0x6afd
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x190(%rbp)
jmp 0x6b1b
movq -0x190(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movss %xmm0, -0x194(%rbp)
jmp 0x6b35
movss -0x194(%rbp), %xmm0
movq -0x188(%rbp), %rdi
callq 0x2160
movq %rax, -0x1a0(%rbp)
jmp 0x6b52
movq -0x1a0(%rbp), %rdi
leaq 0x445b(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x1a8(%rbp)
jmp 0x6b6e
movq -0x1a8(%rbp), %rdi
movq 0x8444(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6b83
movq 0x8446(%rip), %rdi      # 0xefd0
leaq 0x34f7(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0x1b0(%rbp)
jmp 0x6b9f
movq -0x1b0(%rbp), %rdi
leaq 0x431f(%rip), %rsi      # 0xaecc
callq 0x21a0
movq %rax, -0x1b8(%rbp)
jmp 0x6bbb
movq -0x1b8(%rbp), %rdi
leaq 0x34d0(%rip), %rsi      # 0xa099
callq 0x21a0
movq %rax, -0x1c0(%rbp)
jmp 0x6bd7
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x1c8(%rbp)
jmp 0x6bf5
movq -0x1c8(%rbp), %rdi
callq 0x2ba0
movss %xmm0, -0x1cc(%rbp)
jmp 0x6c0b
movss -0x1cc(%rbp), %xmm0
movq -0x1c0(%rbp), %rdi
callq 0x2160
movq %rax, -0x1d8(%rbp)
jmp 0x6c28
movq -0x1d8(%rbp), %rdi
leaq 0x4385(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x1e0(%rbp)
jmp 0x6c44
movq -0x1e0(%rbp), %rdi
movq 0x836e(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6c59
jmp 0x6c5b
leaq -0x48(%rbp), %rdi
callq 0x2120
jmp 0x6c66
leaq -0x28(%rbp), %rdi
callq 0x2120
jmp 0x6c80
jmp 0x6c73
leaq -0x28(%rbp), %rdi
callq 0x2120
jmp 0x6c7e
jmp 0x6c89
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x22b0
movq %rax, %rdi
callq 0x45c0
nopw (%rax,%rax)