协会会员管理系统_第1页
协会会员管理系统_第2页
协会会员管理系统_第3页
协会会员管理系统_第4页
协会会员管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、* 实践教学* 兰州理工大学计算机与通信学院2012 年春季学期c 程序设计课程设计题目:协会会员管理系统专业班级:姓名:人才 v 学号:指导教师:成绩:摘要摘要协会会员管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以协会会员管理系统应该能够为用户提供充足的信息和快捷的查询手段。使用计算机对会员进行管理, 具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高协会会员管理的效率,也是协会的科学化、 正规化管理和与世界接轨的重要条件。协会会员管理系统作为一种管理软件正在各协会

2、中得到越来越广泛的应用,且已达到了良好效果。关键字: 协会会员管理系统效率检索迅速管理软件目录目录一、需求分析. 1二、总体设计. 2三、详细设计. 33.1数据定义 . 33.2算法流程图 . 43.3模块设计 . 6四、编码 . 10五、测试 . 11六、设计总结. 12参考文献 . 14致谢 . 14附录 . - 1 -协会会员管理系统1 一、需求分析协会会员管理系统:1、问题描述对协会的会员进行管理,包括插入、删除、查找、排序等功能。2、要求会员对象包括姓名(字符串) 、性别(字符)、出生年月(数字)、工作年月(数字)、学历(字符串)、职务(字符串)、住址(字符串) 、电话(字符串)等

3、信息。(1)新增一名会员: 将新增会员对象按姓名以字典方式会员管理文件中。(2)删除一名会员:从会员管理文件中删除一名会员对象。(3)查询:从管会员理文件中查询符合某些条件的会员。(4)添加:增加某个会员对象。(5)打印:按某种需要对会员对象文件进行打印。3、实现功能(1)由键盘输入会员对象,以文件方式保存。程序执行时先将文件读入内存。(2)对对象中的“姓名”按字典顺序进行排序。(3) 对排序后的会员对象进行增、 删、查询、修改、打印等操作。协会会员管理系统2 二、总体设计1、输入功能的实现:要想实现会员管理系统的输入,必须要建立一个会员信息系统的抽象数据类型,其中会员信息以链表的存储方式实现

4、。由键盘输入会员对象,以文件方式保存。程序执行时先将文件读入内存。2、 系统处理功能的实现: 系统管理员根据协会的人员流动情况,在提示信息的提示下, 选择相应的服务进行操作。 如对会员对象中的姓名 按字典顺序进行排序;对排序后的会员对象进行增、 删、 查询、修改、打印等操作。3、输出的实现:根据选择的操作,输出与之对应的信息。综上可以绘制出管理会员信息功能的系统流程图,如图1 所示总控模块输入模块系统处理模块输出模块测试模块图 1 系统流程图根据会员管理系统问题的分析和设计要求,可以得到该会员管理系统可以分为五个模块:会员信息添加模块、会员信息修改模块、会协会会员管理系统3 员信息删除模块、会

5、员信息查询模块、会员信息排序模块。其系统功能结构如图 2 所示。图 2 系统功能图三、详细设计3.1 数据定义struct person char name20;/定义名称char sex4;/定义性别char yuanxi20; /定义院系char zhuanye20; /定义专业char techang20; /定义特长char zhuangtai20; /定义状态int age;/定义年龄int number;/定义会员编号会员管理输入会员查询会员修改会员删除会员追加会员输出会员统计会员退 出系统协会会员管理系统4 ; 3.2 算法流程图1)保存函数 save() 的算法流程图如图3 所

6、示。图 3 保存函数 save() 的算法流程图2)查询函数 search() 的算法流程图如图所示。file*fp; (fp=fopen(outfile,wprintf(nsaving file.n); printf(can not open filen); p!=null fclose(fp); fwrite(p,sizeof(salary),1,fp); 协会会员管理系统5 图 4 查询函数 search() 的算法3)对输入的信息进行寻找、并进行输出。图 5 查询并输出所查询的信息协会会员管理系统6 图 6 会员信息查看系统3.3 模块设计在我们设计的程序中:首先是定义了一个输入输出头

7、文件,接着是一个宏定义,下面是函数声名部分,用struct emploee 结构体存储和录入该程序的所有数据,并把信息写到文件emp.dat 中, 保存在磁盘中方便以后使用。主函数部分包括设计的全部信息, 有指导教师、设计者以及设计时间,之后是输出主菜单和调用函数,退出程序。此程序中包含的功能有:输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块,各个功能设计如下:主菜单系统信息及查看系统查看会员卡信息查看会员信息存储信息返回主菜单存储会员信息返回主菜单存储会员卡信息输入路径,保存协会会员管理系统7 输入模块:该模块是实现对会员号姓名岗位扣除实发的录入并保存到文件“emp ”

8、中。模块中运用 void input()调用函数展开对文件的使用。模块首先定义一个指针文件, 又以写的方式打开此文件, 在打开的文件中输入要管理的会员人数, 用一个 for 循环按照职会员号姓名岗位扣除实发的格式循环获取会员的记录, 接着又用了一个 for 循环将会员记录写入文件“ emp ”中,关闭文件。查询模块:实现按会员号查询每个会员的信息,查询显示: 会员号姓名岗位扣除实发。模块开始是一个二级子菜单,一个是实现按会员号查询,另一个是选择退出返回主菜单,此处是利用switch 选择语句。选择按会员号查询,首先是以只读的方式打开文件“emp ” ,然后输入要查询的会员号,用一个 for 循

9、环来控制查询的人数, 之后在显示器上显示会员信息,程序如下:printf(会员号姓名岗位扣除实发n); printf(%6d%9s%6d%6d%6d%6dn,empi.no,,empi.post-wage,empi. prize,empi.deduct, pay); 然后关闭文件。查询会员信息已完成。修改模块:该模块实现按会员号对会员所有信息的修改。模块开始是一个二级子协会会员管理系统8 菜单,一个是按会员号修改,另一个是选择退出返回主菜单,此处是利用 switch 选择语句。选择按会员号修改,首先是以读写的方式打开文件“emp ” 。输入要修改的会员号,用一个for 循环来

10、控制输入的数量,循环如下:for(i=0;fread(&empi,sizeof(struct emploee),1,fp);i+) if(!strcmp(empi.no,num)break; 则会出现该会员的信息如下:printf(记录号会员号姓名性别年龄工资n); printf(%6d%6s%9s%4s%5d%6dn,i+1,empi.no,,empi.sex,empi.age,empi.salar); 然后对会员的信息进行修改, 就可获得新的会员记录。 之后文件指针指向该修改的记录开头,此时用newemp 覆盖当前记录,修改完成时系统会显示修改后的文件数据: 记录

11、号、会员号、姓名、性别、年龄、工资,然后关闭文件。修改会员信息已完成。删除模块:该模块实现按会员号对会员所有信息的删除。模块开始是一个二级子菜单,一个是按会员号删除记录,另一个是选择退出返回主菜单,此处是利用 switch 选择语句。选择按会员号删除记录,首先是只读的方式打开一个二进制文件 “emp ” 。就会显示删除前的会员信息程序如下:printf(删除前 :n); 协会会员管理系统9 printf(记录号会员号姓名性别年龄工资n); for(n=0;fread(&empn,sizeof(struct emploee),1,fp);n+) printf(%6s%6s%9s%4s%5

12、d%6dn,n+1,empn.no,,empn.sex,empn.age,empn.salar); 输入要删除的会员号,如果存在由fp=fopen(emp,w+); if(n=1) fclose(fp); exit(3); 执行删除命令:使用 for(j=i+1;jn;j+) fwrite(&empj,sizeof(struct emploee),1,fp);循环依次改后会员信息写入文件,显示删除后文件中的会员信息。 最后可以关闭文件,删除会员信息已完成。统计模块:根据输入的工资,显示大于该工资的会员的所有信息。模块中运用 void stat ()调用函数展开对文件的

13、使用。首先是以只读的方式打开文件“ emp ” 。输入会员的工资数,运用for 循环根据输入的工资,显示大于该工资的会员的所有信息。关闭文件,统计完成。输出模块:该模块实现按会员号输出会员的所有信息。在该模块中运用 void output()调用函数展开对文件的使用。首先以只读的方式打开一个文本文件”emp ” 。 操作无误则用 for 循环输出正在查询会员的:协会会员管理系统10 记录号会员号姓名性别年龄工资。这些完成后用fclose(fp)函数关闭文件。模块运行结束。追加模块:该模块实现添加会员的信息。 在该模块中运用 void run()调用函数展开对文件的使用。 首先以读写的方式为读写

14、打开一个二进制的文件“emp ” 。输出“要追加的会员人数”待输入要追加的个数后,用for循环控制待输入的会员信息。用fwrite(&newemp,sizeof(struct emploee),1,fp)将该会员记录写入文件。用fclose(fp)函数关闭文件,模块运行结束。四、编码该会员管理系统在microsoft visual studio c + 程序下运行,可实现对会员的增加、 查询、修改、打印,实现对会员信息的快速操作。1、增加会员信息2、查询会员信息3、修改会员信息4、打印会员信息5、输出会员信息6、统计会员信息协会会员管理系统11 7、删除会员信息五、测试1. 程序的初始

15、界面对程序的功能进行选择输入会员信息协会会员管理系统12 打印会员信息六、设计总结接到 c语言课程设计的作业我十分高兴, 终于学到的东西可以运用了。在老师的指导和大家的共同努力下,我们终于完成了程序的大体编制。程序中包括主函数、输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块。其中在输入模块中指针文件协会会员管理系统13 运用的比较好, 因为指针是 c的一个特色, 它能有效的表示复杂的数据结构,动态的分配内存,方便的使用字符串、数组,可谓是c的精华。在程序设计中我们最大的收获就是:我们真正从实践的角度体会到了 c语言在实际生活中的作用, 也深刻体会到了它带来的方便快捷。不但

16、使我们对 c语言有更进一步的巩固和认识还使我们懂得了团队协作的重要! 让我们将一年所学的c语言知识学为所用, 让我们感觉到了它的神奇魅力。美中不足的就是: 由于我们知识的不足以及条件的限制,本系统还有许多漏洞与不足,希望老师给以批评与帮助,我们会积极改正。而且本程序还处于初级阶段的职工工资管理功能中,只实现了对会员信息的录入、修改、查询、统计、显示等简单功能,功能较简单,不一定在实际中有大的用途, 程序编排中可能有烦琐之处有待进一步简化。协会会员管理系统14 参考文献1姜灵芝,余健 . c 语言课程设计案例精编 . 北京: 清华大学出版社,2008 2王新,孙雷 . c 语言课程设计 . 北京

17、: 清华大学出版社 ,2009 3游洪跃、彭骏、谭斌 .c 语言程序设计实验与课程设计教程. 北京:清华大学出版社 ,2011 4王连相 .c/c+程序设计上机指导与测试. 北京: 中国铁道出版社,2006 5c语言函数手册,机械工业出版社,1999 致谢进入大学,系统的学习了 c 语言程序设计这门课, 让我对程序设计这门课有了更深一步的理解, 能够把自己所学用于生活, 这是一件很让人开心的事。我会在以后的学习生活中努力的锻炼自己,开动脑筋,用心思维,使自己在c 语言程序设计这门课上有更一步的进步。在此感谢,此次课程设计中给予指导的张宪立老师和各位同学的帮助,使我们终于圆满的完成了这次课设。源

18、代码- 1 - 附录#include #include #include struct node char name20;/定义名称char sex4;/定义性别char yuanxi20; /定义院系char zhuanye20; /定义专业char techang20; /定义特长char zhuangtai20; /定义状态int age;/定义年龄int number;/定义会员编号 xh200; int menu(); int input(); void find(int); int insert(int); void print(int); void main() int c=0,

19、d=0; while(1) switch(menu() case 1:c=input();break; case 2:find(c);break; case 3:c=insert(c);break; case 4:print(c);break; case 5: exit(0); menu() int d; system(cls); printf(n); printf(t 协会会员管理系统n); printf(t!n); 源代码- 2 - printf(t|1| 输入会员信息。n); printf(t|2| 指定查找会员。 n); printf(t|3| 添加会员信息。n); printf(t|

20、4| 打印会员信息。n); printf(t|5| 退出。 n); printf(t!nn); printf(t请选项 :); scanf(%d,&d); return d; input()/输入会员信息 int i,n; printf(n); printf(输入会员人数:n); scanf(%d,&n); for (i=0;in;i+) printf(名称 :,i+1); scanf(%s,); getchar(); printf(性别 :,i+1); scanf(%s,xhi.sex); getchar(); printf(年龄 :,i+1); scanf(

21、%d,&xhi.age); printf(状态 :,i+1); scanf(%s,xhi.zhuangtai); getchar(); printf(会员编号 :,i+1); scanf(%d,&xhi.number); printf(专业 :,i+1); scanf(%s,&xhi.zhuanye); getchar(); printf(院系 :,i+1); scanf(%s,xhi.yuanxi); getchar(); printf(特长 :,i+1); scanf(%s,xhi.techang); getchar(); printf(nn); return n;

22、 void find(int c)/按名称指定查找会员信息源代码- 3 - int i; char a20; printf(n); printf(请输入查找名称:n); scanf(%s,a); getchar(); for (i=0;ic;i+) if (strcmp(a,) = 0) printf(会员性别 :); printf(%sn,xhi.sex); printf(会员年龄 :); printf(%dn,xhi.age); printf(状态 :); printf(%sn,xhi.zhuangtai); printf(会员编号 :); printf(%dn,xhi.number); printf(专业 :); printf(%sn,xhi.zhuanye); printf(院系 :); printf(%sn,xhi.yuanxi); printf(特长 :); printf(%sn,xhi.techang); system(pause); getchar(); insert(int c)/添加会员信息int i,j; system(cls); printf(n); printf(添加会员人数:n);

温馨提示

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

评论

0/150

提交评论