协会会员管理系统Word下载.docx
- 文档编号:16808032
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:18
- 大小:351.43KB
协会会员管理系统Word下载.docx
《协会会员管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《协会会员管理系统Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
四、编码10
五、测试11
六、设计总结13
致谢14
参考文献15
附录116
一、需求分析
协会会员管理系统:
1、问题描述
对协会的会员进行管理,包括插入、删除、查找、排序等功能。
2、要求
会员对象包括姓名(字符串)、性别(字符)、出生年月(数字)、工作年月(数字)、学历(字符串)、职务(字符串)、住址(字符串)、电话(字符串)等信息。
(1)新增一名会员:
将新增会员对象按姓名以字典方式会员管理文件中。
(2)删除一名会员:
从会员管理文件中删除一名会员对象。
(3)查询:
从管会员理文件中查询符合某些条件的会员。
(4)添加:
增加某个会员对象。
(5)打印:
按某种需要对会员对象文件进行打印。
3、实现功能
(1)由键盘输入会员对象,以文件方式保存。
程序执行时先将文件读入内存。
(2)对对象中的“姓名”按字典顺序进行排序。
(3)对排序后的会员对象进行增、删、查询、修改、打印等操作。
二、总体设计
1、输入功能的实现:
要想实现会员管理系统的输入,必须要建立一个会员信息系统的抽象数据类型,其中会员信息以链表的存储方式实现。
由键盘输入会员对象,以文件方式保存。
2、系统处理功能的实现:
系统管理员根据协会的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。
如对会员对象中的"
姓名"
按字典顺序进行排序;
对排序后的会员对象进行增、删、查询、修改、打印等操作。
3、输出的实现:
根据选择的操作,输出与之对应的信息。
综上可以绘制出管理会员信息功能的系统流程图,如图1所示
图1系统流程图
根据会员管理系统问题的分析和设计要求,可以得到该会员管理系统可以分为五个模块:
会员信息添加模块、会员信息修改模块、会员信息删除模块、会员信息查询模块、会员信息排序模块。
其系统功能结构如图2所示。
图2系统功能图
三、详细设计
3.1数据定义
structperson
{
charname[20];
//定义名称
charsex[4];
//定义性别
charyuanxi[20];
//定义院系
charzhuanye[20];
//定义专业
chartechang[20];
//定义特长
charzhuangtai[20];
//定义状态
intage;
//定义年龄
intnumber;
//定义会员编号
};
3.2算法流程图
1)保存函数Save()的算法流程图如图3所示。
图3保存函数Save()的算法流程图
2)查询函数search()的算法流程图如图所示。
图4查询函数search()的算法
3)对输入的信息进行寻找、并进行输出。
图5查询并输出所查询的信息
图6会员信息查看系统
3.3模块设计
在我们设计的程序中:
首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声名部分,用structemploee结构体存储和录入该程序的所有数据,并把信息写到文件emp.dat中,保存在磁盘中方便以后使用。
主函数部分包括设计的全部信息,有指导教师、设计者以及设计时间,之后是输出主菜单和调用函数,退出程序。
此程序中包含的功能有:
输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块,各个功能设计如下:
输入模块:
该模块是实现对会员号姓名岗位扣除实发的录入并保存到文件“emp”中。
模块中运用voidinput()调用函数展开对文件的使用。
模块首先定义一个指针文件,又以写的方式打开此文件,在打开的文件中输入要管理的会员人数,用一个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].netpay);
然后关闭文件。
查询会员信息
已完成。
修改模块:
该模块实现按会员号对会员所有信息的修改。
模块开始是一个二级子菜单,一个是按会员号修改,另一个是选择退出返回主菜单,此处是利用switch选择语句。
选择按会员号修改,首先是以读写的方式打开文件“emp”。
输入要修改的会员号,用一个for循环来控制输入的数量,循环如下:
for(i=0;
fread(&
emp[i],sizeof(structemploee),1,fp);
i++)
if(!
strcmp(emp[i].no,num))break;
则会出现该会员的信息如下:
记录号会员号姓名性别年龄工资\n"
%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”。
就会显示删除前的会员信息程序如下:
删除前:
\n"
for(n=0;
emp[n],sizeof(structemploee),1,fp);
n++)
%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(structemploee),1,fp);
循环依次改后会员信息写入文件,显示删除后文件中的会员信息。
最后可以关闭文件,删除会员信息已完成。
统计模块:
根据输入的工资,显示大于该工资的会员的所有信息。
模块中运用voidstat()调用函数展开对文件的使用。
首先是以只读的方式打开文件“emp”。
输入会员的工资数,运用for循环根据输入的工资,显示大于该工资的会员的所有信息。
关闭文件,统计完成。
输出模块:
该模块实现按会员号输出会员的所有信息。
在该模块中运用voidoutput()调用函数展开对文件的使用。
首先以只读的方式打开一个文本文件”emp”。
操作无误则用for循环输出正在查询会员的:
记录号会员号姓名性别年龄工资。
这些完成后用fclose(fp)函数关闭文件。
模块运行结束。
追加模块:
该模块实现添加会员的信息。
在该模块中运用voidrun()调用函数
展开对文件的使用。
首先以读写的方式为读写打开一个二进制的文件“emp”。
输出“要追加的会员人数”待输入要追加的个数后,用for循环控制待输入的会员信息。
用fwrite(&
newemp,sizeof(structemploee),1,fp)将该会员记录写入文件。
用fclose(fp)函数关闭文件,模块运行结束。
四、编码
该会员管理系统在MicrosoftVisualStudioc++程序下运行,可实现对会员的增加、查询、修改、打印,实现对会员信息的快速操作。
1、增加会员信息
2、查询会员信息
3、修改会员信息
4、打印会员信息
5、输出会员信息
6、统计会员信息
7、删除会员信息
五、测试
1.程序的初始界面
对程序的功能进行选择
输入会员信息
打印会员信息
六、设计总结
接到C语言课程设计的作业我十分高兴,终于学到的东西可以运用了。
在老师的指导和大家的共同努力下,我们终于完成了程序的大体编制。
程序中包括主函数、输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块。
其中在输入模块中指针文件运用的比较好,因为指针是C的一个特色,它能有效的表示复杂的数据结构,动态的分配内存,方便的使用字符串、数组,可谓是C的精华。
在程序设计中我们最大的收获就是:
我们真正从实践的角度体会到了C语言在实际生活中的作用,也深刻体会到了它带来的方便快捷。
不但使我们对C语言有更进一步的巩固和认识还使我们懂得了团队协作的重要!
让我们将一年所学的C语言知识学为所用,让我们感觉到了它的神奇魅力。
美中不足的就是:
由于我们知识的不足以及条件的限制,本系统还有许多漏洞与不足,希望老师给以批评与帮助,我们会积极改正。
而且本程序还处于初级阶段的职工工资管理功能中,只实现了对会员信息的录入、修改、查询、统计、显示等简单功能,功能较简单,不一定在实际中有大的用途,程序编排中可能有烦琐之处有待进一步简化。
致谢
进入大学,系统的学习了c语言程序设计这门课,让我对程序设计这门课有了更深一步的理解,能够把自己所学用于生活,这是一件很让人开心的事。
我会在以后的学习生活中努力的锻炼自己,开动脑筋,用心思维,使自己在c语言程序设计这门课上有更一步的进步。
在此感谢,此次课程设计中给予指导的周小健老师和各位同学的帮助,使我们终于圆满的完成了这次课设。
参考文献
1.姜灵芝,余健.C语言课程设计案例精编.北京:
清华大学出版社,2008
2.王新,孙雷.C语言课程设计.北京:
清华大学出版社,2009
3.游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:
清华大学出版社,2011
4.王连相.C/C++程序设计上机指导与测试.北京:
中国铁道出版社,2006
5.C语言函数手册,机械工业出版社,1999
附录1
#include<
stdio.h>
stdlib.h>
string.h>
structnode
charname[20];
//定义年龄
}
xh[200];
intmenu();
intinput();
voidfind(int);
intinsert(int);
voidprint(int);
voidmain()
intc=0,d=0;
while
(1)
{
switch(menu())
{
case1:
c=input();
break;
case2:
find(c);
case3:
c=insert(c);
case4:
print(c);
case5:
exit(0);
}
}
menu()
intd;
system("
cls"
\t协会会员管理系统\n"
\t!
!
\t|1|输入会员信息。
\t|2|指定查找会员。
\n"
\t|3|添加会员信息。
\t|4|打印会员信息。
\t|5|退出。
\n\n"
\t请选项:
"
scanf("
%d"
&
d);
returnd;
input()//输入会员信息
inti,n;
输入会员人数:
n);
for(i=0;
i<
printf("
名称:
i+1);
scanf("
%s"
xh[i].name);
getchar();
性别:
xh[i].sex);
年龄:
xh[i].age);
状态:
xh[i].zhuangtai);
会员编号:
xh[i].number);
专业:
xh[i].zhuanye);
院系:
xh[i].yuanxi);
特长:
xh[i].techang);
returnn;
voidfind(intc)//按名称指定查找会员信息
inti;
chara[20];
请输入查找名称:
a);
getchar();
c;
if(strcmp(a,xh[i].name)==0)
会员性别:
%s\n"
会员年龄:
%d\n"
xh[i].age);
xh[i].number);
xh[i].zhuanye);
pause"
insert(intc)//添加会员信息
inti,j;
添加会员人数:
j);
j;
会员名称:
xh[c].name);
xh[c].sex);
xh[c].age);
c++;
returnc;
voidprint(intc)//打印会员信息
\t打印所有会员信息\n"
*************************************************************************\n"
名称\t性别\t年龄\t状态\t会员编号\t专业\t院系\t特长\n"
****************************************************************************\n"
%6s%4s%8d%8s%8d%8s%8s%8s%8s\n"
xh[i].name,xh[i].sex,xh[i].age,xh[i].zhuangtai,xh
[i].number,
xh[i].zhuanye,xh[i].yuanxi,xh[i].techang);
***********************************************************************\n"
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 协会会员 管理 系统