沈师人事管理系统源代码Word文档下载推荐.docx

上传人:b****5 文档编号:16428092 上传时间:2022-11-23 格式:DOCX 页数:22 大小:22.01KB
下载 相关 举报
沈师人事管理系统源代码Word文档下载推荐.docx_第1页
第1页 / 共22页
沈师人事管理系统源代码Word文档下载推荐.docx_第2页
第2页 / 共22页
沈师人事管理系统源代码Word文档下载推荐.docx_第3页
第3页 / 共22页
沈师人事管理系统源代码Word文档下载推荐.docx_第4页
第4页 / 共22页
沈师人事管理系统源代码Word文档下载推荐.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

沈师人事管理系统源代码Word文档下载推荐.docx

《沈师人事管理系统源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《沈师人事管理系统源代码Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。

沈师人事管理系统源代码Word文档下载推荐.docx

/*基本工资*/

floatjj;

/*奖金*/

floatkk;

/*扣款*/

floatyfgz;

/*应发工资*/

floatsk;

/*税款*/

floatsfgz;

/*实发工资*/

}RSDA;

voidmenu()/*主菜单*/

system("

cls"

);

/*调用DOS命令,清屏。

与clrscr()功能相同*/

;

cprintf("

THEEMPLOYEEManagementSystem\n"

*************************Menu***************************\n"

*1inputrecord2deleterecord*\n"

*3searchrecord4modifyrecord*\n"

*5insertrecord6countrecord*\n"

*7sortrecord8saverecord*\n"

*9sortrecord0quitsystem*\n"

/*cprintf()送格式化输出至文本窗口屏幕中*/

}

voidprintheader()/*格式化输出表头*/

