- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业题目2014
作业题目1:(起评分18分)
编制一个图形化的列表程序,具体要求如下:
以双向链表为数据模型,分别将链表的结点和链表本身定义为两个C++类,类名分别为CNode、CList。
一般结点的图形显示结果如下:
头结点显示如下:
尾结点显示如下:
当前结点显示如下:
整个链表显示结构如下:
链表应完成下列操作:
插入、追加、删除结点
选中某结点成为当前结点
结点可以拖拽
链表双向遍历
通过对话框修改某结点的数据域
程序结果要求:
采用MDI方式
对链表的操作通过菜单完成
结点和链表的串行化处理
多视图更新
汉诺塔(Towers of Hanoi)问题(起评分18分)
汉诺塔(Towers of Hanoi)问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔,其上有64个金碟。所有碟子按从大到小的次序从塔底堆放至塔顶。紧挨着这座塔有另外两个钻石宝塔。从世界创始之日起,婆罗门的牧师们就一直在试图把塔1上的碟子移动到塔2上去,其间借助于塔3的帮助。由于碟子非常重,因此,每次只能移动一个碟子。另外,任何时候都不能把一个碟子放在比它小的碟子上面。按照这个传说,当牧师们完成他们的任务之后,世界末日也就到了。
图1-1
问题:
1、已知有三个塔(1、2、3)和n个从大到小的金碟子,初始状态时n个碟子按从大到小的次序从塔1的底部堆放至顶部。
2、要求把碟子都移动到塔2(按从大到小的次序从塔2的底部堆放至顶部)。
3、每次移动一个碟子。
4、任何时候、任何一个塔上都不能把大碟子放到小碟子的上面。
5、可以借助塔3。
作业要求:
1、在窗口中画出初始时塔和碟子的状态。
2、可以以自动或手动两种方式搬移碟子。
3、自动搬移可以通过定时器或多线程的方法,每一次移动的时间间隔可以自定,以人眼观察比较舒服为宜,每一次的移动过程如能实现动画最好。
4、定义塔的描述类和碟子的描述类。
5、在程序中,碟子的数目及每次移动的时间间隔可以通过对话框设置(也应该有默认值)。
6、支持暂停功和继续的功能(在自动搬移过程中可以暂停,并继续)。
7、暂停后,可以将当前的状态保存(碟子和塔的组合关系)。
8、可以从7中保存的文件中读出某个状态,并继续移动。
聊天系统(起评分20分)
创建一个聊天系统,该系统由服务器程序和客户端程序两部分构成。其简单的工作原理如下图所示。当服务器程序运行时,首先启动一个监听器,负责监听服务器的某个端口,当客户端要进行聊天时,首先要对服务器的特定端口进行连接请求,即客户端试图连接服务器被监听的端口时,服务器的监听器可以选择接受或拒绝连接请求。如果接受客户端的连接请求,则由监听器为客户端分配一个对应的“套接字”对象,这样在服务器和某个客户端之间就建立了一条数据管道,可以聊天了。
本聊天室主要采用Socket(套接字)编写,套接字可以支持TCP和UDP协议。
图1 聊天室工作原理图
图2 聊天室服务器启动界面
图3 聊天室服务器主界面
图4 聊天室客户端主界面
图5 客户端连接服务器主界面
除实现上述基本聊天功能外,还要求:
在服务器端可以将客户登陆、退出及在线时间等情况记录并保存。
服务器和客户端都可以将聊天记录保存。
附加功能:可以在客户端和服务器端传送文件,支持视频功能。
开关盒布线问题(起评分22分)
给定一个矩形布线区域,其外围有若干针脚。两个针脚之间通过布设一条金属线路而实现互连。这条线路被称为电线,被限制在矩形区域内。如果两条电线发生交叉,则会发生电流短路。所以,不允许电线间的交叉。每对互连的针脚被称为网组。我们的目标是要确定对于给定的网组,能否合理地布设电线以使其不发生交叉。图11a给出了一个布线的例子,其中有八个针脚和四个网组。四个网组分别是(1,4),(2,3),(5,6)和(7,8)。图11b给出的布线方案有交叉现象发生((1,4)和(2,3)之间),而图11c则没有交叉现象发生。由于四个网组可以通过合理安排而不发生交叉,因此可称其为可布线开关盒(routable switch box)。(在具体实现时,还需要在两个相邻的电线间留出一定的间隔。我们要解决的问题是,给定一个开关盒布线实例,确定它是不是一个可布线的。
图11 开关盒布线原理图
作业要求:
1、画出给定矩形布线区域(包括需要连同的线网组),针脚和线网组在数据库中存放,通过数据库接口读出。
2、在自动布线的每一步,用图形标示其状态。
3、自动布线的过程可以通过定时器或多线程的方法,每一次布线的时间间隔可以自定,以人眼观察比较舒服为宜,每一次的布线过程如能实现动画最好。
4、如需要,请定义相关的描述类。
5、在程序中,请使用对话框设定需要的各种参数。
6、布线完成后,请将结果存入数据库中。
7、统计
原创力文档


文档评论(0)