3.3 完整的代码