参会人员管理系统设计说明书.docx
《参会人员管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《参会人员管理系统设计说明书.docx(24页珍藏版)》请在冰豆网上搜索。
参会人员管理系统设计说明书
参会人员管理系统设计说明书(总21页)
程序设计课程设计报告
(2012--2013年度第2学期)
参会人员管理系统
专业
软件工程
学生姓名
班级
软件121
学号
28
指导教师
徐秀芳
完成日期
参会人员管理系统
1概述
课程设计的目的
(1)加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;
(2)进一步掌握和利用C语言程序设计能力;
(3)进一步理解和运用结构化程序设计的思想和方法;
(4)初步掌握开发一个小型实用系统的基本方法;
(5)学会调试一个较长程序的基本方法;
(6)学会利用流程图或N-S图表示算法;
(7)掌握书写程序设计开发文档的能力(书写课程设计报告)。
课程设计内容
(1)登录参会人员的下列信息:
姓名、性别、年龄、单位、房间号(设每个房间只住一人,房间号为101#—120#,···..,501#—520#)。
(2)主菜单应至少包括以下几个菜单项:
人员登录、显示报道人员信息、查询、统计、修改、删除
(3)程序应分别用几个函数实现以上功能:
随时对报道人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有房间都已经住满,则拒绝再进行人员登录;
随时按所住房间号(由小到大)输出(print)已报道人员信息;
(4)能够根据姓名实现对人员信息的查询;
(5)能够根据单位对与会人员进行分类统计,并输出统计结果;
(6)能够修改与会人员信息;
(7)能够删除某个参会人员,并清空其所住房间。
2系统需求分析
系统目标
(1)能够实现人员的登陆、显示、查询、统计、修改、删除等功能。
(2)能更快的找到参会人员信息,实现入住科技化,现代化。
使用该系统就可以登录,并能查询到登录人的姓名、性别、年龄、单位。
以及作为主办方对登录人员部门的详细统计,以及修改人员的信息,当该信息用不到时可以删除信息。
主体功能
(1)人员登录:
提供姓名、性别、年龄、单位
(2)显示报到人员信息:
显示已登录人员的信息
(3)查询:
通过姓名对其进行信息查询
(4)统计:
统计共有哪些部门,输出部门数
(5)修改:
对参会人员进行信息修改
(6)删除:
删除不用信息
开发环境
Microsoftvisualc++
3系统概要设计
系统的功能模块划分
(1)登录模块
(2)显示参会人员信息模块
(3)查询模块
(4)统计模块
(5)修改模块
(6)删除模块
系统流程图
图3-1参会人员管理系统总流程图
4系统详细设计
参会人员管理系统录入编辑模块设计
Y
N
Y
N
图4-1参会人员管理系统登录功能结构图
参会人员管理系统显示登录人员信息模块设计
N
Y
图4-2参会人员管理系统显示人员信息功能结构图
参会人员管理系统查询模块设计
N
Y
N
Y
图4-3参会人员管理系统查询功能结构图
参会人员管理系统统计模块设计
N
Y
图4-4参会人员管理系统统计功能结构图
参会人员管理系统修改模块设计
N
Y
Y
N
图4-5参会人员管理系统修改功能结构图
参会人员管理系统删除模块设计
N
Y
N
Y
图4-6参会人员管理系统删除功能结构图
5测试
测试方案
对系统进行组建、编译、执行,依次输入指令,查看是否完成各项操作,如:
输入280#,张伯虎,男,19,门市部,查看是否能执行,登录、显示信息、查询、统计、修改、删除等操作。
测试结果
根据运行结果,测试成功,完成对参会人员管理系统的编辑。
(1)进入菜单页面
图5-1弹出菜单栏
(2)进行人员登录
图5-2进行登录
(3)显示参会人员登录信息
图5-3显示登录人员信息
(4)通过姓名查询信息
图5-4通过姓名查询人员信息
(5)进入统计界面
图5-5对登录参会人员进行统计
(6)修改人员信息
图5-6对登录人员进行修改
(7)进入删除界面
图5-7删除参会人员信息
6小结
经过两个星期的程序设计课程设计,总的来说收益匪浅啊!
在这次课程中,与同学合作,分组竞争。
共同进步!
一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。
程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。
再总体解决大的问题。
这样做起来不仅有条理也使问题得到了轻松的解决。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
通过这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。
以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!
参考文献
[1]谭浩强.C程序设计(第四版).北京:
清华大学出版社,
[2]叶俊民.软件工程.北京:
清华大学出版社,
[3]徐波.C专家编程.人民邮电出版社,
附录
附录1源程序清单
附录参会人员管理系统登录模块源程序
intlogin(STAFFstaff[],intlength)
{
inti;
if(length==100)/*房间已满,拒绝登陆*/
{
printf("房间已满!
\n拒绝登录!
");
exit(-1);/*异常退出程序*/
}
else
{
charroom_num[4];
printf("Theroom_numisrangefrom101#to120#...from501#to520#!
\n");
printf("Typeintheroom_num:
");
scanf("%s",&room_num);
for(i=0;i{
if(strcmp(room_num,staff[i].room_num)==0)
{/*申请的房间已经有人*/
printf("申请的房间已经有人,请从新选择...\n");
printf("输入别的房间号:
");/*让参会人选择别的空房间*/
scanf("%s",&room_num);
i=-1;/*为检验新的房间是否为空作准备*/
}
}/*endfor*/
strcpy(staff[length].room_num,room_num);/*录入登陆信息*/
printf("Typeinyourname:
");
scanf("%s",&staff[length].name);
printf("Typeinyourgender:
");
scanf("%s",&staff[length].sex);
printf("Typeinyourage:
");
scanf("%d",&staff[length].age);
printf("Typeinyourdapartment:
");
scanf("%s",&staff[length].department);
length++;/*参会人数加一*/
}/*endelse*/
returnlength;
}/*endlogin()*/
附录参会人员管理系统显示登录人员信息模块源程序
voidprint(STAFFstaff[],intlength)
{
STAFFtemp;
inti,j;
if(length!
=0)
{
for(i=0;ifor(j=i;jif(strcmp(staff[j].room_num,staff[j+1].room_num)>0)
{
temp=staff[j];
staff[j]=staff[j+1];
staff[j+1]=temp;
}
printf("登录人员信息:
\n");
printf("NameSexAgeDepartmentroom-num\n");
for(i=0;i{
printf("%s\t",staff[i].name);/*输出报到人员的信息*/
printf("%s\t",staff[i].sex);
printf("%d\t",staff[i].age);
printf("%s\t",staff[i].department);
printf("%9s",staff[i].room_num);
printf("\n");
}
}
else
printf("未有参会人员登录...\n");
}/*endprint()*/
附录参会人员管理系统查询模块源程序
voidseachByName(STAFFstaff[],intlength)
{
charname[20];
inti;
intcounter=0;
if(length!
=0)
{
printf("输入要搜索的参会人员的姓名:
");
scanf("%s",&name);
printf("NameSexAgeDepartmentroom-num\n");
for(i=0;i{
if(strcmp(staff[i].name,name)==0)/*判断名字是否相同,相同则输出人员信息*/
{
printf("%s\t",staff[i].name);
printf("%s\t",staff[i].sex);
printf("%d\t",staff[i].age);
printf("%s\t",staff[i].department);
printf("%13s",staff[i].room_num);
printf("\n");
counter++;
}
}
if(counter==0)/*查找的人还没登录*/
printf("\n%s查找的人员还未登录\n",name);
}
else
printf("未有参会人员登录...\n");
}/*endseachByName*/
附录参会人员管理系统统计模块源程序
voidstatistics(STAFFstaff[],intlength)
{
inti;
intk,j;
intindex;
intflag=0;/*辅助标记*/
chardepartment[100][30];/*用于记录不同单位的名字*/
intcounter[100];/*分别记录相应不同单位的参会人数*/
if(length!
=0)
{
k=0;/*单独处理数组第一个元素*/
strcpy(department[k],staff[0].department);/*记录单位*/
counter[k]=0;/*计数器清零*/
for(j=0;jif(strcmp(department[k],staff[j].department)==0)
counter[k]++;
for(i=1;i{
for(index=0;index<=k;index++)
{
if(strcmp(department[index],staff[i].department)==0)
flag++;/*当前此单位在前面已经统计过*/
}
if(flag==0)
{
/*出现一个未统计过的单位*/
k++;/*用两数组的下一个元素分别存放单位和该单位参会人数*/
strcpy(department[k],staff[i].department);/*记录单位*/
counter[k]=0;/*计数器清零*/
for(j=0;jif(strcmp(department[k],staff[j].department)==0)
counter[k]++;
}
flag=0;/*辅助标志清零*/
}
printf("Statisticsresult:
\n");
printf("Departmentnumber\n");
for(i=0;i<=k;i++)
{
printf("%s%20d\n",department[i],counter[i]);
}
}
else
printf("未有参会人员登录...\n");
}/*endstatistics()*/
附录参会人员管理系统修改模块源程序
voidmodify(STAFFstaff[],intlength)
{
charroom_num[10];
inti,k;
if(length!
=0)
{
printf("输入要修改信息的人员的房间号:
");
scanf("%s",&room_num);
for(i=0;i{
if(strcmp(staff[i].room_num,room_num)==0)
{
printf("从新输入房间号:
");
scanf("%s",&room_num);
for(k=0;k{
if(k==i)continue;/*可以选择原来的房间*/
if(strcmp(room_num,staff[k].room_num)==0)
{/*申请的房间已经有人*/
printf("申请的房间已经有人,请从新选择...\n");
printf("输入其他房间号:
");
scanf("%s",&room_num);/*提示选择别的空房间*/
k=-1;/*为检验新的房间是否为空作准备*/
}
}
/*修改人员信息*/
strcpy(staff[i].room_num,room_num);
printf("Typeinyourname:
");
scanf("%s",&staff[i].name);
printf("Typeinyourgender:
");
scanf("%s",&staff[i].sex);
printf("Typeinyourage:
");
scanf("%d",&staff[i].age);
printf("Typeinyourdapartment:
");
scanf("%s",&staff[i].department);
printf("Editsuccessfully...");
}
}
}
else
printf("未有参会人员登录...\n");
}/*endmodify*/
附录参会人员管理系统删除模块源程序
intDelete(STAFFstaff[],intlength)
{
inti,k;
intcounter=length;
charroom_num[10];
if(length!
=0)
{
printf("输入要删除信息的人员的房间号:
");
scanf("%s",&room_num);
for(i=0;i{
if(strcmp(staff[i].room_num,room_num)==0)
{/*删除人员*/
for(k=i;kstaff[k]=staff[k+1];/*把该人员的信息覆盖掉*/
printf("Deletesuccessfully...");
length--;/*参会人数减一*/
}
}
if(counter==length)/*要删除的人员还没登陆*/
printf("要删除的人员还未登录...\n");
}
else
printf("未有参会人员登录...\n");
returnlength;
}/*endDelete()*/