职工信息管理系统课程设计.docx
- 文档编号:5022383
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:32
- 大小:752.40KB
职工信息管理系统课程设计.docx
《职工信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
职工信息管理系统课程设计
职工信息管理系统课程设计
武汉长江工商学院
计算机科学与技术系
C语言程序设计课程设计
项目名称:
职工信息管理系统
学生姓名:
魏蓓
学号:
1203100228
班级:
12802
指导教师:
刘莹
2013年5月30日
7.参考文献………………………………………………………………………………………...14
8.附录,源程序…………………………………………………………………………………..15
1引言
1.1选题意义
员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学。
职工信息管理系统内容包括机构的建立和维护,人员信息的录入和输出,工资的调整和发放以及各类报表的绘制和输出等功能。
在操作上实现简便灵活,自动化的功能。
1.2国内外现状综述
互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。
当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。
因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到员工管理办公自动化、节约管理成本、提高企业工作效率的目的。
管理系统信息化系统化是必然需求,也是当今社会的主流。
2系统需求分析
2.1系统功能概述
该系统可以实现对员工信息的录入,浏览,查找,添加,删除,修改。
输入功能:
职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
浏览功能:
完成对全部职工信息的显示。
查找功能:
(1)完成按职工的职工号查询职工的相关信息,并显示。
(2)完成按职工的学历查询职工的相关信息,并显示。
(3)完成按职工的电话号码查询职工的相关信息,并显示。
删除功能:
通过输入职工的姓名完成对该名职工的信息进行删除。
添加功能:
完成添加新职工的信息的任务。
修改功能:
通过输入职工的姓名完成对该名职工的信息进行修改。
退出职工信息管理系统。
2.2系统模块
进入系统后,首先进入菜单选项,选择自己所要进行的操作。
(1)录入职工信息,并保存。
(2)浏览职工信息,先读出录入后的职工信息,然后进行浏览。
(3)查询职工信息,先选择用什么进行查询(按学历,职工号,电话号),若选择为按学历查找,就输入要查找的学历信息,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。
(4)删除职工信息,先输入要删除职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。
然后系统就会提示是否删除给职工的信息。
删除后就会显示新的职工信息。
(5)添加职工信息,先输入要添加的职工人数,之后依次输入要添加的信息,最后确认是否添加。
(6)修改职工信息,先输入要修改职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。
接着系统就会提示是否要对该职工进行修改,修改时,系统就会提示:
将会对哪个地方进行修改,最后确定自己的修改,系统就会显示修改后的职工信息。
图2-2系统模块
3系统存储结构说明
3.1系统存储信息说明
系统储存的信息有职工号,姓名,性别,年龄,学历,工资数,地址,电话
职工号:
定义为长整型,由一串数字表示。
姓名:
定义为字符数组型,由一串字母表示。
性别:
定义为字符型,由一个字母表示。
(m表示男,f表示女)
年龄:
定义为整型,由一串数字表示。
学历:
定义为字符数组型,由一串字母表示。
工资:
定义为整型,由一串数字表示。
地址:
定义为字符数组型,由一串字母表示。
电话:
定义为字符数组型,由一串数字表示。
3.2系统存储结构设计
系统中定义一个结构体来存储以上信息,使用结构体可以使问题变得简单,因为结构体允许用户自定义数据类型,而且允许一个结构体里面有多个数据项,这些数据项不需要是同一类型的数据项。
因此,结构提供了吧类型可能不同的数据项聚合成一个集合手段。
3.3系统文件使用说明
指针文件,先定义一个保存文件函数,然后定义一个文件指针,再打开那个指针文件,将内存中职工的信息输出到磁盘文件中去,最后关闭文件即可。
voidsave(intm)/*保存文件函数*/
{
inti;
FILE*fp;
if((fp=fopen("D:
\\liushichang","wb"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
for(i=0;i if(fwrite(&em[i],sizeof(structemployee),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } 4系统功能实现及代码描述 4.1输入职工信息 定义一个结构structemployee和数组em[N]用来存储N个职工的所有的信息(职工号em[i].number、姓名em[i].name、性别em[i].sex、年龄em[i].age、学历em[i].xueli、工资em[i].wage、住址em[i].addr、电话em[i].tel)。 通过for循环输入所有职工信息。 用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。 输入完毕后套用保存函数save(n)将所输入的信息写入指定文件。 图4-1输入流程图 4.2浏览职工信息 声明整形变量i和m,其中i记录输出的职工序数,m用来接收传递过来的实参,用for循环输出每个职工的各种信息。 正确输入指令后输出所输入的所有职工信息。 图4-2浏览流程图 4.3查询职工信息 声明整形变量t,先用printf语句显示查询菜单,用scanf输入选择的查询方式代号,用switch(t)进入所选择的具体查询函数,包括按职工号查询、按姓名查询、按学历查询三种方式。 当t=1则表示按职工号查询,t=2表示按姓名查询,t=3表示按学历查询,t=4时返回主菜单。 图4-3查询流程 4.3.1按职工号查询 声明2个整形变量: i记录职工的序数,number存放键盘输入的职工号。 调用导出函数load(m)(m表示当前的职工人数)。 通过scanf语句从键盘输入需要查询的职工号,并赋值给number。 用for循环,循环主体是先判断em.number中是否有输入的职工号,如果有,用printf语句输出与职工号相对应的该职工所有信息,再跳出循环;如果没有,输出“对不起,查无此人”,并调用search()返回查询菜单。 图4-3-1按姓名查询流程图 4.4删除职工信息 先读出文件中所有职工的信息,并显示。 然后输入要删除职工的姓名,首先定义个局部变量name[](字符数组),用保存用户输入姓名。 用户输入name[]的值。 从职工数组下标为0的元素(即第一个元素)开始,逐个比较name和em[i].name的值,如果相等,就输出该职工的信息,同时将标志flag置为1,表示查找成功。 当查找最后一个职工,若flag=0,则表示查找失败,输出该职工不存在。 找到之后,将位于这个职工下一个的职工信息依次转移的该信息上来进行覆盖,然后再将接下来一个员工的信息转移到已被转移员工的位置上来….就这样循环下来直到将被删除职工之后所有的职工信息都转移完后,将总人数减1,再显示删除后所有职工的信息。 最后结束程序。 图4-4删除流程图 4.5添加职工信息 先输入要添加的人数n,m为已经有的人数,令i=m,判断i是否小于(m+n),当小于成立的时候,就依次输入一个职工的信息,并保存该职工的信息,再进行判断,直到把所有的信息都输入完的时候,就显示新的职工信息,最后结束。 图4-5添加流程图 4.6修改职工信息 先读出文件中所有职工的信息,并显示。 然后输入要修改职工的姓名,首先定义个局部变量name[](字符数组),用保存用户输入姓名。 用户输入name[]的值。 从职工数组下标为0的元素(即第一个元素)开始,逐个比较name和em[i].name的值,如果相等,就输出该职工的信息,同时将标志flag置为1,表示查找成功。 当查找最后一个职工,若flag=0,则表示查找失败,输出该职工不存在。 若找到该职工后,输入数字(1-8)分别表示为1.职工号2.姓名3.性别4.年龄5.学历6.工资7.住址8.电话,选择要对那个地方进行修改若选择错误系统就会提示选择错误,进入修改后,输入自己修改后信息并确认即可。 最后显示修改后所有的职工信息,系统再提示是否进行修改。 直到修改完毕后,结束程序。 图4-6修改流程图 5系统测试 5.1菜单函数 如果输入1-7以外的数字,就会显示输入错误。 输入正确的指令系统才开始工作。 5-1菜单函数 5.2职工信息的录入。 输入指令后,按系统提示依次输入相应的信息。 图5-2职工信息的录入 5.3职工信息的浏览。 输入相应指令浏览职工信息。 图5-3-1浏览职工信息 5.4职工信息的查询(按职工号,学历,姓名查询)以学历查询为例 如果未查到,系统就会显示查无此人。 图5-4-1职工号输入不正确,查无此人 输入正确指令,将会显示查询到的职工信息。 图5-4-2查询到的职工信息 5.5职工信息的删除。 先查找,输入职工的姓名即可;若输入错误,系统提示查无此人。 图5-5-1职工姓名输入错误,查无此人 输入正确后才能删除职工信息。 图5-5-2删除职工信息 5.6职工信息的添加。 先输入自己要添加的人数,从而依次输入要添加的信息。 图5-6-1添加职工信息 添加完毕后,系统会显示新的职工信息。 图5-6-2新的职工信息 5.7职工信息的修改。 先查找职工,再选择修改的类型,修改完后保存。 图5-7修改职工信息 5.8退出系统。 图5-8退出系统 6设计心得与总结 经过对职工信息管理系统的分析与编写,我得到了很大的收获。 自主学习的是解决问题的基础。 这次设计使我重温了以前学过的各科知识,让我对C++编程有了更深刻的认识。 在设计过程中难免遇到困难,这时候要细心仔细寻找自己所出现差错的地方,碰到不懂的地方要及时向老师或者同学们请教,记住自己犯下的错误保证以后不再犯类似错误。 通过这次课程设计,也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。 在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的c语言学习奠定了基础。 C语言具有的语句简洁,使用灵活,执行效率高等特点使解决问题变得更简单。 这次课程设计让我发现上机操作的重要作用,通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。 总结出了一点点的经验如下: (1)有明确目标,根据目标制定计划。 (2)要对系统的功能和要求做出详细的分析,并合理分解任务。 (3)把分解出来的子任务,做给一个相对独立的模块。 (4)在设计一个模块之前,要简单构想一下总界面的显视情况。 (5)针对构想出来的界面进行程序的编写。 7参考文献 [1]Brianw.Kernighan,DennisM.Ritchie.THECPROGRAMMINGLANGUAGE.北京: 清华大学出版社.2002./PRENTICEHALL,2001 [2]秦友淑.曹化工.C语言程序设计教程(第二版).武汉: 华中科技大学出版社,2002 [3]Alkelley,IraPohl.C语言教程(英文版.第4版).北京: 机械工业出版社,2004 [4]EricS.Roberts.C语言的科学和艺术(英文版).北京: 机械工业出版社,2004 [5]严蔚敏,吴伟民.数据结构.北京: 清华大学出版社,1997 [6]王晓东.算法设计与分析.北京: 清华大学出版社,2003 [7]ISO的C语言标准: ISO/IEC9899: 1999(E) [8]S.P.Harbison,G.L.Steele.C语言参考手册.北京: 机械工业出版社,2003 [9]叶欣.徐金梧.TurboC使用大全.北京: 北京科海培训中心.1990 附录: 源程序清单 #include #include #include #defineN100 structemployee { longnum; charname[20]; charsex; intage; charxueli[30]; intwage; charaddr[30]; chartel[20]; }em[N];/*定义一个结构体*/ voidmenu(); voidinput(); voidsave(int); voiddisplay(); voiddel(); voidadd(); voidsearch(); voidsearch_num(); voidsearch_xueli(); voidsearch_tel(); voidmodify();/*定义各函数*/ voidmain() { menu(); intn,flag; chara; do { printf("请输入您的选择(1~7): "); scanf("%d",&n); if(n>=1&&n<=7) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择! "); } } while(flag==0); while(flag==1) { switch(n) {case1: printf("------录入职工信息------\n");printf("\n");input();break; case2: printf("------浏览职工信息------\n");printf("\n");display();break; case3: printf("------查询职工信息------\n");printf("\n");search();break; case4: printf("------删除职工信息------\n");printf("\n");del();break; case5: printf("------插入职工信息------\n");printf("\n");add();break; case6: printf("------修改职工信息------\n");printf("\n");modify();break; case7: exit(0);break; default: break; } getchar(); printf("\n"); printf("是否继续进行(yorn): \n"); scanf("%c",&a); if(a=='y') { flag=1; system("cls");/*清屏*/ menu();/*调用菜单函数*/ printf("请再次输入您的选择(1~7): \n"); scanf("%d",&n); printf("\n"); } else exit(0); } } voidmenu()/*菜单函数*/ { printf("-------------欢迎进入职工信息管理系统-----------\n"); printf("1.录入职工信息"); printf("2.浏览职工信息\n"); printf("3.查询职工信息"); printf("4.删除职工信息\n"); printf("5.插入职工信息"); printf("6.修改职工信息\n"); printf("7.退出\n"); printf("--------------------谢谢使用--------------------\n"); printf("\n"); printf("\n"); } voidinput()/*录入函数*/ { inti,n,flag; printf("请输入需要创建信息的职工人数: "); scanf("%d",&n); for(i=0;i { do { printf("请输入职工号(2011000-2011999): "); scanf("%d",&em[i].num); if(em[i].num>=2011000&&em[i].num<=2011999) { flag=1;break; } else { flag=0; printf("输入错误,请重新输入! "); } }while(flag==0); printf("请输入姓名: "); scanf("%s",em[i].name); getchar(); do { printf("请输入性别(f--女m--男): "); scanf("%c",&em[i].sex); if(em[i].sex=='f'||em[i].sex=='m') { flag=1;break; } else { flag=0; printf("输入错误,请重新输入: "); getchar(); } }while(flag==0); do { printf("请输入年龄: "); scanf("%d",&em[i].age); if(em[i].age<=75&&em[i].age>=18) { flag=1;break; } else { flag=0; printf("不科学,请重新输入! "); } }while(flag==0); printf("请输入学历: "); scanf("%s",em[i].xueli); printf("请输入工资: "); scanf("%d",&em[i].wage); printf("请输入住址: "); scanf("%s",em[i].addr); printf("请输入电话: "); scanf("%s",em[i].tel); printf("\n"); } printf("\n创建完毕! \n"); save(n); } voidsave(intm)/*保存文件函数*/ { inti; FILE*fp; if((fp=fopen("employee_list","wb"))==NULL) { printf("cannotopenfile\n"); exit(0); } for(i=0;i if(fwrite(&em[i],sizeof(structemployee),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } intload()/*导入函数*/ { FILE*fp; inti=0; if((fp=fopen("employee_list","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } else { do { fread(&em[i],sizeof(structemployee),1,fp); i++; } while(feof(fp)==0); } fclose(fp); return(i-1); } voiddisplay()/*浏览函数*/ { inti; intm=load(); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); for(i=0;i printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel); } voiddel()/*删除函数*/ { intm=load(); inti,j,n,t,flag; charname[20]; printf("\n原来的职工信息: \n"); display(); printf("\n"); printf("请输入要删除的职工的姓名: \n"); scanf("%s",name); for(flag=1,i=0;flag&&i { if(strcmp(em[i].name,name)==0) { printf("已找到此人,原始记录为: \n"); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel); printf("\n确实要删除此人信息请按1,不删除请按0\n"); scanf("%d",&n); if(n==1) { for(j=i;j { strcpy(em[j].name,em[j+1].name); em[j].num=em[j+1].num; em[j].sex=em[j+1].sex; em[j].age=em[j+1].age; strcpy(em[j].xueli,em[j+1].xueli); em[j].wage=em[j+1].wage; strcpy(em[j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 课程设计