assignment 4 of Object Oriented Programming, Tsinghua University