{

printf(HEADER1);

printf(HEADER2);

printf(HEADER3);

voidprintdata(RSDApp)/*格式化输出表中数据*/

RSDA*p;

p=&

pp;

printf(FORMAT,DATA);

voidDisp(RSDAtp[],intn)/*显示数组tp[]中储存的记录,内容为employee结构中定义的内容*/

inti;

if(n==0)/*表示没有职工工资记录*/

{

printf("

\n====>

Notemployeerecord!

\n"

while(getchar()!

='

\n'

continue;

getchar();

return;

}

printf("

\n\n"

printheader();

/*输出表头头部*/

i=0;

while(i<

n)/*逐条输出数组中储存的职工信息*/

printdata(tp[i]);

i++;

printf(HEADER3);

while(getchar()!

continue;

getchar();

voidWrong()/*输出按键错误信息*/

\n\n\n\n\n********Error:

inputhaswrong!

pressanykeytocontinue**********\n"

while(getchar()!

continue;

getchar();

voidNofind()/*输出未查找次职工的信息*/

\n=====>

Notfindthisemployeerecord!

/*作用:

用于定位数组中符合要求的记录,并返回保存该记录的数组元素下标值

参数:

findmess[]保存要查找的具体内容;

nameornum[]保存按什么数组中查找*/

intLocate(RSDAtp[],intn,charfindmess[],charnameornum[])

inti=0;

if(strcmp(nameornum,"

num"

)==0)/*按职工编号查询*/

while(i<

n)

{

if(strcmp(tp[i].num,findmess)==0)/*若找到findmess值的职工编号*/

returni;

i++;

}

elseif(strcmp(nameornum,"

name"

)==0)/*按职工姓名查询*/

if(strcmp(tp[i].name,findmess)==0)/*若找到findmess值的姓名*/

return-1;

/*若未找到,返回一个整数-1*/

voidstringinput(char*t,intlens,char*notice)

charn[255];

do{

printf(notice);

/*显示提示信息*/

scanf("

%s"

n);

/*输入字符串*/

if(strlen(n)>

lens)printf("

\nexceedtherequiredlength!

\n"

/*进行长度校验,超过lens值重新输入*/

}while(strlen(n)>

lens);

strcpy(t,n);

/*讲输入的字符串复制到自复查un个t中*/

/*输入数值,<

=树枝*/

floatnumberinput(char*notice)

floatt=0.00;

do{

printf(notice);

scanf("

%f"

&

t);

/*输入如工资等数值型的值*/

if(t<

0)printf("

\nscoremust>

=0!

/*进行数值校验*/

}while(t<

0);

returnt;

intAdd(RSDAtp[],intn)

charch,num[10];

inti,flag=0;

system("

Disp(tp,n);

/*先打印出已有的职工工资信息*/

while

(1)/*一次可输入多条记录,直至输入职工编号为的记录才结束添加操作*/

while

(1)/*输入职工编号,保证该编号没有被使用,若输入编号为,则推出添加记录操作*/

stringinput(num,10,"

inputnumber(press'

0'

returnmenu):

"

/*格式化输入编号并校验*/

flag=0;

if(strcmp(num,"

0"

)==0)/*输入为,则推出添加草i做,返回主界面*/

{returnn;

i=0;

while(i<

n)/*查询改编号是否已经存在,若存在则要求重新输入一个未被占用的编号*/

{

if(strcmp(tp[i].num,num)==0)

{

flag=1;

break;

}

i++;

}

if(flag==1)/*提示用户是否重新输入*/

getchar();

printf("

==>

Thenumber%sisexisting,tryagain?

(y/n):

num);

scanf("

%c"

ch);

if(ch=='

y'

||ch=='

Y'

continue;

else

returnn;

else

{break;

strcpy(tp[n].num,num);

/*就爱那个字符串num复制到tp[].num中*/

stringinput(tp[n].name,15,"

Name:

tp[n].jbgz=numberinput("

jbgz:

/*输入并检验基本工资*/

tp[n].jj=numberinput("

jiangjin:

/*输入并检验奖金*/

tp[n].kk=numberinput("

koukuan:

/*输入并检验扣款*/

tp[n].yfgz=tp[n].jbgz+tp[n].jj-tp[n].kk;

/*计算应发工资*/

tp[n].sk=tp[n].yfgz*0.12;

/*计算税金,这里取应发工资的%*/

tp[n].sfgz=tp[n].yfgz-tp[n].sk;

/*计算实发工资*/

saveflag=1;

n++;

returnn;

/*按职工编号或姓名,查询记录*/

voidQur(RSDAtp[],intn)

intselect;

/*1:

按编号查,:

按姓名查,其他:

返回主界面*/

charsearchinput[20];

/*保存用户输入的查询内容*/

intp=0;

if(n<

=0)/*若数组为空*/

system("

Noemployeerecord!

system("

\n=====>

1Searchbynumber=====>

2Searchbyname\n"

pleasechoice[1,2]:

%d"

select);

if(select==1)/*按编号查询*/

stringinput(searchinput,10,"

inputtheexistingemployeenumber:

p=Locate(tp,n,searchinput,"

/*在数组tp中查找编号为searchinput值的元素,并返回该数组元素的下标值*/

if(p!

=-1)/*若找到该记录*/

printheader();

printdata(tp[p]);

printf(END);

pressanykeytoreturn"

Nofind();

getchar();

elseif(select==2)/*按姓名查询*/

stringinput(searchinput,15,"

inputtheexistingemp;

oyeename:

if(p!

=-1)

else

Wrong();

/*删除记录:

先找到保存该记录的数组元素的先标值,然后在数组中删除该数组元素*/

intDel(RSDAtp[],intn)

intsel;

charfindmess[20];

intp=0,i=0;

if(n<

=0)

system("

printf("

returnn;

system("

Disp(tp,n);

\n=====>

1Delectbynumber=====>

2Delectbyname\n"

pleasechioce[1,2]:

sel);

if(sel==1)

stringinput(findmess,10,"

p=Locate(tp,n,findmess,"

{

for(i=p+1;

i<

n;

i++)/*删除此记录,后面记录向前移*/

strcpy(tp[i-1].num,tp[i].num);

strcpy(tp[i-1].name,tp[i].name);

tp[i-1].jbgz=tp[i].jbgz;

tp[i-1].jj=tp[i].jj;

tp[i-1].kk=tp[i].kk;

tp[i-1].yfgz=tp[i].yfgz;

tp[i-1].jbgz=tp[i].sk;

tp[i-1].sfgz=tp[i].sfgz;

\n==>

deletesuccess!

n--;

saveflag=1;

elseif(sel==2)/*先按姓名查询到该记录所在的数组元素的下标值*/

stringinput(findmess,15,"

p=Locate(tp,n,findmess,"

if(p!

=1)

for(i=p+1;

{

strcpy(tp[i-1].num,tp[i].num);

}

Nofind();

returnn;

/*修改记录。

先按输入的职工编号查询到该记录,然后提示用户修改编号之外的值,编号不能修改*/

voidModify(RSDAtp[],intn)

charfindmess[20];

intp=0;

return;

modifyemployeerecorder"

stringinput(findmess,10,"

/*输入并检验该编号*/

/*查询到该数组,并返回下标值*/

=-1)/*若p!

=-1,表明已经找到该数组元素*/

Number:

%s,\n"

tp[p].num);

%s,"

tp[p].name);

stringinput(tp[p].name,15,"

inputnewname:

%8.2f,"

tp[p].jbgz);

tp[p].jbgz=numberinput("

tp[p].jj);

tp[p].jj=numberinput("

tp[p].kk);

tp[p].kk=numberinput("

tp[n].yfgz=tp[n].jbgz+tp[n].jj-tp[n].kk;

tp[n].sk+tp[n].yfgz*0.12;

tp[n].sfgz=tp[n].yfgz-tp[n].sk;

modifysuccess!

Disp(tp,n);

return;

/*插入记录:

按职工编号查询到要插入的数组元素的位置,然后在该编号之后插入一个新元组*/

intInsert(RSDAtp[],intn)

charch,num[10],s[10];

/*s[]保存插入点位置之前的编号,num[]保存输入的新记录的编号*/

RSDAnewinfo;

intflag=0,i=0,kkk=0;

Disp(tp,n);

while

(1)

stringinput(s,10,"

pleaseinputinsertlocationsftertheNumber:

i=0;

n)/*查询该编号是够存在,则进行插入之前的新记输入操作*/

if(strcmp(tp[i].num,s)==0){kkk=i;

flag=1;

break;

if(flag==1)

break;

Thenumber%sisnotexisting,tryagain?

s);

{continue;

{returnn;

/*以下新记录的输入操作与Add()相同*/

stringinput(num,10,"

inputnewemployeenumber:

i=0;

flag=0;

while(i<

n)/*查询该编号是否存在,flag=1表示该编号存在*/

if(strcmp(tp[i].num,num)==0){flag=1;

i++;

if(flag=1)

getchar();

Sorry,Thenumber%sisnotexisting,tryagain?

else

break;

strcpy(newinfo.num,num);

/*将字符串num复制到newinfo中*/

stringinput(newinfo.name,15,"

Name"

newinfo.jbgz=numberinput("

newinfo.jj=numberinput("

newinfo.kk=numberinput("

newinfo.yfgz=newinfo.jbgz+newin

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

当前位置:首页 > PPT模板 > 其它模板

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

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