资源简介
学生会人员管理系统源代码···需要编译··
代码片段和文件信息
#include
#include
typedef char str[20];
class Member
{
//数据域的学生会成员成员类
public:
Member()
{}
Member(str positionstr name str sexstr gradestr classes)
{
strcpy(_positionposition);
strcpy(_namename);
strcpy(_sexsex);
strcpy(_gradegrade);
strcpy(_classesclasses);
}//有参构造函数
void setData(str positionstr name str sexstr gradestr classes)
{
strcpy(_positionposition);
strcpy(_namename);
strcpy(_sexsex);
strcpy(_gradegrade);
strcpy(_classesclasses);
}
void print(void);//打印数据
str* getPosition() {return &_position;}//获取学生职务
str* getName() {return &_name;}//获取学生姓名
str* getSex() {return &_sex;}//获取学生性别
str* getGrade() {return &_grade;}//获取学生所在的年级
str* getClasses() {return &_classes;}//获取学生所在的班级
//操作符重载用来判断结点中数据是否相等,若相等则返回1,否则返回0
int operator==(Member& stu)const
{
if(strcmp(_name*(stu.getName()))==0
&&strcmp(_sex*(stu.getSex()))==0&&strcmp(_grade*(stu.getGrade()))==0
&&strcmp(_classes*(stu.getClasses()))==0&&strcmp(_position*(stu.getPosition()))==0)
return 1;
else
return 0;
}
private: //学生会成员属性
str _position; //职位
str _name; //姓名
str _sex; //性别
str _grade; //年级
str _classes; //班级
};
void Member::print(void)//打印数据
{
cout<<‘(‘<<_position<<‘‘<<_name<<‘‘<<_sex<<‘‘<<_grade<<‘‘<<_classes<<“)\n“;
}
typedef class Node{
//树的孩子兄弟表示法的结点类
public:
Node(Member* data=NULL)
{_data=data;_firstChild=NULL;_brother=NULL;}//有参构造函数
~Node(){} //无参析构函数
Node* getFirstChild(){return _firstChild;}//访问结点的第一个孩子
Node* getBrother(){return _brother;}//访问结点的右兄弟
Member* getData(){return _data;}//取结点数据域的值
void setFirstChild(Node* node){_firstChild=node;} //为结点的第一个孩子赋值
void setBrother(Node* node){_brother=node;}//为结点的右兄弟赋值
void setData(Member* data){_data=data;}//为结点的数据域赋值
private:
Member* _data;//结点的数据域
Node* _firstChild;//结点的头孩子指针
Node* _brother;//结点的右兄弟指针
}*QElemType;
//把QElemType定义成 (结点类类型的指针Node*)
void function(Node* p)
{
p->getData()->print();
}
/*****************************************************************************/
#include
/*----------单链队列--队列的链式存储结构-------- */
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode*QueuePtr;
typedef struct
{
QueuePtr frontrear; /* 队头、队尾指针 */
}linkQueue;
/*------------链队列的几个基本操作------*/
int InitQueue(linkQueue &Q)
{ /* 构造一个空队列Q */
Q.front=Q.rear=new QNode;
if(!Q.front)
exit(-2);
Q.front->next=NULL;
return 1;
}
int QueueEmpty(linkQueue Q)
{ /* 若Q为空队列则返回TRUE否则返回FALSE */
if(Q.front==Q.rear)
return 1;
else
return 0;
}
int EnQueue(linkQueue &QQElemType e)
{ /* 插入元素e为Q的新的队尾元素 */
// QueuePtr p=(QueuePtr)malloc(sizeof(QNode));
QueuePtr p=new QNode;
if(!p) /* 存储分配失败 */
exit(-2);
p->data=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return 1;
}
int DeQueue(linkQueue &QQElemType &e)
{ /*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 271360 2008-06-29 20:09 课程设计.doc
文件 15095 2009-06-22 19:01 代码.cpp
----------- --------- ---------- ----- ----
286455 2
评论
共有 条评论