C语言高校社团管理系统设计报告doc.docx

上传人:b****5 文档编号:8212178 上传时间:2023-01-29 格式:DOCX 页数:17 大小:167.44KB
下载 相关 举报
C语言高校社团管理系统设计报告doc.docx_第1页
第1页 / 共17页
C语言高校社团管理系统设计报告doc.docx_第2页
第2页 / 共17页
C语言高校社团管理系统设计报告doc.docx_第3页
第3页 / 共17页
C语言高校社团管理系统设计报告doc.docx_第4页
第4页 / 共17页
C语言高校社团管理系统设计报告doc.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言高校社团管理系统设计报告doc.docx

《C语言高校社团管理系统设计报告doc.docx》由会员分享,可在线阅读,更多相关《C语言高校社团管理系统设计报告doc.docx(17页珍藏版)》请在冰豆网上搜索。

C语言高校社团管理系统设计报告doc.docx

C语言高校社团管理系统设计报告doc

高校社团管理系统设计报告

一题目要求,内容

在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。

为了有效管理这些社团,要求编写程序实现社团招收新成员、修改社团相应信息、老成员离开社团、查询社团情况、统计社团成员数等功能。

二设计思想

根据题目要求,定义新的数据类型Club,用于存储社团信息,并采用单链表的方式将不同的社团连接起来,新定义的数据类型Club中包含结构体数组MemberClubMember[MaxMember],用于存储社团成员信息。

其次,定义了不同的功能函数满足所需的功能要求。

三总体结构(模块结构图,函数功能)

四源代码,运行结果

#include

#include

#include

#defineMaxClub20

#defineMaxMember20

typedefstructMNode{

intnum;/*成员学号*/

charname[6];/*成员姓名*/

charmajor[8];/*成员专业*/

charhobby[10];/*成员爱好*/

}Member;

typedefstructCNode{

charClubName[10];/*社团名字*/

charintro[20];/*社团介绍*/

charinformation[20];/*社团公告*/

intMeNum;/*成员人数*/

MemberClubMember[MaxMember];/*社团成员信息*/

structCNode*next;

}Club,*NClub;

NClubIniti(NClubC)/*系统初始化*/

