- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最新精品文档,知识共享!
实验题目 邮箱问题
学生姓名 郭雪飞
学生学号 201526811007
学生班级 计自1501
任课教师 刘端阳
提交日期 2016-10-09
计算机科学与技术学院
实验题目
有一天晚上,邮差Peter感到十分无聊,为了打破夜班的单调,他使用邮局中的一行邮箱进行以下实验。这些邮箱被从1~150进行了编号,然后从邮箱2开始,他打开的所有编号为偶数的邮箱的门,而保持其他邮箱的们关着。接着,从邮箱3开始,每隔3个邮箱,如果这个邮箱的门是关着的他就打开这个邮箱的门,而如果门是开着的,他就关上门。然后他每隔4个邮箱重复这个过程,再每隔5个邮箱重复这个过程,如此下去。当结束时,他被关着的邮箱的分布所惊讶了。编写一个程序来判断哪些邮箱是关着的。
设计思路
首先建立了一个结构体box,当中有两部分data和next指针,data用来储存数值,0代表关闭,1代表打开状态,然后在类Box中进行操作。Box类中公有成员含有build()函数,work()函数,show()函数,私有成员含有箱子总数n,循环控制量i、j结构体指针A、B。
函数build()用来建立一个box的链表含有n个小空间,每个小空间代表一个邮箱的情况。函数work()用两重循环对box进行操作,函数show()用来输出关闭的箱子的序号,最后析构函数用来释放动态空间。
代码实现
////////////头文件
#include<iostream>
using namespace std;
struct box{
int data;//储存数值,1代表邮箱开,0代表邮箱关闭
struct box *next;//指针
};
class Box{
public:
Box(){n=0;i=0;j=0;}
void build();//建立一个箱子链
void show();//输出关闭箱子的编号
void work();//对箱子进行操作
~Box();//析构函数释放空间
private:
int n;//总箱子数
int i;//控制循环
int j;//控制循环
box * A;//结构体指针
box * B;//结构体指针
};
void Box::build()
{
cout<<"请输入邮箱个数:";
cin>>n;
A=B=new box;
for(i=1;i<n;i++)//用n个box小空间串出一个链表
{ B->data=0;//0表示邮箱的关闭状态
B->next=new box;
B=B->next;
}
}
void Box::show()
{ cout<<"关闭的邮箱编号:"<<endl;
B=A;
for(i=1;i<n;i++)//将链表走一遍
{if(B->data==0)//通过data数值判断邮箱处于关闭还是打开状态
cout<<i<<endl;
B=B->next;
}
}
void Box::work()
{ for(i=2;i<=n;i++)//外层循环表示每i个邮箱的操作
{ B=A;
for(j=1;j<=n;j++)//走链表,并进行操作
{ if(j%i==0)//判断这个数是i的倍数
{if(B->data==0)B->data=1;
else B->data=0;
}
B=B->next;
}
}
}
Box::~Box()//析构函数释放空间
{
for(i=0;i<n;i++)
{ B=A->next;
delete A;
A=B;
}
}////////////////////////main函数
#include "pointer.hpp"
#include <iostream>
using namespace std;
int main()
{
Box A;//建立一个Box类的对象
A.build();//建立一个链表
A.work();//对链表进行操作
A.show();//展示结果
return 0;
}
程序运行结果
1亿VIP精品文档
相关文档
最近下载
- 最新国际标准ASME B1.1【2003】Unified Inch Screw Threads, (un And Unr Thread Form).pdf
- 关于进一步明确森林、草原、湿地调查监测工作中林地地类认定_文件解读.pdf
- 食物中毒事故标本和样品采集.doc
- 高中体育信息技术与学科教学融合教学案例3.docx
- 2023年四川省南充市中考数学真题含参考答案及评分标准.pdf
- 2022款上汽大众凌渡L_汽车使用手册用户操作图示图解详解驾驶指南车主车辆说明书电子版.pdf
- 欧洲心包填塞治疗及评分指南主要内容(1).pdf
- 超星学习通 剑指CET-6:大学生英语能力进阶尔雅网课答案.pdf
- 全国咨询工程师(投资)继续教育讲义建设征地和移民安置(姚玉琴).docx VIP
- 呼吸顺畅,护佑肺健康.pptx
文档评论(0)