当前位置:文档之家› 某小型会议参会人员管理系统

某小型会议参会人员管理系统

- - -课程设计(大作业)报告课程名称:程序设计基础课程设计设计题目:某小型会议参会人员管理系统院系:信息技术学院班级:级计算机科学与技术班设计者:学号:20110102指导教师:设计时间:2012-6-18——2012-6-22信息技术学院昆明学院课程设计(大作业)任务书昆明学院C语言课程设计报告设计题目:学生成绩管理系统设计小组成员:指导教师:所在院系:年级班级:计算机科学与技术2012年6 月18日——2012年6月22 日一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。

(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。

2. 课程设计要求某小型会议参会人员有下列信息:·序号;·;·性别;·年龄;·房间号(设每个房间只住一人)。

试设计一个管理系统,使之提供以下功能:1.随时对报到人员进行输入(参会人员信息用文件保存);2.随时按所住房间号(由小到大)输出已报到人员信息;3.数据查找(1)查找指定人员的数据,并按照一定的格式输出查找结果。

如果未找到,则提示没有此人的信息,并返回菜单。

4.数据删除:删除指定的人员的数据。

5.统计参会人员数量。

二、总体设计根据系统的要求,系统总体设计如图1所示。

图1 系统总体结构三、详细设计1、数据结构设计#definet 6 /*定义常数表示记录数*/ struct worker /*定义数据结构*/{char num[50]; /* 序号*/char name[50]; /* */char sex[50]; /* 性别*/int age; /* 年龄*/char rmnu[50]; /* 房间号*/}worker[t];int sum=0; /*定义常数表示总数*/2.函数说明(1) 主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。

(2) 其他各功能函数包括3.函数设计(1)主菜单函数代表所选菜单选项;void fun(struct worker *s) //主菜单目录{int n;printf("\n\n\t\t参会人员管理系统");printf("\n\n\t----------------------------------------");printf("\n\n\t\t1:录入报到人员信息");printf("\n\n\t\t2:输出已报到人员信息");printf("\n\n\t\t3:查找指定人员信息");printf("\n\n\t\t4:删除指定人员信息");printf("\n\n\t\t5:统计参会人员数量");printf("\n\n\t\t6:保存并退出系统");printf("\n\n\t----------------------------------------");printf("\n\n请选择你要的服务(按数字1~6进入):");scanf("%d",&n);system("cls");if(n==1) //进入1菜单{printf("\n\n\t\t欢迎进入录入报到人员信息系统");fun1(s);}else if(n==2) //进入2菜单{printf("\n\n\t\t欢迎进入输出已报到人员信息系统");fun2(s);}else if(n==3) //进入3菜单{printf("\n\n\t\t欢迎进入查找指定人员信息系统");fun3(s);}else if(n==4) //进入4菜单{printf("\n\n\t\t欢迎进入删除指定人员信息系统");fun4(s);}else if(n==5) //进入5菜单{printf("\n\n\t\t欢迎进入统计参会人员数量系统");fun5(s);} else if(n==6) //进入6菜单{if(sum>0) //保存数据{baocun(s);}printf("\n\n\t\t谢谢使参会人员管理系统!\n"); //退出系统printf("\n\n\t\t请双击Enter键退出系统:");getchar();getchar();exit(0);}elseprintf("\n\n\t\t数据错误");}运行结果:图一(系统主菜单)(2)录入报到人员信息:void fun1(struct worker *s){FILE *fp;int n,i;char d;printf("\n\n\t请输入参会人员的数量:");scanf("%d",&n);for(i=0;i<n;i++){printf("\n\t\t请输入参会人员的序号:");scanf("%s",s[i].num);printf("\n\t\t请输入参会人员姓名:");scanf("%s",s[i].name);sum++;printf("\n\t\t请输入参会人员的性别:");scanf("%s",s[i].sex);printf("\n\t\t请输入参会人员的年龄:");scanf("%d",&s[i].age);printf("\n\t\t请输入参会人员的房间号:");scanf("%s",s[i].rmnu);system("cls");}if((fp=fopen("D:\\CCmeeting.dat","wb"))==NULL) {printf("can't open file!\n");exit(0);}for(i=0;i<n;i++){if(fwrite(&s[i],sizeof(struct worker),1,fp)!=1) printf("file write error\n");fclose(fp);}printf("返回首页(请按Enter键):");scanf("%c",&d);system("cls");fun(s);}运行结果:图二(录入参会人员信息)(3)输出已报道人员信息:void fun2(struct worker *s){int i;FILE *fp;char d;sum=0;if((fp=fopen("meeting.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}for(i=0;i++){if(fread(&s[i],sizeof(struct worker),1,fp)!=1){if(feof(fp)){break;}else{printf("ERRor!");}}else{printf("\n\t输出参会人员的信息:");printf("\n\n\t\t序号\t姓名\t性别\t年龄\t房间号");printf("\n\t---------------------------------------------------");printf("\n\n\t\t%-8s%-8s%-8s%-8d%-8s",s[i].num,s[i].name,s[i].sex,s[i].age,s[i].rmnu);printf("\n\t---------------------------------------------------");sum++;}}fclose(fp);printf("\n\n返回首页(请按Enter键):");getchar();scanf("%c",&d);system("cls");fun(s);}运行结果:图3(输出报到人员信息)(4)查找指定人员信息:void fun3(struct worker *s){char a[20],d;int i,flag=0;printf("\n\n\t请输入要查询参会人员的序号:");scanf("%s",a);for(i=0;i<5;i++){if(!strcmp(s[i].num,a)){printf("\n\t此参会人员的信息:");printf("\n\n\t\t序号\t姓名\t性别\t年龄\t房间号");printf("\n\t---------------------------------------------------");printf("\n\n\t\t%-8s%-8s%-8s%-8d%-8s\n",s[i].num,s[i].name,s[i].sex,s[i].a ge,s[i].rmnu);printf("\n\t---------------------------------------------------");flag=1;}}if(!flag){printf("\n\t\t查无此人!");}printf("\n\n返回首页(请按Enter键):");getchar();scanf("%c",&d);system("cls");fun(s);}运行结果:四程序清单与执行结果1.头文件#include <stdio.h>#include <string.h>#include <stdlib.h>#define t 6 //定义常数表示记录数void fun(struct worker *s); //系统菜单void fun1(struct worker *s); //录入人员信息void fun2(struct worker *s); //输出人员信息void fun3(struct worker *s); //查找指定人员信息void fun4(struct worker *s); //删除指定人员信息void fun5(struct worker *s); //保存并退出struct worker{char num[50]; //序号char name[50]; //char sex[50]; //性别int age; //年龄char rmnu[50];//房间号}worker[t];int sum=0; //定义常数表示总数2.主函数源程序代码与运行结果主函数源程序代码:void main(){struct worker s[t]; //定义结构体数组fun(s); //调用系统菜单}运行结果:五.调试与测试所谓程序调试是对程序的查错和排错。

相关主题