数据结构课程设计职工管理系统Word文件下载.docx

上传人:b****5 文档编号:19508201 上传时间:2023-01-07 格式:DOCX 页数:18 大小:107.45KB
下载 相关 举报
数据结构课程设计职工管理系统Word文件下载.docx_第1页
第1页 / 共18页
数据结构课程设计职工管理系统Word文件下载.docx_第2页
第2页 / 共18页
数据结构课程设计职工管理系统Word文件下载.docx_第3页
第3页 / 共18页
数据结构课程设计职工管理系统Word文件下载.docx_第4页
第4页 / 共18页
数据结构课程设计职工管理系统Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据结构课程设计职工管理系统Word文件下载.docx

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

数据结构课程设计职工管理系统Word文件下载.docx

5.1、进入主函数:

系统里各职工的信息保存在tt.txt中。

5.2、查询所有职工信息,系统直接从tt.txt中读出:

5.3、添加职工信息,可以选择一次要添加多个人:

添加之后,可以在tt.txt中查看,是否已经插入进去:

5.4、删除职工信息,通过姓名查找与输入姓名相同的职工,再删除:

删除之后,可以再tt.txt中查看是否已经删除成功:

5.5、查询职工信息,同过查找与输入姓名相同的职工,查找其住宿信息:

5.6、修改职工信息,同过查找与输入姓名相同的职工,可以修改其全部信息:

修改之后,可以在tt.txt中查看是否成功修改:

5.7、调换部门,先查找出要调换的职工,然后再设置要调换的部门:

调换之后,可以再tt.txt中查看是否已经成功调换

5.8、查询全部部门:

参考文献(包括书籍、论文、网络资料等)

[1]秦锋等.《数据结构(C语言版)》.北京:

清华大学出版社,2012.1

[2]严蔚敏等.《数据结构(C语言版)》.北京:

清华大学出版社,2007.4

相关工具:

MicrosoftVisualC++6.0

附录程序源代码

#include<

iostream>

stdio.h>

string.h>

stdlib.h>

#include<

fstream>

usingnamespacestd;

#definemaxsize100//最多100人

typedefstructnode//职工结点信息

{

charname[15];

//姓名

charsex[6];

//性别

charbirthday[15];

//生日

charposition[15];

//职务

chardepartment[20];

//部门

charaddress[15];

//住址

chartelephone[12];

//电话

structnode*next;

//后继结点

}DataType,LNode,*LinkList;

//结点类型,指向LNode类型结点的指针

//DataTypex;

LinkListinit(LinkListHead)

Head=(LinkList)malloc(sizeof(LNode));

Head->

next=NULL;

returnHead;

}

LinkListInsert(LinkListHead,LinkListx)//职工信息的插入姓名并按照升序排列

{//职工信息保存在x这个结点中,插入x这个结点

LinkListp,q,s=NULL;

p=Head->

next;

q=(LinkList)malloc(sizeof(LNode));

if(!

q)

{

cout<

<

"

申请空间失败!

endl;

return0;

}

/////////////将结点x赋予结点q/////////////

strcpy(q->

name,x->

name);

sex,x->

sex);

birthday,x->

birthday);

position,x->

position);

department,x->

department);

address,x->

address);

telephone,x->

telephone);

////////////////////////////////////////

p)//如果只有Head,则直接将q插在Head后头;

Head->

next=q;

next->

else//链表非空

for(;

p;

p=p->

next)//////从p开始到最后一个结较点与结点x比,来确定结点x插入的位置

{

if(p->

next!

=NULL)

{

if(strcmp(p->

name)<

0&

&

strcmp(p->

name)>

0)//前小后大

{//结点x的首值大于结点p的首值但小于p->

next的首值,即结点x插在结点p于结点p->

next之间

s=p->

q->

next=s;

p->

break;

}

elseif(strcmp(p->

name)==0)

break;

////因为表设计为姓名为主键,所以不能重复,所以姓名相同,则不插入信息

}

if(strcmp(p->

p->

next==NULL)

{//(p->

(x->

name),直接插在p之后

q->

break;

0)

{//结点x插在p之前,位于链表头结点之后的位置

p=Head->

Head->

next=p;

break;

}

}

/*不排序,直接插入

q->

p=q;

*/

cout<

插入成功!

!

/////////////////////////////////////////////////////////

voidprint(LinkListHead)//显示职工信息

for(LinkListp=Head->

p!

=NULL;

next)

p->

name<

\t"

sex<

birthday<

position<

department<

address<

telephone<

voidprintLink(LinkListHead)

if(Head->

职工名单为空,无须删除"

else

职工名单如下:

\n"

姓名"

性别"

出生年月"

职务"

部门"

住址"

电话"

print(Head);

voidDelete(LinkListHead)//职工信息的删除

LinkLists;

s=(LinkList)malloc(sizeof(LNode));

charx[20];

//定义职工姓名

s=Head;

next==NULL)//链表为空,不用删除

职工名单为空!

return;

请输入要删除职工的姓名:

;

cin>

>

x;

s->

s=s->

next)//遍历链表,找与输入name一样的,删除。

if(strcmp(s->

name,x)==0)//找出p的前驱结点s,删除s->

LinkListtmp=s->

s->

next=s->

free(tmp);

cout<

删除成功!

请继续操作!

break;

if(s->

名单中无此职工,无须删除"

voidModify(LinkListHead)////修改,输入姓名,找到姓名所属信息,然后可以一次性全部修改

LinkLists,p;

if(p==NULL)

请输入职工姓名:

name;

next)//在链表中一次查找

name,p->

请依次写入职工的新信息:

电话"

cin>

name>

sex>

birthday>

position>

department>

address>

telephone;

修改成功!

名单中无此人,无须修改!

voidchangeDepart(LinkListHead)////调换部门

请输入姓名:

for(p;

next)

if(strcmp(s->

name)==0)////////找到姓名相同的结点

cout<

输入要更新的部门:

department;

/////////////设置新的部门

调换部门成功!

voidInsearch(LinkListHead)//////查询,根据姓名查询住址

LinkListp,s;

职工名单中无此职工!

住址:

"

名单中无此人!

return;

voidprintDepartment(LinkListHead)//显示部门信息

//inti;

所有部门名称为:

voidSaveToFile(LinkListhead)/////////写入到文件当中

ofstreamfile("

tt.txt"

ios:

:

out);

LinkListp=head->

while(p)

file<

p=p->

file.close();

LinkListGetDataFromFile()///////////////读取文件

ifstreamfile("

in);

LinkListhead=NULL;

head=newLNode;

head->

chartmp[25];

////////////

boolflag=false;

while

(1)

if(file>

tmp)///////////读入文件,只要不是结尾

flag=true;

if(flag==true)

LinkListtNode=newLNode;

strcpy(tNode->

name,tmp);

file>

tNode->

sex;

birthday;

position;

address;

tNode->

next=head->

head->

next=tNode;

flag=false;

else

returnhead;

voidmain()

intnum,i;

LinkListx;

//插入的结点

LinkListHead=NULL;

Head=GetDataFromFile();

********************************************************************************"

**************************欢迎进入安徽工程大学职工管理系统**********************"

主菜单\n"

0.结束管理系统1.新增职工信息2.删除职工信息\n\n\n"

3.查询职工住宿信息4.修改职工信息5.显示全部职工信息\n\n\n"

6.查询所有部门信息7.调换部门"

请输入您要选择的操作的序号:

cin>

i;

if(i==0)

SaveToFile(Head);

信息已存入硬盘......"

您已经成功退出安徽工程大学职工管理系统,谢谢使用!

if(i==1)

请输入要录入的职工人数:

num;

请输入职工信息:

家庭住址"

电话号码"

for(i=0;

i<

i++)

{

cout<

请输入第"

i+1<

个职工信息:

x=(LinkList)malloc(sizeof(LNode));

cin>

x->

Head=Insert(Head,x);

elseif(i==2)

Delete(Head);

elseif(i==3)

Insearch(Head);

elseif(i==4)

Modify(Head);

elseif(i==5)

printLink(Head);

//system("

cls"

);

////////////清屏

elseif(i==6)//////查询所有部门信息

printDepartment(Head);

elseif(i==7)///////部门调换

changeDepart(Head);

else

输入有误!

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

当前位置:首页 > 外语学习 > 日语学习

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

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