1、C语言课程设计协会会员信息管理系统说明书*实践教学*兰州理工大学计算机与通信学院2010年春季学期计算机语言B 课程设计题 目:协会会员信息管理系统 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目 录摘 要 3前 言 4正 文 5一、问题描述 5二、需求分析 5六 软件使用说明书 9总 结 10参考文献 11致 谢 12附件 部分原程序代码 13摘 要建立一个“协会会员信息管理系统”,系统以菜单方式工作,编写存放有会员信息,包含会员姓名、会员编号、性别、年龄、会员所学专业、会员所在学院、联系电话等,并可对这些信息进行浏览,修改;有新的会员加入时可以录入信息,还可以根据已知会员号查找会
2、员信息,对原有的会员信息进行删除修改等。关键词:会员信息管理;文件;浏览;查询;修改; 前 言近年来,随着大学生队伍不断扩大,学校各社团及协会也相应的增加,有关会员的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导会员信息管理上的混乱,人力与物力过多浪费,协会运作不能达到预期的效果,从而减弱了协会的作用,影响整个协会运作和控制管理,因此,必须制定一套合理、有效,规范和实用的协会会员信息管理系统,对协会会员信息进行集中统一的管理。系统开发的总的设计目标是实现协会会员信息管理的系统化、规范化和自动化,实现协会会员的集中统一的管理。正 文一、问题描述由于学校协会发展速度加快,协会规模
3、的扩大,协会会员人说迅速增加,使得协会管理工作繁重,而且手工管理效率极低,急需一个软件系统解决这些问题。为了跟上时代潮流,规范管理,提高协会的管理水平和管理效率,为了协会的发展及协会更好的运作,使协会发挥应有的作用,开发一个“协会会员信息管理系统”。二、需求分析本系统对会员信息从会员加入协会到离开协会的整个过程进行动态管理。本系统能够随时修改会员信息,对会员信息进行删除或增加,还可以随时浏览会员信息或查询所需会员的信息,真正满足了协会会员信息变动快的需求。三、系统设计四 详细设计1.信息录入模块Void enter()Printf(“输入会员编号”)用 chack-no()检查所属编号是否已从
4、在;是:printf(重新输入)否:继续输入:姓名 性别 年龄 专业 学院 电话利用save()函数对录入信息进行保存;2、浏览信息模块Browse()调用录入信息;利用for循环对录入的信息排序;利用printf-face()函数按需输出会员信息;3、信息添加模块 Void add()printf(你想添加的人数为(0-%d):,N-1-n);利用for循环对会员信息录入;4、信息查询模块Void search()printf(n选择你要查询的方式 nt1).姓名 2).按会员编号)按菜单提示输入选项;利用switchcase语句选择要查询的方式;(1) 按姓名 printf(nn请输入你要
5、查询的会员姓名:)利用if(strcmp(p.name,peoplei.name)=0)判断输入会员姓名是否存在若存在打印会员信息利用for循环对同名的会员信息输出;若不存在printf(nn你输入的会员不存在!)(2按编号查询printf(nn请输入你要查询的会员编号:);利用if(strcmp(p.num,peoplei.num)=0)语句判断输入会员编号是否存在若不存在printf(nn你输入的会员编号不存在!)printf(nn你想继续查询吗?nt1).是 2).否 bb);选2:利用printf_back();返回选1:printf(nn请选择你要进行的操作:nt 1).查询 2).
6、修改 3).删除 4).返回主菜单利用switchcase语句执行菜单内容5、删除信息模块通过4中的菜单第三项可进行对会员信息的删除printf(n你确定要删除吗?nt 1).是 2).否 bb); 选择则1通过trcpy(peoplea.num,peoplea+1.num); strcpy(peoplea.name,peoplea+1.name); strcpy(peoplea.sex,peoplea+1.sex); strcpy(peoplea.age,peoplea+1.age); strcpy(peoplea.zhuanye,peoplea+1.zhuanye); strcpy(peo
7、plea.xueyuan,peoplea+1.xustrcp0语句对信息进行删除;提示是否保存信息6、修改信息模块Modify date()printf_face();打印会员信息表printf(nn请记着你要修改的会员编号。按任意键继续 .)printf(nn请输入你要修改的会员信息的会员号:);利用if(strcmp(p.num,peoplei.num)=0) 判断输入是否正确如有错误printf(nn你的输入有误,请从新输入)如正确利用FILE *fp; 调出会员信息puts(n请选择你要修改的选项nn 1).会员号 2).姓名 3).性别 4).年龄 5).专业 6)学院 7)电话 )
8、; 通过switchcase语句执行菜单,进行对会员信息的修改printf(n你确定吗nnt 1).是 2).否 3).返回且不保存 bb); 选择是否保存;五 系统测试用以下的例子做测试,选择输入操作,依次输入,会员号 、姓名、 性别 、 年龄 、专业 学院 、 电话返回则选择浏览、查询、修改、删除功能编号姓名性别年龄专业学院电话01小雨男19计算机科学计通学院131*03小李男22通信工程计通学院155*04小花女20机电一体化电信院151*12小虎男22日语外语院152*22小明男21英语外语院152*六 软件使用说明书(1)根据正确的提示安装软件。(2)Intel486以上系列、AMD
9、 K6 以上系列等PC台式机和便携式电脑都可运行。 (3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。操作如下:点击开始菜单,进入菜单选择。输入:将所需的信息输入。输出:会员号,姓名 ,性别,年龄,专业,学院,电话;输入:根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。当错误不能改正,则退出浏览信息。进入查询信息:则屏幕会出现两个对话框按姓名和会员编号查找,查处相应的所需信息。当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。当信息输入正确,进入你你所需的菜单程序。总 结该系统以协会会员信
10、息信息管理为背景,涵盖了管理员对会员信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。 通过此次程序设计实践,是同学们对所学知识的综合运用,也是程序设计得以提高的表现。通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。经过设计和开发,协会会员信息管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对
11、于数据的一致性的问题也通过程序进行了有效的解决。从而是我对c语言这门课程有了更好的了解。但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。 参考文献1c+程序设计教程 ,王连相,中国铁道出版社,2007 2 C语言程序设计,谭浩强,清华大学出版社,1999 3C程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 C语言的实际应用,安徽科学技术出版社,2000 5 C语言函数手册,机械工业出版社,1999 6 C语言实用程序荟萃,西安电子科技大学出版社,1993致 谢在编写程序的过程中,我们得
12、到了丁政建老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢! 感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。附件 部分原程序代码#include#include #include #include #include #define N 100 struct people char num100; char name1
13、5; char sex20; char age20; char zhuanye20; char xueyuan20; char telephone20; peopleN;void input(int i);void enter();void browse();void add();void no_input(int i,int n) ;void search();void modify(); void save(int n);int load(); int modify_data(int i); void printf_face(); void printf_back(); void prin
14、tf_one(int i); void menu(); void chack_No(int i);void chack_No(int i) int k;if(i0) for(k=0;ki;k+) if(strcmp(peoplek.num,peoplei.num)=0) printf(您输入的会员编号已存在,请更换号码!); printf(会员号:); scanf(%d,&peoplei.num); chack_No(i); break; void input(int i) no_input(i,i); printf(会员编号:); scanf(%s,peoplei.num); chack_N
15、o(i);printf(姓名:); scanf(%s, peoplei.name) ; printf(性别:); scanf(%s,peoplei.sex); printf(年龄:); scanf(%s,peoplei.age); printf(专业:); scanf(%s,peoplei.zhuanye); printf(学院:); scanf(%s,peoplei.xueyuan); printf(电话:); scanf(%s,peoplei.telephone); void enter() int i,n; printf(请输入人数(0-%d) :,N-1); scanf(%d,&n);
16、 printf(n 录入信息n); for(i=0;in;i+) printf(n 请输入第%d个人的信息.,i+1); input(i); if(i!=0)save(n); printf_back(); void browse() int i,n; int j,pos;struct people temp;n=load(); for (i=0;in;i+) pos=i; for (j=i+1;j0) pos=j; if (pos!=i) temp=peoplei; peoplei=peoplepos; peoplepos=temp; printf_face(); for(i=0;in;i+)
17、 if(i!=0)&(i%10=0) printf(nn按任意键继续.); getch(); puts(nn); printf_one(i) ; printf(t共有%d条记录.n,n); printf(n按任意键继续.); getch(); menu(); void add() int i,n,m,k; FILE*fp; n=load(); printf(你想添加的人数为(0-%d):,N-1-n); scanf(%d,&m); k=m+n; for(i=n;ik;i+) printf(n输入第%d个人的信息.,i-n+1 ); input(i); if(fp=fopen(Pro.txt,a
18、b)=NULL) printf(文件打开失败!n); for(i=n;ik;i+) if(fwrite(&peoplei,sizeof(struct people),1,fp)!=1) printf(文件写入失败!n); fclose(fp); printf_back(); void search() int i,n,k,w1=1,w2,w3,w4,m,a; struct people p; n=load(); do printf(n选择你要查询的方式 nt1).姓名 2).按会员编号 bb); scanf(%d,&m); switch(m) case 1: do k=-1; printf(n
19、n请输入你要查询的会员姓名:); scanf(%s,p.name); printf_face(); for(i=0;in;i+) if(strcmp(p.name,peoplei.name)=0) k=i; printf_one(k); break; if(k=-1) printf(nn你输入的会员不存在!); printf(nn你想继续查询吗?nt 1).是 2).否 bb); scanf(%d,&w1); if(w1=2) printf_back(); while(k=-1&w1=1); break; case 2: do k=-1; printf(nn请输入你要查询的会员编号:); sc
20、anf(%s,p.num); printf_face(); for(i=0;in;i+) if(strcmp(p.num,peoplei.num)=0) k=i; printf_one(k);break; if(k=-1) printf(nn你输入的会员编号不存在!); printf(nn你想继续查询吗?nt1).是 2).否 bb); scanf(%d,&w1); if(w1=2) printf_back(); while(k=-1&w1=1); break; w4=0;w3=0; if(k!=-1) printf(nn请选择你要进行的操作:nt 1).查询 2).修改 3).删除 4).返
21、回主菜单 bb); scanf(%d,&w2); switch(w2) case 2: w3=modify_data(k); break; case 3: printf(n你确定要删除吗?nt 1).是 2).否 bb); scanf(%d,&w4); if(w4=1) for(a=k;an;a+) strcpy(peoplea.num,peoplea+1.num); strcpy(peoplea.name,peoplea+1.name); strcpy(peoplea.sex,peoplea+1.sex); strcpy(peoplea.age,peoplea+1.age); strcpy(
22、peoplea.zhuanye,peoplea+1.zhuanye); strcpy(peoplea.xueyuan,peoplea+1.xueyuan); strcpy(peoplea.telephone,peoplea+1.telephone); break; if(w3=1|w4=1) save(n); printf(nn操作成功! _ ); printf(nn请输入你要进行的操作: nt 1).继续查询 2).返回上一级 bb ); scanf(%d,&w2); while(w2=1); menu(); void modify() struct people p; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; printf_face(); for(i=0;in;i+) if(i!=0)&(i%10=0)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1