- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC++课程设计
—5.1工资管理
院系:自动化学院
班级姓名:刘凯强
学号:0910190231
实验内容:工资管理
1.1 程序功能介绍:
这是一个员工工资管理程序。工资管理的数据文件中存储有员工姓名和工资,该程序可以录入、显示、修改、删除、查找员工姓名和工资。
1.2 程序设计要求:
用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个链表类,封装主要的操作函数。
显示、修改、删除数据项时大小写通用。
工资数据按工资值的大小进行排序存放。
修改、删除数据前增加提示信息,用户确认后才能进一步操作,否则操作取消
增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管理,在程序结束时能将工资数据保存在原文件中。
源程序结构流程框图与说明
基本数据结构
类:
class CList //定义链表类
{
protected:
CNode *pHead; //链表头结点指针
public:
CList(){pHead=0;} //赋值
~CList(){DeleteList();} //析构函数
void AddNode(CNode *pnode); //在首部添加结点
CNode *DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针
CNode *LookUp(CSalary ); //查找一个指定的数据,返回该数据所在结点在链表中的指针,若没找到返回0
void ShowList(); //打印整个链表
void DeleteList(); //删除整个链表
CNode *GetListHead(){return pHead;} //返回链表首结点
CNode *GetListNextNode(CNode *); //返回链表指定结点的下一个结点
void Insert(CNode *); //按工资的顺序插入一个结点
};
class CNode //定义结点类
{
private:
CSalary * pData; //用于指向数据类的指针,这是每个数据的不同部分
CNode *pNext; //指向链表的指针
public:
CNode(){pData=0;pNext=0;} //结点类构造函数
CNode(CNode node) //用于拷贝的构造函数
{
pData=node.pData; //私有成员的互相赋值
pNext=node.pNext; //私有成员的互相赋值
}
void InputData(CSalary *pSal){pData=pSal;} //输入数据
void ShowNode(){pData-Show();}
CSalary *GetData(){return pData;} //返回工资地址
friend class CList; //定义链表类为友元类
};
class CSalary //定义数据类
{
private:
char szName[20]; //存放姓名
double dlSalary; //工资
public:
CSalary(){ strcpy(szName,\0);dlSalary=0.0;} //数据初始化
CSalary(char *name,double salary) //构造函数重载
{
strcpy(szName,name);dlSalary=salary; //赋值
}
void SetSalary(char *,double); //置工资与姓名
double GetSal(){return dlSalary;} //返回工资
int Compare(CSalary ); //比较姓名,供查找用,比较结果为1,0
void Show(); //显示工资
};
成员函数:
void AddNode(CNode *pnode); //在首部添加结点
Node *DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针
CNode *LookUp(CSalary ); //查找一个指定的数据,返回该数据所在结点在链表中的指针,若没找到返回0
void ShowList(); //打印整个链表
void DeleteList(); //删除整个链表
CNode *GetListHead(){return pHead;} //返回链表首结点
CNode *GetListNextNode(CNode *); //返回链表指定结点的下一个结点
void Insert(CNode *); //按工资的顺序插入
文档评论(0)