c语言程序设计企业员工管理系统Word文件下载.docx
《c语言程序设计企业员工管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言程序设计企业员工管理系统Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
修改模块:
找到该员工并,选择所要修改的选项。
排序模块:
本程序只对员工年龄进行从小到大排序。
查询模块:
此模块分为按姓名,年龄,工作查询。
姓名查询模块:
输入要查找的姓名,找到就输出其信息。
找不到则输出无此人。
年龄查询模块:
输入要查找的年龄,找到就输出其信息。
工作查询模块:
输入要查找的工作,找到就输出其信息。
统计模块:
此模块分为,统计年龄,性别和工作。
统计年龄:
输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。
统计性别:
输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。
统计工作:
输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。
保存模块:
将现有信息保存于文件中,以防丢失。
系统模块图
五、详细设计及运行结果
流程图,函数之间相互调用的图示,程序设计及编码,运行结果。
主函数:
i=1i=6i=2i=3i=4i=5i=0
输出模块:
否
是
是
是
更新模块:
否i=3
i=1i=2i=0
统计模块:
i=1i=3i=2i=0i=1i=2i=3i=0
否否
是是
六、调试情况,设计技巧及体会
1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。
自我评价:
本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。
经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。
因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。
但不足之处便是没有链表那样节省内存。
如有机会下次可能会用链表。
2、在设计过程中的感受。
在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧。
当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立马被一种成就感替代。
就想赶紧编完看看自己的杰作。
然而也会遇到自己解决不了的问题,就只能去求老师了。
这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。
七、参考文献
C语言课本。
八、附录:
源代码
#include<
stdio.h>
string.h>
#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);
开始输入员工的信息\n"
\n请输入现有员工人数\n"
%d"
&
n);
if((fp=fopen(filename,"
w"
))==NULL)
{printf("
不能建立!
\n"
exit();
}
for(i=0;
i<
n;
i++)
第%d个人的信息:
i+1);
姓名\n"
worker[i].name);
年龄\n"
worker[i].age);
工作\n"
worker[i].job);
性别\n"
worker[i].sex);
地址\n"
worker[i].address);
电话\n"
worker[i].phone);
入厂年\n"
worker[i].in_time.year);
入厂月\n"
worker[i].in_time.mouth);
入厂日\n"
worker[i].in_time.day);
录入完毕,按任意键返回主菜单\n"
getch();
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;
r"
暂时未有任何信息,请按任意键返回主菜单进行信息录入\n"
该厂的员工信息:
姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n"
{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,&
%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n"
输出完毕,按任意键返回主菜单\n"
/*保存模块*/
voidsave()
))==NULL)/*打开文件*/
\n不能打开该文件!
"
/*读取信息*/
voidread_message()
输入文件名\n"
fscanf(fp,"
/*修改模块*/
voidmodify()
{inti,flag,choice;
charch,namekey[10];
flag=0;
开始修改\n"
do
{
请输入要修改的员工姓名\n"
namekey);
{if(strcmp(worker[i].name,namekey)==0)
是否修改此人(y/n)\n"
getchar();
/*接收回车*/
ch=getchar();
if(ch=='
y'
)
****您要修改那一项?
***\n\n"
***1,姓名***\n\n"
***2,年龄***\n\n"
***3,工作***\n\n"
***4,性别***\n\n"
***5,地址***\n\n"
***6,电话***\n\n"
***7,入厂年***\n\n"
***8,入厂月***\n\n"
***9,入厂日***\n\n"
请选择(1-9)\n"
choice);
switch(choice)
{case1:
输入修改后的姓名\n"
break;
case2:
输入修改后的年龄\n"
case3:
输入修改后的工作\n"
case4:
输入修改后的性别\n"
case5:
输入修改后的地址\n"
case6:
输入修改后的电话\n"
case7:
输入修改后的入厂年\n"
case8:
输入修改后的入厂月\n"
case9:
输入修改后的入厂日\n"
修改后的信息\n"
elsebreak;
else
if(i==n)printf("
此人不存在\n"
\n是否继续输入(y/n)\n"
继续\n"
flag=1;
elseflag=0;
}while(flag==1);
printf("
修改完毕,按任意键返回主菜单\n"
);
getch();
/*添加模块*/
voidadd()
{inti,flag=0;
charch;
\n开始添加新员工\n"
*----------------------------------*\n\n"
do
{i=n;
\n请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)\n"
&
性别\n"
%s"
n++;
\n添加成功!
是否继续输入(y/n)\n"
添加完毕,按任意键返回主菜单\n"
/*删除模块*/
voiddel()
{inti,flag;
开始删除\n"
请输入要删除员工的名字\n"
if(strcmp(worker[i].name,namekey)==0)/*查找此人*/
是否删除此人(y/n)\n"
{for(;
worker[i]=worker[i+1];
n--;
if(i==n)
操作完毕,按任意键返回主菜单\n"
/*更新模块*/
voidrenew()
{clrscr();
\n\n\n****更新员工信息****\n\n"
按1,添加员工信息\n\n"
按2,删除员工信息\n\n"
按3,修改员工信息\n\n"
按0,返回主菜单\n"
请选择(0-3)\n"
i);
switch(i)
add();
del();
modify();
case0:
}while(i!
=0);
save();
/*按姓名查找*/
voidname_cha()
{inti,j;
charnamekey[10];
j=0;
输入要查询的员工姓名\n"
---------员工信息------\n"
elsej++;
if(j==n)
按任意键返回主菜单\n"
/*按年龄查找*/
voidage_cha()
intagekey;
输入要查询员工的年龄\n"
agekey);
if(worker[i].age==agekey)
-------员工信息------\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.mo