c语言程序设计企业员工管理系统.docx

上传人:b****8 文档编号:29886341 上传时间:2023-08-03 格式:DOCX 页数:29 大小:19.53KB
下载 相关 举报
c语言程序设计企业员工管理系统.docx_第1页
第1页 / 共29页
c语言程序设计企业员工管理系统.docx_第2页
第2页 / 共29页
c语言程序设计企业员工管理系统.docx_第3页
第3页 / 共29页
c语言程序设计企业员工管理系统.docx_第4页
第4页 / 共29页
c语言程序设计企业员工管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

c语言程序设计企业员工管理系统.docx

《c语言程序设计企业员工管理系统.docx》由会员分享,可在线阅读,更多相关《c语言程序设计企业员工管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

c语言程序设计企业员工管理系统.docx

c语言程序设计企业员工管理系统

一、课程设计目的

通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。

学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。

为后续各门计算机课程的学习打下坚实基础。

为毕业设计和以后工作打下必要基础。

二、课程设计内容

针对某企业的员工,对其信息进行系统的管理。

三、需求分析

对所开发系统功能、性能的描述,想要实现的目标。

此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。

用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。

每一功能模块都充分为用户考虑,编排详细。

使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。

四、概要设计

1.系统结构图(功能模块图)

对系统进行分析,给出系统结构图;

分析:

此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。

以下为系统模块图。

2.功能模块说明

对各个模块进行功能的描述。

录入模块:

输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。

输出模块:

将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。

更新模块:

此模块又分为删除,添加,修改三个模块。

删除模块:

对已退休或离开该厂的员工进行删除操作。

添加模块:

添加新入厂的员工信息并保存起来。

修改模块:

找到该员工并,选择所要修改的选项。

排序模块:

本程序只对员工年龄进行从小到大排序。

查询模块:

此模块分为按姓名,年龄,工作查询。

姓名查询模块:

输入要查找的姓名,找到就输出其信息。

找不到则输出无此人。

年龄查询模块:

输入要查找的年龄,找到就输出其信息。

找不到则输出无此人。

工作查询模块:

输入要查找的工作,找到就输出其信息。

找不到则输出无此人。

统计模块:

此模块分为,统计年龄,性别和工作。

统计年龄:

输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。

统计性别:

输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。

统计工作:

输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。

保存模块:

将现有信息保存于文件中,以防丢失。

系统模块图

王氏企业员工

信息管理系统

输入i的值,进入相应模块

保存模块

退出系统

统计模块

排序模块

查询模块

更新模块

输出模块

录入模块

按年龄统计

修改员工信息

添加员工信息

按工作统计

按性别统计

按年龄排序

按工作查询

按年龄查寻

按姓名查询

删除员工信息

按任意键返回主界面

五、详细设计及运行结果

流程图,函数之间相互调用的图示,程序设计及编码,运行结果。

结束

保存模块

输入i

开始

统计模块

排序模块

查询模块

更新模块

输出模块

录入模块

判断i值

主函数:

i=1i=6i=2i=3i=4i=5i=0

退出系统

结束

打开文件

关闭文件

i++

输出员工信息

i

i=0

输出模块:

开始

i=0

开始

录入模块:

结束

打开文件

关闭文件

i++

输入员工信息

i

i=0

排序模块:

更新模块:

输入i

开始

结束

返回主界面

i=0

退出系统

修改模块

添加模块

删除模块

判断i值

i>n-1

j>n

i=i+1

j=j+1

交换i与j的信息

i的年龄大于j的年龄

j=i+1

i=0

开始

否i=3

i=1i=2i=0

输出信息

结束

输入i

开始

结束

返回主界面

i=0

退出系统

统计性别

统计年龄

统计工作

判断i值

输入i

开始

结束

返回主界面

i=0

退出系统

工作查询

姓名查询

年龄查询

判断i值

查询模块:

统计模块:

i=1i=3i=2i=0i=1i=2i=3i=0

否否

是是

六、调试情况,设计技巧及体会

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

自我评价:

本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。

经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。

因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。

但不足之处便是没有链表那样节省内存。

如有机会下次可能会用链表。

2、在设计过程中的感受。

在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧。

当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立马被一种成就感替代。

就想赶紧编完看看自己的杰作。

然而也会遇到自己解决不了的问题,就只能去求老师了。

这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。

七、参考文献

C语言课本。

八、附录:

源代码

#include

#include

#defineMAX100

charfilename[20];/*文件名*/

FILE*fp;

intn;/*当前该厂人数*/

structdate/*时间结构体*/

{intyear;

intmouth;

intday;

};

structperson/*员工信息结构体*/

{charname[10];/*姓名*/

intage;/*年龄*/

charjob[10];/*工作*/

charsex[10];/*性别*/

charaddress[20];/*地址*/

charphone[10];/*电话*/

structdatein_time;/*入厂时间*/

}t,worker[MAX];

/*录入模块*/

voidinput()

{inti;

clrscr();

printf("\n\n请输入文件名\n");

scanf("%s",filename);

printf("开始输入员工的信息\n");

printf("\n请输入现有员工人数\n");

scanf("%d",&n);

if((fp=fopen(filename,"w"))==NULL)

{printf("不能建立!

\n");

exit();

}

for(i=0;i

{printf("第%d个人的信息:

\n",i+1);

printf("姓名\n");

scanf("%s",worker[i].name);

printf("年龄\n");

scanf("%d",&worker[i].age);

printf("工作\n");

scanf("%s",worker[i].job);

printf("性别\n");

scanf("%s",worker[i].sex);

printf("地址\n");

scanf("%s",worker[i].address);

printf("电话\n");

scanf("%s",worker[i].phone);

printf("入厂年\n");

scanf("%d",&worker[i].in_time.year);

printf("入厂月\n");

scanf("%d",&worker[i].in_time.mouth);

printf("入厂日\n");

scanf("%d",&worker[i].in_time.day);

}

printf("录入完毕,按任意键返回主菜单\n");

getch();

for(i=0;i

fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

fclose(fp);

}

/*输出模块*/

voidoutput()

{inti;

if((fp=fopen(filename,"r"))==NULL)

{printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");

getch();

exit();

}

clrscr();

printf("该厂的员工信息:

\n");

printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");

for(i=0;i

{fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);

printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

}

fclose(fp);

printf("输出完毕,按任意键返回主菜单\n");

getch();

}

/*保存模块*/

voidsave()

{inti;

if((fp=fopen(filename,"w"))==NULL)/*打开文件*/

{printf("\n不能打开该文件!

");

exit();

}

for(i=0;i

fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

fclose(fp);

}

/*读取信息*/

voidread_message()

{inti;

printf("输入文件名\n");

scanf("%s",filename);

printf("\n请输入现有员工人数\n");

scanf("%d",&n);

if((fp=fopen(filename,"r"))==NULL)

{printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");

getch();

}

for(i=0;i

fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);

fclose(fp);

}

/*修改模块*/

voidmodify()

{inti,flag,choice;charch,namekey[10];

flag=0;

clrscr();

printf("开始修改\n");

do

{

printf("请输入要修改的员工姓名\n");

scanf("%s",namekey);

for(i=0;i

{if(strcmp(worker[i].name,namekey)==0)

{printf("是否修改此人(y/n)\n");

printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");

printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

getchar();/*接收回车*/

ch=getchar();

if(ch=='y')

{printf("****您要修改那一项?

***\n\n");

printf("***1,姓名***\n\n");

printf("***2,年龄***\n\n");

printf("***3,工作***\n\n");

printf("***4,性别***\n\n");

printf("***5,地址***\n\n");

printf("***6,电话***\n\n");

printf("***7,入厂年***\n\n");

printf("***8,入厂月***\n\n");

printf("***9,入厂日***\n\n");

printf("请选择(1-9)\n");

scanf("%d",&choice);

switch(choice)

{case1:

printf("输入修改后的姓名\n");

scanf("%s",worker[i].name);break;

case2:

printf("输入修改后的年龄\n");

scanf("%d",&worker[i].age);break;

case3:

printf("输入修改后的工作\n");

scanf("%s",worker[i].job);break;

case4:

printf("输入修改后的性别\n");

scanf("%s",worker[i].sex);break;

case5:

printf("输入修改后的地址\n");

scanf("%s",worker[i].address);break;

case6:

printf("输入修改后的电话\n");

scanf("%s",worker[i].phone);break;

case7:

printf("输入修改后的入厂年\n");

scanf("%d",&worker[i].in_time.year);break;

case8:

printf("输入修改后的入厂月\n");

scanf("%d",&worker[i].in_time.mouth);break;

case9:

printf("输入修改后的入厂日\n");

scanf("%d",&worker[i].in_time.day);break;

}

printf("修改后的信息\n");

printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");

printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

}

elsebreak;

}

else

if(i==n)printf("此人不存在\n");

}

printf("\n是否继续输入(y/n)\n");

getchar();/*接收回车*/

ch=getchar();

if(ch=='y')

{printf("继续\n");

flag=1;

}

elseflag=0;

}while(flag==1);

printf("修改完毕,按任意键返回主菜单\n");

getch();

}

/*添加模块*/

voidadd()

{inti,flag=0;charch;

clrscr();

printf("\n开始添加新员工\n");

printf("*----------------------------------*\n\n");

do

{i=n;

printf("\n请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)\n");

printf("姓名\n");

scanf("%s",worker[i].name);

printf("年龄\n");

scanf("%d",&worker[i].age);

printf("工作\n");

scanf("%s",worker[i].job);

printf("性别\n");

scanf("%s",worker[i].sex);

printf("地址\n");

scanf("%s",worker[i].address);

printf("电话\n");

scanf("%s",worker[i].phone);

printf("入厂年\n");

scanf("%d",&worker[i].in_time.year);

printf("入厂月\n");

scanf("%d",&worker[i].in_time.mouth);

printf("入厂日\n");

scanf("%d",&worker[i].in_time.day);

n++;

printf("\n添加成功!

是否继续输入(y/n)\n");

getchar();/*接收回车*/

ch=getchar();

if(ch=='y')

{printf("继续\n");

flag=1;

}

elseflag=0;

}while(flag==1);

printf("添加完毕,按任意键返回主菜单\n");

getch();

}

/*删除模块*/

voiddel()

{inti,flag;charch,namekey[10];

flag=0;

clrscr();

printf("开始删除\n");

do

{printf("请输入要删除员工的名字\n");

scanf("%s",namekey);

for(i=0;i

if(strcmp(worker[i].name,namekey)==0)/*查找此人*/

{printf("是否删除此人(y/n)\n");

printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");

printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);

getchar();/*接收回车*/

ch=getchar();

if(ch=='y')

{for(;i

worker[i]=worker[i+1];

n--;

}

elsebreak;

}

else

if(i==n)

printf("此人不存在\n");

printf("\n是否继续输入(y/n)\n");

getchar();/*接收回车*/

ch=getchar();

if(ch=='y')

{printf("继续\n");

flag=1;

}

elseflag=0;

}while(flag==1);

printf("操作完毕,按任意键返回主菜单\n");

getch();

}

/*更新模块*/

voidrenew()

{inti;

do

{clrscr();

printf("\n\n\n****更新员工信息****\n\n");

printf("按1,添加员工信息\n\n");

printf("按2,删除员工信息\n\n");

printf("按3,修改员工信息\n\n");

printf("按0,返回主菜单\n");

printf("请选择(0-3)\n");

scanf("%d",&i);

switch(i)

{case1:

add();break;

case2:

del();break;

case3:

modify();break;

case0:

break;

}

}while(i!

=0);

save();

}

/*按姓名查找*/

voidname_cha()

{inti,j;charnamekey[10];

j=0;

clrscr();

printf("输入要查询的员工姓名\n");

scanf("%s",namekey);

for(i=0;i

if(strcmp(worker[i].name,namekey)==0)/*查找此人*/

{printf("---------员工信息------\n");

printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");

printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_tim

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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