没有合适的资源?快使用搜索试试~ 我知道了~
首页学生会组织机构管理系统的设计与实现
资源详情
资源评论
资源推荐
《 学生会组织机构管理系统的设计与实现 》 第
1 页 共
23 页
学生会组织机构管理系统的设计与实现
学生姓名:指导老师:
摘 要 本课程设计开发了一个学生会组织机构管理系统,学生会成员的信息包括姓名、
性别、班级,学生会的组织机构用孩子兄弟表示法进行存储。为该存储结构设计一个
模板类,设计成员函数完成插入、删除、查询、修改、输出等功能。 在课程设计中,
系统开发平台为 Windows XP,程序设计的设计语言采用 C++,程序开发平台采用
Microsoft Visual C++,程序运行平台为 Windows 98/2000/XP。在程序设计中,采用了
面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当
完善后,将可以应用解决实际问题。
关键词:学生会;数据结构;树;C++
《 学生会组织机构管理系统的设计与实现 》 第
2 页 共
23 页
目录
目录....................................................................................................................................................................2
1 引言.................................................................................................................................................................3
1.1 需求分析...........................................................................................................................................3
1.2 系统设计要点...................................................................................................................................3
2 算法的实现.....................................................................................................................................................4
2.1 详细的设计..........................................................................................................................................4
2.2 测试运行..............................................................................................................................................6
3 结束语...........................................................................................................................................................11
4 参考文献.......................................................................................................................................................12
5 附录...............................................................................................................................................................13
《 学生会组织机构管理系统的设计与实现 》 第
3 页 共
23 页
1 引言
经过本学期数据结构的学习,运用 VC++设计本系统。机构管理系统是非常通用
的管理信息系统,在很多领域都有用到。本系统主要是自行设计一个树状层次结构来
完成相关的功能,而这里涉及的树形结构是一类重要的非线性结构。树形结构是结点
之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世
界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。 树在计算机领域
中有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系
统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。
1.1 需求分析
本系统的最终用户是学校,根据从学校方面取得的图表资料、文字资料以及其他细
节方面的信息,再根据日常生活中的经验,以及所做的其他询问和调查,得出用户对
系统的实际要求是通过最简单实用的方法对组织机构各部分的信息修改或者查阅,而
孩子兄弟链表表示法中,结点形式统一,结点间的联系比较简洁。同时,在这种存储
结构上容易实现树数据结构的大多数运算。比如,若要访问结点 X 的第 i 个孩子,只
需先从 X 的孩子域指针找到它的第一个孩子,然后沿各孩子结点的兄弟域指针连续扫
描 i-1 个结点即可。值得注意的是,孩子兄弟链表的组织形式与二叉链表完全相同;但
存储结点中指针的含义不同。二叉链表中存储结点的左、右指针分别指向左、右孩子;
而孩子兄弟链表中存储结点的两个指针分别指向“长子”和“大弟”。例如,在图 4-17 中,
结点 B 的孩子指针指向它的“长子”D,兄弟指针指向它的兄弟 C。结点 H 的孩子域为
nil,因为它没有孩子;兄弟域指针指向它的比它“小”的兄弟中最“大”的兄弟 I。因此,
孩子兄弟链表表示是树的一种简单实用的存储结构。
1.2 系统设计要点
(1) 为方便对学生会组织机构的各项操作,学生会的组织机构用孩子兄弟表示法进
行存储。为该存储结构设计一个模板类,设计成员函数完成上述功能。
(2) 为树的孩子兄弟表示法设计一个结点类,将结点的数据部分作为私有成员隐藏
在类的内部,并提供查找右兄弟、查找第一个孩子等操作。
(3) 简单起见,学生会成员的自然情况包括职位、姓名、性别、年级、班级,为其
设计一个学生类,将各自然情况作为私有成员隐藏在类的内部,并提供相应成员函数
《 学生会组织机构管理系统的设计与实现 》 第
4 页 共
23 页
实现对数据进行访问。
(4) 在主函数中提供操作菜单,先对该组织机构进行初始化,即根据实验数据建立一棵树,再根
据用户的输入完成相应功能并输出结果。
2 算法的实现
2.1 详细的设计
为树的孩子兄弟表示法建立结点类(Node),其类定义如下:
template <class T>
class Node
{
public:
Node(T* data) { _data = data; _firstChild = NULL; _brother = NULL;}//有参构造函数
~Node() {} //无参析构函数
Node<T>* getFirstChild() { return _firstChild; } //访问结点第一个孩子
Node<T>* getBrother() { return _brother; } //访问结点的右兄弟
T* getData() { return _data; } //取结点数据域的值
void setFirstChild(Node<T>* node) { _firstChild = node; } //为结点的第一个孩子赋值
void setBrother(Node<T>* node) { _brother = node; } //为结点的右兄弟赋值
void setData(T* data) { _data = data; } //为结点的数据域赋值
private:
T* _data; //结点的数据域
Node<T>* _firstChild; //结点的头孩子指针
Node<T>* _brother; //结点的右兄弟指针
};
在结点类中,提供了如下成员函数:
(1) 函数的声明:Node(T* data);
完成的功能:初始化一个新结点
(2) 函数的声明:Node<T>* getFirstChild();
完成的功能:返回指向结点的第一个孩子结点的指针
(3) 函数的声明:Node<T>* getBrother();
完成的功能:返回指向结点的右兄弟结点的指针;
(4) 函数的声明:T* getData();
完成的功能:返回结点数据域的值
(5) 函数的声明:void setFirstChild(Node<T>* node);
完成的功能:为结点的第一个孩子赋值
(6) 函数的声明:void setBrother(Node<T>* node);
完成的功能:为结点的右兄弟赋值
(7) 函数的声明:void setData(T* data);
完成的功能:为结点的数据域赋值
为数据域的学生会成员建立成员类(Member),其类定义如下:
《 学生会组织机构管理系统的设计与实现 》 第
5 页 共
23 页
class Member
{
public:
Member(string position, string name, string sex, string grade, int classes); //有参构造函
数
void print(void); //打印数据
string getPosition() const { return _position; }//获取学生职务
string getName() const { return _name; } //获取学生姓名
string getSex() const { return _sex; } //获取学生性别
string getGrade() const { return _grade; }//获取学生所在年级
int getClasses() const { return _classes; }//获取学生所在班级
//操作符重载用来判断结点中数据是否相等,若相等则返回 1 否则返回 0
int operator==(Member& stu) const
{
return _name == stu.getName()
&& _sex == stu.getSex()
&& _grade == stu.getGrade()
&& _classes == stu.getClasses()
&& _position == stu.getPosition();
}
private: //学生会成员属性
string _position; //职位
string _name; //姓名
string _sex; //性别
string _grade; //年级
int _classes; //班级
};
在成员类中,提供了如下成员函数:
(1) 函 数 的 声 明 : Member(string position, string name, string sex, string grade, int
classes);
完成的功能:初始化一个新的数据成员
(2) 函数的声明:void print(void);
完成的功能:打印出数据成员信息
(3) 函数的声明:string getPosition() const;
完成的功能:返回学生会成员的职务
(4) 函数的功能:string getName() const;
完成的功能:返回学生会成员的姓名
(5) 函数的声明:string getSex() const;
完成的功能:返回学生会成员的性别
(6) 函数的声明:string getGrade() const;
完成的功能:返回学生会成员的年级
(7) 函数的声明:int getClasses() const;
完成的功能:返回学生会成员的班级
(8) 函数的声明:int operator==(Member& stu) const;
剩余22页未读,继续阅读
w_1nd
- 粉丝: 5
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论6