{

C=(NClub)malloc(sizeof(Club));

if(!

C)

{

printf("\n\t\t\t初始化失败!

");exit(0);

}

C->next=NULL;

printf("\n\t\t\t初始化成功!

\n");

returnC;

}

intAddClub(NClubC)/*添加社团*/

{

inti;

charch;

NClubp,q;

p=C;

for(i=1;i<=MaxClub;i++)

{

q=(NClub)malloc(sizeof(Club));

if(!

q)

{

printf("\n\t\t\t创建失败!

");continue;

}

printf("\n\t\t\t请输入社团名称:

");

gets(q->ClubName);fflush(stdin);

printf("\n\t\t\t请输入社团介绍:

");

gets(q->intro);fflush(stdin);

printf("\n\t\t\t请输入社团信息:

");

gets(q->information);fflush(stdin);

q->MeNum=0;

p->next=q;

q->next=NULL;

p=q;

printf("\n\t\t\t是否继续创建?

(Y/N)\t");

ch=getchar();fflush(stdin);

if(ch=='Y')continue;

elsebreak;

}

return1;

}

intClubNum(NClubC)/*统计社团数量*/

{

inttotal=0;

NClubp=C->next;

while(p)

{

total++;

p=p->next;

}

returntotal;

}

intInsertClub(NClubC)/*添加新社团*/

{

NClubp,q;

p=C;

if(ClubNum(C)>=MaxClub){printf("\n\t\t\t本校社团数已到最大值,不能再添加了!

");return0;}

while(p->next)p=p->next;

q=(NClub)malloc(sizeof(Club));

if(!

q)

{

printf("\n\t\t\t创建失败!

");return0;

}

printf("\n\t\t\t请输入社团名称:

");

gets(q->ClubName);fflush(stdin);

printf("\n\t\t\t请输入社团介绍:

");

gets(q->intro);fflush(stdin);

printf("\n\t\t\t请输入社团信息:

");

gets(q->information);fflush(stdin);

q->MeNum=0;

p->next=q;

q->next=NULL;

p=q;

return1;

}

intDelteClub(NClubC)/*社团注销*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10],ch;

inti,flag;

NClubp,q;

p=C;

printf("\n\t\t\t请输入社团名称:

");

gets(cn);

for(i=1;i<=ClubNum(C);i++)

{

q=p;

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

q->next=p->next;

return1;

}

intAddClubMember(NClubC)/*添加社团成员*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10],ch;

inti,flag;

NClubp;

p=C;

printf("\n\t\t\t请输入成员所在社团:

");

gets(cn);

for(i=1;i<=ClubNum(C);i++)

{

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

for(i=0;i

{

printf("\n\t\t\t请输入成员的学号:

");

scanf("%d",&p->ClubMember[i].num);fflush(stdin);

printf("\n\t\t\t请输入成员的名字:

");

gets(p->ClubMember[i].name);fflush(stdin);

printf("\n\t\t\t请输入成员的专业:

");

gets(p->ClubMember[i].major);fflush(stdin);

printf("\n\t\t\t请输入成员的爱好:

");

gets(p->ClubMember[i].hobby);fflush(stdin);

p->MeNum++;

printf("\n\t\t\t是否继续添加?

(Y/N)\t");

ch=getchar();

if(ch=='Y')continue;

elsebreak;

}

return1;

}

intAddClubNewMember(NClubC)/*添加社团新成员*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10],ch;

inti,flag;

NClubp;

p=C;

printf("\n\t\t\t请输入成员所在社团:

");

gets(cn);

for(i=1;i<=ClubNum(C);i++)

{

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

for(i=p->MeNum;i

{

printf("\n\t\t\t请输入成员的学号:

");

scanf("%d",&p->ClubMember[i].num);fflush(stdin);

printf("\n\t\t\t请输入成员的名字:

");

gets(p->ClubMember[i].name);fflush(stdin);

printf("\n\t\t\t请输入成员的专业:

");

gets(p->ClubMember[i].major);fflush(stdin);

printf("\n\t\t\t请输入成员的爱好:

");

gets(p->ClubMember[i].hobby);fflush(stdin);

p->MeNum++;

printf("\n\t\t\t是否继续添加?

(Y/N)\t");

ch=getchar();

if(ch=='Y')continue;

elsebreak;

}

return1;

}

voidClubMemberNum(NClubC)/*统计社团成员人数*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

inti;

NClubp;

p=C->next;

for(i=0;i

{

printf("\n\t\t\t%s社团共有%d个成员!

\n",p->ClubName,p->MeNum);

p=p->next;

}

}

intChangeClub(NClubC)/*修改社团信息*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10];

inti,flag;

NClubp;

p=C;

printf("\n\t\t\t请输入社团名称:

");

gets(cn);fflush(stdin);

for(i=1;i<=ClubNum(C);i++)

{

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

printf("\n\t\t\t请输入社团名称:

");

gets(p->ClubName);fflush(stdin);

printf("\n\t\t\t请输入社团介绍:

");

gets(p->intro);fflush(stdin);

printf("\n\t\t\t请输入社团信息:

");

gets(p->information);fflush(stdin);

return1;

}

intChangeMember(NClubC)/*修改社团成员信息*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10],na[6];

inti,flag,sign,y=0;

NClubp;

p=C;

printf("\n\t\t\t请输入成员所在社团:

");

gets(cn);fflush(stdin);

for(i=1;i<=ClubNum(C);i++)

{

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

printf("\n\t\t\t请输入所要修改信息成员的姓名:

");

gets(na);fflush(stdin);

for(i=0;i

{

if(!

strcmp(na,p->ClubMember[i].name)){sign=1,y++;break;}

elsesign=0,y++;

}

if(sign==0){printf("\n\t\t\t没有这个成员!

");return0;}

printf("\n\t\t\t请输入成员的学号:

");

scanf("%d",&p->ClubMember[y-1].num);fflush(stdin);

printf("\n\t\t\t请输入成员的名字:

");

gets(p->ClubMember[y-1].name);fflush(stdin);

printf("\n\t\t\t请输入成员的专业:

");

gets(p->ClubMember[y-1].major);fflush(stdin);

printf("\n\t\t\t请输入成员的爱好:

");

gets(p->ClubMember[y-1].hobby);fflush(stdin);

return1;

}

intDelteClubMember(NClubC)/*社团成员退团*/

{

if(ClubNum(C)==0){printf("\n\t\t\t学校还没有社团!

");return0;}

charcn[10],na[6];

inti,flag,sign,y=0;

NClubp;

p=C;

printf("\n\t\t\t请输入成员所在社团:

");

gets(cn);fflush(stdin);

for(i=1;i<=ClubNum(C);i++)

{

p=p->next;

if(!

strcmp(cn,p->ClubName)){flag=1;break;}

elseflag=0;

}

if(flag==0){printf("\n\t\t\t没有该社团!

");return0;}

printf("\n\t\t\t请输入所要删除成员的姓名:

");

gets(na);fflush(stdin);

for(i=0;i

{

if(!

strcmp(na,p->ClubMember[i].name)){sign=1,y++;break;}

elsesign=0,y++;

}

if(sign==0){printf("\n\t\t\t没有这个成员!

");return0;}

for(i=y;i

{

p->ClubMember[i-1]=p->ClubMember[i];

}

p->MeNum--;

return1;

}

intShowClubInformation(NClubC)/*显示社团信息*/

{

if(ClubNum(C)==0){printf("\n\t\t\t没有可以显示的信息!

\n");return0;}

inti,j;

NClubp;

p=C->next;

for(i=0;p!

=NULL;i++)

{

printf("\n\t社团:

\n");

printf("\n\t\t名称\t介绍\t信息");

printf("\n\t\t%-8s\t%-8s\t%-8s\n",p->ClubName,p->intro,p->information);

printf("\n\t社团成员信息:

\n");

if(p->MeNum==0){printf("\n\t\t该社团还没有成员!

\n");p=p->next;continue;}

printf("\n\t成员学号\t成员姓名\t成员专业\t成员爱好");

for(j=0;jMeNum;j++)

{

printf("\n\t%-8d\t%-8s\t%-8s\t%-8s\n",p->ClubMember[j].num,p->ClubMember[j].name,p->ClubMember[j].major,p->ClubMember[j].hobby);

}

printf("\n\t===============================================\n");

p=p->next;

}

return1;

}

voidmenu()

{

printf("\n\t\t\t欢迎进入功能选择菜单\n");

printf("\t\t\t=======================\n");

printf("\t\t\t1.系统初始化;\n");

printf("\t\t\t2.创建社团;\n");

printf("\t\t\t3.添加新社团;\n");

printf("\t\t\t4.修改社团资料;\n");

printf("\t\t\t5.社团注销;\n");

printf("\t\t\t6.添加社团成员;\n");

printf("\t\t\t7.添加社团新成员;\n");

printf("\t\t\t8.修改社团成员资料;\n");

printf("\t\t\t9.社团成员退团;\n");

printf("\t\t\t10.显示社团信息;\n");

printf("\t\t\t11.统计社团成员人数;\n");

printf("\t\t\t0.结束;\n");

printf("\t\t\t=======================\n\n");

printf("\t\t\t选择功能:

");

}

main()

{

NClubC;

for(;;)

{

menu();

intse;

scanf("%d",&se);fflush(stdin);

if(se<0||se>11){printf("\n\t\t\t输入有误!

\n");system("pause");system("cls");}

switch(se)

{

case1:

C=Initi(C);

system("pause");

system("cls");

break;

case2:

AddClub(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case3:

InsertClub(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case4:

ChangeClub(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case5:

DelteClub(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case6:

AddClubMember(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case7:

AddClubNewMember(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case8:

ChangeMember(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case9:

DelteClubMember(C);

ShowClubInformation(C);

system("pause");

system("cls");

break;

case10:

ShowClubInformation(C);

system("pause");

system("cls");

break;

case11:

ClubMemberNum(C);

system("pause");

system("cls");

break;

case0:

printf("\n\t\t\t感谢使用!

");

exit(0);

break;

}

}

}

五小结

通过本次数据结构课程设计的学习以及自己动手的实践,我获益匪浅。

本次课程设计使我更加扎实地掌握了数据结构方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查,同时在老师同学的帮助下,最终找出了原因所在。

 

由于时间、个人能力有限,程序仍有很多可以改进的地方。

比如,在程序执行时,必须按照规定的方式输入,为了解决这一问题可以在此程序的基础上设计错误处理机制,使程序的使用更加方便和可靠; 代码可重用率较低,如果使用面向对象的设计方法,可用到继承的方法,使程序更加简洁,可读性也大大增强;主程序界面不够美观,还是简单的控制台界面,可以尝试设计更加美观的界面。

  

通过本次课程设计,我有很多的体会。

 想要编写一个优秀的程序,我们要扎实掌握程序语言,要注重培养实践能力,要培养严谨的态度,不怕出错,培养独立思考、解决问题的能力,提高自己的实际动手能力,同时,要和老师同学多交流,便于解决问题和共同进步。

    

 

赠送以下资料

考试知识点技巧大全

一、考试中途应饮葡萄糖水

大脑是记忆的场所,脑中有数亿个神经细胞在不停地进行着繁重的活动,大脑细胞活动需要大量能量。

科学研究证实,虽然大脑的重量只占人体重量的2%-3%,但大脑消耗的能量却占食物所产生的总能量的20%,它的能量来源靠葡萄糖氧化过程产生。

据医学文献记载,一个健康的青少年学生30分钟用脑,血糖浓度在120毫克/100毫升,大脑反应快,记忆力强;90分钟用脑,血糖浓度降至80毫克/100毫升,大脑功能尚正常;连续120分钟用脑,血糖浓度降至60毫克/100毫升,大脑反应迟钝,思维能力较差。

我们中考、高考每一科考试时间都在2小时或2小时以上且用脑强度大,这样可引起低血糖并造成大脑疲劳,从而影响大脑的正常发挥,对考试成绩产生重大影响。

因此建议考生,在用脑60分钟时,开始补饮25%浓度的葡萄糖水100毫升左右,为一个高效果的考试加油。

二、考场记忆“短路”怎么办呢?

对于考生来说,掌握有效的应试技巧比再做题突击更为有效。

1.草稿纸也要逐题顺序写草稿要整洁,草稿纸使用要便于检查。

不要在一大张纸上乱写乱画,东写一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1