logo资料库

c语言职工信息管理系统报告(含代码,已经调试过).doc

第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
资料共34页,剩余部分请下载后查看
职工信息管理系统 一、 题目要求 设计一职工信息管理系统,使之能提供以下功能: (1) 系统以菜单方式工作 (2) 职工信息录入功能(职工信息用文件保存) (3) 职工信息浏览功能 (4) 职工信息查询功能,查询方式可按学历查询或按职工号查询 (5) 职工信息删除修改功能(可选项) 二、 需求分析 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有 件的操作功能;在程序中应该包括录入、追加、插入、浏览、查询、 排序、删除、修改和退出的功能。 三、总体设计 根据上面的需求分析,可以将这个系统的设计分为如下九大模块: 录入、追加、插入、浏览、查询、排序、删除、修改、退出。 职工信息管理系统 退出 数据录入 数据追加 数据插入 数据浏览 数据查询 数据修改 数据删除 图 1.1 系统功能模块图 四、 详细设计 1.主函数
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函 数调用。其中各功能模块用菜单方式选择。 【流程图】 N 显示一系列功能选项 输入 n,判断 n 是否是 1-8 Y 根据 n 的值调用各功能模块 函数 【程序】 void menu() { int n,w; do { puts("中国地质大学(武汉)机电学院通信 2 班 王聪"); puts("\t\t***************职工信息管理系统***************\n\n"); puts("\t\t\t\t1.录入职工信息"); puts("\t\t\t\t2.追加职工信息"); puts("\t\t\t\t3.插入职工信息"); puts("\t\t\t\t4.浏览职工信息"); puts("\t\t\t\t5.查询职工信息"); puts("\t\t\t\t6.删除职工信息"); puts("\t\t\t\t7.修改职工信息"); puts("\t\t\t\t8.退出系统"); puts("\t\t**********************************************\n\n"); printf("请选择功能项前面的数字(1-8): [ ]\b\b"); scanf("%d",&n); if(n<1||n>8)//对选择的数字作判断 {w=1;getchar();} else w=0; }while(w==1);
/*选择功能*/ switch(n) { case 1:enter();break; case 2:add();break; case 3:insert();break; case 4:browse();break; case 5:select();break; case 6:del();break; case 7:modify();break; case 8:exit(0);break; } //输入模块 //追加模块 //插入模块 //浏览模块 //查询模块 //删除模块 //修改模块 //退出 } /*主函数*/ void main() { menu(); } 2.各功能模块设计 (1)输入模块 【流程图】 输入需要输入的职工信息个数 n 依次输入职工信息 系统自动保存 一个任务结束时让用户选择是浏览还是返回 【程序】 void enter() { int i,n; printf("您需要录入多少个职工的信息(1-%d)?:",N); scanf("%d",&n); printf("\n 现在请输入数据\n\n"); for(i=0;i
printf("\n 输入第%d 个职工信息。\n",i+1); input(i);//调用输入函数 } if(i!=0) save(n);//调用保存函数 printf_back(); //一个任务结束时让用户选择是浏览还是返回 } (2)追加模块 【流程图】 输入需要追加的职工信息个数 n 依次输入职工信息 判断能否打开文件 Y 系统自动保存 N 输出“文件无法打开” 一个任务结束时让用户选择是浏览还是返回 【程序】 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
fwrite(&sta[i],sizeof(struct staff),1,fp); fclose(fp); printf_back();//一个任务结束时选择浏览还是返回 } (3)修改模块 【流程图】 显示全部职工信息 输入需要修改的职工号 判断该职工信息是否存在 N Y 系统自动保存 输出“你所要修改的 职工信息不存在!请 输入其他工号。” 一个任务结束时让用户选择是浏览还是返回 【程序】 void modify()//修改模块 { struct staff s; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; //给用户看全部记录以便确认要修改的记录 printf_face();//调用显示数据结构项目函数 for(i=0;i
puts("\n\n"); } printf_one(i);//调用显示一个记录的函数 } do { printf("\n\n 输入您想修改的职工的工号!:"); scanf("%s",s.num);//输入要修改的数据的工号 for(i=0;i
显示全部职工信息 输入需要删除的职工号 判断该职工信息是否存在 N Y 删除该职工信息 输出“你所要删除的 职工信息不存在!请 输入其他工号。” 一个任务结束时让用户选择是浏览还是返回 【程序】 void del() { struct staff s; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; //给用户看全部记录以便确认要删除的记录 printf_face();//调用显示数据结构项目函数 for(i=0;i
printf("\n\n 输入您想删除的职工的工号!:"); scanf("%s",s.num);//输入要删除的数据的工号 for(i=0;i
分享到:
收藏