基于C++实现的控制台高校工资管理系统

第一次进行写博客 发出来希望各位大佬指点一下下 ,作为小白的我 这是使用c++进行写的一个高校工资管理系统做的一个课设

通过高校工资管理系统,分别建立三个类 1.实体类(用来存储高校人员员工的信息)2.控制类(负责处理管理高校人员的业务逻辑)3.边界类(向用户提供添加,删除,修改,查询,统计等功能)活动者只与边界对象互动,边界类调用控制类的方法,控制类使用实体类的人员信息完成功能的实现。
建立SchoolEmployee类在里面定义职工的信息如 名字 编号 职业 基本工作量 实际工作量等。建立AddressSchool类定义vector向量容器存储,提高程序执行效率。里面定义保存,删除,查询,保存等具体功能。建立Appschool类 定义AddressSchool数据成员,定义跟用户的接口 定义删除,添加,查询,统计,保存的函数调用AddressSchool具体方法实现功能。

1设计要求

1.1题目介绍
高校工资管理系统,根据输入员工基本信息。计算出员工工资并能进行删除,增添员工。更改,查询等功能。
1.2设计目的
本课程设计是软件工程专业重要的实践性环节之一,是在学生学习完《面向对象程序设计》课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C++课程的基本知识的理解和掌握;(2)掌握C++编程和程序调试的基本技能;(3)利用C++进行简单软件设计的基本思路和方法;(4)提高运用C++解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。
1.3问题描述
1、问题内容
高校职工工资信息有:教师编号、姓名、职工类别、月基本工作量、当月实际工作量、月基本工资、当月补助、当月课时费、实际总工资。职工类别有五类:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。 相关信息: 每个月将学校职工的上个月任职情况及上个月工作的相关情况输入计算机,则本月职工的月工资按程序处理后的结果发放,其中职工的实际总工资计算方法如下: 教师:基本工资+课时费; 实验员:基本工资+实验室补助; 行政人员:基本工资+行政补贴; 教师兼职实验员:基本工资+课时费+实验室补助; 行政人员兼职教师:基本工资+行政补贴+课时费;
其中:
(1)课时费:教师每一个月的基本工作量为20,实验员每一个月基本工作量为15,行政人员没有基本工作量,每节课时费为20元;课时费=(每月实际工作量-基本工作量)*20;
(2)每月基本工资:教师800元,实验员650元,行政人员750元。
(3)每月补助:行政补贴:250元。实验室补助:150元。

2、要求

