《C语言职工管理系统》由会员分享,可在线阅读,更多相关《C语言职工管理系统(12页珍藏版)》请在金锄头文库上搜索。
1、职工工资管理系统C语言程序设计课程设计指导教师:陈鑫设计者:xx(组长)xx xxx xx xxx专业班级:xx工程073班设计时间: 2 0 14年 6月23一、需求分析随着计算机的飞速发展,它的应用已经十分广泛,它在人们的生产、生活、工作和学习中发挥着重要的作用。例如一个现代化的公司,拥有数千名的员工,那么如何管理这么庞大的职工信息档案呢?这时,开发一个功能完善的职工信息管理系统就必不可少了。从职工的信息的查询到管理实现了自动化的模式,从而提高了工作效率和减少工作中的出错率,对公司内部的员工管理更加方便。系统是为公司财会部门设计的。主要管理的数据包括:职工号 姓名 岗位工资 奖金 扣除 实
2、发。该系统具有的功能是:根据职工号对职工的信息进行录入、查询、删除 、修改、追加、统计、显示等。对各功能模块的界面采用菜单显示方式。本系统具有通用性,即可广泛适用于多单位,多人数,多功能的使用,并且系统采用模块化设计,主体为一个主函数,分别可以调用其他模块,利用不同子模块具有的不同功能,综合完成系统功能,不但主体与子模块间有相互联系,各个子模块间也有相互作用,从而实现了预期的功能。二、人员分工姓名主要负责内容xx (组长)总体设计;数据程序查询主菜单程序xxx 主菜单程序、录入数据程序的编码与调试、 xx 、输出、统计、 xx 删除、追加数据程序的编码与调试xxx修改数据程序的编码与调试三、运
3、行环境硬件环境: CPU(pentium4 2.4Hz)、内存(256MB)、硬盘(80G)软件环境:Windows 98、 Tubro.c 2.0四、系统模块功能1、系统总体框图职工工资管理系统输入职工记录查询职工记录修改职工记录删除职工记录追加职工记录输出职工记录统计工资情况退出系统2、模块设计在我们设计的程序中:首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声名部分,用struct emploee Char no5;char name8;int post-wage;int prize;int deductint net pay;结构体存储和录入该程序的所有数据,并把信息写到
4、文件emp.dat中,保存在磁盘中方便以后使用。主函数部分包括设计的全部信息,有指导教师、设计者以及设计时间,之后是输出主菜单和调用函数,退出程序。此程序中包含的功能有:输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块,各个功能设计如下:输入模块:该模块是实现对职工号 姓名 岗位工资 奖金 扣除 实发的录入并保存到文件“emp ”中。模块中运用void input()调用函数展开对文件的使用。模块首先定义一个指针文件,又以写的方式打开此文件,在打开的文件中输入要管理的职工人数,用一个for循环按照职职工号 姓名 岗位工资 奖金 扣除 实发的格式循环获取职工的记录,接着又用了
5、一个for循环将职工记录写入文件“emp ”中,关闭文件。查询模块:实现按职工号查询每个职工的信息,查询显示:职工号 姓名 岗位工资 奖金 扣除 实发。模块开始是一个二级子菜单,一个是实现按职工号查询,另一个是选择退出返回主菜单,此处是利用switch选择语句。选择按职工号查询,首先是以只读的方式打开文件“emp”,然后输入要查询的职工号,用一个for循环来控制查询的人数,之后在显示器上显示职工信息,程序如下:printf(职工号 姓名 岗位工资 奖金 扣除 实发n); printf(%6d%9s%6d%6d%6d%6dn,empi.no,empi.name,empi.post-wage,em
6、pi. prize,empi.deduct, pay);然后关闭文件。查询职工信息已完成。修改模块:该模块实现按职工号对职工所有信息的修改。模块开始是一个二级子菜单,一个是按职工号修改,另一个是选择退出返回主菜单,此处是利用switch选择语句。选择按职工号修改,首先是以读写的方式打开文件“emp”。输入要修改的职工号,用一个for循环来控制输入的数量,循环如下:for(i=0;fread(&empi,sizeof(struct emploee),1,fp);i+) if(!strcmp(empi.no,num)break; 则会出现该职工的信息如下:printf(记录号 职工号 姓名 性别
7、年龄 工资n);printf(%6d%6s%9s%4s%5d%6dn,i+1,empi.no,empi.name,empi.sex,empi.age,empi.salar); 然后对职工的信息进行修改,就可获得新的职工记录。之后文件指针指向该修改的记录开头,此时用newemp覆盖当前记录,修改完成时系统会显示修改后的文件数据:记录号、 职工号、 姓名 、性别 、年龄 、工资,然后关闭文件。修改职工信息已完成。删除模块:该模块实现按职工号对职工所有信息的删除。模块开始是一个二级子菜单,一个是按职工号删除记录,另一个是选择退出返回主菜单,此处是利用switch选择语句。选择按职工号删除记录,首先是
8、只读的方式打开一个二进制文件“emp”。就会显示删除前的职工信息程序如下:printf(删除前:n); printf(记录号 职工号 姓名 性别 年龄 工资n); for(n=0;fread(&empn,sizeof(struct emploee),1,fp);n+)printf(%6s%6s%9s%4s%5d%6dn,n+1,empn.no,empn.name,empn.sex,empn.age,empn.salar);输入要删除的职工号,如果存在由fp=fopen(emp,w+); if(n=1) fclose(fp); exit(3);执行删除命令:使用for(j=i+1;jn;j+)
9、fwrite(&empj,sizeof(struct emploee),1,fp);循环依次改后职工信息写入文件,显示删除后文件中的职工信息。最后可以关闭文件,删除职工信息已完成。统计模块:根据输入的工资,显示大于该工资的职工的所有信息。模块中运用void stat ()调用函数展开对文件的使用。首先是以只读的方式打开文件“emp”。输入职工的工资数,运用for循环根据输入的工资,显示大于该工资的职工的所有信息。关闭文件,统计完成。输出模块:该模块实现按职工号输出职工的所有信息。在该模块中运用void output()调用函数展开对文件的使用。首先以只读的方式打开一个文本文件”emp”。操作无
10、误则用for循环输出正在查询职工的:记录号 职工号 姓名 性别 年龄 工资。这些完成后用fclose(fp)函数关闭文件。模块运行结束。追加模块:该模块实现添加职工的信息。在该模块中运用void run()调用函数展开对文件的使用。首先以读写的方式为读写打开一个二进制的文件“emp”。输出“要追加的职工人数”待输入要追加的个数后,用for循环控制待输入的职工信息。用fwrite(&newemp,sizeof(struct emploee),1,fp)将该职工记录写入文件。用fclose(fp)函数关闭文件,模块运行结束。五、使用说明启动后屏幕上会提示要求输入职工号如果输入错误就会显示查无此人;
11、输入错误字符显示“WRONG”。输入后屏幕上提示登陆成功以及显示下面菜单 1输入职工记录2查询职工记录3修改职工记录4删除职工记录5输出职工记录6统计工资情况7追加职工记录8结束使用0退出系统如果你要执行某一功能,就按下该功能所对应的数字即可。职工信息输入:在主菜单中输入1则系统会进入新界面并自动提示你输入职工号,输入完成后按回车键系统会逐一提示输入 姓名 性别 年龄 工资,输入完成后会继续提示输入下一个职工的职工号。职工信息查询:在主菜单中输入2 则进入查询子菜单界面,屏幕上会按先后顺序显示输入的记录,并统计输入的个数。此时在界面里出现数字1和0。系统会提示你选择(0-1)。输入1后则进入按
12、职工号查询职工信息,此时系统会自动提示你输入要查询的职工号。输入职工号后会出现该职工的信息。输入错误职工号,显示查无此人;输入错误字符显示“WRONG”。 输入0则返回主菜单。职工信息修改:在主菜单中输入3则 系统进入修改子菜单界面。此时在界面里出现数字1和0。系统会提示你选择(0-1)。输入1是按职工号修改职工信息,系统会自动提示你输入要修改的职工号,然后进行修改。修改成功显示已修改后的文件数据;输入错职工号显示查无此人;输入错误字符显示 “WRONG”。 输入0是返回主菜单。职工信息删除:在主菜单中输入4系统界面是删除子菜单。系统会提示你选择(0-1)。输入1则按职工号删除记录,系统会自动
13、提示你输入要删除的职工信息,进入新界面后系统会提示你删除前该职工的信息包括记录号 、职工号、姓名、 性别 、年龄 、工资等。输入错误职工号,显示没有该职工号的职工。输入错误字符显示 “WRONG”。一个记录已经删除了时系统会提示删除后的职工信息。输入0则返回主菜单。职工信息追加: 进入后系统会自动提示你要输入职工的个数,按照输入格式:职工号、 姓名 、性别 、年龄、 工资输入职工的信息,这样就获取一个职工的记录,并将该职工记录自动写入文件,如果想退出此系统可以按“0” ,就可以退出此系统了。职工信息输出:在主菜单中输入5系统界面是输出菜单界面,按照输入格式:职工号、 姓名 、性别 、年龄、 工
14、资,逐个的输出职工的信息,输出所有职工信息后系统自动退出。职工信息统计:在主菜单中输入6系统界面是统计菜单界面,输入工资数,显示大于该工资的职工的所有信息。关闭文件。退出系统:在使用各个功能后输入0则返回主菜单。在主菜单中输入0则退出系统。并显示 “ 谢 谢 使 用 ! ”。注意事项:运行本程序之前,应当先运行附带的子程序,为文件*fp赋初值。六、结束语接到C语言课程设计的作业我十分高兴,终于学到的东西可以运用了。在老师的指导和大家的共同努力下,我们终于完成了程序的大体编制。程序中包括主函数、输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块。其中在输入模块中指针文件运用的比
15、较好,因为指针是C的一个特色,它能有效的表示复杂的数据结构,动态的分配内存,方便的使用字符串、数组,可谓是C的精华。在程序设计中我们最大的收获就是:我们真正从实践的角度体会到了C语言在实际生活中的作用,也深刻体会到了它带来的方便快捷。不但使我们对C语言有更进一步的巩固和认识还使我们懂得了团队协作的重要!让我们将一年所学的C语言知识学为所用,让我们感觉到了它的神奇魅力。美中不足的就是:由于我们知识的不足以及条件的限制,本系统还有许多漏洞与不足,希望老师给以批评与帮助,我们会积极改正。而且本程序还处于初级阶段的职工工资管理功能中,只实现了对职工工资的录入、删除、修改、查询、统计、显示等简单功能,功能较简单,不一定在实际中有大的用途,程序编排中可能有烦琐之处有待进一步简化。七、源程序代码