C语言课程设计大学社团管理系统 .doc

上传人:文库蛋蛋多 文档编号:2384739 上传时间:2023-02-17 格式:DOC 页数:30 大小:173.50KB
返回 下载 相关 举报
C语言课程设计大学社团管理系统 .doc_第1页
第1页 / 共30页
C语言课程设计大学社团管理系统 .doc_第2页
第2页 / 共30页
C语言课程设计大学社团管理系统 .doc_第3页
第3页 / 共30页
C语言课程设计大学社团管理系统 .doc_第4页
第4页 / 共30页
C语言课程设计大学社团管理系统 .doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C语言课程设计大学社团管理系统 .doc》由会员分享,可在线阅读,更多相关《C语言课程设计大学社团管理系统 .doc(30页珍藏版)》请在三一办公上搜索。

1、2010/5/29东北大学秦皇岛分校C语言课程设计一、 有关变量、结构体的说明:1) 对变量的说明:num是对成员的学号的定义数组,长度为不超过10个;name是对成员的姓名的定义数组,长度不超过20个字符;phone是对成员的手机号的定义,为一长整形;number是对活动的队长的学号的定义数组,长度不超过10个字符;nam是对活动名称的定义数组,活动名称所占字符不超过30个;date是对活动日期的定义,定义类型为整形。2) 对结构体的说明:在本程序中定义了两个结构体,分别为Member和Activity,分别包含了社团中的成员信息和社团活动信息,这两个结构体分别包含了num,name,pho

2、ne和number,nam,date等来实现程序的功能,这些在源文件的注释中都有体现。3) 对函数的说明: Input() 成员信息输入 Display() 显示所有成员信息 Sort_by_num() 按照成员学号对成员进行排序 Delete_a_record() 删除一条成员信息 Query_a_record() 查找并显示一个成员的信息 Addfromtext() 从文本文档中添加成员信息 Writetotext() 将成员信息写入文本文档 Input_act() 活动信息输入Display_act() 显示所有活动信息Delete_a_act() 删除一条活动记录Query() 查询并

3、显示一条活动信息AddfromText() 从文本文档中读取活动信息WritetoText() 将活动信息写入写入文本文档二、 树形结构模块图:三、操作说明:这个程序很容易上手,运行该程序时,在出现的界面上会出现14个选项,分别为:1) 成员信息输入;2) 显示所有成员记录;3) 将成员按学号排序;4) 删除一条成员信息;5) 成员信息查询;6) 从文本文档中读取成员信息;7) 将成员信息写入文本文档;8) 活动信息输入;9) 显示所哟活动信息;10) 删除一条活动信息;11) 活动信息查询;12) 从文本文档中读取数据;13) 将活动信息写入文本文档;0) 退出系统。具体如下所示:1. 起始

4、欢迎界面2. 成员信息输入3. 显示所有成员信息4. 将成员按照学号排序5. 删除一条成员信息6. 成员信息查询7. 从文本文档中读取成员信息8. 将成员信息写入文本文档9. 活动信息输入10. 显示所有活动信息11. 删除一条活动信息12. 活动信息查询13. 从文本文档中读取活动信息此为读取数据失败时的提示。14. 将活动信息写入文本文档15. 退出系统在操作时只需按照提示和自己的需要完成操作即可,简单容易,有效地节省使用者的时间,有效地提高工作效率。四、 源程序及代码:#include /引用库函数#include#include#includetypedef struct /定义结构体

5、数组char num10; /学号char name30; /姓名long phone; /手机号码Member;Member meme80; /结构体数组变量typedef structchar number10; /学号char nam20; /活动名称int date; /活动日期Activity;Activity act80;int menu_select() /菜单函数int c;dosystem(cls); /运行前清屏printf(n);printf(*欢 迎 使 用 大 学 社 团 管 理 系 统*n); /*菜单选择*/ printf( 1. 成员信息输入;n); print

