高校社团管理数据结构与算法课程设计

纯菜鸟 2012-12-17 03:02:53
添加一个头文件,省略号等补充完整,可以直接运行的,会员信息有会员会号、姓名、性别、年龄、年级专业、联系方式
如果你用自己的方法重新写了一个新的也可
另外好多注释写不下了,就没有写,需要的话 留个邮箱或者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;
}

...全文
360 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hewei352647259 2013-01-04
  • 打赏
  • 举报
回复
发给我呀 QQ 352647259
纯菜鸟 2012-12-18
  • 打赏
  • 举报
回复
typedef struct LNode{ int ID; char * name; int phoneno; int age; int data; struct LNode *next; } lnode; class linklist { private: LNode *head; int ID; char * name; int phoneno; int age; int data; struct LNode *next; public: linklist(); ~linklist(); bool GetValue(int i,char e); int Getlocation(char e); int Getlength(); bool Insert(int i,char e); bool Delete(int i); bool output(int i); bool output(); }; linklist::linklist() { head=new LNode; head->data=0; head->next=NULL; } bool linklist::GetValue(int i,char &e) LNode *p=head; if(i<1||i>head->date) return false; int j=0; while(j<i) { p=p->next; j++; } e=p->date; return true; } int linklist::Getlocation(char e) { LNode *p=head->next; int j=0; while(j<head->date) { if(p->data==e) break; p=p->next; j++; } if(j>=head->data) { return 0; } return j+1; } bool linklist::Insert(int i,char e) { if(i<1||i>head->date+1) return false; LNode *p=head; int j=0; while(j<i-1) { p=p->next; j++; } lnode *q=new LNode; q->date=e; q->next=p->next; p->next=q; head->data++; return true; } bool linklist::delete(int i) { if(i<1||i>head->data) return false; LNode *p=head; int j=0; } lnode *q=p->next; p->next=q->next; delete->data--; return true; } 自己写乌龙啦 谁帮看下
纯菜鸟 2012-12-17
  • 打赏
  • 举报
回复
引用 1 楼 delandi 的回复:
赞!!!!!!!
谢谢 有赞必谢 最好能给 答案
风吹PP凉SS 2012-12-17
  • 打赏
  • 举报
回复
赞!!!!!!!

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