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

上传人:沈*** 文档编号:41480862 上传时间:2021-11-20 格式:DOC 页数:29 大小:304.53KB
收藏 版权申诉 举报 下载
C语言课程设计大学社团管理系统_第1页
第1页 / 共29页
C语言课程设计大学社团管理系统_第2页
第2页 / 共29页
C语言课程设计大学社团管理系统_第3页
第3页 / 共29页
资源描述:

《C语言课程设计大学社团管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计大学社团管理系统(29页珍藏版)》请在装配图网上搜索。

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

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

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

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

5、;#include<ctype.h>#include<string.h>typedef struct /定义结构体数组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"); /运行前清屏p

6、rintf("n");printf("*欢 迎 使 用 大 学 社 团 管 理 系 统*n"); /*菜单选择*/ printf(" 1. 成员信息输入;n"); printf(" 2. 显示所有成员记录;n"); printf(" 3. 将成员按学号排序;n"); printf(" 4. 删除一条成员信息;n"); printf(" 5. 成员信息查询;n"); printf(" 6. 从文本文档中读取成员信息;n");printf(

7、" 7. 将成员信息写入文本文档;n"); printf(" 8. 活动信息输入;n"); printf(" 9. 显示所有活动信息;n"); printf(" 10. 删除一条活动信息;n"); printf(" 11. 活动信息查询;n");printf(" 12. 从文本文档中读取活动信息;n");printf(" 13. 将活动信息写入文本文档;n"); printf(" 0. 退出系统。n"); printf("*n

8、"); printf("*|欢迎 使用|欢迎 使用|*n"); printf("*n"); printf("n"); printf("请在013之间做出选择:"); scanf("%d",&c); /读入选择while(c<0|c>13);return(c); /返回选择int Input(Member mem,int n) /输入成员信息int i=0;char sign,x10; /x10为了清除多余的数据while(sign!='n'&

9、&sign!='N') /判断printf("成员学号:"); /交互式输入scanf("%s",memn+i.num);printf("成员姓名:");scanf("%s",memn+i.name);printf("成员手机号:");scanf("%ld",&memn+i.phone);gets(x); /清除多余的输入printf("要输入更多的成员信息吗?(Y/N)");scanf("%c",&am

10、p;sign); /输入判断i+;return(n+i);void Display(Member mem,int n) /显示所有成员记录int i;printf("-n"); /*格式头*/ printf(" 学号 姓名 手机n"); printf("-n"); for(i=1;i<n+1;i+) /循环输入printf("%-16s%-15s%ldn",memi-1.num,memi-1.name,memi-1.phone); if(i>1&&i%10=0) /每十个暂停printf

11、("-n"); /*格式*/ system("pause");printf("-n"); printf("n");system("pause");void Sort_by_num(Member mem,int n) /对成员按照学号排序int i,j,*p,*q,s; /定义指针类型用以排序char t10;for(i=0;i<n-1;i+) /冒泡法排序for(j=0;j<n-1;j+)if(strcmp(memj.num,memj+1.num)>0) strcpy(t,me

12、mj+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.phone; q=&memj.phone; s=*p;*p=*q;*q=s;int Delete_a_record(Member mem,int n) /按姓名查找并删除一条成员信息char s20;int i=0,j;printf("请输入要删除的成员姓名:"); /交互式

13、问询scanf("%s",s);while(strcmp(memi.name,s)!=0&&i<n) i+; /*查找判断*/ if(i=n)printf("未发现此成员!n");return(n); /返回失败信息for(j=1;j<n-1;j+)strcpy(memj.num,memj+1.num); strcpy(memj.name,memj+1.name); memj.phone=memj+1.phone; printf("删除中.n");printf("删除成功!"); /返回

14、成功信息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&&i<n) i+; /*查找判断*/ if(i=n)printf("未发现此成员!"); /显示失败信息return;printf("查询中.n");printf(&

15、quot;该成员学号为:%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,"

16、rb")=NULL) /打开文件printf("打开文件错误,请检查文件的正确性!n"); /打开失败信息 printf("n"); system("pause"); return(n); fscanf(fp,"%d",&num); /读入总记录量 while(i<num) /循环读入数据 fscanf(fp,"%s%s%d",memn+i.num,memn+i.name,&memn+i.phone); i+; n+=num; fclose(fp); /关闭文件p

17、rintf("读取中.n"); printf("读入文件成功!n"); printf("n"); system("pause"); return(n); void Writetotext(Member mem,int n) /将所有记录写入文件int i=0; FILE *fp; /定义文件指针 char filename20; /定义文件名 printf("请输入要写入的文件名(如wenjian.txt):"); /输入文件名 scanf("%s",filename); i

18、f(fp=fopen(filename,"w")=NULL) /打开文件 printf("不能打开此文件,请检查文件的正确性!n"); system("pause"); return; fprintf(fp,"%dn",n); /循环写入数据 while(i<n) fprintf(fp,"%-16s%-15s%dn",memi.num,memi.name,memi.phone); i+; fclose(fp); /关闭文件printf("正在写入信息.n");print

19、f("信息写入成功!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("请输入

20、活动时间(如若活动时间为2010年3月15日,则输入20100315):");scanf("%d",&actin+j.date);gets(x);printf("要输入更多活动信息吗?(Y/N)"); /输入判断scanf("%c",&sign);j+;return(n+j);void Display_act(Activity acti,int n)int j;printf("-n"); /*格式头*/ printf("队长学号 活动姓名 活动日期n"); printf

21、("-n"); for(j=1;j<n+1;j+)printf("%-16s%-15s%dn",actij-1.number,actij-1.nam,actij-1.date);if(j>1&&j%10=0)printf("-n"); /*格式*/ system("pause");printf("-n"); printf("n");system("pause");int Delete_a_act(Activity acti,in

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

23、ctij+1.nam);actij.date=actij+1.date;printf("删除中.n");printf("删除成功!");return(n-1);void Query(Activity acti,int n) /查找并显示一项活动信息char s20;int i=0;printf("请输入要查找的活动名称:"); /交互式问询scanf("%s",s);while(strcmp(actii.nam,s)!=0&&i<n)i+;if(i=n)printf("没有该项活动记

24、录!n");/失败信息返回return;printf("删除中.n");printf("该活动的队长为:%s;n",actii.number);printf("该项活动的日期为:%d。n",actii.date);int AddfromText(Activity acti,int n) /从文件中读入数据int i=0,num; FILE *fp; /定义文件指针 char filename20; /定义文件名 printf("请输入文件名称(如wenjian.txt):"); scanf("%

25、s",filename); /输入文件名 if(fp=fopen(filename,"rb")=NULL) /打开文件printf("打开文件失败,请检查文件的正确性!n"); /打开失败信息 system("pause"); return(n); fscanf(fp,"%d",&num); /读入总记录量while(i<num) /循环读入数据 fscanf(fp,"%s%s%d",actin+i.number,actin+i.nam,&actin+i.date

26、); 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):"); /输入文件名

27、 scanf("%s",filename); if(fp=fopen(filename,"w")=NULL) /打开文件 printf("不能打开此文件,请检查文件的正确性!n"); system("pause"); return; fprintf(fp,"%dn",n); /循环写入数据 while(i<n) fprintf(fp,"%-16s%-15s%dn",actii.number,actii.nam,actii.date); i+; fclose(fp); /

28、关闭文件printf("信息写入中.n");printf("信息写入成功!n"); /返回成功信息 int main() /主函数int n=0;for(;)switch(menu_select() /选择判断case 1:printf("nt*成员信息输入*nn"); /输入成员信息n=Input(meme,n);printf("成员信息输入成功!n");break;case 2:printf("nt*显示所有成员信息*nn"); /显示所有成员信息 Display(meme,n);break

29、;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); /按成员姓名查找,删除一条成员信息 printf("n"); system("pause"); break

30、; 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"); /将成员信息

31、写入文本文档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=D

32、elete_a_act(act,n);printf("n");system("pause");break;case 11:printf("nt*活动信息查询*nn"); /活动信息查询并显示Query(act,n);printf("n");system("pause");case 12:printf("nt*从文本文档中读取活动信息*nn"); /从文本文档中读取活动信息n=AddfromText(act,n);printf("n");break;case

33、 13:printf("nt*将活动信息写入文本文档*nn");WritetoText(act,n);system("pause");printf("n");break;case 0:printf("nt感谢您的使用,再见!n"); /结束程序printf("n"); system("pause");exit(0); 五、课程设计体会:课程设计是培养我们学生综合运用所学知识,发现、提出、分析和解决实际问题并且锻炼实践能力的重要环节,是对我们实际对理论的应用能力的具体训练和考察

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

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!