- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 新概念1 Lesson 135 课件完整版.ppt
- 老年人胃食管反流中国专家共识(2023版)解读 PPT课件.pptx VIP
- 扬州大学大学物理期末考试试卷(含答案) .pdf VIP
- 形象设计师(高级)理论考试题库资料(浓缩500题).pdf
- 公共营养师培训教程配套辅导练习.doc
- 运动安全与健康智慧树知到期末考试答案章节答案2024年浙江大学.docx
- 黄色简约风日本人文艺术欣赏介绍日式常规PPT模板.pptx
- 2024年全国各地中考语文作文真题汇编(六十题有解析有范文).doc
- 生涯人物访谈报告教师 .pdf
- Samsung三星27英寸全高清曲面液晶显示器C27F591FDC中文说明书.pdf VIP
文档评论(0)