面向对象程序设计与实践
(C++)2
BY 银 论坛
程序说明书
日期: 2016.09
题目一
1. 一题题目以及需求分析
设计一个论坛—“by 银”论坛,作为校内学生和老师们的交流平台。
要求如下:
使用面向对象的方法(继承+多态)实现论坛的基本功能。
系统面向两类用户:普通用户 和 管理员。
普通用户和管理员可以使用自己的用户名和密码登录系统,都可以执行注销操作。
论坛有多个版块组成,版块可由程序默认指定,每个版块下有对应的帖子。
管理员进入系统后可以进行的操作有:
1. 查看操作:查看论坛当前已有的板块及各板块下的帖子
2. 任命和撤销版主功能:管理员可以任命和撤销某一版块的版主
普通用户可以被管理员任命为版主
普通用户可以进行的操作有:
1. 发帖:用户可以选择在某一板块下发帖
2. 评论:用户可以在某一帖子下评论
3. 查看:查看论坛当前已有的板块及各板块下的帖子
被任命为版主的用户可以进行的操作有:
1. 可以进行普通用户的一切操作
2. 删帖:删除其管理版块下的某一帖子
帖子需要有标题和回答两部分,每个帖子必须要唯一对应一个板块。
有基类 User 类,User 类使用抽象类的方式实现,属性如下:id、userName、password
等属性(其他属性可根据需求自己定义)
有如下操作(根据需要可用纯虚函数或虚函数实现):
1. 查看用户个人信息:查看自己的基本信息
2. 查看版块下帖子列表:获取某一版块下的帖子的列表
3. 系统登录
4. 系统注销
User 子类有普通用户类和管理员类,普通用户类子类有版主类,普通用户类和版主类
的删帖功能可以根据需求使用虚函数实现
有 comment 类即评论,有属性:content、time 等(其他属性可根据需求自己定义)。
有 post 类即帖子,有属性:id、title、content、time 和 comments 等(其他属性可根
据需求自己定义)。
注意事项:
本题主要考察对 C++面向对象特性的掌握,本题需体现继承、虚函数、纯虚函数、
抽象类及容器等概念的使用;
所有用户信息,帖子信息,版块信息,不强行要求以文本形式存储,可在程序内部
自行定义;
不强求关闭程序时存储程序内数据状态,即重启程序后一切可以重置;
必须使用容器类作为保存数据的内部数据结构,可自行选择合适的容器类;
提供字符操作界面,提供图形界面的将适当加分。
2. 各功能实现模块
2.1 登陆功能
2.1.1 实现截图
2.1.2 实现思路和代码
分为用户登录与管理员登录,可以注册用户与管理员。并且可以对已注册用
户实现避免重复注册的提示。