(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
(2)查询功能:能根据编号、姓名、类别等进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(4)★(选作)统计功能:能根据多种参数进行统计(如基本工资、补助、课时费、总工资等);
(5)保存功能:能对输入的数据进行相应的存储。
2设计原理和技术
2.1基本原理和技术描述
1、类的设计,包括实体类、控制类和边界类的设计;
2、STD模板库的使用;
3、文件操作类的使用。
2.2开发工具和开发环境说明
利用vs2010开发工具。

3系统分析与设计

3.1实体类

#pragma once
class SchoolEmployee
{
private:
	char employee[20];//职工类别
	char name[20];//名字
	int number;//编号
	int workload,actualworkload;//workload月基本工作量,actual当月实际工作量
	int wages,actualwages;//wages月基本工资,actualwages实际总工资
	int subsidy,classfee;//subsidy当月补助,classfee当月课时费
public:
	SchoolEmployee(void);
	~SchoolEmployee(void);
	SchoolEmployee(char employee[20],char name[20],int number,int workload,int actualworkload,int wages,int subsidy,int classfee);
	void Setname(char name[20]);//修改姓名
	char*Getname();//得到姓名
	void Setemployee(char employee[20]);//修改职工类别
	char*Getemployee();//得到职工类别
	void Setnumber(int number);//修改编号
	int Getnumber();//得到编号
	void Setactualworkload(int actual);//修改实际工作量
	int Getactualworkload();//得到实际工作量
	int Getactualwages();//得到实际工资]
	int Getworkload();//得到基本工作量
	int Getsubsidy();//得到当月补助
	int Getclassfee();//得到当月课时费
	int Getwages();//得到基本工资
	void Setworkload(int workload);//修改当月基本工作量
	void Setwages(int wages);//修改基本工资
	void Setsubsidy(int subsidy);//修改当月补助
	void Setclassfee(int classfee);//修改当月课时费
};

3.2控制类

#pragma once
#include "SchoolEmployee.h"
class AddressSchool
{
private:
	vector<SchoolEmployee> schoolemployees;
public:
	AddressSchool(void);
	~AddressSchool(void);
	void load();//将高校人员工资信息等加载schoolemployees中
	void save();//将信息保存到文件中
	void add(SchoolEmployee p);//添加人员信息
	SchoolEmployee*findbynumber(int number);//根据编号查询
	bool delbynumber(int number);//根据编号删除
	vector<SchoolEmployee>&GetSchoolEmployee();//返回SchoolEmployee引用
};

3.3边界类

#pragma once
#include "AddressSchool.h"
class AppSchool
{
private:
	AddressSchool addressSchool;
public:
	AppSchool(void);
	~AppSchool(void);
	void add();//向用户提供添加功能
	void find();//向用户提供查找功能
	void del();//向用户提供删除功能
	void modify();//向用户提供修改功能
	void list();//向用户提供显示列表功能
	void save();//向用户提供保存功能
	void statistics();//向用户提供统计功能
};

4系统实现

4.1运行截图
1、新增人员
新增人员功能截图如图1所示。

新增人员 2,修改人员信息如下
修改人员信息功能截图如图所示。
修改人员信息3,查询人员信息
查询人员信息功能截图如图所示。
查询功能
4,列出人员信息
列出人员信息功能截图如图4所示。
列出人员信息
5,统计人员信息
统计人员信息功能截图如图5所示。
统计功能
4.2源代码
1.主函数
// 高校职工管理系统.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "AppSchool.h"
#include "SchoolEmployee.h"
#include "AddressSchool.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int c;//选择功能
	AppSchool appschool;
	do
	{
		system("cls");
		cout<<"\t======================================="<<endl;
		cout<<"1.新增人员"<<endl;
		cout<<"2.删除人员"<<endl;
		cout<<"3.修改人员信息"<<endl;
		cout<<"4.查询人员信息"<<endl;
		cout<<"5.列出人员信息"<<endl;
		cout<<"6.统计人员信息"<<endl;
		cout<<"7.退出并保存"<<endl;
		cout<<"\t======================================="<<endl;
		cout<<"请选择"<<endl;
		cin>>c;
		switch(c)
		{
		case 1:appschool.add();break;
		case 2:appschool.del();break;
		case 3:appschool.modify();break;
		case 4:appschool.find();break;
		case 5:appschool.list();break;
		case 6:appschool.statistics();break;
		case 7:appschool.save();break;
		default:break;
		}
		cout<<endl<<"\t";
		if(c!=7)system("pause");
	}while(c!=7);
	return 0;
}

2.SchoolEmployee类

#pragma once
class SchoolEmployee
{
private:
	char employee[20];//职工类别
	char name[20];//名字
	int number;//编号
	int workload,actualworkload;//workload月基本工作量,actual当月实际工作量
	int wages,actualwages;//wages月基本工资,actualwages实际总工资
	int subsidy,classfee;//subsidy当月补助,classfee当月课时费
public:
	SchoolEmployee(void);
	~SchoolEmployee(void);
	SchoolEmployee(char employee[20],char name[20],int number,int workload,int actualworkload,int wages,int subsidy,int classfee);
	void Setname(char name[20]);//修改姓名
	char*Getname();//得到姓名
	void Setemployee(char employee[20]);//修改职工类别
	char*Getemployee();//得到职工类别
	void Setnumber(int number);//修改编号
	int Getnumber();//得到编号
	void Setactualworkload(int actual);//修改实际工作量
	int Getactualworkload();//得到实际工作量
	int Getactualwages();//得到实际工资]
	int Getworkload();//得到基本工作量
	int Getsubsidy();//得到当月补助
	int Getclassfee();//得到当月课时费
	int Getwages();//得到基本工资
	void Setworkload(int workload);//修改当月基本工作量
	void Setwages(int wages);//修改基本工资
	void Setsubsidy(int subsidy);//修改当月补助
	void Setclassfee(int classfee);//修改当月课时费
};

SchoolEmployee.cpp

#include "StdAfx.h"
#include "SchoolEmployee.h"
SchoolEmployee::SchoolEmployee(void)
{
}
SchoolEmployee::~SchoolEmployee(void)
{
}
SchoolEmployee::SchoolEmployee(char employee[20],char name[20],int number,int workload,int actualworkload,int wages,int subsidy,int classfee)
{
	strcpy(this->employee,employee);
	strcpy(this->name,name);
	this->number=number;
	this->workload=workload;
	this->actualworkload=actualworkload;
	this->wages=wages;
	this->subsidy=subsidy;
	this->classfee=classfee;
}
void SchoolEmployee::Setname(char name[20])
{
	strcpy(this->name,name);
}
char*SchoolEmployee::Getname()
{
	return name;
}
void SchoolEmployee::Setemployee(char employee[20])
{
	strcpy(this->employee,employee);
	if(strcmp(employee,"教师")==0)
	{
		Setwages(800);
		Setsubsidy(0);
		Setclassfee(20);
	}
	if(strcmp(employee,"实验员")==0)
	{
		Setwages(650);
		Setsubsidy(150);
		Setclassfee(20);
	}
		if(strcmp(employee,"行政人员")==0)
	{
		Setwages(750);
		Setsubsidy(250);
		Setclassfee(20);
	}
	if(strcmp(employee,"教师兼职实验员")==0)
	{
		Setwages(800);
		Setsubsidy(150);
		Setclassfee(20);
	}
	if(strcmp(employee,"行政人员兼职教师")==0)
	{
		Setwages(750);
		Setsubsidy(250);
		Setclassfee(20);
	}
}
char*SchoolEmployee::Getemployee()
{
	return employee;
}
void SchoolEmployee::Setnumber(int number)
{
	this->number=number;
}
int SchoolEmployee::Getnumber()
{
	return number;
}
void SchoolEmployee::Setactualworkload(int actualworkload)
{
	this->actualworkload=actualworkload;
}
int SchoolEmployee::Getactualworkload()
{
	return actualworkload;
}
int SchoolEmployee::Getactualwages()
{
	if(strcmp(employee,"教师")==0)
	{
		actualwages=(wages+20*(actualworkload-workload));
		return actualwages;
	}
	if(strcmp(employee,"实验员")==0)
	{
		actualwages=(wages+subsidy);
		return actualwages;
	}
	if(strcmp(employee,"行政人员")==0)
	{
		actualwages=(wages+subsidy);
		return actualwages;
	}
	
	if(strcmp(employee,"教师兼职实验员")==0)
	{
		actualwages=(wages+20*(actualworkload-workload)+subsidy);
		return actualwages;
	}
	if(strcmp(employee,"行政人员兼职教师")==0)
	{
		actualwages=(wages+20*actualworkload+subsidy);
		return actualwages;
	}

}
int SchoolEmployee::Getworkload()
{
	return workload;
}
int SchoolEmployee::Getsubsidy()
{
	return subsidy;
}
int SchoolEmployee::Getclassfee()
{
	return classfee;
}
int SchoolEmployee::Getwages()
{
	return wages;
}
void SchoolEmployee::Setworkload(int workload)
{
	this->workload=workload;
}
void SchoolEmployee::Setwages(int wages)
{
	this->wages=wages;
}
void SchoolEmployee::Setsubsidy(int subsidy)
{
	this->subsidy=subsidy;
}
void SchoolEmployee::Setclassfee(int classfee)
{
	this->classfee=classfee;
}

3.AddressSchool类

#pragma once
#include "SchoolEmployee.h"
class AddressSchool
{
private:
	vector<SchoolEmployee> schoolemployees;
public:
	AddressSchool(void);
	~AddressSchool(void);
	void load();//将高校人员工资信息等加载schoolemployees中
	void save();//将信息保存到文件中
	void add(SchoolEmployee p);//添加人员信息
	SchoolEmployee*findbynumber(int number);//根据编号查询
	bool delbynumber(int number);//根据编号删除
	vector<SchoolEmployee>&GetSchoolEmployee();//返回SchoolEmployee引用
};

AddressSchool.cpp

