高校社团管理数据结构与算法课程设计
添加一个头文件,省略号等补充完整,可以直接运行的,会员信息有会员会号、姓名、性别、年龄、年级专业、联系方式
如果你用自己的方法重新写了一个新的也可
另外好多注释写不下了,就没有写,需要的话 留个邮箱或者QQ给我,我传给你
写好发到邮箱919266967@qq.com
多谢大侠了
typedef struct member
{
int ID; // 会员的会号,一个会号唯一确定一个会员
char * name; // 会员姓名,在创建实体时,动态分配内存
int phoneno; // 会员的联系电话
int age; // 会员年龄
// ... 还可以有别的很多数据信息
struct member * next;
} *LinkMember,member;
// 社团的数据类型
typedef struct corporation
{
Linkmember Head; // 存放社团会员链表,L为链表头结点
int membernum; // 社团会员的人数
TypeInfo * Info; // 社团相关信息,TypeInfo由用户来定义
} *LinkCorp,corporation;
// 社团的初始化
Status InitialCorp (LinkCorp &Lcorp)
{
Lcorp = (LinkCorp) malloc (sizeof (corporation));
if (!L) exit(-1);
Lcorp->Head = (LinkMember) malloc (sizeof (member)); // 会员链表的头指针
if (! Lcorp->Head) exit(-1);
Lcorp->Head->next = NULL;
Lcorp->membernum = 0; // 社团人数初始化为0
Lcorp->Info = NULL; // 暂无社团信息
}
//招收新成员
Status RecruitFunc (LinkCorp &Lcorp)
{
p = Lcorp->Head;
while ( p->next != NULL )
p = p->next; // 让q指向会员链表的尾结点
q = (LinkMember) malloc (sizeof (member));
if ( !q ) exit (-1);
q->next = NULL;
printf ("请输入会员会号:");
scanf ("%d",&q->ID);
try
{
r = Lcorp->Head->next;
while ( r != NULL )
{
if ( r->ID == q->ID)
throw "False";
else
r = r->next;
}
} catch (...)
{
printf ("您刚刚输入的ID号,已存在!\n");
free (q);
return;
}
printf ("请输入会员姓名:");
name = getchar ( ); // name为char类型的字符变量
int i;
for (i=0; i < stdin->bsize; i++)
if (*(stdin-> buffer+i) == 0x0A)
break; // 0x0A是当前缓冲区的结束符。这段代码用于动态接受用户在键盘输入的姓名,以方便
分配内存。
q->name = (char *) malloc (sizeof (char) * (i+1));
if ( !q->name ) exit (-1);
memcpy (q->name, stdin->buffer, i?i:1);
*(q->name + i) = '\0';
fflush (stdin); // 清空缓冲区内容
printf ("请输入会员联系电话:");
scanf ("%d",&q->phoneno);
printf ("请输入会员年龄:");
scanf ("%d",&q->age);
... ...
++Lcorp->membernum;
p->next = q;
return OK;
}
// 修改社团信息
Status AmendInfo (LinkCorp &Lcorp)
{
Amend (Lcorp->Info); // Amend函数具体看你的Info存放的是什么信息,并且想修改什么了
... ...
return OK;
}
// 老会员离开社团
Status Deletemember (LinkCorp &Lcorp)
{
r = Lcorp->Head->next;
s = Lcorp->Head;
printf ("请输入离开会员的ID号:");
scanf ("%d",&i);
while ( r != NULL )
{
if ( r->ID == i )
{
s->next = r->next;
free (r);
printf ("删除成功!\n");
return OK;
}
else
{
s = r;
r = r->next;
}
}
if ( r == NULL )
{
printf ("所输入的ID号不存在!\n");
--Lcorp->membernum;
return ERROR;
}
}
// 查询社团情况
Status CheckCorp (LinkCorp Lcorp)
{
Read (Lcorp->Info); // 和Amend一样,具体情况自己编写了
... ...
return OK;
}
// 统计社团成员数
Status TotalMember (LinkCorp Lcorp)
{
return Lcorp->membernum;
}
如果你用自己的方法重新写了一个新的也可
另外好多注释写不下了,就没有写,需要的话 留个邮箱或者QQ给我,我传给你
写好发到邮箱919266967@qq.com
多谢大侠了
typedef struct member
{
int ID; // 会员的会号,一个会号唯一确定一个会员
char * name; // 会员姓名,在创建实体时,动态分配内存
int phoneno; // 会员的联系电话
int age; // 会员年龄
// ... 还可以有别的很多数据信息
struct member * next;
} *LinkMember,member;
// 社团的数据类型
typedef struct corporation
{
Linkmember Head; // 存放社团会员链表,L为链表头结点
int membernum; // 社团会员的人数
TypeInfo * Info; // 社团相关信息,TypeInfo由用户来定义
} *LinkCorp,corporation;
// 社团的初始化
Status InitialCorp (LinkCorp &Lcorp)
{
Lcorp = (LinkCorp) malloc (sizeof (corporation));
if (!L) exit(-1);
Lcorp->Head = (LinkMember) malloc (sizeof (member)); // 会员链表的头指针
if (! Lcorp->Head) exit(-1);
Lcorp->Head->next = NULL;
Lcorp->membernum = 0; // 社团人数初始化为0
Lcorp->Info = NULL; // 暂无社团信息
}
//招收新成员
Status RecruitFunc (LinkCorp &Lcorp)
{
p = Lcorp->Head;
while ( p->next != NULL )
p = p->next; // 让q指向会员链表的尾结点
q = (LinkMember) malloc (sizeof (member));
if ( !q ) exit (-1);
q->next = NULL;
printf ("请输入会员会号:");
scanf ("%d",&q->ID);
try
{
r = Lcorp->Head->next;
while ( r != NULL )
{
if ( r->ID == q->ID)
throw "False";
else
r = r->next;
}
} catch (...)
{
printf ("您刚刚输入的ID号,已存在!\n");
free (q);
return;
}
printf ("请输入会员姓名:");
name = getchar ( ); // name为char类型的字符变量
int i;
for (i=0; i < stdin->bsize; i++)
if (*(stdin-> buffer+i) == 0x0A)
break; // 0x0A是当前缓冲区的结束符。这段代码用于动态接受用户在键盘输入的姓名,以方便
分配内存。
q->name = (char *) malloc (sizeof (char) * (i+1));
if ( !q->name ) exit (-1);
memcpy (q->name, stdin->buffer, i?i:1);
*(q->name + i) = '\0';
fflush (stdin); // 清空缓冲区内容
printf ("请输入会员联系电话:");
scanf ("%d",&q->phoneno);
printf ("请输入会员年龄:");
scanf ("%d",&q->age);
... ...
++Lcorp->membernum;
p->next = q;
return OK;
}
// 修改社团信息
Status AmendInfo (LinkCorp &Lcorp)
{
Amend (Lcorp->Info); // Amend函数具体看你的Info存放的是什么信息,并且想修改什么了
... ...
return OK;
}
// 老会员离开社团
Status Deletemember (LinkCorp &Lcorp)
{
r = Lcorp->Head->next;
s = Lcorp->Head;
printf ("请输入离开会员的ID号:");
scanf ("%d",&i);
while ( r != NULL )
{
if ( r->ID == i )
{
s->next = r->next;
free (r);
printf ("删除成功!\n");
return OK;
}
else
{
s = r;
r = r->next;
}
}
if ( r == NULL )
{
printf ("所输入的ID号不存在!\n");
--Lcorp->membernum;
return ERROR;
}
}
// 查询社团情况
Status CheckCorp (LinkCorp Lcorp)
{
Read (Lcorp->Info); // 和Amend一样,具体情况自己编写了
... ...
return OK;
}
// 统计社团成员数
Status TotalMember (LinkCorp Lcorp)
{
return Lcorp->membernum;
}
...全文
相关推荐
数据结构课与算法课程课程设计_高校社团管理设计,二叉树的应用(附全代码).pdf
总的来说,这个课程设计项目提供了一个实践二叉树应用的平台,通过高校社团管理的实例,让学生深入理解数据结构与算法的精髓,并锻炼其解决问题的能力。
学生社团管理程序C++课程设计[1].doc
具体到实现层面,学生需要设计出合适的算法和数据结构,例如使用结构体(struct)来存储社员的详细信息,并通过动态数组或链表等数据结构实现信息的动态存储和管理。
数据结构练习题.pdf
二叉树在高校社团管理设计中可能用于表示社团的层次结构,例如,每个节点代表一个社团,左子节点表示下属的子社团,右子节点表示并列的社团。
UML建模课程设计(大学生社团管理系统).pdf
本课程设计的目标是利用UML(统一建模语言)构建一个科学、便捷的管理系统,以解决高校社团管理中诸如信息发布、社员管理等方面的问题,同时也关注环保,减少纸质资源的消耗。
高校社团管理系统C++
"高校社团管理系统C++是一个使用C++编程语言实现的应用,主要功能包括社团招收新成员、修改社团信息、处理成员退出、查询社团状况以及统计社团成员数量。系统基于结构体和指针实现数据结构,以管理社团及其


