首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-12-29 
高校社团管理数据结构与算法课程设计添加一个头文件,省略号等补充完整,可以直接运行的,会员信息有会员会号

高校社团管理数据结构与算法课程设计
添加一个头文件,省略号等补充完整,可以直接运行的,会员信息有会员会号、姓名、性别、年龄、年级专业、联系方式 
如果你用自己的方法重新写了一个新的也可
另外好多注释写不下了,就没有写,需要的话 留个邮箱或者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;
}


[解决办法]
赞!!!!!!!

热点排行
Bad Request.