北邮C++大作业-足球俱乐部实验报告(三个版本齐全) 下载本文

查 找 俱 乐 部 经检验 结果正确 经检验 买卖 球员 结果正确 经检验 结果正确 经检验 更改解散俱乐部 添球员转会 俱乐部更名 经检验 结果正确 经检验 结果正确 结果正确 经检验 结果正确 俱乐部信加球员 新增球员 经检验 结果正确 经检验 结果正确 息 删除 球员

第二版本(专业版)

一.实验描述

在第一版本的基础,增加了文件存储和高级搜索的功能: 文件存取功能:程序启动的时候会自动从”clubs.txt”文件中 读取所有的俱乐部信息(其中包括所有的球员和员工信息),在对俱乐部信息进行更改后会自动更新文件存储的信息。

高级搜索功能: 在对球员的各项属性进行条件搜索的时候,增加了以下

几种搜索方式(表达式支持 &&、||、!、括号、<、=、>):

? 支持球员信息的“||”查找,例如:“年龄不大于25且服役年限大于

5年,或者进球数大于100的球员”,其查询表达式为: ( !(@age>25) && @experience>5) || @kick>100

? 可以通过球员所在俱乐部进行查找,例如:“属于俱乐部A、B的所

有球员”,其查询表达式:@club=A || @club=B

? 可以对球员的姓名进行模糊查找,例如:“名字中含有abc的所有球

员”,查询表达式:@name~abc

为了方便,我对第一版本中的对球员信息和足球俱乐部信息的查找进行 了优化,原本输入球员姓名查找的现在可以进行模糊查询,原本输入俱乐部名称进行查找的现在也可以进行模糊查询,并且支持同时查看多个俱乐部,改动如:

其中每个俱乐部是分开查询的,一个名字输入错误不影响另外一个的查找。

二.改进功能的实现 1. 文件存取功能

(1) 文件格式

(2) 文件的读取

从文件中获得所有俱乐部的信息就是对boss类的所有数据的初始化,因 此可以在boss类的构造函数里调用相应的成员函数int boss::readFile()来实现该功能。具体实现: