金旭亮老师课程《面向对象软件开发实践之基本技能训练》第二章作业

作业题目:

1

我们都用过QQ或微信等即时通讯工具与好友聊天。现在要求你写一个“仿真”程序,模拟实现QQ或微信的“一对一”聊天功能。真正的仿真程序,需要使用多线程及网络编程技术,过于复杂,为此,特对需求进行简化,仅要求实现一个“单进程版”的示例程序就行了:

  • 程序运行时,可以显示多个窗体,每个窗体代表一个用户。

  • 窗体上有一个在线用户列表,可以从中选择一个作为信息的接收方,接着,用户在文本框中输入内容,发送之后,对方收到消息。

一个参考示例如下:


图所示为主控程序,可以随时创建一个新用户,新用户姓名将显示在“在线用户”列表中,同时,代表用户的聊天窗口显示在屏幕上。

注意:不能创建同名的用户。

用户聊天窗体如下所示:


在上图中,下拉框中看到所有在线用户的列表(应该排除掉自己),从中选择一个之后(比如选择“张三”),在下面的文本框中输入消息,点击“发送”,则此条消息将出现在“张三”窗体的“历史聊天记录”列表中。

类似地,张三发给李四的信息,将显示在李四窗体下部的历史聊天记录中。

注意:不能给自己发消息,也不能发空消息

以上仅为参考设计,并不需要一定照着这个样子来,你可以设计更为完善的界面。


  • 程序退出时能保存在线用户列表,当重新启动程序时,主控程序自动装入上次用户列表并在屏幕上显示相应的用户窗体。

  • 程序能保存特定用户的聊天记录,当重新显示这个用户的聊天窗体时,能自动装入用户的聊天记录。


请提交可以在Visual Studio 2013中编译通过的项目源码,配上一个文档,简要说明你的程序中的设计方案和技术要点,特别地,要突出你做到“最棒”和“最酷”的地方,吸引判分的同学给你高分。


现遇到问题:

在这个作业中我现在遇到一个问题从早上到现在还没解决!我是想达到这样的效果:当主窗体点创建用户后,用户窗体的选择聊天用户的combobox实时更新并且在下拉框中不能有当前用户的名的。但我现在每个用户的下拉框都一样,我在里面加了判断,但不知道哪出错了,调试了半天不知道怎么解决。


其他问题:当每点击按钮的时候会对绑定过的窗体再一次对事件进行绑定,这样用户窗体绑定的那个方法就会在第N次点击后执行N-1次,但怎么解决我没找到方案,求帮助


源码在附件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象开发实践之路——Delphi版》光盘说明-、光盘用途 本光盘为《面向对象开发实践之路——Delphi版》一书的配套光盘,供读者阅读图书时参考和学习。二、光盘内容 光盘包含了本书所有例子的源代码、博文视点宣传页、博文视点简介以及读者调查表电子文档。 本书例子源代码按章节存放,共计15个章节。光盘目录结构如下:光盘根目录│├─读者调查表.doc // 是本书末尾所附读者调查表的电子版文件。│ // 欢迎您填写好读者调查表电子文档并发送到yeka@csdn.net,│ // 博文视点热切期待您的反馈信息!├─README.txt├─点击博文视点.doc├─博文视点图书宣传页.doc├─Chap03 // 第3章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap04           // 第4章源代码│ ├─Checkout│ ├─Model│ ├─ModelSupport│ ├─test          // 单元测试代码  │ │ └─ModelSupport│ └─Test1          // 单元测试代码│ └─ModelSupport├─Chap05           // 第5章源代码│ ├─ModelSupport│ └─test          // 单元测试代码 │ └─ModelSupport├─Chap06           // 第6章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap07           // 第7章源代码│ └─ModelSupport├─Chap08           // 第8章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap09           // 第9章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap10           // 第10章源代码│ ├─lbPFMCandidate│ │ └─ModelSupport│ ├─Output│ ├─pkPFMCandidate│ ├─pkPFMConfigurations│ ├─pkPFMExceptions│ │ └─ModelSupport│ ├─pkPFMFinders│ │ └─Test1│ ├─pkPFMHandlers│ ├─pkPFMKernels│ └─Test // 单元测试代码│ └─ModelSupport├─Chap11            // 第11章源代码│ ├─Configs│ ├─Handlers│ └─ModelSupport├─Chap12            // 第12章源代码│ ├─Configs│ ├─ModelSupport│ └─New │ ├─Configs│ └─ModelSupport└─Chap13            // 第13章源代码 ├─bin │ └─Debug ├─Model └─ModelSupport三、运行环境 本书的所有源代码均在Windows xp/2000/2003 + Delphi 2005 +DUnit下调试通过。 所有程序为Delphi 2005编写,因此建议您能够配置如下运行环境:  操作系统  Windows XP/2000/2003 软件    Delphi 2005+DUnit 四、使用方法 .dpr 的文件 请用Delphi 2005打开项目 .xml 的文件 请用任何文本编辑器打开 .exe 的文件 请自行安装使用五、防病毒 本光盘所有文件都已经过Norton Antivirus扫描,未发现有任何已知病毒。六、风险 读者须对使用光盘所附代码、文件所造成的一切后果负责。 七、如果对代码有任何疑问、建议或者发现有遗漏、错误之处请与http://liwei.csdn.net, gli@borland.com联系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值