1、 摘 要随着经济的高速发展,一个好的职工信息管理程序在企业及用人单位扮演着重要的角色,为了设计一个功能强大的职工信息管理系统在设计中我们做出了明细分工,目的是要让本组成员都从这次课程设计中学到编程经验与团队精神。“职工信息管理系统”系统以菜单方式工作编写存放有职工基本信息,包含职工、工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等、并且要求录入职工号不重复,录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。关键字:职工信息管理;系统;函数;高效;查询AbstractWith the rapid development of e
2、conomy,a goodstaff information managementprogram inenterprises and employing unitsplay an important role,in order tothestaff information managementsystem design of apowerfulin the design,wemade adetaileddivision of labor,the purpose is to let themembers of this grouparefrom thecourse designto learnp
3、rogramming experiencewith teamspirit.Information management systemsystem to work the way the menuwritestorebasicinformationstaff,includingstaff,employee number,name,sex,date of birth,education,position,salary,address,telephone,and requires theinputnumber of workersnot to repeat,staffinformationrequi
4、rements for admission to thefileis saved,and can beto browse,query,modify,deleteand other basic operationsof theinformation management,the establishment of employeefiles.Keywords:staff information management;system;function;high efficiency目 录1 概述12 总体设计22.1 总体思想22.2总体流程图22.3 开始模块42.4录入模块52.5 查询模块62.
5、6删除模块102.7添加模块122.8修改模块142.8浏览模块192.9退出模块193详细分析203.1主界面分析203.2录入职工信息分析203.3查询分析213.4删除分析233.6添加分析243.7修改分析253.8浏览分析273.9退出分析274 调试分析285 总结31参考文献33致 谢341 概述 在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。当前大量企业的职工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此部分企业需求,设计企业职工信息管理系统,以帮助企业达到员工管理办公
6、自动化、节约管理成本、提高企业工作效率的目的。 企业职工信息管理系统采用结构体,主要对企业员工的信息以及跟人事相关的工作流程进行集中管理,方便企业建立一个完善的、强大的员工信息数据库,它是以vc+作为开发平台。使用C设计管理页面和编写操作程序,完成数据输入、修改、存储、调用查询等功能实现职工信息管理。 2 总体设计2.1总体思想本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。职工信息以文件的形式存储。系统的人机接口采用简单的字符界面进行交互。系统的设计方法是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C+6.0,主要考虑在VC中可以使用中文,用户交
7、互界面设计比较美观清晰.2.2总体流程图为了全面和更好的了解与使用我们设计的职工信息管理系统,我们把总体的设计流程图绘制出来,图表主要包括七个部分,1,录入职工信息;2,浏览职工信息;3,查询职工信息;4,添加职工信息;5,修改职工信息;6,删除职工信息;7,退出。使用者可以根据自己要添加或者要查询的信息,登入系统后直接进行选择,然后输入。下面是该系统的总体流程图。 菜单开始根据菜单输入n的值选择程序结束是否继续进行 NY YY浏览职工信息查询职工信息添加职工信息修改职工信息删除职工信息退出录入职工信息图2.1总体设计流程图2.3 开始模块首先,打开职工信息管理系统,你就进入主界面,也就是主菜
8、单,你可以看到它有7个选择,分别是1,录入职工信息;2,浏览职工信息;3,查询职工信息;4,删除职工信息;5,添加职工信息;6修改职工信息;7,退出;如下是开始界面的框图和该程序的代码。浏览职工信息主菜单删除职工信息查询职工信息添加职工信息修改职工信息退出录入职工信息 图2.2开始流程图代码实现:void menu() printf( = =欢迎进入职工信息管理系统= =n); printf( * 1.录入职工信息 *n); printf( * 2.浏览职工信息 *n);printf( * 3.查询职工信息 *n);printf( * 4.删除职工信息 *n);printf( * 5.添加职工
9、信息 *n);printf( * 6.修改职工信息 *n);printf( * 7. 退出 * n); printf( _ _ _ 谢谢使用! _ _ _ n);2.4录入模块在录入模块里,你可以依据系统的提示语一一填写你所要输入的职工的详细信息,其中有职工号,职工姓名,职工学历,职工性别,职工电话,职工工资,职工住址等。如下是录入模块的框架和代码。录入模块职 工 号职 工 姓 名职 工 住 址职 工 工 资职 工 电 话职 工 性 别职 工 学 历图2.3录入模块图代码实现:void input() /*录入函数*/ int i,m; printf(请输入需要创建信息的职工人数(1-100)
10、:n); scanf(%d,&m); for (i=0;im;i+) printf(请输入职工号: ); scanf(%d,&emi.num); printf(请输入姓名: ); scanf(%s,emi.name); getchar(); printf(请输入性别(f-女 m-男): ); scanf(%c,&emi.sex); printf(请输入年龄: ); scanf(%d,&emi.age); printf(请输入学历: ); scanf(%s,emi.xueli); printf(请输入工资: ); scanf(%d,&emi.wage); printf(请输入住址: ); sca
11、nf(%s,emi.addr); printf(请输入电话: ); scanf(%s,emi.tel); printf(n); printf(n创建完毕!n); save(m);2.5 查询模块 在你输入的职工信息中,通过界面的提示,你可以按照职工的单个信息选择你要查询的该职工的全部信息。例如,你可以查询职工姓名,来获取该职工的全部信息。以下是查询模块的框架和代码实现。按职工号查询 职工具体信息查 询 模 块按学历查询按电话号查询图2.4查询模块图2.4查询模块代码实现:void search_num() int num; int i,t; int m=load(); printf(请输入要查
12、找的职工号:n); scanf(%d,&num); for(i=0;im;i+) if(num=emi.num) printf(n已找到此人,其记录为:n); printf( 职工号t姓名tt性别tt年龄 n); printf(n %dtt%st%ctt%dtn,emi.num,emi.name,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n); printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel); break; if(i=m) printf(n对不起,查无此人n); printf(n)
13、; printf(返回查询函数请按1,继续查询职工号请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; void search_xueli() char xueli30; int i,t; int m=load(); printf(请输入要查找的学历:n); scanf(%s,xueli); for(i=0;im;i+) if(strcmp(emi.xueli,xueli)=0) printf(n已找到,其记录为:n); printf( 职工号t姓名tt性别tt年龄 n); pr
14、intf(n %dtt%st%ctt%dtn,emi.num,emi.name,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n); printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel); if(i=m) printf(n对不起,查无此人n); printf(n); printf(返回查询函数请按1,继续查询学历请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void se
15、arch_tel() char tel20; int i, t; int m=load(); printf(请输入要查找的电话号码:n); scanf(%s,tel); for(i=0;im;i+) if(strcmp(tel,emi.tel)=0) printf(n已找到此人,其记录为:n); printf( 职工号t姓名tt性别tt年龄 n); printf(n %dtt%st%ctt%dtn,emi.num,emi.name,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n); printf(n %st%dtt%st%sn,emi.xueli,emi
16、.wage,emi.addr,emi.tel); break; if(i=m) printf(n对不起,查无此人n); printf(n); printf(返回查询函数请按1,继续查询电话号码请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; 2.6删除模块删除模块主要是用与删除一些你所不想要的职工,可以提高系统更好的对职工信息的管理,主要是通过删除职工的姓名来删除该职工的所以信息。大体模块框架如下图所示,代码如下图所示。 删除模块删除你所要删除的职工的姓名删除该职工的全部信息图
17、2.5删除模块代码实现:void del() /*删除函数*/ int m=load(); int i,j,n,t,flag; char name20; printf(n 原来的职工信息:n); display(); printf(n); printf(请输入要删除的职工的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&im;i+) if(strcmp(emi.name,name)=0) printf(n已找到此人,原始记录为:n); printf( 职工号t姓名tt性别tt年龄 n); printf(n %dtt%st%ctt%dtn,emi.num,e
18、mi.name,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n); printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel); printf(n确实要删除此人信息请按1,不删除请按0n); scanf(%d,&n); if(n=1) for(j=i;jm-1;j+) strcpy(emj.name,emj+1.name); emj.num=emj+1.num; emj.sex=emj+1.sex; emj.age=emj+1.age; strcpy(emj.xueli,emj+1.xueli)
19、; emj.wage=emj+1.wage; strcpy(emj.addr,emj+1.addr); strcpy(emj.tel,emj+1.tel); flag=0; if(!flag) m=m-1; else printf(n对不起,查无此人!n); printf(n 浏览删除后的所有职工信息:n); save(m); /*调用保存函数*/ display(); /*调用浏览函数*/ printf(n继续删除请按1,不再删除请按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; 2
20、.7添加模块 该模块用于添加职工与职工信息,以便更好的管理职工的流动,不给以后的工作带来不必要的琐事。其具体模块框架,代码实现如下图所示。添加模块所要添加的职工人数添加职工的具体信息图2.6添加模块代码实现:void add()/*添加函数*/ FILE*fp; int n; int count=0; int i; int m=load(); printf(n 原来的职工信息:n); display(); printf(n); fp=fopen(emploee_list,a); printf(请输入想增加的职工数:n); scanf(%d,&n); for (i=m;i(m+n);i+) pr
21、intf(n 请输入新增加职工的信息:n); printf(请输入职工号: ); scanf(%d,&emi.num); printf(n); printf(请输入姓名: ); scanf(%s,emi.name); getchar(); printf(请输入性别(f-女 m-男): ); scanf(%c,&emi.sex); printf(请输入年龄: ); scanf(%d,&emi.age); printf(请输入学历: ); scanf(%s,emi.xueli); printf(请输入工资: ); scanf(%d,&emi.wage); printf(请输入住址: ); scan
22、f(%s,emi.addr); printf(请输入电话: ); scanf(%s,emi.tel); printf(n); count=count+1; printf(已增加的人数:n); printf(%dn,count); printf(n添加完毕!n); m=m+count; printf(n浏览增加后的所有职工信息:n); printf(n); save(m); display(); fclose(fp);2.8修改模块修改模块用于修改以前输错的职工信息和修改以前已经存在的职工信息的具体信息的变化,例如,职工的电话号码,住址等发生了变化,这时候,就可以用运修改模块来对一些职工的信息进
23、行修改。其具体结构框架和代码实现如下图所示。修改模块输入所以修改的职工的姓名姓名职 工 电 话职 工 工 资职 工 住 址职 工 学 历职 工 年 龄职 工 性 别职 工 姓 名职 工 号图2.7修改模块代码实现:void modify() /*修改函数*/ int num; char name20; char sex; int age; char xueli30; int wage; char addr30; char tel20; int b,c,i,n,t,flag; int m=load(); printf(n 原来的职工信息:n); display(); printf(n); pri
24、ntf(请输入要修改的职工的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&i8|c1) printf(n选择错误,请重新选择!n); flag=0; if(flag=1) printf(n对不起,查无此人!n); do switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/ case 1:printf(职工号改为: ); scanf(%d,&num); emi-1.num=num; break; case 2:printf(姓名改为: ); scanf(%s,name); strcpy(e
25、mi-1.name,name); break; case 3:printf(性别改为: ); getchar(); scanf(%c,&sex); emi-1.sex=sex; break; case 4:printf(年龄改为: ); scanf(%d,&age); emi-1.age=age; break; case 5:printf(学历改为: ); scanf(%s,xueli); strcpy(emi-1.xueli,xueli); break; case 6:printf(工资改为: ); scanf(%d,wage); break; case 7:printf(住址改为: );
26、scanf(%s,addr); strcpy(emi-1.addr,addr); break; case 8:printf(电话改为: ); scanf(%s,tel); strcpy(emi-1.tel,tel); break; printf(n); printf(n是否确定所修改的信息?n 是 请按1 ; 不,重新修改 请按2: n); scanf(%d,&b); while(b=2); printf(n浏览修改后的所有职工信息:n); printf(n); save(m); display(); printf(n继续修改请按1,不再修改请按0n); scanf(%d,&t); switc
27、h(t) case 1:modify();break; case 0:break; default :break; 2.8浏览模块 在浏览模块中,用户直接输入”2”,就可以浏览所有职工的信息2.9退出模块 返回主菜单函数,从键盘上输入7 ,按回车键退出职工信息管理系统。3详细分析3.1主界面分析打开职工信息管理系统,电脑界面上就出现如图所示的界面。这个主界面是供用户选择所需的功能,通过自己定义的void menu()函数来实现。图3.1主界面例如你从键盘上输入“1”就可以进入录入职工信息界面。3.2录入职工信息分析按照上面你输入的”1”,进入录入职工信息界面,如图。这模块主要是通过自己定义的v
28、oid input()函数来实现。图3.2录入信息分析 在这个界面上,用户可以先输入所要输入的总的职工人数,然后依次编职工号,可以是1100,然后依次输入职工的姓名、性别、年龄、学历、工资、住址、电话。创建完毕后,继续就输“y”,反之输入“n”。3.3查询分析此模块以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现和按职工的的学历查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。如图所示。图3.3查询分析在上面的界面中用户输入“3”进入职工信息查询界面,然后根据提示语按相应的数字来完成查询。例如输入“1”,用户可以按职工号
29、查询职工信息等。图3.4查询分析 此模块可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。 上面界面中用户输入“2”,可以完成按学历查询职工的详细信息。通过查询模块可以方便的查询职工的详细信息,从而方便职工的管理。3.4删除分析此模块为删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。图3.5删除分析在主菜单界页面中输入数字“4”可以进入上图的删除职工信息的界面。通过此界面用户可以方便的看到已输入的职工信息和删除不需要的职工信息。在此界面中输入需要删除的职工姓名,界面会显示相应的职工信息,如果确认删除输入“1”,否则输
30、入“0”,完成删除。3.6添加分析此模块为添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。图3.6添加分析在主菜单界页面中输入数字“5”,进入上图添加职工信息界面。此界面可以浏览已输入的职工信息并且可以添加所需的职工人数,并且输入相应的职工信息从而完成添加,添加完成后会显示添加后的职工信息。通过添加模块我可方便的添加职工信息,从而方便职工信息的完善和管理。3.7修改分析此模块为修改需要修改的职工的相关信息,通过自己定义的void modify()函数 来实现。图3.7修改分析 在主菜单界页面中输入数字“6”,进入上图修改职工信息界面。此界面可以浏览已显示的职工的详细
31、信息,并且可以通过输入姓名来查找所需修改的职工信息,通过提示,用户可以通过输入相应的数字来修改用户要修改的职工信息。例如输入“1”修改职工号等。修改完毕后确认修改输入“1”否则输入“2”。修改后用户可以浏览修改后的职工信息。从而方便职工信息管理。3.8浏览分析此模块为浏览所有职工的相关信息,通过自己定义的void display()函数来实现。图3.8浏览分析在主菜单界页面中输入数字“2”,进入上图浏览界面。此界面可以浏览已输入的职工的详细信息。如职工号、姓名、性别、年龄等信息。3.9退出分析进入主菜单输入”7”退出职工信息管理系统。4 调试分析 如下是调试过程中一些具体的调试示意图。这是对职
32、工信息的录入的测试。 我们输入了相应的职工信息进行测试。例如我们输入了职工号、职工姓名等,进行了测试。4.1录入职工信息测试图 这是对浏览职工信息的测试。4.2职工信息浏览测试图 这是对查询职工信息的测试。当我们录入大量的职工信息后可以通过查询,来浏览所需的职工信息,我们提供三种查询方式,分别为按职工号查询、按学历查询、按电话号码查询。4.3职工查询测试图 这是对添加职工信息的测试 在主界面输入数字“5”,进入了添加职工信息如图所示。4.4添加职工测试图调试过程中会遇到一些问题,如下是我们调试过程中遇到的问题和解决的方法: 1.在一些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成
33、了float类型,而正确的应该是char类型。 2在进行模块函数设计时,find()函数功能没有设计好,导致部分函数代码过长,可读性降低,以至于再次重写里面的一小部分代码,浪费了大量的时间。 3在整个程序设计编写完成后,编译时出现了大量的错误,而且里面大部分是因为大小写问题,还有void拼错拼成viod,还有“;”没有写,后来经过程序错误查询,一一更改了过来。 4. 在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流,虽然在测试过程中我把全部的注解加上, 但也延长了整个程序的开发时间。5 总结经过了五天的课程设计,在设计中我们遇到了很多编程问题,最后我们齐心
34、合力的攻克一个个难关,我们组做的是职工信息管理系统的设计,内容丰富,运用了很多函数。测试阶段中发现了几处错误导致程序不能编译,去图书馆查找相关的资料,又与同学一起讨论。通过耐心的分析源代码终于编好了一个完整无误的程序。在这次的c语言程序设计实习中遇到了现实编程中必然见到的问题通过这些问题解决积累了编程的实践经验。在实际的编程操作中发现自己对c语言知识的不足,加深了对c语言的理解。虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,它对我们数学的学习也有很大的帮助。在学习C语言的过程中也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。
35、在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的c语言学习奠定了基础,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机操作的重要作用,特别是对数7组和循环有了深刻的理解。通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。 由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找。在用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。解决的这个问题的办法是调整。一个系统的菜单和提示信息非常重要。如果没有这些用户根本不知道怎么用你设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。 回顾起此次课程设计,至今我们仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在这些日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922