#include "StdAfx.h"
#include "AddressSchool.h"
#include "SchoolEmployee.h"
AddressSchool::AddressSchool(void)
{
	load();
}
AddressSchool::~AddressSchool(void)
{
}
void AddressSchool::load()//将高校人员工资信息等加载schoolemployees中
{
	ifstream fin("C:\\student.txt",ios::in|ios::binary);
	if(!fin)return;
	SchoolEmployee p;
	fin.read((char*)&p,sizeof(p));
	while(!fin.eof())
	{
		schoolemployees.push_back(p);
		fin.read((char*)&p,sizeof(p));
	}
	fin.close();
}
void AddressSchool::save()//将信息保存到文件中
{
	ofstream fout("C:\\student.txt",ios::out|ios::binary);
	vector<SchoolEmployee>::iterator pos;
	for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
	{
		fout.write((char*)&(*pos),sizeof(SchoolEmployee));
	}
	fout.close();
}
void AddressSchool::add(SchoolEmployee p)//添加人员信息
{
	schoolemployees.push_back(p);
}
SchoolEmployee*AddressSchool::findbynumber(int number)//根据编号查询
{
	vector<SchoolEmployee>::iterator pos;
	for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
	{
		if(pos->Getnumber()==number)return&(*pos);
	}
	return NULL;
}
bool AddressSchool::delbynumber(int number)//根据编号删除
{
	vector<SchoolEmployee>::iterator pos;
	for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
	{
		if(pos->Getnumber()==number)
		{
			schoolemployees.erase(pos);
			return true;
		}
	}
	return false;
}
vector<SchoolEmployee>&AddressSchool::GetSchoolEmployee()//返回SchoolEmployee引用
{
	return schoolemployees;
}

4.Appschool类

#pragma once
#include "AddressSchool.h"
class AppSchool
{
private:
	AddressSchool addressSchool;
public:
	AppSchool(void);
	~AppSchool(void);
	void add();//向用户提供添加功能
	void find();//向用户提供查找功能
	void del();//向用户提供删除功能
	void modify();//向用户提供修改功能
	void list();//向用户提供显示列表功能
	void save();//向用户提供保存功能
	void statistics();//向用户提供统计功能
};

AppSchool.cpp

#include "StdAfx.h"
#include "AppSchool.h"
#include "SchoolEmployee.h"
#include "AddressSchool.h"
AppSchool::AppSchool(void)
{
}
AppSchool::~AppSchool(void)
{
}
void AppSchool::add()
{
	char employee[20];//职工类别
	char name[20];//名字
	int number;//编号
	int actualworkload;//actualworkload当月实际工作量
	cout<<"\t输入职工职业  ";cin>>employee;
	cout<<"\t输入名字   ";cin>>name;
	cout<<"\t输入编号  ";cin>>number;
	vector<SchoolEmployee> schoolemployees=addressSchool.GetSchoolEmployee();
	vector<SchoolEmployee>::iterator pos;
	for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(pos->Getnumber()==number)
			{
				cout<<"添加的编号重复"<<endl;
				return;
			}
		}
	if(strcmp(employee,"教师")==0)
	{
		cout<<"\t输入教师实际工作量   ";cin>>actualworkload;
		SchoolEmployee schoolEmployee(employee,name,number,20,actualworkload,800,0,20);
		addressSchool.add(schoolEmployee);
		cout<<"添加成功"<<endl;
	}
	if(strcmp(employee,"实验员")==0)
	{
		cout<<"\t输入实验员实际工作量   ";cin>>actualworkload;
		SchoolEmployee schoolEmployee(employee,name,number,15,actualworkload,650,150,20);
		addressSchool.add(schoolEmployee);
		cout<<"添加成功"<<endl;
	}
		if(strcmp(employee,"行政人员")==0)
	{
		cout<<"\t输入行政人员实际工作量   ";cin>>actualworkload;
		SchoolEmployee schoolEmployee(employee,name,number,0,actualworkload,750,250,20);
		addressSchool.add(schoolEmployee);
		cout<<"添加成功"<<endl;
	}
	if(strcmp(employee,"教师兼职实验员")==0)
	{
		cout<<"\t输入教师兼职实验员实际工作量   ";cin>>actualworkload;
		SchoolEmployee schoolEmployee(employee,name,number,20,actualworkload,800,150,20);
		addressSchool.add(schoolEmployee);
		cout<<"添加成功"<<endl;
	}
	if(strcmp(employee,"行政人员兼职教师")==0)
	{
		cout<<"\t输入行政人员兼职教师实际工作量   ";cin>>actualworkload;
		SchoolEmployee schoolEmployee(employee,name,number,0,actualworkload,750,250,20);
		addressSchool.add(schoolEmployee);
		cout<<"添加成功"<<endl;
	}
}
void AppSchool::find()
{
	char name[20],employee[20];//职工类别,姓名
	int number,aa;//编号
	cout<<"请选择你要查询的方式 1 姓名  2 编号  3 职工类别"<<endl;
	cin>>aa;
	if(aa==1)
	{
		bool flag=false;
		cout<<"\t输入你要查询的名字  ";cin>>name;
		vector<SchoolEmployee>::iterator pos;
		vector<SchoolEmployee> schoolemployees=addressSchool.GetSchoolEmployee();
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
		if(strcmp(pos->Getname(),name)==0)
			{
				cout<<"\n\t--------------查询结果-----------"<<endl;
				cout<<"姓名:        "<<pos->Getname()<<endl;
				cout<<"编号:        "<<pos->Getnumber()<<endl;
				cout<<"职工类别:    "<<pos->Getemployee()<<endl;
				cout<<"基本工作量:  "<<pos->Getworkload()<<endl;
				cout<<"实际工作量:  "<<pos->Getactualworkload()<<endl;
				cout<<"基本工资:    "<<pos->Getwages()<<endl;
				cout<<"当月补助:    "<<pos->Getsubsidy()<<endl;
				cout<<"当月课时费:  "<<pos->Getclassfee()<<endl;
				cout<<"实际工资:    "<<pos->Getactualwages()<<endl;
				cout<<"\t------------------------------------"<<endl;
				flag=true;
			}
		}
		if(flag)
		{
			cout<<"\t你要查询的人员不存在"<<endl;
		}
	}
	if(aa==2)
	{
		cout<<"\t输入你要查询的编号  ";cin>>number;
		SchoolEmployee *schoolEmployee=addressSchool.findbynumber(number);
		if(schoolEmployee==NULL)
		{
			cout<<"\t你要查询的人员不存在"<<endl;
		}
		else
		{
			cout<<"\n\t--------------查询结果-----------"<<endl;
			cout<<"姓名:        "<<schoolEmployee->Getname()<<endl;
			cout<<"编号:        "<<schoolEmployee->Getnumber()<<endl;
			cout<<"职工类别:    "<<schoolEmployee->Getemployee()<<endl;
			cout<<"基本工作量:  "<<schoolEmployee->Getworkload()<<endl;
			cout<<"实际工作量:  "<<schoolEmployee->Getactualworkload()<<endl;
			cout<<"基本工资:    "<<schoolEmployee->Getwages()<<endl;
			cout<<"当月补助:    "<<schoolEmployee->Getsubsidy()<<endl;
			cout<<"当月课时费:  "<<schoolEmployee->Getclassfee()<<endl;
			cout<<"实际工资:    "<<schoolEmployee->Getactualwages()<<endl;
			cout<<"\t------------------------------------"<<endl;
		}
	}
	if(aa==3)
	{
		bool flag=false;
		cout<<"\t输入你要查询的职工类别  ";cin>>employee;
		vector<SchoolEmployee>::iterator pos;
		vector<SchoolEmployee> schoolemployees=addressSchool.GetSchoolEmployee();
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(strcmp(pos->Getemployee(),employee)==0)
			{
				cout<<"\n\t--------------查询结果-----------"<<endl;
				cout<<"姓名:        "<<pos->Getname()<<endl;
				cout<<"编号:        "<<pos->Getnumber()<<endl;
				cout<<"职工类别:    "<<pos->Getemployee()<<endl;
				cout<<"基本工作量:  "<<pos->Getworkload()<<endl;
				cout<<"实际工作量:  "<<pos->Getactualworkload()<<endl;
				cout<<"基本工资:    "<<pos->Getwages()<<endl;
				cout<<"当月补助:    "<<pos->Getsubsidy()<<endl;
				cout<<"当月课时费:  "<<pos->Getclassfee()<<endl;
				cout<<"实际工资:    "<<pos->Getactualwages()<<endl;
				cout<<"\t------------------------------------"<<endl;
				flag=true;
			}
		}
		if(flag)
		{
			cout<<"\t你要查询的人员不存在"<<endl;
		}
	}
}
void AppSchool::del()
{
	char name[20];
	int number;
	cout<<"输入你要删除人员的编号: ";cin>>number;
	if(addressSchool.delbynumber(number))
	{
		cout<<"***********删除成功*******"<<endl;
	}
	else 
	{
		cout<<"***********删除失败*******"<<endl;
	}
}
void AppSchool::modify()
{
	char number;
	char c;
	do
	{
		cout<<"输入你要修改的人员编号: ";cin>>number;
		SchoolEmployee *schoolEmployee=addressSchool.findbynumber(number);
		if(schoolEmployee==NULL)
		{
			cout<<"\t你要查询的人员不存在"<<endl;
		}
		else
		{
			cout<<"\n\t-------要修改的人员信息如下---------"<<endl;
			cout<<"姓名:        "<<schoolEmployee->Getname()<<endl;
			cout<<"编号:        "<<schoolEmployee->Getnumber()<<endl;
			cout<<"职工类别:    "<<schoolEmployee->Getemployee()<<endl;
			cout<<"基本工作量:  "<<schoolEmployee->Getworkload()<<endl;
			cout<<"实际工作量:  "<<schoolEmployee->Getactualworkload()<<endl;
			cout<<"基本工资:    "<<schoolEmployee->Getwages()<<endl;
			cout<<"当月补助:    "<<schoolEmployee->Getsubsidy()<<endl;
			cout<<"当月课时费:  "<<schoolEmployee->Getclassfee()<<endl;
			cout<<"实际工资:    "<<schoolEmployee->Getactualwages()<<endl;
			cout<<"\t------------------------------------"<<endl;
		}
		do
		{
			cout<<"1 修改名字  2 修改编号  3  修改实际工作量  4 修改职工类别  5 修改基本工作量 6 修改基本工资 7 修改当月补助 8 修改当月课时费  9 退出修改"<<endl;
			cout<<"请选择    ";cin>>c;
			if(c!='9')
			{
				char info[20];
				int aa;
				cout<<"输入修改的新信息: ";
				if(c=='1'||c=='4')
				{
					 cin>>info;
				}
				else
				{
					 cin>>aa;
				}
				switch(c)
				{
				case'1':schoolEmployee->Setname(info);break;
				case'2':schoolEmployee->Setnumber(aa);break;
				case'3':schoolEmployee->Setactualworkload(aa);break;
				case'4':schoolEmployee->Setemployee(info);break;
				case'5':schoolEmployee->Setworkload(aa);break;
				case'6':schoolEmployee->Setwages(aa);break;
				case'7':schoolEmployee->Setsubsidy(aa);break;
				case'8':schoolEmployee->Setclassfee(aa);break;
				default:break;
				}
				cout<<"************修改成功********"<<endl;
			}
		}while(c!='9');
		cout<<"是否继续修改(Y\N)"<<endl;
		cin>>c;
	}while(c=='y'||c=='Y');
}
void AppSchool::list()
{
	vector<SchoolEmployee> schoolemployees=addressSchool.GetSchoolEmployee();
	vector<SchoolEmployee>::iterator pos;
	cout<<"\n\t------------------人员表----------------\n"<<endl;
	for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
	{
		cout<<"姓名:        "<<pos->Getname()<<endl;
		cout<<"编号:        "<<pos->Getnumber()<<endl;
		cout<<"职工类别:    "<<pos->Getemployee()<<endl;
		cout<<"基本工作量:  "<<pos->Getworkload()<<endl;
		cout<<"实际工作量:  "<<pos->Getactualworkload()<<endl;
		cout<<"基本工资:    "<<pos->Getwages()<<endl;
		cout<<"当月补助:    "<<pos->Getsubsidy()<<endl;
		cout<<"当月课时费:  "<<pos->Getclassfee()<<endl;
		cout<<"实际工资:    "<<pos->Getactualwages()<<endl;
		cout<<"\t------------------------------------"<<endl;
	}
}
void AppSchool::save()
{
	addressSchool.save();
}
void AppSchool::statistics()
{
	int a,b,c;
	cout<<"选择根据那种参数统计"<<endl;
	cout<<"1 基本工资  2 补助  3  课时费  4  总工资"<<endl;
	cin>>a;
	vector<SchoolEmployee> schoolemployees=addressSchool.GetSchoolEmployee();
	vector<SchoolEmployee>::iterator pos;
	if(a==1)
	{
		cout<<"输入你要统计的基本工资范围[a,b)   ";
		cin>>b>>c;
		cout<<"基本工资在这个范围的人员姓名如下"<<endl;
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(pos->Getwages()>=b&&pos->Getwages()<c)
			{
				cout<<pos->Getname()<<endl;
			}
		}
	}
	if(a==2)
	{
		cout<<"输入你要统计的补助范围[a,b)   ";
		cin>>b>>c;
		cout<<"补助在这个范围的人员姓名如下"<<endl;
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(pos->Getsubsidy()>=b&&pos->Getsubsidy()<c)
			{
				cout<<pos->Getname()<<endl;
			}
		}
	}
	if(a==3)
	{
		cout<<"输入你要统计的课时费范围[a,b)   ";
		cin>>b>>c;
		cout<<"课时费在这个范围的人员姓名如下"<<endl;
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(pos->Getclassfee()>=b&&pos->Getclassfee()<c)
			{
				cout<<pos->Getname()<<endl;
			}
		}
	}
	if(a==4)
	{
		cout<<"输入你要统计的总工资范围[a,b)   ";
		cin>>b>>c;
		cout<<"总工资在这个范围的人员姓名如下"<<endl;
		for(pos=schoolemployees.begin();pos!=schoolemployees.end();pos++)
		{
			if(pos->Getactualwages()>=b&&pos->Getactualwages()<c)
			{
				cout<<pos->Getname()<<endl;
			}
		}
	}
}

