数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx

上传人:b****1 文档编号:14251705 上传时间:2022-10-20 格式:DOCX 页数:24 大小:21.25KB
下载 相关 举报
数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx_第1页
第1页 / 共24页
数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx_第2页
第2页 / 共24页
数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx_第3页
第3页 / 共24页
数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx_第4页
第4页 / 共24页
数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx

《数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

数据结构课程设计职工信息管理系统单链表实现程序源代码Word文件下载.docx

字母l不是数字1)

voidadd(Linkl);

voiddisp(Linkl);

//查看职工所有信息

voiddel(Linkl);

//删除功能

Node*Locate(Linkl,charfindmess[],charnameornum[]);

voidQur(Linkl);

//查询功能

voidTongji(Linkl);

//统计

voidSort(Linkl);

//排序

voidModify(Linkl);

//修改功能

voidsave(Linkl);

//将单链表l中的数据写入文件

voidprinte(Node*p);

//本函数用于打印链表中某个节点的数据内容*/

//以下4个函数用于输出中文标题

voidprintstart();

voidWrong();

voidNofind();

voidprintc();

voidmenu()

{

printf("

\t*****************************************************************\n"

);

\t**\n"

\t*职工信息管理系统_结构体数组实现*\n"

\t**\n"

\t*[1]增加职工信息[2]删除职工信息*\n"

\t*[3]查询职工信息[4]修改职工信息*\n"

\t*[5]插入职工记录[6]统计职工记录*\n"

\t*[7]排序[8]保存职工信息*\n"

\t*[9]显示数据[0]退出系统*\n"

}//voidmenu菜单结束

voidDisp(Linkl)//显示单链表l中存储的职工记录,内容为employee结构中定义的内容

intcount=0;

Node*p;

p=l->

next;

//l存储的是单链表中头结点的指针,该头结点没有存储职工信息,指针域指向的后继结点才有职工信息

if(!

p)/*p==NULL,NUll在stdlib中定义为0*/

{

printf("

\n=====>

提示:

没有职工记录可以显示!

\n"

return;

}

\t\t\t\t显示结果\n"

printstart();

//打印横线

printc();

//打印各学科标题

while(p)//逐条输出链表中存储的职工信息

printe(p);

p=p->

}//voidDisp结束

voidprintstart()

-----------------------------------------------------------------------\n"

}

voidWrong()

输入错误!

voidNofind()

没有找到该职工!

voidprintc()/*本函数用于输出中文*/

工号\t姓名性别部门职称工资总工资平均工资\n"

voidprinte(Node*p)/*本函数用于打印链表中某个节点的数据内容*/

%-12s%s\t%s\t%d\t%d\t%d\t%d\t%d\n"

p->

data.num,p->

data.name,p->

data.sex,p->

data.bm,p->

data.zc,p->

data.gz);

//Locate(l,findmess,"

num"

/*该函数用于定位连表中符合要求的结点,并返回该指针*/

Node*Locate(Linkl,charfindmess[],charzcornum[])

Node*r;

if(strcmp(zcornum,"

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

r=l->

while(r!

=NULL)

{

if(strcmp(r->

data.num,findmess)==0)/*若找到findmess值的工号*/

returnr;

r=r->

}

elseif(strcmp(zcornum,"

zc"

)==0)/*按职称查询*/

data.zc,findmess)==0)/*若找到findmess值的职工职称*/

return0;

/*若未找到,返回一个空指针*/

//add()函数中,无节点时,r指向list头,有节点时,r指向末尾节点

voidAdd(Linkl)/*增加职工*/

Node*p,*r,*s;

/*实现添加操作的临时的结构体指针变量*/

intflag=0;

r=l;

s=l->

//链表没有节点时,s=null;

/链表有节点时,指向第一个职工节点

while(r->

next!

=NULL)//如果存在后继结点时,r指针后移一个

r=r->

/*将指针移至于链表最末尾,准备添加记录*/

while

(1)

请你输入工号(以'

0'

返回上一级菜单:

)"

scanf("

%s"

num);

if(strcmp(num,"

0"

)==0)//输入'

跳出while

(1),即跳出add()函数

break;

s=l->

//作用?

每次从第一个节点开始找,看num是否重复。

while(s)//工号重复时,返回主菜单

if(strcmp(s->

data.num,num)==0)

{

printf("

=====>

工号为'

%s'

的职工已经存在,若要修改请你选择'

4修改'

!

flag=1;

//break;

return;

}

s=s->

}//while(s)

p=(Node*)malloc(sizeof(Node));

//生成没赋值的新节点p

strcpy(p->

data.num,num);

请你输入姓名:

"

p->

data.name);

getchar();

请你输入性别:

data.sex);

请你输入职工所在部门:

%d"

&

p->

data.bm);

请你输入职工职称:

data.zc);

请你输入职工工资:

/*信息输入已经完成*/

next=NULL;

/*表明这是链表的尾部结点*/

r->

next=p;

/*将新建的结点加入链表尾部中*/

r=p;

saveflag=1;

}//while

(1)

}//voidAdd增加结束

voidDel(Linkl)/*删除*/

intsel;

Node*p,*r;

/*实现删除操作的临时的结构体指针变量*/

charfindmess[20];

l->

next)//当list无后继结点时,提示和结束返回del()

{

没有记录可以删除!

1按工号删除\n=====>

2按姓名删除\n"

scanf("

sel);

if(sel==1)//按工号删除

请你输入要删除的工号:

findmess);

p=Locate(l,findmess,"

if(p)

r=l;

while(r->

=p)

r=r->

//从第一个结点找起,直到发现r->

next=p,是待删除结点,跳出循环

r->

next=p->

//rr->

next(p)p->

next

free(p);

printf("

该职工已经成功删除!

saveflag=1;

else

Nofind();

//显示一句话

}//if(sel==1)

elseif(sel==2)//按姓名删除

请你输入要删除的姓名:

name"

//r

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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