资源描述
贵州民族大学
题 目:协会会员信息管理系统
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期:
指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名: 日 期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
导师签名: 日期: 年 月 日
目 录
摘 要 3
前 言 4
正 文 5
一、问题描述 5
二、需求分析 5
六 软件使用说明书 9
总 结 10
参考文献 11
致 谢 12
附件Ⅰ 部分原程序代码 13
摘 要
建立一个“协会会员信息管理系统”,系统以菜单方式工作,编写存放有会员信息,包含会员姓名、会员编号、性别、年龄、会员所学专业、会员所在学院、联系电话等,并可对这些信息进行浏览,修改;有新的会员加入时可以录入信息,还可以根据已知会员号查找会员信息,对原有的会员信息进行删除修改等。
关键词:会员信息管理;文件;浏览;查询;修改;
前 言
近年来,随着大学生队伍不断扩大,学校各社团及协会也相应的增加,有关会员的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导会员信息管理上的混乱,人力与物力过多浪费,协会运作不能达到预期的效果,从而减弱了协会的作用,影响整个协会运作和控制管理,因此,必须制定一套合理、有效,规范和实用的协会会员信息管理系统,对协会会员信息进行集中统一的管理。系统开发的总的设计目标是实现协会会员信息管理的系统化、规范化和自动化,实现协会会员的集中统一的管理。
正 文
一、问题描述
由于学校协会发展速度加快,协会规模的扩大,协会会员人说迅速增加,使得协会管理工作繁重,而且手工管理效率极低,急需一个软件系统解决这些问题。为了跟上时代潮流,规范管理,提高协会的管理水平和管理效率,为了协会的发展及协会更好的运作,使协会发挥应有的作用,开发一个“协会会员信息管理系统”。
二、需求分析
本系统对会员信息从会员加入协会到离开协会的整个过程进行动态管理。本系统能够随时修改会员信息,对会员信息进行删除或增加,还可以随时浏览会员信息或查询所需会员的信息,真正满足了协会会员信息变动快的需求。
三、系统设计
会员信息管理系统
录入会员信息
修改会员信息
查询会员信息
浏览会员信息
退出系统
四 详细设计
1.信息录入模块
Void enter()
Printf(“输入会员编号”)
用 chack-no()检查所属编号是否已从在;
是:printf(重新输入)
否:继续输入:姓名 性别 年龄 专业 学院 电话
利用save()函数对录入信息进行保存;
2、浏览信息模块
Browse()
调用录入信息;
利用for循环对录入的信息排序;
利用printf-face()函数按需输出会员信息;
3、信息添加模块
Void add()
printf("你想添加的人数为(0-%d):",N-1-n);
利用for循环对会员信息录入;
4、信息查询模块
Void search()
printf("\n选择你要查询的方式 \n\t1).姓名 2).按会员编号)
按菜单提示输入选项;
利用switch—case语句选择要查询的方式;
(1) 按姓名
printf("\n\n请输入你要查询的会员姓名:")
利用if(strcmp(p.name,people[i].name)==0)判断输入会员姓名是否存在
若存在
打印会员信息
利用for循环对同名的会员信息输出;
若不存在
printf("\n\n你输入的会员不存在!")
(2按编号查询
printf("\n\n请输入你要查询的会员编号:");
利用if(strcmp(p.num,people[i].num)==0)语句判断输入会员编号是否存在
若不存在printf("\n\n你输入的会员编号不存在!")
printf("\n\n你想继续查询吗?\n\t1).是 2).否 [ ]\b\b");
选2:利用printf_back();返回
选1:printf("\n\n请选择你要进行的操作:\n\t 1).查询 2).修改 3).删除 4).返回主菜单
利用switch—case语句执行菜单内容
5、删除信息模块
通过4中的菜单第三项可进行对会员信息的删除
printf("\n你确定要删除吗?\n\t 1).是 2).否 [ ]\b\b");
选择则1
通过trcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].zhuanye,people[a+1].zhuanye);
strcpy(people[a].xueyuan,people[a+1].xustrcp0
语句对信息进行删除;
提示是否保存信息
6、修改信息模块
Modify date()
printf_face();打印会员信息表
{printf("\n\n请记着你要修改的会员编号。按任意键继续 ...")
printf("\n\n请输入你要修改的会员信息的会员号:");
利用if(strcmp(p.num,people[i].num)==0) 判断输入是否正确
如有错误printf("\n\n你的输入有误,请从新输入")
如正确利用FILE *fp; 调出会员信息
puts("\n请选择你要修改的选项\n\n 1).会员号 2).姓名 3).性别 4).年龄 5).专业 6)学院 7)电话 ");
通过switch—case语句执行菜单,进行对会员信息的修改
printf("\n你确定吗\n\n\t 1).是 2).否 3).返回且不保存 [ ]\b\b");
选择是否保存;
五 系统测试
用以下的例子做测试,选择输入操作,依次输入,会员号 、姓名、 性别 、 年龄 、专业 学院 、 电话返回则选择浏览、查询、修改、删除功能
编号
姓名
性别
年龄
专业
学院
电话
01
小雨
男
19
计算机科学
计通学院
13100000000
03
小李
男
22
通信工程
计通学院
15500000000
04
小花
女
20
机电一体化
电信院
15100000000
12
小虎
男
22
日语
外语院
15200000000
22
小明
男
21
英语
外语院
15210000000
六 软件使用说明书
(1)根据正确的提示安装软件。
(2)Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑都可运行。
(3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。
操作如下:
点击开始菜单,进入菜单选择。
输入:将所需的信息输入。
输出:会员号,姓名 ,性别,年龄,专业,学院,电话;
输入:根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。当错误不能改正,则退出浏览信息。
进入查询信息:则屏幕会出现两个对话框——按姓名和会员编号查找,查处相应的所需信息。当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。
当信息输入正确,进入你你所需的菜单程序。
总 结
该系统以协会会员信息信息管理为背景,涵盖了管理员对会员信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。 通过此次程序设计实践,是同学们对所学知识的综合运用,也是程序设计得以提高的表现。
通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。
经过设计和开发,协会会员信息管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。从而是我对c语言这门课程有了更好的了解。
但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。
参考文献
[1]c++程序设计教程 ,王连相,中国铁道出版社,2007
[2] C语言程序设计,谭浩强,清华大学出版社,1999
[3]C程序设计题解与上机指导,谭浩强,清华大学出版社,1999
[4] C语言的实际应用,安徽科学技术出版社,2000
[5] C语言函数手册,机械工业出版社,1999
[6] C语言实用程序荟萃,西安电子科技大学出版社,1993
致 谢
在编写程序的过程中,我们得到了丁政建老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!
感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。
在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。
附件Ⅰ 部分原程序代码
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#define N 100
struct people
{
char num[100];
char name[15];
char sex[20];
char age[20];
char zhuanye[20];
char xueyuan[20];
char telephone[20];
}people[N];
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 printf_one(int i);
void menu();
void chack_No(int i);
void chack_No(int i)
{
int k;
if(i>0)
{
for(k=0;k<i;k++)
{
if(strcmp(people[k].num,people[i].num)==0)
{
printf("您输入的会员编号已存在,请更换号码!");
printf("会员号:");
scanf("%d",&people[i].num);
chack_No(i);
break;
}
}
}
}
void input(int i)
{
no_input(i,i);
printf("会员编号:");
scanf("%s",people[i].num);
chack_No(i);
printf("姓名:");
scanf("%s", people[i].name) ;
printf("性别:");
scanf("%s",people[i].sex);
printf("年龄:");
scanf("%s",people[i].age);
printf("专业:");
scanf("%s",people[i].zhuanye);
printf("学院:");
scanf("%s",people[i].xueyuan);
printf("电话:");
scanf("%s",people[i].telephone);
}
void enter()
{
int i,n;
printf("请输入人数(0-%d) :",N-1);
scanf("%d",&n);
printf("\n 录入信息\n");
for(i=0;i<n;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;i<n;i++)
{
pos=i;
for (j=i+1;j<n;j++)
if (strcmp(people[pos].num,people[j].num)>0) pos=j;
if (pos!=i)
{
temp=people[i];
people[i]=people[pos];
people[pos]=temp;
}
}
printf_face();
for(i=0;i<n;i++)
{
if((i!=0)&&(i%10==0))
{
printf("\n\n按任意键继续....");
getch();
puts("\n\n");
}
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;i<k;i++)
{
printf("\n输入第%d个人的信息.",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("文件打开失败!\n");
}
for(i=n;i<k;i++)
if(fwrite(&people[i],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选择你要查询的方式 \n\t1).姓名 2).按会员编号 [ ]\b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{
k=-1;
printf("\n\n请输入你要查询的会员姓名:");
scanf("%s",p.name);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.name,people[i].name)==0)
{
k=i;
printf_one(k);
break;
}
if(k==-1)
{
printf("\n\n你输入的会员不存在!");
printf("\n\n你想继续查询吗?\n\t 1).是 2).否 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}while(k==-1&&w1==1);
break;
case 2:
do
{
k=-1;
printf("\n\n请输入你要查询的会员编号:");
scanf("%s",p.num);
printf_face();
for(i=0;i<n;i++)
if(strcmp(p.num,people[i].num)==0)
{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\n你输入的会员编号不存在!");
printf("\n\n你想继续查询吗?\n\t1).是 2).否 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}while(k==-1&&w1==1);
break;
}
w4=0;w3=0;
if(k!=-1)
{
printf("\n\n请选择你要进行的操作:\n\t 1).查询 2).修改 3).删除 4).返回主菜单 [ ]\b\b");
scanf("%d",&w2);
switch(w2)
{
case 2:
w3=modify_data(k);
break;
case 3:
printf("\n你确定要删除吗?\n\t 1).是 2).否 [ ]\b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a<n;a++)
{
strcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].zhuanye,people[a+1].zhuanye);
strcpy(people[a].xueyuan,people[a+1].xueyuan);
strcpy(people[a].telephone,people[a+1].telephone);
}
break;
}
if(w3==1||w4==1)
{
save(n);
printf("\n\n操作成功! ^_^ ");
printf("\n\n请输入你要进行的操作: \n\t 1).继续查询 2).返回上一级 [ ]\b\b" );
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;i<n;i++)
{if((i!=0)&&(i%10==0))
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期:
指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名: 日 期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
导师签名: 日期: 年 月 日
致 谢
时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。
首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。
首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。
其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。
另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。
最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。
致 谢
四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。
回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。
学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。
在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。
最后,我要特别感谢我的导师刘望蜀老师、和研究生助教吴子仪老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。
展开阅读全文