chapter 6 exercise 6-4: another way to correct the code fragment given in exercise 6-3

This implementation can low the burden of allocating memory when the
container need to grow, whereas previous implementation is more flexible
chapter 6 exercise 6-6: merge analysis functions into one
chapter 6 exercise 6-7: category students by whether they did all their homework, through a function