职工信息管理系统课程设计.docx

上传人:b****6 文档编号:5022383 上传时间:2022-12-12 格式:DOCX 页数:32 大小:752.40KB
下载 相关 举报
职工信息管理系统课程设计.docx_第1页
第1页 / 共32页
职工信息管理系统课程设计.docx_第2页
第2页 / 共32页
职工信息管理系统课程设计.docx_第3页
第3页 / 共32页
职工信息管理系统课程设计.docx_第4页
第4页 / 共32页
职工信息管理系统课程设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

职工信息管理系统课程设计.docx

《职工信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统课程设计.docx(32页珍藏版)》请在冰豆网上搜索。

职工信息管理系统课程设计.docx

职工信息管理系统课程设计

职工信息管理系统课程设计

武汉长江工商学院

计算机科学与技术系

 

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1