c++课程设计工资管理.docx

上传人:b****8 文档编号:9851628 上传时间:2023-02-07 格式:DOCX 页数:13 大小:47.04KB
下载 相关 举报
c++课程设计工资管理.docx_第1页
第1页 / 共13页
c++课程设计工资管理.docx_第2页
第2页 / 共13页
c++课程设计工资管理.docx_第3页
第3页 / 共13页
c++课程设计工资管理.docx_第4页
第4页 / 共13页
c++课程设计工资管理.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

c++课程设计工资管理.docx

《c++课程设计工资管理.docx》由会员分享,可在线阅读,更多相关《c++课程设计工资管理.docx(13页珍藏版)》请在冰豆网上搜索。

c++课程设计工资管理.docx

c++课程设计工资管理

C++课程设计

————工资管理系统

设计人:

汤秋宇

2010.3.20

1.程序功能简简介

这是一个员工工资管理程序,工资管理的数据文件中储存这员工的姓名和工资,该程序可以录入,显示,修改,删除,查找员工的姓名和工资。

显示,修改,删除,查找数据项时大小写通用,工资数据按工资值的大小存放,修改,删除数据前有提示信息,用户确认后才能进行下一步的操作,否则取消操作,程序退出时能将修改后的数据保存在原文件中。

2.程序设计思想

数据从外部文件写入,以链表的形式存放到内存中,链表的节点储存到节点类中,数据储存到数据类中,头指针储存在链表类中,通过链表类中的函数实现数据的显示,修改,删除,查找,添加,操作完成后程序把改动后的数据在储存到原来的文件中,程序结束。

3.程序主要类说明

资料类:

classdate

{private:

charname[20];//储存姓名

doublemoney;//储存工资

public:

friendclasscnode;

date(){strcpy(name,20),money=0.0;}//构造函数

voidgb(charname2[20],double//修改数据n){strcpy(name,name2);money=n;}

voidtj();voiddy(charname1[20],intn);//添加数据

char*ming(){char*p;p=name;returnp;};//提取姓名

voidcompare(intn){money=n;}//

voidshow();//输出数据

doubleqian(){returnmoney;}//提取工资;

voidjin();//数据入库;

};

结点类:

classcnode

{private:

date*pdate;//储存资料类指针

cnode*pnext;//储存下一个结点指针

public:

cnode*getnextnode(cnode*p){returnp->pnext;};//返回下一结点指针

cnode(){pdate=0;pnext=0;}//构造函数

voidinput(date*psel){pdate=psel;}//为资料指针赋值

voidshownode(){pdate->show();}//调用展示函数

date*getdate(cnode*p){returnp->pdate;}//返回资料指针

friendclassclist;

};

链表类:

classclist

{private:

cnode*phead;\\储存头指针

public:

clist(){phead=0;}\\构造函数

voidaddnode(clist&m);\\添加数据函数

voidinput(cnode*p){phead=p->getnextnode(p);};\\赋值给头指针

voidshowlist();\\展示资料

voidgetlisthead();\\向文件输出

cnode*fht(){returnphead;}\\返回头指针

voidinsert(cnode*);\\创造链表

voidchazhao(clist*q);\\查找资料

voidshanchu(clist*q);\\删除资料

voidxiugai(clist*q);\\修改资料

voidruku(clist*q);\\向文件输出}

主程序运行界面如下

4.程序源代码

#include

#include

#include

#include

usingnamespacestd;

voidZ(int&chioe2)

{while(chioe2<0||chioe2>2)

{cout<<"您输入的代码有误,请重新输入\n";

cin>>chioe2;

continue;}};

classdate

{private:

charname[20];

doublemoney;

public:

friendclasscnode;

date(){money=0.0;}

voidgb(charname2[20],doublen){strcpy(name,name2);money=n;}

voidtj();voiddy(charname1[20],intn);

char*ming(){char*p;p=name;returnp;};

voidcompare(intn){money=n;}

voidshow();

doubleqian(){returnmoney;}

voidjin();};

voiddate:

:

jin()

{ofstreamk;k.open("kl.txt",ios:

:

app);

char*p1;

p1=strlwr(name);k<

k<

voiddate:

:

tj()

{ofstreamk;k.open("kl.txt",ios:

:

app);

cin.ignore();char*p;

cout<<"entername\n";

cin.getline(name,20);p=strlwr(name);k<

cout<<"entermoney\n";

cin>>money;k<

};

voiddate:

:

show()

{cout<<"name:

"<

cout<<"money:

"<

cout<<"\n";};

voiddate:

:

dy(charname1[20],intn)

{strcpy(name,name1);money=n;

}

classcnode

{private:

date*pdate;

cnode*pnext;

public:

cnode*getnextnode(cnode*p){returnp->pnext;};

cnode(){pdate=0;pnext=0;}

voidinput(date*psel){pdate=psel;}

voidshownode(){pdate->show();}

date*getdate(cnode*p){returnp->pdate;}

friendclassclist;};

classclist

{private:

cnode*phead;

public:

clist(){phead=0;}

voidaddnode(clist&m);

voidinput(cnode*p){phead=p->getnextnode(p);};

voidshowlist();

voidgetlisthead();

cnode*fht(){returnphead;}

voidinsert(cnode*);

voidchazhao(clist*q);

voidshanchu(clist*q);

voidxiugai(clist*q);

voidruku(clist*q);};

voidclist:

:

addnode(clist&m)

{cnode*pnode;

date*psal;intn;

pnode=newcnode;

psal=newdate;

psal->tj();

pnode->input(psal);

m.insert(pnode);

cout<<"continue?

\n1.yes2.no\n";

cin>>n;

while(n==1)

{pnode=newcnode;

psal=newdate;

psal->tj();

pnode->input(psal);insert(pnode);

cout<<"continue?

\n1.yes2.no\n";

cin>>n;}system("cls");};

voidclist:

:

insert(cnode*p1)

{cnode*p2;

if(phead==NULL)

{phead=p1;p1->pnext=NULL;}

else{p2=phead;

while(p2->pnext)

p2=p2->pnext;

p2->pnext=p1;

p1->pnext=NULL;}};

voidclist:

:

showlist()

{cnode*p3;p3=phead;

while(p3)

{p3->shownode();

p3=p3->pnext;}

cin.ignore();

cin.ignore();

system("cls");}

;

voidclist:

:

getlisthead()

{ifstreamj;

j.open("kl.txt",ios:

:

in);

if(!

j){cout<<"错误";

cin.ignore();exit(0);}

cnode*p1;date*p2;

chark[20];inth;

while(j>>k>>h)

{p1=newcnode;

p2=newdate;

p2->dy(k,h);

p1->input(p2);

insert(p1);

}

j.close();};

voidclist:

:

chazhao(clist*q)

{cin.ignore();

cnode*p1;date*p2;

p1=q->fht();

chars[20],*p;

cout<<"请输入姓名";

cin.getline(s,20);

p=strlwr(s);

p2=p1->getdate(p1);

while((strcmp(p2->ming(),p)!

=0)&&(p1->getnextnode(p1))!

=NULL)

{p1=p1->getnextnode(p1);p2=p1->getdate(p1);}

if(p1->getnextnode(p1)==NULL)

if(strcmp(p2->ming(),p)==0)

p2->show();

elsecout<<"无此人工资记录\n";

elsep2->show();cin.ignore();system("cls");};

voidclist:

:

shanchu(clist*q)

{cin.ignore();

cnode*p1,*p3;

date*p2;p1=q->fht();

chars[20],*p;

intn;

cout<<"请输入要删除记录的姓名";

cin.getline(s,20);p=strlwr(s);

p2=p1->getdate(p1);

while((strcmp(p2->ming(),p)!

=0)&&(p1->getnextnode(p1))!

=NULL)

{p1=p1->getnextnode(p1);p2=p1->getdate(p1);}

p3=p1;

if(strcmp(p2->ming(),p)==0)

{p1->shownode();

cout<<"\n确认删除?

\n1是2否\n";

cin>>n;Z(n);

if(n==1)

{if(p1==q->fht())input(p1);

elsep3=p1->getnextnode(p1);

delete[]p2;delete[]p1;cout<<"删除完毕";}

}

elsecout<<"无此人工资记录\n";cin.ignore();cin.ignore();system("cls");};

voidclist:

:

xiugai(clist*q)

{cin.ignore();

cnode*p1;date*p2;

p1=q->fht();

chars[20],*p;

intn,m;

cout<<"请输入要修改记录的姓名";

cin.getline(s,20);

p=strlwr(s);

p2=p1->getdate(p1);

while((strcmp(p2->ming(),p)!

=0)&&(p1->getnextnode(p1))!

=NULL)

{p1=p1->getnextnode(p1);p2=p1->getdate(p1);}

if(strcmp(p2->ming(),p)==0)

{p2->show();

cout<<"\n确认修改?

\n1是2否\n";

cin>>m;Z(m);

if(m==1)

{

cout<<"请输入修改的工资";

cin>>n;p2->compare(n);

cout<<"修改后的工资记录\n";

p2->show();}}

elsecout<<"无此人工资记录\n";

cin.ignore();cin.ignore();system("cls");};

voidclist:

:

ruku(clist*q)

{cnode*p;date*p1;p=q->fht();

ofstreamb;b.open("kl.txt");b.close();

while(p)

{p1=p->getdate(p);p1->jin();p=p->getnextnode(p);}}

voidmn(clist*q)

{cnode*p1,*p2;date*p3,*p4;

p1=q->fht();

intmax=0,i,j;

doublen,m;

char*e,*k,g[20];

while(p1)

{max++;

p1=p1->getnextnode(p1);}p1=q->fht();

for(j=0;j<=max-2;j++)

{for(i=0;i<=max-2-j;i++)

{p3=p1->getdate(p1);

p2=p1->getnextnode(p1);

p4=p2->getdate(p2);

m=p3->qian();

n=p4->qian();

e=p4->ming();

k=p3->ming();strcpy(g,k);

if(m

{p3->gb(e,n);

p4->gb(g,m);}p1=p2;

}p1=q->fht();}};

voidmain()

{clistm;clist*c;c=&m;

intchioe1;m.getlisthead();mn(c);

while

(1)

{cout<<"***************************************************************************\n";

cout<<"欢迎使用工资管理系统\n\n";

cout<<"1.添加工资记录\n\n";

cout<<"2.显示工资记录\n\n";

cout<<"3.根据姓名查询工资数据\n\n";

cout<<"4.根据姓名删除工资数据\n\n";

cout<<"5.根据姓名修改工资数据\n\n";

cout<<"0.退出系统\n\n";

cout<<"********************************************************************************";

cout<<"请输入您要执行的操作";

cin>>chioe1;

while(chioe1<0||chioe1>5)

{cout<<"您输入的代码有误,请重新输入\n";

cin>>chioe1;

continue;}

switch(chioe1)

{case1:

system("cls");cout<<"***************************************************************************\n";

m.addnode(m);break;

case2:

system("cls");cout<<"***************************************************************************\n";

m.showlist();break;

case3:

system("cls");cout<<"***************************************************************************\n";

m.chazhao(c);break;

case4:

system("cls");cout<<"***************************************************************************\n";

m.shanchu(c);break;

case5:

system("cls");cout<<"***************************************************************************\n";

m.xiugai(c);break;

case0:

m.ruku(c);exit(0)

;}}}

 

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

当前位置:首页 > 解决方案 > 商业计划

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

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