协会会员管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年春季学期
C程序设计课程设计
题目:协会会员管理系统
专业班级:
姓名:
学号:
指导教师:
成绩:_________________
摘要
协会会员管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以协会会员管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来各个协会基本上都是靠传统的人工方式来管理协会信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。随着计算机技术的不断提高,计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识,它已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。
而作为计算机应用的一部分,使用计算机对会员进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高协会会员管理的效率,也是协会的科学化、正规化管理和与世界接轨的重要条件。协会会员管理系统作为一种管理软件正在各协会中得到越来越广泛的应用,且已达到了良好效果。
关键字:协会会员管理系统效率检索迅速管理软件
目录
一、需求分析 (4)
二、总体设计 (5)
三、详细设计 (6)
1、数据定义 (6)
2、算法流程图 (6)
四、编码 (11)
五、测试 (12)
六、设计总结 (14)
致谢 (15)
参考文献 (16)
附录1 (17)
一、需求分析
协会会员管理系统:
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所示。
图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].s ex,emp[i].age,emp[i].salar);
然后对会员的信息进行修改,就可获得新的会员记录。之后文件指针指向该修改的记录开头,此时用newemp覆盖当前记录,修改完成时系统会显示修改后的文件数据:记录号、会员号、姓名、性别、年龄、工资,然后关闭文件。修改会员信息已完成。
删除模块:该模块实现按会员号对会员所有信息的删除。模块开始是一个二级子菜单,一个是按会员号删除记录,另一个是选择退出返回主菜单,此处是利用switch选择语句。选择按会员号删除记录,首先是只读的方式打开一个二进制文件“emp”。就会显示删除前的会员信息程序如下: