C++实现简单的工资管理系统

这篇具有很好参考价值的文章主要介绍了C++实现简单的工资管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译环境:VS2019    语言:C++

项目描述:实现一个简单的工资管理系统,可以进行添加员工、查询员工、显示员工信息、删除员工信息、修改员工信息以及退出系统。添加员工时可以输入员工工号、姓名、性别、年龄、工资和工时。查询、删除、修改都是按照工号进行操作,如果不存在该员工就会作出提示,点击显示时可以显示当前系统中的所有员工,选择0操作就会退出当前系统。(操作界面如下图所示)

                                       c++职工工资管理系统,c++,c语言,开发语言 

程序主代码如下:

#include<iostream>
#include<fstream> 
using namespace std;
#include<string>
#define FILEMANE "moneysystem.txt"
#define max 100

class Worker   //员工类   
{
public:
	Worker()
	{
		workerid = 0;
		workername = " ";
		money = 0;
		sex = " ";
		age = 0;
		worktime = 0;

	}

	void getW();
	void showW();

	int workerid;
	string workername;
	float money;
	float worktime;
	string sex;
	int age;
};
void Worker::getW()
{
	cout << "请输入工号:" << endl;
	cin >> workerid;

	cout << "请输入名字:" << endl;
	cin >> workername;

	cout << "请输入性别:" << endl;
	cin >> sex;

	cout << "请输入年龄:" << endl;
	cin >> age;

	cout << "请输入工资:" << endl;
	cin >> money;

	cout << "请输入工时" << endl;
	cin >> worktime;

}
void Worker::showW()
{
	cout << "工号:" << workerid
		 << "\t姓名:" << workername 
	     << "\t性别:" << sex 
	     << "\t年龄:" << age 
	     << "\t工时:" << worktime << "小时" 
	     << "\t工资:" << money << "元" << endl;
	 
}
void Menu()  //菜单界面 
{
	cout << "******亲,请选择您的操作:******" << endl;
	cout << "*******键盘:1 代表添加*********" << endl;
	cout << "*******键盘:2 代表查询*********" << endl;
	cout << "*******键盘:3 代表显示*********" << endl;
	cout << "*******键盘:4 代表删除*********" << endl;
	cout << "*******键盘:5 代表修改*********" << endl;
	cout << "*******键盘:0 代表退出*********" << endl;

}

class BOX
{
public:
	BOX()
	{
		ifstream ifs;
		//文件不存在时
		ifs.open(FILEMANE, ios::in);//读文件
			if (!ifs.is_open())
			{
				cout << "文件不存在!" << endl;
				Size= 0;
				Wfile = true;
				ifs.close();
				return ;
			}
			//文件存在,但是数据为空
			char ch;
			ifs >> ch;
			if (ifs.eof())
			{
				cout << "文件为空!" << endl;
				Size = 0;
				Wfile = true;
				ifs.close();
				return;
			}
	}
	Worker worker[max];
	int Size;
	void save();//写文件

	//统计文件中的人数
	int getnum();

	//判断文件是否为空
	bool Wfile;
	
};
void  BOX::save()//保存文件用的函数
{

	ofstream ofs;
	ofs.open(FILEMANE, ios::out); //写文件

	for (int i = 0; i < Size; i++)
	{
		ofs << worker[i].workerid << " "
			<< worker[i].workername << " "
			<< worker[i].sex << " "
			<< worker[i].age << " "
			<< worker[i].worktime << " "
			<< worker[i].money << endl;
	}

	ofs.close();
}//写文件
int BOX::getnum()

{
	ifstream ifs;
	ifs.open(FILEMANE, ios::in);//打开文件

	int id;
	string wname;
	float wmoney;
	float wtime;
	string wsex;
	int wage;

	int num = 0;
	while (ifs >> id && ifs >> wname && ifs >> wmoney && ifs >> wtime && ifs >> wsex && ifs >> wage)
	{
		num++;
	}

	return num;

}

void GetWorker(BOX* box)            //添加操作
{
	if (box->Size == max)
	{
		cout << "工资系统已满!" << endl;
	}
	else
	box->worker[box->Size].getW();
	box->Size++;

	//添加人后文件就不为空了,所以为false
	box->Wfile = false;
	cout << "添加成功!" << endl;

	box->save();//保存数据到文件中

	system("pasue");
	system("cls");//清屏
}
int isExist(BOX* box, int id)
{
	for (int i = 0; i < box->Size; i++)
	{
		if (box->worker[i].workerid == id)
			return i;
	}
	return -1;
}
void FindWorker(BOX* box)      //查找
{
	cout << "请输入您查找的工号:" << endl;
	int id;
	cin >> id;
	int ret = isExist(box, id);
	if (ret != -1) 
	{
		box->worker[ret].showW();
	}
	else {
		cout << "还没有这个人哟!" << endl;
	}

	system("pause");
	system("cls");
}
void ShowWorker(BOX* box)     //显示
{
	if (box->Size == 0)
	{
		cout << "当前系统还没有这个人哟!" << endl;
	}
	else
	{
		for (int i = 0; i < box->Size; i++)
		{
			box->worker[i].showW();
		}
	}
	system("pause");
	system("cls");
}
void DelectWorker(BOX* box) //删除 
{
	cout << "请输入你要删除的人的工号:" << endl;
	int id;
	cin >> id;

	int ret = isExist(box, id);
	if (ret != -1)
	{
		for (int i = ret; i < box->Size; i++)
		{
			//数据前移
			box->worker[i] = box->worker[i + 1];
		}
		box->Size--;//更新系统中书的本数
		cout << "删除成功啦!" << endl;
	}
	else
	{
		cout << "还没有这个人哟" << endl;
	}
}
void ModifiWorker(BOX* box)   //修改
{
	cout << "请输入您要修改的人的工号" << endl;
	int id;
	cin >> id;
	int ret = isExist(box, id);
	if (ret != -1)
	{
		box->worker[ret].getW();
	}

	cout << "修改成功!" << endl;
}


