参会人员管理系统设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计
课程设计报告
课题参会人员管理系统
专业计算机科学与技术(软件工程)
学生姓名
班级
学号
指导教师张静林
完成日期2010年6月
目录
一课程设计的目的 (1)
二课程设计任务与要求 (1)
三主要设计指标及特点 (2)
3.1 人员登录 (2)
3.2 显示报道人员信息 (2)
3.3 查询 (4)
3.4 统计 (4)
3.5 修改 (6)
3.6 删除 (6)
3.7 退出 (7)
四设计小结 (8)
五参考文献 (9)
六源程序 (10)
一课程设计的目的
1、加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;
2、进一步掌握和利用C语言程序设计能力;
3、进一步理解和运用结构化程序设计的思想和方法;
4、初步掌握开发一个小型实用系统的基本方法;
5、学会调试一个较长程序的基本方法;
6、学会利用流程图或N-S图表示算法;
7、掌握书写程序设计开发文档的能力(书写课程设计报告)。
二课程设计任务与要求
1设计内容
1.登录参会人员的下列信息:
·姓名、性别、年龄、单位
·房间号(设每个房间只住一人,房间号为101#—120#,···..,501#—520#)。
2、主菜单应至少包括以下几个菜单项:
人员登录、显示报道人员信息、查询、统计、修改、删除
3、程序应分别用几个函数实现以上功能:
·随时对报道人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有房间都已经住满,则拒绝再进行人员登录;
·随时按所住房间号(由小到大)输出(print)已报道人员信息;
·能够根据姓名实现对人员信息的查询;
·能够根据单位对与会人员进行分类统计,并输出统计结果;
·能够修改与会人员信息;
·能够删除某个参会人员,并清空其所住房间。
2
三主要设计指标及特点
3.1人员登录
主程序通过Menu函数实现该程序的主界面,函数体包含相应的printf语句来实现相应的菜单输出。
void menu()
{
printf("**********************\n");
printf("Meeting attendant Managing System Demo\n");
printf("1.Staff login\n");
printf("2.Print Info\n");
printf("3.SearchByName\n");
printf("4.Statistics\n");
printf("5.Modify\n");
printf("6.Delete\n");
printf("0.Quit\n");
printf("**********************\n");
}
3.2显示
2
对应的login界面,是通过调用login函数实现的。
根据提示输入登录的信息,就完成了参会人员的基本信息的录入。strcpy(staff[length].room_num,room_num); /* 录入登陆信息*/ printf("Type in your name:");
scanf("%s",&staff[length].name);
printf("Type in your gender:");
scanf("%s",&staff[length].sex);
printf("Type in your age:");
scanf("%d",&staff[length].age);
printf("Type in your dapartment:");
scanf("%s",&staff[length].department);
length++; /*参会人数加一*/
}
在对有人登录的房间排好序后,用printf语句输出信息,如下:
3
3.3查找
按照提示输入3,进入查找界面。运用SearchByName功能,根据程序给出的提示:Type in the staff’s name :根据输入信息,程序用for循环对已经登录的人员信息进行对比,看是否相符。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++; } } 3.4统计 4 按照提示输入4,运行Statistics。 int flag=0; /*辅助标记*/ char department[100][30]; /*用于记录不同单位的名字*/ int counter[100]; /*分别记录相应不同单位的参会人数*/ if(length!=0) { k=0; /*单独处理数组第一个元素*/ strcpy(department[k],staff[0].department); /*记录单位*/ counter[k]=0;/*计数器清零*/ for(j=0;j if(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;j if(strcmp(department[k],staff[j].department)==0) counter[k]++; } flag=0; /*辅助标志清零*/ } 否则,输出"No one logined yet... 5