1.通过对出圈游戏程序的拓展进一步掌握使用组合的方法设计新类
成都创新互联公司专注于铁岭县企业网站建设,成都响应式网站建设公司,商城建设。铁岭县网站建设公司,为铁岭县等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务2. 通过编程练习掌握在不同的实现方法中,如何设计相应的构造函数和复制构造函数,进一步理解程序调用它们及析构函数的执行顺序
实验内容1.使用一个 Point 类产生 Line 类,同时要求给出使用模板实现程序
2.实现使用组合构成新类的出圈游戏
实验记录 cpp1.h#if !defined(cpp1_H)
#define cpp1_H
//声明game类
class game
{
private://私有类
int num;
char name[10];
public://公有类
int GetNum();
void DispName();
char * GetName();
void SetNum(int);
void SetName(char b[]);
};
#endif
cpp1.cpp#include#include"cpp1.h"//需要包含必要的头文件
using namespace std;
//定义类的成员函数
int game::GetNum()
{
return num;//返回属性num
}
void game::DispName()
{
cout<< name;//显示属性name
}
char* game::GetName()
{
return name;//返回属性name
}
void game::SetNum(int a)
{
num = a;//设置属性num
}
void game::SetName(char b[])
{
strcpy(name, b);//设置属性name
}
cpp2.h#if !defined(CPP531_H)
#define CPP2_H
#include"cpp1.h"
//声明Jose类
class Jose
{
private:
int Len;
int interval;
game * p;
public:
void Inital();
void Input();
void Joseph();
};
#endif
cpp2.cpp//按顺序包含所需头文件
#include//用到game类,必须包含cpp1.h
#include"cpp1.h"
#include"cpp2.h"
using namespace std;
//设置参与人数和间隔
void Jose::Inital()
{
cout<< "参加人数:";
cin >>Len;
cout<< "间隔数";
cin >>interval;
p = new game[Len];
}
//输入参加者名字
void Jose::Input()
{
cout<< "请准备输入游戏者名字"<< endl;
getchar();
char s[10];
for (int i = 0; i< Len; i++)
{
cout<< "第"<< i + 1<< "个人的名字:";
gets_s(s);
(p + i)->SetName(s);
(p + i)->SetNum(i + 1);
}
}
//求解
void Jose::Joseph()
{
int i = -1;
int j, k = 0;
for (k = 1; k<= Len; k++)
{
j = 0;
while (j< interval)
{
i++;
if (i == Len)
i = 0;
if ((p + i)->GetNum() != 0)
j++;
}
if (k == Len)
break;
(p + i)->DispName();
cout<< ",";
(p + i)->SetNum(0);
}
(p + i)->DispName();
cout<< endl;
}
main.cpp#include "cpp1.h"
#include "cpp2.h"
int main()
{
Jose A;
A.Inital();
A.Input();
A.Joseph();
}
编译运行后,键盘输入:参加人数:5
间隔数:3
请准备输入游戏者名字
第一个人的名字:张三
第二个人的名字:李四
第三个人的名字:李光明
第四个人的名字:张友亮
第五个人的名字:王光才
李光明,张三,王光才,李四,张友亮
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