1、课程设计.课程设计(职工信息管理系统)说明书 目录第一章 开发背景 - 2 -第二章 系统需求 - 3 -2.1 系统总需求 - 3 -2.2 功能需求 - 3 -2.3 数据需求 - 4 -2.4 分工情况 - 4 -第三章系统设计 - 4 -3.1系统总功能模块设计 - 4 -3.2各子功能模块设计 - 5 -3.3数据结构设计 - 6 -3.4详细设计 - 7 -3.4.1主函数 - 7 -3.4.2职工信息新增 - 8 -3.4.3职工信息修改 - 9 -3.4.4职工信息删除 - 10 -3.4.5.1职工信息查询(工资) - 10 -3.4.5.2职工信息查询(学历) - 11 -
2、3.4.6显示全体职工信息以及统计职工人数 - 12 -3.4.7计算全体职工的平均工资以及输出总工资 - 12 -3.4.8写文件的函数 - 13 -3.4.9读文件的函数 - 13 -第四章系统测试 - 14 -4.1测试的目的 - 14 -4.2测试手段 - 14 -4.3信息管理 - 14 -第五章系统特点及关键技术 - 14 -5.1主窗口显示功能编号 - 14 -5.2功能特点 - 14 -5.3关键技术 - 15 -第六章结论 - 15 -第七章参考文献 - 15 -第八章结束语 - 15 -附录 - 16 -第一章 开发背景 职工信息管理系统就是现有的计算机硬件设备、软件和网络
3、基础设施,通过一定的协议连接起来的在Microsoft Visual C+ 6.0 环境下开发的,进行职工基本信息的储存、修改、查询及删除等于一身的C语言系统。具体一点就是职工信息的管理以及一些简单的数据分析、查询功能,例如统计职工人数、统计总工资、计算平均工资、通过学历工资等查询职工信息、删除非正常职工信息、增加职工信息等。第二章 系统需求2.1 系统总需求 职工信息管理系统满足职工管理者需求。职工管理者应用这套系统主要方便对职工的管理以及职工信息的录入、修改、删除、及查询。还可以通过这个系统完成对职工人数的统计、职工平均工资的计算。可以一次性输出所有职工信息,便于数据的分析、整理。通过对职
4、工基本信息的整理有利于更好的调配资源,满足职工的需求。有利于企业对工作人员的管理及工作的分配。实现资源的优化配置,避免一些不必要的浪费。及时地修改、删除、新增职工信息,适应社会发展需求,使职工信息得到最及时地更新。2.2 功能需求 该职工信息管理系统能够为管理人员提供最及时地员工信息,包括员工工号、姓名、年龄、工资、学历、家庭住址、性别、职工联系电话等基本信息。并根据职工信息计算出员工的平均工资,通过工资、学历查找职工。为在激烈环境下竞争的企业提供更加精确、及时的职工信息,实现人力资源的优化配置。整个系统共分为七个模块:(1):职工信息新增(2):职工信息修改(3):职工信息删除(4):职工信
5、息查询(工资、学历)(5):显示职工信息(6)::计算平均工资(7):显示全体职工工资职工信息新增:主要对职工信息的录入。职工信息修改:主要对有改动职工信息进行录入。职工信息删除:对一些退休或辞职等不再在该公司公司就职的人员信息进行删除,也就是用后面的职工信息代替前面的。职工信息查询:根据一些特定的要求(学历、工资),查找满足条件职工。显示职工信息:就是将所有的在职职工信息全部显示出来。计算平均工资:根据所录入的职工信息里面的工资,计算员工平均工资。显示全体职工工资:根据所录入的职工信息里面的工资,将所有职工工资全部显示出来。2.3 数据需求职工信息=职工号+职工姓名+职工性别+职工年龄+职工
6、学历+职工工资+职工家庭住址+职工联系电话 2.4 分工情况说明书的书写:1彭文宇:第一章、第二章、第六章、第七章、第八章。 2 邓琼: 第三章、第四章、第五章、附录程序的编写:1. 彭文宇:写文件(void writeworker)、读文件函数(void readworker)、信息新增函数(void addworker)、信息删除函数(void deleteworker) 2. 邓琼:结构体(typedefstruct worker)、全局变量的定义、显示信息函数(统计总人数)(voidshowworker)、修改信息函数(voidalterworker)、查找信息函数(voidfindw
7、orker)、求工资平均值函数(voidaverageworker)、主函数(voidmain)。第三章系统设计3.1系统总功能模块设计职工信息管理系统是对在岗职工的基本情况进行综合的管理。其基础数据从公共代码设置流入。包括职工信息新增、职工信息修改、职工信息删除、职工信息查询(分别按工资、学历进行查询)、显示全体职工信息、计算全体职工平均工资以及显示全体职工工资等七个的功能。职工信息管理系统的软件结构如图3.1所示。 职工信息管理系统 图3.1 职工信息管理系统软件结构图 3.2各子功能模块设计 (1) 功能:对职工的信息(职工号、姓名、性别、年龄、学历、工资、家庭住址、联系电话)进行管理。
8、职工的基本情况由职工新增录入;具有授权的用户能够对全体职工的信息进行修改、删除、查询等;未授权的用户只能够查询在岗职工的基本情况。(2) 数据流入:公共代码(void addworker())(3) 数据流出:本模块(4) 程序流程图:职工信息管理模块的程序流程图如图3.2所示。(5) 测试要点:该模块的录入数据要与显示的数据进行一致性检查。 不合法 合法 图3.2职工信息管理模块的程序流程图3.3数据结构设计 职工信息包括职工的职工号、姓名、性别、年龄、学历、工资、家庭住址、联系电话。用结构体表示员工信息,如下面定义。 typedef struct worker charno20; /职工号
9、 charname20; /姓名 charsex3; /性别 intage; /年龄 charedu100; /学历 intpay; /工资 charaddress100; /住址 char tel20; /联系电话WORKER; 3.4详细设计 3.4.1主函数 主函数设计要简洁,只提供部分函数调用。其中各功能模块用菜单方式进行选择。【程序】void main() char vl_c_menuselected; int vl_b_flag=0; while(1) system(cls); fflush(stdin);printf(=n); printf(| 职工信息管理系统 |n); pri
10、ntf(|-|n); printf(| * 版本号:1.0 * |n); printf(| 设计者:邓琼,彭文宇 |n); printf(|-主要功能-|n); printf(| 1.显示职工信息 2.新增职工信息 |n); printf(| 3.修改职工信息 4.删除职工信息 |n); printf(| 5.查找职工信息(工资) 6查找职工信息(学历) |n); printf(| 7.职工平均工资 8.退出系统 |n); printf(|-|n); if(vl_b_flag=0) printf(请按键选择:); else printf(输入有误,请重新选择:); vl_c_menuselec
11、ted=getchar(); switch(vl_c_menuselected) case1: showworker();vl_b_flag=0;break; case2: addworker();vl_b_flag=0;break; case3: alterworker();vl_b_flag=0;break; case4: deleteworker();vl_b_flag=0;break; case5: findworker1();vl_b_flag=0;break; case6: findworker2();vl_b_flag=0;break; case7: averageworker(
12、);vl_b_flag=0;break; case8: printf(nn 谢谢使用本系统,再见!n); return; default: vl_b_flag=1; 3.4.2职工信息新增【程序】void addworker() /新增职工信息 if(currentN) printf(职工信息超过给定空间需求,不能新增:); return; printf(请输入职工号:); scanf(%s,worcurrent.no); printf(请输入职工姓名:); scanf(%s,worcurrent.name); printf(请输入职工性别:); scanf(%s,worcurrent.sex
13、); printf(请输入职工年龄:); scanf(%d,&worcurrent.age); printf(请输入职工学历:); scanf(%s,worcurrent.edu); printf(请输入职工工资:); scanf(%d,&worcurrent.pay); printf(请输入职工家庭地址:); scanf(%s,worcurrent.address); printf(请输入职工联系电话:); scanf(%s,worcurrent.tel); current+; printf(输入成功,当前第%d记录,按任意键继续!,current); Writeworker(); getc
14、h(); kbhit();3.4.3职工信息修改【程序】void alterworker() /修改职工信息 int i; char s20; printf(请输入待查找的职工号n); scanf(%s,s); for(i=0;iN;i+) if(strcmp(wori.no,s)=0) printf(请输入修改后的职工号,姓名,性别,年龄,学历,工资,住址,电话n); scanf(%s%s%s%d%s%d%s%s,wori.no,wori.name,wori.sex,&wori.age,wori.edu, &wori.pay,wori.address,wori.tel); break; if
15、 (i=N) printf(对不起,没有找到!); printf(修改完毕,按任意键继续!); getch(); kbhit();3.4.4职工信息删除【程序】void deleteworker() /删除职工信息 int i,pos; char s20; printf(请输入待删除职工号n); scanf(%s,s); for(i=0;iN;i+) if(strcmp(wori.no,s)=0) pos=i; break; if(i=N) printf(对不起,没有找到!); else for(i=pos;iN-1;i+) wori=wori+1; printf(删除完毕,按任意键继续!);
16、 getch(); kbhit();3.4.5.1职工信息查询(工资)【程序】void findworker1() / 查找职工信息 int i; int s; printf(请输入待查找的工资n); scanf(%d,&s); for(i=0;iN;i+) if( wori.pay=s) printf(职工号:%s,职工姓名:%s,职工性别:%s,职工年龄:%d,职工学历:%s,职工工资:%d,职工家庭地址:%s,职工联系电话:%sn, wori.no,wori.name,wori.sex,wori.age,wori.edu,wori.pay,wori.address,wori.tel);
17、break; if(i=N) printf(对不起,没有找到!); printf(查询完毕,请按任意键继续!); getch(); kbhit();3.4.5.2职工信息查询(学历)【程序】void findworker2() int i; char s20; printf(请输入待查找的学历n); scanf(%s,s); for(i=0;iN;i+) if(strcmp(wori.edu,s)=0) printf(职工号:%s,职工姓名:%s,职工性别:%s,职工年龄:%d,职工学历:%s,职工工资:%d,职工家庭地址:%s,职工联系电话:%sn, wori.no,wori.name,wo
18、ri.sex,wori.age,wori.edu,wori.pay,wori.address,wori.tel); break; if(i=N) printf(对不起,没有找到!); printf(查询完毕,请按任意键继续!); getch(); kbhit();3.4.6显示全体职工信息以及统计职工人数【程序】void showworker() /显示职工信息,统计职工人数 int i; int sum=0; for (i=0;i=1) printf(职工号:%s,职工姓名:%s,职工性别:%s,职工年龄:%d,职工学历:%s,职工工资:%d,职工家庭地址:%s,职工联系电话:%sn, wo
19、ri.no,wori.name,wori.sex,wori.age,wori.edu,wori.pay,wori.address,wori.tel); sum+; printf(总人数=%d,sum); printf(查询完毕,按任意键继续!); getch(); kbhit(); ; 3.4.7计算全体职工的平均工资以及输出总工资【程序】void averageworker() /职工平均工资,输出总工资 int i; int sum=0; float s=0,ave=0; for (i=0;i=1) printf(%dt,wori.pay); s+=wori.pay; sum+; ave=
20、s/sum; printf(平均工资=%f,总工资=%fn,ave,s); printf(计算完毕,按任意键继续!); getch(); kbhit();3.4.8写文件的函数【程序】void Writeworker() FILE *fp; int i; fp=fopen(worker.txt,w); if(fp=NULL) printf(打开文件失败!); exit(1); for(i=0;i=1) fprintf(fp,%s%s %s %d %s %d %s %sn,wori.no,wori.name,wori.sex,wori.age,wori.edu,wori.pay,wori.add
21、ress,wori.tel); fclose(fp); 3.4.9读文件的函数【程序】void Readwor() FILE *fp; int i; fp=fopen(wor.txt,r); if(fp=NULL) printf(打开文件失败); exit(1); i=0; while(!feof(fp) if(fscanf(fp,%s%s%s%d%s%d%s%s,wori.no,wori.name,wori.sex, &wori.age,wori.edu,&wori.pay,wori.address)0) i+;current+; else break; fclose(fp); 第四章系统测
22、试4.1测试的目的通过测试发现软件错误:功能的完备性:检验程序功能是否达到用户预先制定的需求错误检查:检查程序潜在的错误,为软件可靠性与安全性的评估提供依据 4.2测试手段人工测试技术功能测试4.3信息管理功能说明 完成职工信息新增,职工信息修改,职工信息删除,职工信息修改(工资,学历),显示全体职工信息,统计职工人数,计算全体职工平均工资,输出职工总工资等功能。 第五章系统特点及关键技术5.1主窗口显示功能编号本系统的一个重要特点就是系统启动之后,同时显示功能主窗口,按照编号来按键选择需要实现的功能即可达到目的。每完成一项功能后可按任意键继续,可连续进行多功能操作,简洁,方便,易于操作。 5
23、.2功能特点本系统将显示职工信息与统计职工人数合为一体,可一次实现两个功能,让用户一目了然。 5.3关键技术本系统我们采用学校已有的设备及技术,也就是Microsoft Visual C+ 6.0技术完成我们的职工信息管理系统的设计。第六章结论本系统是一个方便职工管理者对职工信息管理的具有一定实用性的数据库信息管理系统。它主要完成一些职工基本信息的管理功能。包括职工信息的录入、职工信息的修改、职工信息的删除与新增等功能。本系统采用C 语言开发工具MicrosoftVisual C+ 6.0来完成对系统的设计。系统在设计上不可避免地遇到各种各样的问题,由于对一些函数的调用方法不熟悉,对C 语言某
24、些概念理解不够透彻,所以在设计程序、编写程序以及模块的设计过程中遇到了很多困难。不过通过向老师、同学的请教、学习,最终通过我们的努力建立了模块,成功地设计和编写出了我们自己的程序。但是由于我们自身对C 语言知识理解并未完全,所以所编写均为简单易懂的程序。因此还存在许多不足之处,需要进行不断地补充和完善。 第七章参考文献 1 杨路明.C语言程序设计教程M.北京:北京邮电大学出版社,2005年2 施荣华,刘卫国.C程序设计与应用M.北京:中国铁道出版社,1999年3 谭浩强. C语言程序设计教程M.北京:高等教育出版社,1997年 第八章结束语 通过此次C 语言课程设计我们对C 语言的功能及其应用
25、有了更深入的理解,不再停留在简单的书面意义上的理解。通过对一些库函数的调用,实现模块功能的输入,加深了对函数本身的理解。在课程设计过程中,遇到了很多苦困难,但通过老师、同学的帮助,成功地完成了此次课程设计。也使我们知道了团队合作的重要意义,以及团结互助的重要性。通过对职工信息系统设计与编写,我们知道了C 语言在实际生活中的应用。使我们知道了原来我们所学的知识都可以运用到实际生活中去,并且在实际生活中有发挥很大的作用。 附录 #include#include#include#include#define N 10 /=/类型定义区域typedef struct worker charno20;
26、/职工号 charname20; /姓名 charsex3; /性别 intage; /年龄 charedu100; /学历 intpay; /工资 charaddress100; /住址 char tel20; /联系电话WORKER;/全局变量定义int current=0;WORKER worN; /=/函数void Writeworker() FILE*fp; inti; fp=fopen(worker.txt,w); if(fp=NULL) printf(打开文件失败!); exit(1); for(i=0;i=1) fprintf(fp,%s%s %s %d %s %d %s %sn,wori.no,wori.name,wori.sex, wori.age,wori.edu,wori.pay,wori.address,wori.tel); fclose(fp); void showworker() /显示职工信息,统计职工人数 int i; int sum=0; for (i=0;i=1) printf(职工号:%s,职工姓名:%s,职工性别:%s,职工年龄:%d,职工学历:%s,职工工
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1