东方欲晓, 莫道君行早
尽早开始课设的设计总比到最后临时抱佛脚强
希望学弟学妹们不要直接使用此项目的代码作为自己的成果
- 使用 Qt 打开此项目的
cpp_name.pro
- 随便选一个构建套件, 然后点击
Configure Project
按钮 (推荐使用MinGW 11.2.0 64-bit
,因为 ExTNT 使用的此套件) - 按下
Ctrl + B
, 然后按下Crtl + R
- 恭喜你, 现在项目开始运行了
如果你不会安装 Qt 和构建套件, 请前往 README 的最后看看如何安装 Qt
如果题目差不多一致, 请放心使用此项目 (大概率是祖传项目)
- 熟悉利用面向对象的方法以及 C++的编程思想来完成系统的设计;
- 锻炼学生在设计的过程中,建立清晰的类层次,应用继承和多态等面向对象的编程思想;
- 通过本课程设计,加深对面向对象程序设计课程所学知识的理解,熟练掌握和巩固 C++语言的基本知识和语法规范,深刻体会面向对象的编程思想,掌握使用面向对象程序设计语言 C++,学会编写结构清晰、风格良好的 C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
-
基于社交的即时通信是腾X公司的主要业务,先后有 QQ、微信、微博等服务,可能还将继续推出微商、微唱、微走、微笑等产品。这些软件既可以独立提供服务,又互相辉映关联。腾X公司希望对各系统进行整合,形成统一的立体社交软件平台。现请完成该平台的设计并实现。要求如下:
- 用户基本信息:
- 号码 ID,昵称,出生时间,T 龄(号码申请时间)、所在地、好友列表、群列表。
- 微博与 QQ 共享 ID,微信采用独立 ID,但是可以与 QQ 号码绑定对应。其他微 X 产品也分为这两种情况。
- 好友管理
- 实现各功能好友信息的添加、修改、删除、查询的功能。
- 可以查询微 X 之间各自共同好友。如微信可以添加 QQ 推荐好友。
- 群管理
- 设定每个微 X 功能已有 1001、1002、1003、1004、1005、1006 等群号。
- 加入群、退出群、挨 T、查询群成员等。
- 不同微 X 之间群的理念不同,比如:QQ 群可以申请加入,而微信群则只能推荐加入;QQ 群允许设置临时讨论组(子群),微信群则不允许;QQ 群有以群主为核心的管理员制度,而微信群仅有群主为特权账号。
- 开通管理
- 用户可以选择自己开通该平台的 N 个微 X 服务。
- 登录管理
- 各微 X 之间只要有一个服务登录,则其它服务简单确认后视为自动登录。
- 功能展示要求(main 函数)
- 设计约定。开通服务情况、群成员信息和好友信息可以预先保存到文件中,在系统启动时将这些信息加载到内存中;
- 一个服务登录后,本人开通的其它所有服务均进入开通状态。
- 服务之间可以依据本人开通的任意另外一个服务的好友添加好友。
- 展示一个服务当前群的特色功能;在群成员数据不受伤害的前提下,动态变换为其他类型群的管理特色。
- 实现 QQ 的点对点的 TCP 通信的收发功能。(选做)提示:
- 需要加载 ws2_32.lib 静态库,打开头文件 winsock.h。
- 百度 IP 地址、端口等概念;
- 百度 socket 编程,关注 bind、listen、accept、connect、send、receive 等函数用法。
- 用户基本信息:
-
技术层次要求及说明
- 基本层次。
- 完成上述功能要求,所采用技术不限,比如采用纯面向过程思想实现;
- 支持对象层次。
- 正确完成了类的切割,利用对象技术实现。
- 容器类主要包括:例如,微 X 成员管理。
- 其它主要类包括:例如,微 X 信息、群信息、好友信息。
- 正确完成了类的切割,利用对象技术实现。
- 抽象、封装层次
- 采用了继承或者组合实现复用,对数据成员提供了必要的接口保护;
- 抽象出了基础类,并被其它功能复用;
- 如好友维护、群信息维护等操作均应该提供接口形式;
- 采用了继承或者组合实现复用,对数据成员提供了必要的接口保护;
- 面向对象层次
- 支持多态功能,支持依据设计原则的优化。
- 好友管理、群管理等;
- 优化提高层次
- 提供简便菜单,以 1、2 等数字区分几类功能,并允许返回菜单;
- I/O 操作支持。基本功能中,已有设定信息,在初始化时候可以固化在程序代码中,也可以存放在文件中,每次容器实例化时读入,析构时写回文件中,以实现断电保存。
- 可扩展性支持,需要考虑群、好友等与主要服务之间的关系;
- 灵活性支持。群的管理模式动态可变;
- 程序有必要的注释;(暂时还没写注释, 以后可能会考虑写)
- 可以采用 UML 工具画出简单类图
- 为防止不诚信行为,要求类的设计均以独立文件存在,且所有的类名称后面应有自己的姓名缩写,如张三设计的 QQ 信息类名称:TencentZhS。 (如果直接使用此项目的代码, 记得改成自己名字简写, 把所有文件中的
*_name
改成自己的简写, 不要改文件名!!!)
- 基本层次。
-
设计步骤(参考):
- 在清楚上述系统功能要处理是什么的基础上,考虑用如下方式来设计
- 确定所需的类及其相互间的关系。
- 要从问题中归纳出一个概念或实体,从这些概念或实体出发建立相应的类。
- 尽量使类小而简单,以使其看起来容易理解。
- 充分利用封装以增加类的可靠性,以便使用时保证更加可靠。
- 通过继承建立类族,以方便使用多态性。
- 确定每个类的实现。
- 考虑类的对象应该如何构造和析构。
- 综合考虑各个类在命名和功能方面有哪些共性。
- 细化有关的类,描述他们之间的相互关系,即类关系和对象关系。
- 描述本系统的界面,通过分别定义成员的不同属性,为抽象和实现提供分离的接口。
-
设计工具
- 设计工具:建议使用.net 系列中的 C++ 编译器,但不局限于此
- 不提倡使用 MFC 和可视化开发技术
-
设计报告
- (报告的具体格式附后)
(README 就不考虑加入报告格式了)
- 考核方式
- 在设计结束前的最后一天检查程序并接受质疑
- 检查程序前须提交设计报告(按提交报告的先后顺序检查程序)
- 考核标准
- 参照 5 个技术层次划分
- 课程设计后作业(不考核)
- 引入可视化设计,在本课程设计基础上实现可视化 QQ 即时通信功能,包括: 多人聊天;聊天记录查询。需要涉及知识如下:
- 网络通信编程
- 可视化编程
- 多线程编程
- 数据库编程
如果一直卡在下载, 请考虑挂载清华源, 中科院源, 腾讯源等镜像; 具体步骤请自行百度 (^-^)
- 打开电脑
- 打开浏览器
- 打开链接 Qt | 软件开发全周期的各阶段工具
- 点击右上角的
Download. Try.
按钮 - 点击右侧中上部的
选择开源版 >
- 向下滚动网页找到一个绿色矩形框, 标题为
Looking for Qt Binaries?
- 点击该框下的
Download the Qt Online Installer
- 点击
Windows x64
- 点击
Qt Online Installer for Windows(x64)
- 如果弹出 "可能损害您的设备, 是否保留", 请选择保留 (Qt 没有病毒, 请放心下载)
- 点击
打开文件
- 如果没有 Qt 账户, 请点击注册, 如果有请自行输入账号密码
- 点击
下一步
- 勾选
我已阅读并同意使用开源Qt的基本条款和条件
和我是个人用户, 我不为任何公司使用Qt
- 点击
下一步
- 点击
下一步
- 勾选
Disable sending pseudontmous usage statistics in Qt Creator
- 点击
下一步
- 点击
浏览
, 选择一个文件夹作为 Qt 安装目录 (尽量不要选择 C 盘作为安装目录) - 点击
下一步
- 点击
Qt
- 点击
Qt 6.5.3
前的 横向绿色三角 (其他版本也许也行, 但 ExTNT 使用的是此版本) - 点击
MinGW 11.2.0 64-bit
- 点击
Build Tools
(此按钮不在 Qt 目录下, 和 Qt 属于同一级目录) - 点击
MinGW 11.2.0 64-bit
- 点击
OpenSSL 3.0.15 Toolkit
(或许版本不一样, 但肯定是这个东西) - 点击
Qt Creator
(此按钮不在 Build Tools 目录下, 和 Build Tools 属于同一级目录) - 点击
Debug Symbols
- 点击
Plugin Development
- 点击
下一步
- 勾选
I have read and agree to the terms contained in the lincese agreements
- 点击
下一步
- 后面不用教了, 无脑下一步