C语言课程设计大学社团管理系统_第1页
C语言课程设计大学社团管理系统_第2页
C语言课程设计大学社团管理系统_第3页
C语言课程设计大学社团管理系统_第4页
C语言课程设计大学社团管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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+);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,); strcpy(,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(,s)!=0&in) i+; /*查找判断*/ if(i=n)printf(未发现此成员!n);return(n); /返回失败信息for(j=1;jn-1;j+)strcpy(memj.num,memj+1.num); strcpy(,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(,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+,&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.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); /循环写入数据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(ac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论