6、f( 2. 显示所有成员记录;n); printf( 3. 将成员按学号排序;n); printf( 4. 删除一条成员信息;n); printf( 5. 成员信息查询;n); printf( 6. 从文本文档中读取成员信息;n);printf( 7. 将成员信息写入文本文档;n); printf( 8. 活动信息输入;n); printf( 9. 显示所有活动信息;n); printf( 10. 删除一条活动信息;n); printf( 11. 活动信息查询;n);printf( 12. 从文本文档中读取活动信息;n);printf( 13. 将活动信息写入文本文档;n); printf(

7、0. 退出系统。n); printf(*n); printf(*|欢迎 使用|欢迎 使用|*n); printf(*n); printf(n); printf(请在013之间做出选择:); scanf(%d,&c); /读入选择while(c13);return(c); /返回选择int Input(Member mem,int n) /输入成员信息int i=0;char sign,x10; /x10为了清除多余的数据while(sign!=n&sign!=N) /判断printf(成员学号:); /交互式输入scanf(%s,memn+i.num);printf(成员姓名:);scanf(

8、%s,memn+i.name);printf(成员手机号:);scanf(%ld,&memn+i.phone);gets(x); /清除多余的输入printf(要输入更多的成员信息吗?(Y/N);scanf(%c,&sign); /输入判断i+;return(n+i);void Display(Member mem,int n) /显示所有成员记录int i;printf(-n); /*格式头*/ printf( 学号 姓名 手机n); printf(-n); for(i=1;i1&i%10=0) /每十个暂停printf(-n); /*格式*/ system(pause);printf(-n

9、); printf(n);system(pause);void Sort_by_num(Member mem,int n) /对成员按照学号排序int i,j,*p,*q,s; /定义指针类型用以排序char t10;for(i=0;in-1;i+) /冒泡法排序for(j=0;j0) strcpy(t,memj+1.num);strcpy(memj+1.num,memj.num); strcpy(memj.num,t); strcpy(t,memj+1.name); strcpy(memj+1.name,memj.name); strcpy(memj.name,t); p=&memj+1.p

10、hone; q=&memj.phone; s=*p;*p=*q;*q=s;int Delete_a_record(Member mem,int n) /按姓名查找并删除一条成员信息char s20;int i=0,j;printf(请输入要删除的成员姓名:); /交互式问询scanf(%s,s);while(strcmp(memi.name,s)!=0&in) i+; /*查找判断*/ if(i=n)printf(未发现此成员!n);return(n); /返回失败信息for(j=1;jn-1;j+)strcpy(memj.num,memj+1.num); strcpy(memj.name,m

11、emj+1.name); memj.phone=memj+1.phone; printf(删除中.n);printf(删除成功!); /返回成功信息return(n-1);void Query_a_record(Member mem,int n) /*查找并显示一个成员的信息*/ char s20;int i=0;printf(请输入要查询的成员姓名:); /*交互式输入*/ scanf(%s,s); while(strcmp(memi.name,s)!=0&in) i+; /*查找判断*/ if(i=n)printf(未发现此成员!); /显示失败信息return;printf(查询中.n)

12、;printf(该成员学号为:%sn,memi.num); /*输出该成员信息*/ printf(该成员手机号为:%dn,memi.phone); int Addfromtext(Member mem,int n) /从文件中读取成员信息 int i=0,num; FILE *fp; /*定义文件指针 char filename20; /定义文件名 printf(请输入文件名(如wenjian.txt):); scanf(%s,filename); /输入文件名 if(fp=fopen(filename,rb)=NULL) /打开文件printf(打开文件错误,请检查文件的正确性!n); /打

13、开失败信息 printf(n); system(pause); return(n); fscanf(fp,%d,&num); /读入总记录量 while(inum) /循环读入数据 fscanf(fp,%s%s%d,memn+i.num,memn+i.name,&memn+i.phone); i+; n+=num; fclose(fp); /关闭文件printf(读取中.n); printf(读入文件成功!n); printf(n); system(pause); return(n); void Writetotext(Member mem,int n) /将所有记录写入文件int i=0;

14、FILE *fp; /定义文件指针 char filename20; /定义文件名 printf(请输入要写入的文件名(如wenjian.txt):); /输入文件名 scanf(%s,filename); if(fp=fopen(filename,w)=NULL) /打开文件 printf(不能打开此文件,请检查文件的正确性!n); system(pause); return; fprintf(fp,%dn,n); /循环写入数据 while(in) fprintf(fp,%-16s%-15s%dn,memi.num,memi.name,memi.phone); i+; fclose(fp)

15、; /关闭文件printf(正在写入信息.n);printf(信息写入成功!n); /返回成功信息 int Inpute_act(Activity acti,int n) /输入活动记录int j=0;char sign,x10;while(sign!=n&sign!=N)printf(队长学号:); /交互式输入scanf(%s,&actin+j.number);printf(活动名称:);scanf(%s,actin+j.nam);printf(请输入活动时间(如若活动时间为2010年3月15日,则输入20100315):);scanf(%d,&actin+j.date);gets(x);

16、printf(要输入更多活动信息吗?(Y/N); /输入判断scanf(%c,&sign);j+;return(n+j);void Display_act(Activity acti,int n)int j;printf(-n); /*格式头*/ printf(队长学号 活动姓名 活动日期n); printf(-n); for(j=1;j1&j%10=0)printf(-n); /*格式*/ system(pause);printf(-n); printf(n);system(pause);int Delete_a_act(Activity acti,int n) /按照活动名字查找,删除一条

17、活动记录char s20; int i=0,j;printf(请输入要删除的活动名称:); /系统和用户的交互式问询scanf(%s,s);while(strcmp(actii.nam,s)!=0&in) /查找i+;if(i=n)printf(没有该项活动信息!); /失败信息返回return(n);for(j=i;jn-1;j+) /删除操作strcpy(actij.number,actij+1.number);strcpy(actij.nam,actij+1.nam);actij.date=actij+1.date;printf(删除中.n);printf(删除成功!);return(n

18、-1);void Query(Activity acti,int n) /查找并显示一项活动信息char s20;int i=0;printf(请输入要查找的活动名称:); /交互式问询scanf(%s,s);while(strcmp(actii.nam,s)!=0&in)i+;if(i=n)printf(没有该项活动记录!n);/失败信息返回return;printf(删除中.n);printf(该活动的队长为:%s;n,actii.number);printf(该项活动的日期为:%d。n,actii.date);int AddfromText(Activity acti,int n) /从

19、文件中读入数据int i=0,num; FILE *fp; /定义文件指针 char filename20; /定义文件名 printf(请输入文件名称(如wenjian.txt):); scanf(%s,filename); /输入文件名 if(fp=fopen(filename,rb)=NULL) /打开文件printf(打开文件失败,请检查文件的正确性!n); /打开失败信息 system(pause); return(n); fscanf(fp,%d,&num); /读入总记录量while(inum) /循环读入数据 fscanf(fp,%s%s%d,actin+i.number,ac

20、tin+i.nam,&actin+i.date); i+; n+=num; fclose(fp); /关闭文件 printf(读取文件中.n);printf(文件读取成功!n); printf(n); system(pause); return(n); void WritetoText(Activity acti,int n) /将所有记录写入文件int i=0; FILE *fp; /定义文件指针 char filename20; /定义文件名 printf(请输入文件名(如wenjian.txt):); /输入文件名 scanf(%s,filename); if(fp=fopen(file

21、name,w)=NULL) /打开文件 printf(不能打开此文件,请检查文件的正确性!n); system(pause); return; fprintf(fp,%dn,n); /循环写入数据 while(in) fprintf(fp,%-16s%-15s%dn,actii.number,actii.nam,actii.date); i+; fclose(fp); /关闭文件printf(信息写入中.n);printf(信息写入成功!n); /返回成功信息 int main() /主函数int n=0;for(;)switch(menu_select() /选择判断case 1:print

22、f(nt*成员信息输入*nn); /输入成员信息n=Input(meme,n);printf(成员信息输入成功!n);break;case 2:printf(nt*显示所有成员信息*nn); /显示所有成员信息 Display(meme,n);break;case 3:printf(nt*按成员学号排序*nn); Sort_by_num(meme,n); /按成员学号排序printf(排序成功!n); printf(n); system(pause); break; case 4:printf(nt*删除一条成员信息*nn); n=Delete_a_record(meme,n); /按成员姓名

23、查找,删除一条成员信息 printf(n); system(pause); break; case 5:printf(nt*成员信息查询*nn); Query_a_record(meme,n); /查找并显示一个成员的信息 printf(n); system(pause); break;case 6:printf(nt*从文本文档中添加成员信息*nn); /从文本文档中添加成员信息n=Addfromtext(meme,n); printf(n);break;case 7:printf(nt*将成员信息写入文本文档*nn); /将成员信息写入文本文档Writetotext(meme,n); /循

24、环写入数据printf(n);break;case 8:printf(nt*活动信息输入*nn); /活动信息输入n=Inpute_act(act,n);printf(活动信息输入成功!n);break;case 9:printf(nt*显示所有活动信息*nn); /显示所有活动信息Display_act(act,n);break;case 10:printf(nt*删除一条活动信息*nn); /删除一条活动记录n=Delete_a_act(act,n);printf(n);system(pause);break;case 11:printf(nt*活动信息查询*nn); /活动信息查询并显示

25、Query(act,n);printf(n);system(pause);case 12:printf(nt*从文本文档中读取活动信息*nn); /从文本文档中读取活动信息n=AddfromText(act,n);printf(n);break;case 13:printf(nt*将活动信息写入文本文档*nn);WritetoText(act,n);system(pause);printf(n);break;case 0:printf(nt感谢您的使用,再见!n); /结束程序printf(n); system(pause);exit(0); 五、课程设计体会:课程设计是培养我们学生综合运用所

26、学知识,发现、提出、分析和解决实际问题并且锻炼实践能力的重要环节,是对我们实际对理论的应用能力的具体训练和考察过程。做完了C语言的课程设计让我更加深刻地理解了一句话:“实践出真知“,要想学好C语言重在实践,要不断地在上机操作和程序设计中发现和找出自己的错误和不足,加深对理论知识的记忆和理解。我在此次课程设计中发现了一下不足之处:1. 对C语言的一些标准库函数不是很了解;2. 对函数的正确使用不是很熟悉;3. 对编译中出现的错误不能很好地认识和改正,走了不少弯路;4. 对程序的输入不是很准确,出现一些低级的输入错误,实属不该;5. 在开始做时感觉无从下手,原因在于对于基本知识的不熟练和编程能力的不足。虽然课程设计做完了,但是我的程序还有很多不完善的地方,尚待改进。程序设计是一个严谨而严肃的事情,这教给我以后做事一定要认真仔细,考虑周全,能够从大局着手,这一点对我来说是受用终生的。我会珍惜这次难得的实践机会并且从中得到快乐。

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号