前5题是5选3,后5题不作要求
使用 C++ (VC6、VS2003、VS2005、GCC4.1.2、GCC3.2.2)或java(JDK1.6.0)两种语言,题目如下:
1.编写一个简单的2人点对点聊天工具,一方利用IP地址和端口连接另一方,可以相互发送文本信息。
2.编写一个用于局域网(同一子网)的、没有服务器的、可以多人同时聊天的程序,可以给某个人或者全部人发送文本信息。
3.编写一个可以计算四则运算(包含括号)程序,比如输入字符串" 1 + 2 * 3 / ( 4 - 5)" ,输出的结果为" -5" 。
4.模拟一个生产者、消费者问题,自己实现一个支持多线程、有上限的队列,附带测试代码。
5.编写一个GUI程序。在一个一定长、宽的区域内,随机分布有一定数量的矩形(边与区域的边平行,并且一定在区域内),当鼠标在该区域内任意一点按下左键,找到所有矩形中,某个边到该点的距离最近的那个矩形,并相对其他矩形特殊的显示出来。
对下列问题,如果不感兴趣,可以略过;如果感兴趣,可以选择性的对一个或者多个问题发表一下自己的认识,看法等等,不要说如何求解。
1.从前有三座塔,分别命名为X、Y、Z。其中在Z这座塔上,有个一定数量个盘子,比如N个,每个盘子的直径都不相同,并且按自下往上、从大到小排列。现在想把Z塔上的盘子都移动到X塔上,并且移动之后,X塔上盘子的顺序和Z原来的顺序是一样的。在移动过程中,每次只能移动一个盘子;Y也可以放盘子,但是盘子无论放在哪座塔上,盘子必须按自下往上、从大到小排列。