本压缩包包含2018年由吉林大学提供的C++课程设计完整代码,适用于学习和参考,涵盖多个编程实践项目。
2018年软件学院C++课程设计的目的是:
1. 熟悉使用面向对象的方法以及掌握C++编程思想来完成系统的设计;
2. 锻炼学生在设计过程中建立清晰的类层次,应用继承与多态等面向对象的思想;
3. 通过本次课程设计加深对面向对象程序设计的理解,并熟练掌握和巩固C++语言的基本知识及语法规范。深刻体会面向对象编程思想,学会编写结构清晰、风格良好的C++代码,具备利用计算机编程解决综合性实际问题的初步能力。
题目要求模拟即时通信系统的设计与实现:
**一、背景描述**
基于社交的即时通讯是腾*公司的重要业务板块,包括QQ、微信和微博等服务。这些软件可以独立提供服务也可以互相联动整合形成统一立体化的社交平台。本次设计任务为该平台进行初步构架。
具体要求如下:
1. 用户基本信息:包含ID号码(如微信使用单独的ID但可与QQ绑定)、昵称、出生时间或T龄(注册时长)、所在地信息以及好友列表和群组名单。
2. 好友管理功能包括添加、修改、删除及查询等操作,可以查看不同微X之间共同的好友关系。例如微信能根据用户在其他平台上的社交网络来推荐联系人。
3. 群组管理:设定初始的固定群号,并允许加入或退出指定群;展示各类型群体的不同特性如QQ群支持临时讨论小组而微信群则不具备此功能,同时规定了不同的权限制度等规则。
4. 用户可以选择开通多个微X服务并进行相应的操作;
5. 登录机制,当某一个服务登录时其他已关联的服务将自动上线。
**二、技术层次要求**
1. 基本实现:完成上述所有基本需求的功能开发不限制具体的技术手段可以采用面向过程的方式来构建系统。
2. 对象导向设计:正确地划分类,并且使用对象思想来构造整个程序结构;
3. 抽象封装层面上,通过继承组合等方式提高代码的复用性同时保护好数据成员的安全性;
4. 完整支持多态功能并依据优秀的设计原则优化实现。
5. 高级扩展:提供简洁易懂的操作界面、持久化的I/O操作以及灵活可变的功能模块设计等。
**三、设计步骤**
1. 确定所需类及其相互关系,从实际需求中提炼出核心概念建立相应的数据模型;
2. 明确每个类的具体实现包括构造与析构函数的定义和成员方法的设计;
3. 细化各个类之间的关联以及它们内部的数据结构描述。
4. 设计系统的用户界面,并通过抽象接口来区分不同的功能模块。
**四、设计工具**
建议使用.net系列中的C++编译器,但不局限于此。同时请注意不要采用MFC和可视化开发技术进行本次课程作业的编写工作。
**五、提交内容与考核方式**
1. 在最后一天展示程序并接受提问。
2. 提交完整的项目报告以供检查评估(按时间顺序依次审查)。
**六、评分标准**
根据五个不同的设计层次来评定成绩。