stack.h里面的内容

#pragma once
#include<fstream>
#include "targetver.h"
#include<vector>
#include <stdio.h>
#include <tchar.h>
#include<cstring>
#include<iostream>
using namespace std;

5结束语

5.1收货和体会
在做这个高校工资管理系统过程中,深刻地体会到了自学能力的重要性。毕竟在学校课堂学到的知识是有限的,而且以前的知识也有些不记得了,这样做既能有效的复习了以前的知识,还能体会到乐趣,而在做的过程中仅凭原有的一点点知识是远远不够的,只有翻阅大量的资料才能学到更多的知识,才能实现其预期的功能。在做的过程中,遇到困难是在所难免的,期间和同学进行交流,从中明白了很多。做一个系统,恒心和毅力也是不可缺少的,如果一遇到难题就心慌,想要放弃,那这样就不可能完成系统。同样,在开发过程当中,细心也是非常重要的,由于很多事项都要很注意才行,如果没有做到这一点,就会出错。在开发过程当中,我学到很多,明白了做任何事情都要有始有终,要敢于同困难作斗争,要养成独立思考的习惯。在以后的工作和生活当中,我将继续发扬这些好风。
对于此程序,其设计风格与思路在例题基础上继承并加以创造及改变。采用原例题的运用格式与编写语音,给于我们一条清晰的思路,使得程序在编写过程简单化。即使如此,编写此程序也是一种挑战。一旦程序报错,必将花时间去查找。时间一久,便容易引起情绪波动。因此写此程序务必仔细。同时在巩固C++所学的类与对象。通过对此次程序的编写,开阔了对程序的认知,不再对现存的软件感到遥不可及。

5.2不足和改进
程序还不够完美部分程序存在格式不规范,对函数重载的定义有所混淆。注释不够完善。所控制类中不能完全实现功能。所进行文件操作时不能识别名字相同的情况,对于名字相同时,查询时易出错。

6主要参考资料

《面向对象综合实验指导书》
杜茂康等.C++面向对象程序设计(第2版).北京:电子工业出版社,2011

  • 16
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值