在第一版的基础上做了改进,规范了编码和命名以及注释。添加了一些函数