《C语言程序设计报告-职工信息管理系统设计.doc》由会员分享,可在线阅读,更多相关《C语言程序设计报告-职工信息管理系统设计.doc(38页珍藏版)》请在金锄头文库上搜索。
1、目录一 系统功能21系统需求分析22 系统功能总体设计23. 输入输出功能24. 总体设计流程图3二 概要设计41 抽象数据类型定义42 系统模块组成及其功能4三 详细设计51 用C语言定义相关数据52 各模块的类C码算法51 职工信息显示函数52 职工信息的追加函数63 职工信息修改函数64 职工信息删除函数85 职工信息查询函数106职工信息排序函数107退出函数103 函数的调用关系图10四 调试分析(包括流程图和截图)111 显示模块N-S图112追加模块的流程图123.查询模块的流程图134.排序模块的流程图145. 修改模块的流程图156删除模块流程图167. 各个模块的截图及说明
2、17五 总结25六 参考文献25七 程序原代码26一 系统功能 1系统需求分析 这是一个对职工信息管理的系统,通过这个系统可以显示所有职工的信息并可以对职工信息进行追加、修改、删除、查询、排序等多种功能的操作.2 系统功能总体设计 程序的功能:随着计算机科学的发展,现在我们不可能还是用手写的方式对职工的信息进行管理,这就需要设计一个系统运用计算机来实现对职工信息的管理.该系统用数组实现对职工信息数据的存储,且总体数据结构应用文件类型数据,文件类型为结构体数组,这就要建立数据库来存放职工的信息,通过指针文件来实现对数据库里信息的读和写,需要存储的职工信息包括职工号、职工姓名、性别、年龄、学历、工
3、资、部门、职称等等,最后通过函数的调用来实现对职工信息的管理.初始化 显示函数 追加函数主涵数main() 修改函数 删除函数 查询函数 排序函数 退出函数3. 输入输出功能数据库中的数据全通过fread()函数来读取数据,并且通过fwrite函数将修改过后的数据放到一个新的文件里去,从而实现的系统的输入输出功能。4. 总体设计流程图开始 主菜单 选择功能显示模块追加模块修改模块删除模块查询模块排序模块退出模块 保存修改后的数据结束二 概要设计 1 抽象数据类型定义Struct stu;long int zgh; /*职工号*/ Char name10; /*姓名*/ Char xb4; /*
4、性别*/ Int nl; /*年龄*/ Char xl10; /*学历*/ Double gz; /*工资*/ Char bm15; /*部门*/ Char zc10; /*职称*/s402 系统模块组成及其功能 主函数 void main() 显示函数 void Disp() 功能 : 显示数据库中职工的所有信息。 追加函数 void Appe() 功能 : 加入你想加入的职工的信息,可以追加多条,也可以追加多次。 修改函数 void Modi() 功能 : 修改你想修改的职工的信息,可以修改职工的某项信息,也可以修改多项信息,还可以多次修改其他职工的信息,你可以通过选择职工号 或者职工的姓
5、名二种方式进行修改职工的信息,。 删除函数 void Dele() 功能 : 删除你想删除的职工的所有信息,可以多次删除,同样可以通过职工号或者职工的姓名二种方式进行删除,删除后会显示删除结果。 查询函数 void Query() 功能 : 可以通过该函数来查询你所需职工的所有信息并显示,同样你可以选择是按职工号、职工的姓名、工资或者部门来查询,当你查询的职工不存在时系统还会提示你,你所查询的职工不存在。 排序函数 void Sore() 功能 : 通过该函数完成按职工工资降序排列并显示。 退出函数 功能 : 完成退出程序。三 详细设计 1 用C语言定义相关数据 Struct stulong
6、int zgh; /*职工号*/Char name10; /*姓名*/Char xb4; /*性别*/Int nl; /*年龄*/Char xl10; /*学历*/Double gz; /*工资*/Char bm15; /*部门*/Char zc10; /*职称*/s40;2 各模块的类C码算法 1 职工信息显示函数void Disp() /*显示模块*/int i; 定义循环变量system(COLOR 1f); 调整显示界面颜色;for(i=0;iN;i+) 利用for 循环 将数据库的内容出来printf(输出职工信息); 2 职工信息的追加函数void Appe() /*追加模块*/
7、int i,p,t; void Wr_file(); printf(请输入你想添加的职工个数:);scanf(%d,&i); for(p=0;pi;p+) (利用for循环追加想要追加的职工的个数) printf(你还想要追加吗?是 请按1 否 请按2);scanf(%d,&t);if(t=1) Appe(); printf(“追加后的信息为:”);3 职工信息修改函数void Modi() /* 修改模块*/ int n,c,p,i,b=1,j=0,k=1;char fname10;int long r;system(COLOR 9f); (控制颜色)void Wr_file();print
8、f(请选择修改方式n);printf(1:职工号 2:姓名n);scanf(%d,&n);switch(n) 输入工号或姓名for(i=0;iN;i+)case 1:for(b=1;b2;)printf(请输入职工号:);scanf(%ld,&r);for(i=0;iN;i+)if(si.zgh=r)p=i;j=1;switch(j)case 0:printf(无此人信息n); scanf(%d,&b);break;case 1:for(;k2;)printf(请选择修改项目n); scanf(%d,&c);switch(c)(修改并保存)Wr_file();printf(你还要修改此人其他项
9、目吗n);printf(1:yes 2:non);scanf(%d,&k); if(k=1) continue; (若是k=1则继续修改此人的信息) printf(你还要修改其他职工的其他项目吗n);printf(1:yes 2:non);scanf(%d,&k);if(k=1) continue;break;case 2:for(;b2;)printf(请输入姓名:);scanf(%s,fname);for(i=0;iN;i+)if(strcmp(si.name,fname)=0) (判断是否找到这个人)p=i;j=1; switch(j) case 0:printf(无此人信息n); sc
10、anf(%d,&b);break;case 1:for(;k2;)printf(请选择修改项目n);scanf(%d,&c);switch(c)(修改并保存) printf(你还要修改此人其项目吗n); printf(1:yes 2:non); scanf(%d,&k);if(k=1) continue; break;printf(你还要修改其他职工的其他项目吗?n);printf(1:yes 2:non);scanf(%d,&b); break;break;(修改完了输出) 4 职工信息删除函数void Dele() /*删除模块*/ int a,b,c,d,x,p,i,j=0; char
11、sname10; long int sgh; system(COLOR 5f); void Quit(); (退出函数) printf(请选择删除方式n);scanf(%d,&x); switch(x)case 1:for(c=1;c2;)printf(请输入删除工号n);scanf(%ld,&sgh);for(i=0;iN;i+) if(si.zgh=sgh)b=i;j=1; switch(j)case 0:printf(无此人n);printf(还要删n);printf(1.yes 2.non); 选择是否还要删除 scanf(%d,&c);break;case 1:printf(是否删除此人n);printf(1.yes 2.non);scanf(%d,&a);switch(a)case 1:for(p=(b+1);pN;p+)d=b+1;sb=sd;b+; N=N-1; Wr_file(); printf(还要删除吗n);printf(1.yes 2.non); 选择是否还要删除?scanf(%d,&c);break;case 2:c=2;break;break; case 2:f