数据结构员工管理信息系统代码.docx
《数据结构员工管理信息系统代码.docx》由会员分享,可在线阅读,更多相关《数据结构员工管理信息系统代码.docx(13页珍藏版)》请在冰豆网上搜索。
数据结构员工管理信息系统代码
数据结构-员工管理信息系统源程序
#include
#include
#include
#include
usingnamespacestd;
#defineOK1
#defineERROR0
#defineOVERFLOW-2
typedefintStatus;//Status是函数返回值类型,其值是函数结果状态代码。
#defineMAXSIZE100//顺序表可能达到的最大长度
typedefstruct{//ElemType为自定义的数据类型,要根据实际情况定义,本例为学生信息:
(学号,成绩)
intnum;
stringname;
stringsex;
stringbirth;
stringedu;
stringjob;
stringphone;
stringadd;
}ElemType;
typedefstruct{//定义顺序表类型为List
ElemType*elem;
intlength;
}List;
voidInitList(List&L)//创建空顺序表
{
L.elem=newElemType[MAXSIZE];//动态分配空间
L.length=0;
}
voidListInput(List&L,intn)//输入顺序表数据
{
inti;
cout<<"请输入员工信息"<for(i=0;i{cout<<"请输入员工编号:
"<cin>>L.elem[i].num;//输入员工编号
cout<<"请输入员工姓名"<cin>>L.elem[i].name;//输入姓名
cout<<"请输入员工性别:
"<cin>>L.elem[i].sex;//输入员工编号
cout<<"请输入员工出生年月"<cin>>L.elem[i].birth;
cout<<"请输入员工职务"<cin>>L.elem[i].job;
cout<<"请输入员工学历"<cin>>L.elem[i].edu;
cout<<"请输入员工电话号码"<cin>>L.elem[i].phone;
cout<<"请输入员工住址"<cin>>L.elem[i].add;
}
L.length=n;
}
voidListOutput(ListL)//输出顺序表数据
{
inti=0;
if(L.length==0)cout<<"空表,无数据输出!
";
for(i=0;icout<<"("<}
intLocateElem(ListL,intnum)//在顺序表里查找某编号员工的信息{
inti;
for(i=0;iif(num==L.elem[i].num)
returni+1;
elsereturn0;
}
voidListInsert(List&L,ElemTypee)//顺序表的插入
{
inti;
if(L.length==MAXSIZE)cout<<"存储空间已满";//当前存储空间已满
if(LocateElem(L,e.num)!
=0)
cout<<"数据已存在,请重新输入";
else
{for(i=L.length-1;i>=0;i--)
if(e.numL.elem[i+1]=L.elem[i];
else
break;
L.elem[i+1]=e;
++L.length;
}
}
voidListDelete(List&L,intbh)
{
inti,j;
i=LocateElem(L,bh);
if(i==0)
cout<<"找不到此员工相关信息";
else
{for(j=i;j<=L.length;j++)
L.elem[j-1]=L.elem[j];
--L.length;}
}
voidBubbleSort(List&L)
{
inti,j;
ElemTypekey;
for(i=0;ifor(j=i+1;jif(L.elem[i].num>L.elem[j].num)
{key=L.elem[i];
L.elem[i]=L.elem[j];
L.elem[j]=key;//在查找位置的同时元素后移
//将新元素e放入合适的位置//表长增1
//顺序表的删除
//查找删除位置
//被删除元素之后的元素前移
//表长减1
}
}
voidChangeM(List&L)
{
inti,n,num;
cout<<"\t\t\t*请输入更改的员工编号*"<cin>>num;
cout<<"\t\t\t************************"<cout<<"\t\t\t**"<cout<<"\t\t\t*[1]改名字*"<cout<<"\t\t\t*[2]改电话*"<cout<<"\t\t\t*[3]改性别*"<cout<<"\t\t\t*[4]改学历*"<cout<<"\t\t\t*[5]改住址*"<cout<<"\t\t\t*[6]改编号*"<cout<<"\t\t\t*[7]改工作*"<cout<<"\t\t\t*[8]改生日*"<cout<<"\t\t\t************************\n";
cout<<"\t\t\t*请输入1-8选择修改项*"<cin>>n;
for(i=0;iif(num==L.elem[i].num)//查找删除位置
break;
if(iswitch(n)
{
case1:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].name;break;
case2:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].phone;break;
case3:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].sex;break;
case4:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].edu;break;
case5:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].add;break;
case6:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].num;break;
case7:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].job;break;
case8:
cout<<"\t\t\t请输入新内容:
"<cin>>L.elem[i].birth;break;
}
else
cout<<"未找到要修改的员工信息,请检查是否编号输入有误!
\n";
}
voidmenu(void)//主菜单
{
system("cls");
cout<<"\n\n";
cout<<"\t\t\t员工管理系统\n";
cout<<"\t\t\t************************\n";
cout<<"\t\t\t**\n";
cout<<"\t\t\t*[1]数据输入*\n";
cout<<"\t\t\t*[2]查询数据*\n";
cout<<"\t\t\t*[3]更新数据*\n";
cout<<"\t\t\t*[4]插入数据*\n";
cout<<"\t\t\t*[5]删除数据*\n";
cout<<"\t\t\t*[6]员工排序*\n";
cout<<"\t\t\t*[7]txt文件(员工信息)*\n";
cout<<"\t\t\t*[8]文件导出*\n";
cout<<"\t\t\t*[9]退出*\n";
cout<<"\t\t\t**\n";
cout<<"\t\t\t**\n";
cout<<"\t\t\t************************\n";
cout<<"\t\t\t请输入你的选项(1-8):
";
}
voidnewFile(List&L){
inti;
intnum;
stringname;
stringsex;
stringbirth;
stringedu;
stringjob;
stringphone;
stringadd;
FILE*fp;
if((fp=fopen("f1.txt","w"))==NULL)
{
cout<<"fileopenerror!
\n";
exit(0);
}
for(i=0;i{
num=L.elem[i].num;
name=L.elem[i].name;
sex=L.elem[i].sex;
birth=L.elem[i].birth;
edu=L.elem[i].edu;
job=L.elem[i].job;
phone=L.elem[i].phone;
add=L.elem[i].add;
fprintf(fp,"%d",num);
fputs("",fp);
fputs((constchar*)(name.c_str()),fp);
fputs("",fp);
fputs((constchar*)(sex.c_str()),fp);
fputs("",fp);
fputs((constchar*)(birth.c_str()),fp);
fputs("",fp);
fputs((constchar*)(edu.c_str()),fp);
fputs("",fp);
fputs((constchar*)(job.c_str()),fp);
fputs("",fp);
fputs((constchar*)(phone.c_str()),fp);
fputs("",fp);
fputs((constchar*)(add.c_str()),fp);
fputs("",fp);
fputs("\n",fp);
}
fclose(fp);
}
voidreadFile(List&L)
{
FILE*fp;
if((fp=fopen("f1.txt","r"))==NULL)
{
cout<<"fileopenerror!
\n";
exit(0);
}
while(!
feof(fp))
{
chara;
a=fgetc(fp);
putchar(a);
}
}
voidmain()
{
ListL;
inti,n,m;
charname;
ElemTypee;
InitList(L);
while
(1)
{
menu();
cin>>i;
switch(i)
{
case1:
cout<<"请输入员工总人数:
";
cin>>n;
ListInput(L,n);
ListOutput(L);
break;
case2:
cout<<"请输入要查找的员工编号:
";
cin>>n;
m=LocateElem(L,n);
if(m==0)
cout<<"数据不存在";
else
{cout<<"该员工的信息为:
";
cout<break;
case3:
ChangeM(L);
ListOutput(L);
break;
case4:
cout<<"请输入要插入的数据,"<cout<<"按以下顺序输入信息:
编号、姓名、性别、出生年月、职务、学历、电话号码、地址。
"<cin>>e.num;
cin>>e.name;
cin>>e.sex;
cin>>e.birth;
cin>>e.job;
cin>>e.edu;
cin>>e.phone;
cin>>e.add;
ListInsert(L,e);
ListOutput(L);
break;
case5:
cout<<"请输入要删除学号的员工编号:
";
cin>>n;
ListDelete(L,n);
ListOutput(L);
break;
case6:
BubbleSort(L);
cout<<"按编号排序后。
。
"<ListOutput(L);break;
case7:
newFile(L);
cout<<"已存入TXT文件。
"<case8:
readFile(L);
intar;
cin>>ar;
break;
case9:
exit(0);break;
default:
cout<<"输入错误,请输入(1-8):
\n";break;
}
cout<<"Entertocontinue..."<getchar();
getchar();
}
}