// File: /workspace/github_cpp_makefile_star2_O2/DaCasBe[P]Gestion-de-asignaturas-mediante-arboles-binarios-ordenados/funcionesAuxiliares.cpp
// Function: ed::borrarEstudianteDeAsignatura(ed::Asignatura&)
void ed::borrarEstudianteDeAsignatura(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
		bool control;
		std::string nombre;
		std::string apellidos;
		ed::Estudiante estudiante;

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

		control=asignatura.existeEstudiante(nombre,apellidos);	

		if(control){ //Existe el estudiante indicado por el usuario
			asignatura.borrarEstudiante(nombre,apellidos); //Borramos el estudiante indicado

			control=asignatura.existeEstudiante(nombre,apellidos);	

			if(control){ //No se ha borrado el estudiante indicado
				std::cout << std::endl << BIRED << "Error: el estudiante no ha podido ser borrado" << RESET << std::endl;
			}

			else{ //Se ha borrado el estudiante indicado
				std::cout << std::endl << CYAN << "El estudiante ha sido borrado correctamente" << RESET << std::endl;
			}
		}	

		else{ //No existe el estudiante indicado por el usuario
			std::cout << std::endl << BIRED "Error: el estudiante "<< nombre << " " << apellidos << " no pertenece a la asignatura" << RESET;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0x5243
movq 0x5dd0(%rip), %rdi      # 0xafd0
callq 0x20d0
leaq 0x280c(%rip), %rsi      # 0x7a18
movq %rax, %rdi
callq 0x2160
leaq 0x2851(%rip), %rsi      # 0x7a6c
movq %rax, %rdi
callq 0x2160
leaq 0x2b75(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
addq $0xd8, %rsp
popq %rbx
popq %rbp
jmp 0x20d0
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0x20(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
leaq 0x25a7(%rip), %rsi      # 0x7811
leaq -0x90(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x20a0
leaq 0x2590(%rip), %rsi      # 0x7811
leaq -0x70(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x20a0
leaq -0xe0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x37fe
leaq -0x70(%rbp), %rdi
callq 0x2190
leaq -0x90(%rbp), %rdi
callq 0x2190
movq 0x5d09(%rip), %rdi      # 0xafd0
leaq 0x2742(%rip), %rsi      # 0x7a10
callq 0x2160
leaq 0x2964(%rip), %rsi      # 0x7c3e
movq %rax, %rdi
callq 0x2160
leaq 0x2ab6(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq 0x5cd0(%rip), %rdi      # 0xafd0
leaq 0x1d01(%rip), %rsi      # 0x7008
callq 0x2160
leaq 0x1d75(%rip), %rsi      # 0x7088
movq %rax, %rdi
callq 0x2160
leaq 0x2a7d(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
movq 0x5caf(%rip), %rdi      # 0xafe0
leaq -0x50(%rbp), %rsi
callq 0x2060
movq 0x5c8f(%rip), %rdi      # 0xafd0
leaq 0x1cc0(%rip), %rsi      # 0x7008
callq 0x2160
leaq 0x1d45(%rip), %rsi      # 0x7099
movq %rax, %rdi
callq 0x2160
leaq 0x2a3c(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
movq 0x5c6e(%rip), %rdi      # 0xafe0
leaq -0x30(%rbp), %rsi
callq 0x2060
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x20(%rax)
testb %al, %al
je 0x53e1
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x50(%rax)
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x20(%rax)
testb %al, %al
je 0x5443
movq 0x5c0f(%rip), %rdi      # 0xafd0
callq 0x20d0
leaq 0x264b(%rip), %rsi      # 0x7a18
movq %rax, %rdi
callq 0x2160
leaq 0x2adc(%rip), %rsi      # 0x7eb8
jmp 0x5465
movq 0x5be8(%rip), %rdi      # 0xafd0
callq 0x20d0
leaq 0x2b1e(%rip), %rsi      # 0x7f12
movq %rax, %rdi
callq 0x2160
leaq -0x50(%rbp), %rsi
movq %rax, %rdi
callq 0x2140
leaq 0x2401(%rip), %rsi      # 0x7810
movq %rax, %rdi
callq 0x2160
leaq -0x30(%rbp), %rsi
movq %rax, %rdi
callq 0x2140
leaq 0x2848(%rip), %rsi      # 0x7c72
movq %rax, %rdi
callq 0x2160
leaq 0x2966(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
jmp 0x5484
movq 0x5b86(%rip), %rdi      # 0xafd0
callq 0x20d0
leaq 0x25ed(%rip), %rsi      # 0x7a43
movq %rax, %rdi
callq 0x2160
leaq 0x2a81(%rip), %rsi      # 0x7ee6
movq %rax, %rdi
callq 0x2160
leaq 0x292b(%rip), %rsi      # 0x7d9f
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
leaq -0xe0(%rbp), %rdi
callq 0x3198
leaq -0x30(%rbp), %rdi
callq 0x2190
leaq -0x50(%rbp), %rdi
callq 0x2190
addq $0xd8, %rsp
popq %rbx
popq %rbp
retq
movq %rax, %rbx
jmp 0x54ef
jmp 0x54c1
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2190
jmp 0x54c9
movq %rax, %rbx
jmp 0x54e6
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x2190
jmp 0x54e6
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
callq 0x3198
leaq -0x30(%rbp), %rdi
callq 0x2190
leaq -0x50(%rbp), %rdi
callq 0x2190
movq %rbx, %rdi
callq 0x2230
movq %rax, %rdi
callq 0x3298