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

四.具体功能实现

1. 球员和员工信息的查找和修改

由于球员/员工的属性都定义为私有变量,只能通过类的成员函数来获得 或修改。这部分函数的代码都很短小,为了提高程序的运行速度,将其声明为内联函数。这两个类的成员函数如下: Staff类 的 成 员 函 数 staff(); int GetAge(int n); int GetAbility(int n); //初始化员工信息 //修改或返回年龄 //修改或返回能力 int GetSalary(int n); //修改或返回年薪 char* GetName( ); // 返回名字 char* GetWork( ); // 返回工作俱乐部 void setStaff(int,int,int,char*,char*); // 给员工的信息赋值 void changeName(char *s); / /修改员工姓名 void changeWork(char* s); // 修改员工所在俱乐部 void DelInfo(); virtual void printInfo(); //删除员工信息 //打印员工信息 Player player( ){fee=kick=experience=0;} // 初始化球员信息 类 的 成 员 int GetFee(int n); //修改或返回转会费 int GetKick(int n); // 修改或返回进球数 int GetExperience(int n); //修改或返回服役年限 void setPlayer(char*,char*); // 新增球员 函 数 说明: (1) ·

void PanCuo(int,int,int*); // 用于对输入的判错 void printInfo(); / /打印球员信息 在C++中,在类的内部定义了函数体的函数都会被默认为 内联函数,这里省略了关键字incline。

以int GetAge(int n)为例,可以实现修改年龄和返回年龄两个功能。当传入参数为NOT(已定义为常量)时就简单地返回年龄;否则,修改年龄为n并返回新的年龄。

(2)

(3) 为提高程序的健壮性,在新置一个球员的信息的时候,调用void PanCuo(int,int,int*)来保证输入数据的正确性。

(4) 由于员工和球员的信息不完全相同,在staff类中定义了一个虚函数virtual void printInfo();用于打印员工的信息。在player类中有一个同名函数void printInfo();在调用的时候会自动覆盖基类的printInfo()函数,从而实现多态,打印出球员的信息。

2. 俱乐部的增删改查

俱乐部中的球员和员工都是用类的数组players[ ]和staffs[ ]来存的。

club类和boss类都是基类baseClub类的公有继承,有着相似的一些基本操作:查找其成员(员工或球员,返回其在数组中的下标),增删成员(员工或球员,此时要改变员工或球员的总数量)。成员函数如下:

base int findMember(char*,int); // 返回成员在数组中的下标 Club int GetSNum( ); // 返回员工数量 类 的 成 员 函 数 int GetPNum( ); / /返回球员数量 void changeSNum(int n); // 修改员工数量 void changePNum(int n); / /修改球员数量 void deleteMember(int,int); // 删除成员(员工或球员) void addPlayer(player,char*); // 增加球员 void addStaff(staff,char*); // 增加员工 int GetCash(int n); club char* GetName(){return name;} //修改或返回俱乐部资金 //返回俱乐部名称 类的 void renewName(char *); // 更改俱乐部的名字 成员 void setClub(playe[],staff[],int,int,int); // 更改俱乐部的信息 函数 Int transferMember(club*,char*,int); // 球员转会 void printMember(); // 打印俱乐部信息

(1) 查找成员(con用来表示对球员或员工的操作) (2) 增删成员

对于具体的俱乐部(club类)而言,还应该有修改俱乐部名和球员

转会,打印俱乐部信息等功能,具体实现如下。

3. 管理机构的具体功能

定义了一个boss类,其属性包括所有俱乐部(clubs[ ]),所有球员

(players[ ])和所有员工(staffs[ ])。有了以上的一些基本操作,该管理程序的所有功能都可以通过调用boss类的成员函数或者其属性的成员函数来实现。boss类的成员如下: boss(); //初始化全部俱乐部 void printInfo(); //打印一些基本信息 int findClub(char*); //返回俱乐部所在下标 void changeClub(); / /更改俱乐部信息 int dealOrder(char*,int [],int [],int*); //处理字符串输入 void searchPlayer(); //查询球员 void searchClub(); //查询俱乐部 void transferMember(char*,char*,char*,int); //球员转会

由于第一版本为试用版,是用来验证程序功能的正确性的。为了减

少用户每次打开程序都需要手动输入球员和俱乐部信息的繁琐性,我在boss类的构造函数中自动生成了一些数据,使得程序一开始运行时便已有一定的俱乐部,球员和员工信息。

该管理程序的功能可大致分为五类: