VC++课程设计--工资管理.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

VC++课程设计

—5.1工资管理

院系:自动化学院

班级姓名:刘凯强

学号:0910190231

一.实验内容:工资管理

程序功能介绍:

这是一个员工工资管理程序。工资管理的数据文件中存储有员工姓名和工

资,该程序可以录入、显示、修改、删除、查找员工姓名和工资。

程序设计要求:

用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个

链表类,封装主要的操作函数。

显示、修改、删除数据项时大小写通用。

工资数据按工资值的大小进行排序存放。

修改、删除数据前增加提示信息,用户确认后才能进一步操作,否则操作取消

增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管理,在程序结束时能将工资数据保存在原文件中。

二.源程序结构流程框图与说明

NNNNNYY结束按姓名修改工资按姓名删除工资按姓名查询工资

N

N

N

N

N

Y

Y

结束

按姓名修改工资

按姓名删除工资

按姓名查询工资

查看工资记录

新增工资记录

Y

Y

密码是否正确输入密码

密码是否正确

输入密码

开始

是是否为E

是否为E

是否为D

是否为F

是否为L

是否为N

Y

三.基本数据结构

类:

classCList //定义链表类

{

protected:

CNode*pHead; //链表头结点指针public:

CList(){pHead=0;} //赋值

~CList(){DeleteList();} //析构函数

voidAddNode(CNode*pnode); //在首部添加结点

CNode*DeleteNode(CNode*); //删除一个指定的结点,返回该结点的指

CNode*LookUp(CSalary);//查找一个指定的数据,返回该数据所在结

点在链表中的指针,若没找到返回0

voidShowList(); //打印整个链表voidDeleteList(); //删除整个链表

CNode*GetListHead(){returnpHead;} //返回链表首结点

CNode*GetListNextNode(CNode*); //返回链表指定结点的下一个结点voidInsert(CNode*); //按工资的顺序插入一个结点

};

classCNode //定义结点类

{

private:

CSalary*pData; //用于指向数据类的指针,这是每个数据的不同部分CNode*pNext; //指向链表的指针

public:

CNode(){pData=0;pNext=0;} //结点类构造函数CNode(CNodenode) //用于拷贝的构造函数

{

pData=node.pData; //私有成员的互相赋值

pNext=node.pNext; //私有成员的互相赋值

}

voidInputData(CSalary*pSal){pData=pSal;} //输入数据

voidShowNode(){pData-Show();}

CSalary*GetData(){returnpData;} //返回工资地址friendclassCList; //定义链表类为友元类

};

classCSalary //定义数据类

{

private:

charszName[20]; //存放姓名doubledlSalary; //工资

public:

CSalary(){strcpy(szName,\0);dlSalary=0.0;} //数据初始化CSalary(char*name,doublesalary) //构造函数重载

{

strcpy(szName,name);dlSalary=salary; //赋值

}

voidSetSalary(char*,double); //置工资与姓名

doubleGetSal(){returndlSalary;} //返回工资

intCompare(CSalary); //比较姓名,供查找用,比较结果为1,0voidShow(); //显示工资

};

成员函数:

voidAddNode(CNode*pnode); //在首部添加结点

Node*DeleteNode(CNode*); //删除一个指定的结点,返回该结点的指针CNode*LookUp(CSalary);//查找一个指定的数据,返回该数据所在结点在链表中的指针,若没找到返回0

voidShowList(); //打印整个链表voidDeleteList(); //删除整个链表

CNode*GetListHead(){returnpHead;} //返回链表首结点

CNo

文档评论(0)

159****1944 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档