| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1053 人关注过本帖
标题:紧急!!!!!!!!
只看楼主 加入收藏
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
 问题点数:0 回复次数:7 
紧急!!!!!!!!
Josephus问题解
[基本要求]
有1至 N编号的N 个人按顺时针方向围坐一圈,每人持有一个密码(正整数),一开始以正整数m作为报数上限值,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的报数上限值,从他的顺时针方向上的下一个人开始重新报数,如此下去,直至所有的人全部出列为止,要求产生记录出列顺序的表。如N = 7,每个人的密码依次是:3,1,7,2,4,8,4,m的值为20,则出列顺序为6,1,4,7,2,3,5。所有人用一个循环单链表表示,表中每个结点代表一个人,按出列次序依次将结点从循环单链表中删除,并按顺序存放在一个单链表中,链表的每个结点包括三个字段:code代表密码,no代表人的编号,link是指向下一个结点的指针。在主函数中,用堆分配的方法建立Josephus对象。循环展开对问题的求解。
[思考问题]
该题目定义结点类Node和链表类LinkedList,如何体现友元函数、友元类的特点和使用方法?
在n个人的Josephus问题中,如果事先知道每个人的密码,求处于哪个位置,获胜的概率最大?


搜索更多相关主题的帖子: 所有人 顺时针 正整数 密码 
2005-07-07 22:19
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
(2) 模拟栈操作
[基本要求]
设计一个整数链表类,满足栈操作。即,总在链首插入结点,总在链表首取出(删除)结点。类中需有记录结点个数的数据成员。如果链表为空,而要做取出结点操作,则类必须给出错误信息。编制应用程序,取100次随机数(范围在10∽200内),每取到比前一个随机数大时,放入链表中,否则,略去。然后逐个取出,求其和。用堆分配方法逐个产生满足条件的结点,插入链表中。每当从链表中取出一个结点时,要及时将结点删除。求和工作不要在链表类中完成,以使该链表具有通用性。
[思考问题]
能否修改程序使之适用于字符栈,双精度数栈等。复杂吗?

2005-07-07 22:19
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
类的继承与模板
(1) 再求Josephus问题解(采用已有类模板的方法)
[基本要求]
1.使用容器类库中的单向链表类(在classliblistimp.h中),继承之,建立该对象;
2.使用上述类的迭代算子类,继承之,并进一步实现为环型连接,建立对象;
3.编写应用程序,求Josephus问题之解。
[思考问题]
1.如果用双向链表类(在classliblistimp.h中)和其迭代算子类,如何实现环型链表,并解决Josephus问题
2.试用另一种方法,设计一个结点类,它继承链表类,或者链表类作为结点类的一个公共数据成员类,同样借助于链表类的友元,可以模拟一个环链。编程解决Josephus问题。
3.综合前面几个求Josephus问题解的实验,掌握面向对象程序设计的方法,总结面向过程与面向对象程序设计方法各自的特点。
2005-07-07 22:19
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
(2) 再模拟栈操作(采用自定义类模板的方法)
[基本要求]
1.将上面为模拟栈而定义的整数链表类改为模板类(由class T取代int);
2.主函数中实例化栈时取整数类型,如上求100个随机整数的和;
3.主函数中实例化栈时取浮点类型double,如上求100个随机浮点数的和;
4.主函数中实例化栈时取字符类型,生成100个随机整数(0--256)作为ASCII码,对应成字符放入栈中,并统计100个字符中有几个英文字母、几个数字和几个不可见字符。
[思考问题]
1.和上一题相比,使程序适用于字符栈,双精度数栈时复杂吗?为什么?
2.可以从ATL中继承模拟栈类么?为什么?
3.自定义模板类和继承已有ATL类各有什么特点?总结自定义模板类和继承已有ATL类的异同。
2005-07-07 22:20
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
将数据存入文件
[基本要求]
1.从0~255,其中10进制,8进制,16进制的表示形式(数与数之间相隔5个字符),一一输出到文件myfile1.dat中。用#include<fstream.h>头文件以使用ofstream类,用#include<iomanip.h>以用输出宽度设置setw()成员函数。
2.将下列格式化的数据输出到文件myfile2.dat中。
名字 年龄 所开课程 课时津贴
张明丽 29 数据结构                                   55.48
李楷楷 27            面向对象程序设计                   61.77
钟静 41 操作系统 128.45
建立数据结构
struct
{   char name[10];
     int age;
     char course[20];
     float salary;
 } employees[3];
输出的例子如下:
ofstream out(“myfile2.dat”);
out << setiosflags(ios::left) << setw(10) << employees[0].name;
out << setw(8) << employees[0].age;<p>out << setw(20) << employees[0].course;
out << setiosflags(ios::right|ios::showpoint|ios::fixed);
out << setprecision(2) << setw(8) << employees[0].salary << endl;
[思考问题]
1.如果文件打开时,出错怎么办?
2.要读取这个文件,应该怎么做?
3.如果employees结构数组是一个包含自己的输出处理成员函数的类,例如:
class Employee
{
    public:
     
    ostream& operator<<(ostream& out, const Employee& e)
      {
           out<<setiosflags(ios::left)
<<set(10)<<employees[0].name
<<set(8)<<empoyees[0].age
<<set(20)<<employees[0].ssan
<<setprecision(2)
<<setw(8)<<employees[0].salary<<endl;
           return out;
          }
}
那么,你原先的程序将怎么样?
2005-07-07 22:20
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
(2)给每行加行号
[基本要求]
用ifstream类定义一个文件名为myfile3.dat的流文件对象,定义一个长度为256的字符数组缓冲区,用成员函数getline()来循环获得每一行,加上行号后输出到标准设备上,直至碰到文件尾标志EOF。
[思考问题]
1.如果要输出到另一个文件myfile4.dat,用重定向方法,则如何操作?
2.如果要输出到另一个文件myfile4.dat,不用重定向方法,如何操作?
3.如果要输出到另一个文件,文件名由输入命令行参数时确定,如何操作?
4.如果要输出追加到文件myfile4.dat,分别用重定向和不用重定向两种方法实现之。

2005-07-07 22:21
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
(3)输出各种货币
[基本要求]
定义一个Currency类,派生出人民币类、日元类、港币类。三个派生类的输出格式各不相同(display()成员函数的实现不同)。编制应用程序,分别输出这三个类所创建的对象之币值输出。
[思考问题]
1.如何重载定义插入运算符(<<),使所编制的应用程序可以进行不同类对象的“cout<<”输出?
2.如果专门设计一个函数来输出各种类对象的币值,则应如何实现?
2005-07-07 22:21
学血
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-7-7
收藏
得分:0 
大家帮帮忙吧!
我真的不懂~
急求!!!
谢谢大家了!!!!!
2005-07-07 22:22
快速回复:紧急!!!!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012762 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved