当前位置:文档之家› 协会会员管理系统

协会会员管理系统

*******************实践教学*******************兰州理工大学计算机与通信学院2012年春季学期C程序设计课程设计题目:协会会员管理系统专业班级:姓名:人才v学号:指导教师:成绩:摘要协会会员管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以协会会员管理系统应该能够为用户提供充足的信息和快捷的查询手段。

使用计算机对会员进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高协会会员管理的效率,也是协会的科学化、正规化管理和与世界接轨的重要条件。

协会会员管理系统作为一种管理软件正在各协会中得到越来越广泛的应用,且已达到了良好效果。

关键字:协会会员管理系统效率检索迅速管理软件目录一、需求分析 (1)二、总体设计 (2)三、详细设计 (3)3.1数据定义 (3)3.2算法流程图 (4)3.3模块设计 (6)四、编码 (10)五、测试 (11)六、设计总结 (12)参考文献 (14)致谢 (14)附录............................................................................................................................................... - 1 -一、需求分析协会会员管理系统:1、问题描述对协会的会员进行管理,包括插入、删除、查找、排序等功能。

2、要求会员对象包括姓名(字符串)、性别(字符)、出生年月(数字)、工作年月(数字)、学历(字符串)、职务(字符串)、住址(字符串)、电话(字符串)等信息。

(1)新增一名会员:将新增会员对象按姓名以字典方式会员管理文件中。

(2)删除一名会员:从会员管理文件中删除一名会员对象。

(3)查询:从管会员理文件中查询符合某些条件的会员。

(4)添加:增加某个会员对象。

(5)打印:按某种需要对会员对象文件进行打印。

3、实现功能(1)由键盘输入会员对象,以文件方式保存。

程序执行时先将文件读入内存。

(2)对对象中的“姓名”按字典顺序进行排序。

(3)对排序后的会员对象进行增、删、查询、修改、打印等操作。

二、总体设计1、输入功能的实现:要想实现会员管理系统的输入,必须要建立一个会员信息系统的抽象数据类型,其中会员信息以链表的存储方式实现。

由键盘输入会员对象,以文件方式保存。

程序执行时先将文件读入内存。

2、系统处理功能的实现:系统管理员根据协会的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。

如对会员对象中的"姓名"按字典顺序进行排序;对排序后的会员对象进行增、删、查询、修改、打印等操作。

3、输出的实现:根据选择的操作,输出与之对应的信息。

综上可以绘制出管理会员信息功能的系统流程图,如图1所示图1 系统流程图根据会员管理系统问题的分析和设计要求,可以得到该会员管理系统可以分为五个模块:会员信息添加模块、会员信息修改模块、会员信息删除模块、会员信息查询模块、会员信息排序模块。

其系统功能结构如图2所示。

图2 系统功能图三、详细设计3.1 数据定义struct person{char name[20];//定义名称char sex[4];//定义性别char yuanxi[20]; //定义院系char zhuanye[20]; //定义专业char techang[20]; //定义特长char zhuangtai[20]; //定义状态int age;//定义年龄int number;//定义会员编号会员管理输入会员查询会员修改会员删除会员追加会员输出会员统计会员退出系统};3.2 算法流程图1)保存函数Save()的算法流程图如图3所示。

FILE *fp;(fp=fopen(outfile,"wprintf("can not openfile\n");printf("\nSavingfile......\n");p!=NULLfwrite(p,sizeof(SALARY),1,fp);fclose(fp);图3 保存函数Save()的算法流程图2)查询函数search()的算法流程图如图所示。

图4 查询函数search()的算法3)对输入的信息进行寻找、并进行输出。

图5 查询并输出所查询的信息图6 会员信息查看系统3.3 模块设计在我们设计的程序中:首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声名部分,用struct emploee 结构体存储和录入该程序的所有数据,并把信息写到文件emp.dat 中,保存在磁盘中方便以后使用。

主函数部分包括设计的全部信息,有指导教师、设计者以及设计时间,之后是输出主菜单和调用函数,退出程序。

此程序中包含的功能有:输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块,各个功能设计如下:主菜单系统信息及查看系统查看会员卡信息 查看会员信息 存储信息 返回主菜单存储会员信息 返回主菜单存储会员卡信息 输入路径,保存输入模块:该模块是实现对会员号姓名岗位扣除实发的录入并保存到文件“emp ”中。

模块中运用void input()调用函数展开对文件的使用。

模块首先定义一个指针文件,又以写的方式打开此文件,在打开的文件中输入要管理的会员人数,用一个for循环按照职会员号姓名岗位扣除实发的格式循环获取会员的记录,接着又用了一个for循环将会员记录写入文件“emp ”中,关闭文件。

查询模块:实现按会员号查询每个会员的信息,查询显示:会员号姓名岗位扣除实发。

模块开始是一个二级子菜单,一个是实现按会员号查询,另一个是选择退出返回主菜单,此处是利用switch选择语句。

选择按会员号查询,首先是以只读的方式打开文件“emp”,然后输入要查询的会员号,用一个for循环来控制查询的人数,之后在显示器上显示会员信息,程序如下:printf("会员号姓名岗位扣除实发\n");printf("%6d%9s%6d%6d%6d%6d\n",emp[i].no,emp[i].name,emp[i]. post-wage,emp[i]. prize,emp[i].deduct,emp[i].net pay);然后关闭文件。

查询会员信息已完成。

修改模块:该模块实现按会员号对会员所有信息的修改。

模块开始是一个二级子菜单,一个是按会员号修改,另一个是选择退出返回主菜单,此处是利用switch选择语句。

选择按会员号修改,首先是以读写的方式打开文件“emp”。

输入要修改的会员号,用一个for循环来控制输入的数量,循环如下:for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)if(!strcmp(emp[i].no,num))break;则会出现该会员的信息如下:printf("记录号会员号姓名性别年龄工资\n");printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,emp[i].age,emp[i].salar); 然后对会员的信息进行修改,就可获得新的会员记录。

之后文件指针指向该修改的记录开头,此时用newemp覆盖当前记录,修改完成时系统会显示修改后的文件数据:记录号、会员号、姓名、性别、年龄、工资,然后关闭文件。

修改会员信息已完成。

删除模块:该模块实现按会员号对会员所有信息的删除。

模块开始是一个二级子菜单,一个是按会员号删除记录,另一个是选择退出返回主菜单,此处是利用switch选择语句。

选择按会员号删除记录,首先是只读的方式打开一个二进制文件“emp”。

就会显示删除前的会员信息程序如下:printf("删除前:\n");printf("记录号会员号姓名性别年龄工资\n");for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp);n++) printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp [n].sex,emp[n].age,emp[n].salar);输入要删除的会员号,如果存在由fp=fopen("emp","w+");if(n==1){fclose(fp);exit(3);执行删除命令:使用for(j=i+1;j<n;j++)fwrite(&emp[j],sizeof(struct emploee),1,fp);循环依次改后会员信息写入文件,显示删除后文件中的会员信息。

最后可以关闭文件,删除会员信息已完成。

统计模块:根据输入的工资,显示大于该工资的会员的所有信息。

模块中运用void stat ()调用函数展开对文件的使用。

首先是以只读的方式打开文件“emp”。

输入会员的工资数,运用for循环根据输入的工资,显示大于该工资的会员的所有信息。

关闭文件,统计完成。

输出模块:该模块实现按会员号输出会员的所有信息。

在该模块中运用void output()调用函数展开对文件的使用。

首先以只读的方式打开一个文本文件”emp”。

操作无误则用for循环输出正在查询会员的:记录号会员号姓名性别年龄工资。

这些完成后用fclose(fp)函数关闭文件。

模块运行结束。

追加模块:该模块实现添加会员的信息。

在该模块中运用void run()调用函数展开对文件的使用。

首先以读写的方式为读写打开一个二进制的文件“emp”。

输出“要追加的会员人数”待输入要追加的个数后,用for 循环控制待输入的会员信息。

用fwrite(&newemp,sizeof(struct emploee),1,fp)将该会员记录写入文件。

用fclose(fp)函数关闭文件,模块运行结束。

四、编码该会员管理系统在Microsoft Visual Studio c ++ 程序下运行,可实现对会员的增加、查询、修改、打印,实现对会员信息的快速操作。

1、增加会员信息2、查询会员信息3、修改会员信息4、打印会员信息5、输出会员信息6、统计会员信息7、删除会员信息五、测试1.程序的初始界面对程序的功能进行选择输入会员信息打印会员信息六、设计总结接到C语言课程设计的作业我十分高兴,终于学到的东西可以运用了。

相关主题