int main()
{
	BOX box;
	int select = 0;
	while (true)
	{
		Menu();//调用菜单界面 放在前面运行时候就可以直接看到菜单界面
		cin >> select;
		switch (select)
		{
		case 1://添加
			GetWorker(&box); break;
		case 2://查询 
			FindWorker(&box); break;
		case 3://显示 
			ShowWorker(&box); break;
		case 4://删除 
			DelectWorker(&box); break;
		case 5://修改
			ModifiWorker(&box); break;
		case 0://退出 
			cout << "欢迎您下次使用哟!" << endl;
			system("pause");
			break;
		default:
			break;
		}
	}

	return 0;
}

运行结果如下所示:

                                 c++职工工资管理系统,c++,c语言,开发语言

c++职工工资管理系统,c++,c语言,开发语言

 文章来源地址https://www.toymoban.com/news/detail-558709.html

到了这里,关于C++实现简单的工资管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 职工管理系统(C++)

     职工管理系统有以下8个功能: - 增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号 - 显示职工信息:显示公司内部所有职工的信息 - 删除离职职工:按照编号删除指定的职工 - 修改职工信息:按照编号修改职工个人信息

    2024年02月01日
    浏览(32)
  • 基于C++的职工管理系统

    1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经

    2024年02月03日
    浏览(32)
  • C++项目实战之职工管理系统

    职工管理系统可以用来管理公司内所有员工的信息,利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老板交给的

    2024年02月14日
    浏览(28)
  • 37基于java的职工管理系统设计与实现

    本章节给大家带来一个基于java的职工管理系统设计与实现,可适用于员工管理系统,企业员工管理系统,公司员工管理系统,企业人事管理系统,基于java职工管理系统,前后端分离,员工考勤管理系统,职工奖惩管理系统,职员合同管理,HR管理系统,人事HR管理系统等;

    2024年02月05日
    浏览(88)
  • C++图书馆管理系统(简单版)

    实用的图书馆管理系统应该至少包括一下功能: 1、上传:新进图书以及基本信息的输入 2、删除:旧图书以及基本信息的删除 3、显示:显示图书馆已有的所有图书 4、查找:查询要借阅的图书信息 5、借阅:实现用户办理借阅手续 6、归还:实现用户办理归还手续 系统以菜单

    2024年02月09日
    浏览(38)
  • (c++)简易学生成绩管理系统(超简单)

    摘要: 一个简单的学生成绩管理系统自然要包括增删改查。学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。此代码是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入学生数据;输出学生数据;学生数据查询;添加学生数据;修改

    2024年02月11日
    浏览(25)
  • mysql实现(工资管理系统)课程设计

    目录 1 需求分析 1 2 概念结构设计 2 3 逻辑结构设计 3 4 数据库物理设计与实施 5 5 访问系统库 10 6 总结 11 1 需求分析 本系统的主要目的是,明确查询公司职工某年某月的工资情况,通过职工工资管理系统,能明确的察看到从入职以来,每位职工的每月工资情况。同时也能查询

    2024年02月08日
    浏览(25)
  • Java GUI 实现工资管理系统

    主要的要求如下: 建立职工工资管理系统,要求实现职工基本信息管理(编号、姓名、性别、初始年月、工资等级等)、工资等级情况管理(工资等级、基本工资、岗位工资、交通补贴等)、每月职工变动工资管理(职工编号、月份、奖励工资、扣款等),并根据职工的工资

    2024年02月04日
    浏览(28)
  • vb+access工资管理系统的设计与实现

    本系统为工资发放系统,是为了能够对工资发放进行有效的管理而做,采用的开发工具是 Microsoft Visual Basic 6.0。 使用的技术有:数据库的访问;菜单控制。 本系统能够提供对工资发放各明细项目的数据编辑,自动计算出工资发放各项合计数据及代扣项目数据;可自主设定条

    2024年02月10日
    浏览(33)
  • (c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告

    关于这个课程设计 ,差点没把我头发愁没。 好了其实本质还是东拼西凑,编程能力没怎么长进,花里胡哨的东西却学了不少 (不是) 万恶的学院,虽然要求三人一组,但是却分一二三类,三个人代码还不能互相抄袭。 最后每个人都要提交代码,完成报告,答辩。 我严重怀

    2024年02月11日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包