C++ 课设 高校人员信息管理系统

前言

🎬本文章是 【C++笔记】 专栏的文章,主要是C++黑马的笔记、自己的实验与课设
🔗C++笔记 传送门

问题描述

某高校有四类员工:教师、实验员、行政人员、教师兼行政人员

  1. 共有的信息:编号、姓名、性别、年龄
  2. 教师的信息:所在系部、专业、职称
  3. 实验员的信息:所在实验室、职务
  4. 行政人员的信息:政治面貌、职称

功能要求

  1. 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消
  2. 添加查询:功能可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息
  3. 显示功能:可显示当前系统中所有记录,每条记录占据一行
  4. 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性
  5. 删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存
  6. 统计功能:能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计某年龄段人员的数量等
  7. 保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意
  8. 读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用

分析

继承关系分析

C++课设17

全局函数说明

代码

可以从仓库地址下一份,或者自己新建项目把代码粘进去。

/*
@Author:张时贰
@Date:2022年05月16日
@CSDN:张时贰
@Blog:zhangshier.vip
*/
#include <iostream>
using namespace std;
#include<string>
#include <fstream>
#define MAX 200	//每一类人员上限200

//声明全局函数
void Statistics();//统计函数
void Statisticstotal();//统计总人数
void Statisticman();//统计男员工
void Statisticwomen();//统计女员工
void Statisticage();//统计年龄段
//人 类
class Person
{
   
public:
	char id[10];	//编号
	char name[5];//姓名
	char sex[10];//性别
	int age;  //年龄
};

//教师类
class Teacher :virtual public Person
{
   
	friend class Tea_Po; //声明友元,教师兼行政人员类访问教师私有变量
public:
	void Add();//添加
	void Seach();//查询
	void Show();//显示
	void Edit();//编辑
	void Delete();//删除
	void Save();//保存
	void Read();//读取
	void Seachid();//编号查询
	void Seachname();//姓名查询
	void Showone();
private:
	char t_dept[20];//所在系部
	char t_major[20];//专业
	char t_title[10];//职称
}; Teacher Tea[MAX]; int Teatop = 0;

void Teacher::Add()
{
   
	Teacher t_temp;//临时变量
	if (Teatop < MAX)
	{
   
		cout << "编号:"; cin >> t_temp.id;
		for (int i = 0; i < Teatop; i++)
		{
   
			if (!strcmp(Tea[i].id, t_temp.id))
			{
   
				cout << "id已存在" << endl;
				return;
			}
		}
		cout << "姓名:"; cin >> t_temp.name;
		cout << "性别:"; cin >> t_temp.sex;
		cout << "年龄:"; cin >> t_temp.age;
		cout << "系部:"; cin >> t_temp.t_dept;
		cout << "专业:"; cin >> t_temp.t_major;
		cout << "职称:"; cin >> t_temp.t_title;
		Tea[Teatop] = t_temp;
		Teatop++;
	}
	else
	{
   
		cout << "当前教师已招满" << endl;
	}
}
void Teacher::Seach()
{
   
	while (true)
	{
   
		int c;
		cout << endl;
		cout << "  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|" << endl;
		cout << "  |      教师管理平台-查询       |" << endl;
		cout << "  |   1.编号查询                 |" << endl;
		cout << "  |   2.姓名查询                 |" << endl;
		cout << "  |   0.退出                     |" << endl;
		cout << "  |______________________________|" << endl << endl;
		cout << "请选择"; cin >> c;
		switch (c)
		{
   
		case 1:
			Seachid();
			break;
		case 2:
			Seachname();
			break;
		case 0:
			return;
			break;
		default:
			cout << "输入错误请重新输入" << endl;
			break;
		}
	}
}
void Teacher::Show()
{
   
	if (Teatop == 0)
	{
   
		cout << "当前教师系统内为空" << endl;
	}
	else
	{
   
		for (int i = 0; i < Teatop; i++)
		{
   
			Tea[i].Showone();
		}
	}
}
void Teacher::Edit()
{
   
	Teacher t_temp;
	while (true)
	{
   
		int c;
		cout << endl;
		cout << "  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|" << endl;
		cout << "  |      教师管理平台-编辑       |" << endl;
		cout << "  |   1.根据编号查询并修改       |" << endl;
		cout << "  |   2.根据姓名查询并修改       |" << endl;
		cout << "  |   0.退出                     |" << endl;
		cout << "  |______________________________|" << endl << endl;
		cout << "请选择"; cin >> c;
		if (c == 1)
		{
   
			char sid[10];
			int i;
			cout << "请输入编号"; cin >> sid;
			for (i = 0; i < Teatop; i++)
			{
   
				if (!strcmp(Tea[i].id, sid))
					break;
			}
			if (i == Teatop)
				cout << "输入编号无效,系统内不存在" << endl;
			else
			{
   
				cout << "编号:"; cin >> t_temp.id;
				cout << "姓名:"; cin >> t_temp.name;
				cout << "性别:"; cin >> t_temp.sex;
				cout << "年龄:"; cin >> t_temp.age;
				cout << "系部:"; cin >> t_temp.t_dept;
				cout << "专业:"; cin >> t_temp.t_major;
				cout << "职称:"; cin >> t_temp.t_title;
				Tea[i] = t_temp;
			}
			break;
		}
		else if (c == 2)
		{
   
			char sname[5];
			int i;
			cout << "请输入姓名"; cin >> sname;
			for (i = 0; i < Teatop; i++)
			{
   
				if (!strcmp(Tea[i].name, sname))
					break;
			}
			if (i == Teatop)
				cout << "输入编号无效,系统内不存在" << endl;
			else
			{
   
				cout << "编号:"; cin >> t_temp.id;
				cout << "姓名:"; cin >> t_temp.name;
				cout << "性别:"; cin >> t_temp.sex;
				cout << "年龄:"; cin >> t_temp.age;
				cout << "系部:"; cin >> t_temp.t_dept;
				cout << "专业:"; cin >> t_temp.t_major;
				cout << "职称:"; cin >> t_temp.t_title;
				Tea[i] = t_temp;
			}
			break;
		}
		else if (c == 0)
		{
   
			break;
		}
		else
		{
   
			cout << "输入错误请重新选择" << endl;
		}
	}
}
void Teacher::Delete()
{
   
	if (Teatop == 0)
	{
   
		cout << "当前记录为空" << endl;
		return;
	}
	while (true)
	{
   
		int c;
		cout << endl;
		cout << "  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|" << endl;
		cout << "  |      教师管理平台-删除       |" << endl;
		cout << "  |   1.根据编号查询并删除       |" << endl;
		cout << "  |   2.根据姓名查询并删除       |" << endl;
		cout << "  |   0.退出                     |" << endl;
		cout << "  |______________________________|" << endl << endl;
		cout << "请选择"; cin >> c;
		if (c == 1)
		{
   
			char sid[10];
			int i;
			cout << "请输入编号"; cin >> sid;
			for (i = 0; i < Teatop; i++)
			{
   
				if (!strcmp(Tea[i].id, sid))
					break;
			}
			if (i == Teatop)
				cout << "输入编号无效,系统内不存在" << endl;
			else
			{
   
				for (i; i < Teatop; i++)
				{
   
					Tea[i] = Tea[i + 1];
				}
				cout << "删除成功" << endl;
				Teatop--;
			}
			break;
		}
		else if (c == 2)
		{
   
			char sname[5];
			int i;
			cout << "请输入姓名"; cin >> sname;
			for (i = 0; i < Teatop; i++)
			{
   
				if (!strcmp(Tea[i].name, sname))
					break;
			}
			if (i == Teatop)
				cout << "输入姓名无效,系统内不存在" << endl;
			else
			{
   
				for (i; i < Teatop; i++)
				{
   
					Tea[i] = Tea[i + 1];
				}
				cout << "删除成功" << endl;
				Teatop--;
			}
			break;
		}
		else if (c == 0)
		{
   
			break;
		}
		else
		{
   
			cout << "输入错误请重新选择" << endl;
		}
	}
}
void Teacher::Save()
{
   
	int i;
	ofstream outfile, outfile1;
	outfile1.open("Teatop.dat", ios::out);	//写文件Teatop.dat
	outfile1 << Teatop;
	outfile.open("Tea_data.dat", ios::binary);
	if (!outfile)
	{
   
		cerr << "open error!" << endl; return;
	}
	for (i = 0; i < Teatop; i++)
		outfile.write((char *)&Tea[i], sizeof(Tea[i]));
	outfile.close();
	cout << "保存成功!" << endl;
}
void Teacher::Read()
{
   
	int i;
	ifstream infile, infile1;
	infile1.open("Teatop.dat", ios::in);
	infile1 >> Teatop;
	infile.open("Tea_data.dat", ios::binary);
	if (!infile)
	{
   
		cerr << "open error!" << endl; return;
	}
	for (i = 0; i < Teatop; i++)
		infile.read((char *)&Tea[i], sizeof(Tea[i]));
	infile.close();
	cout << "读取成功!" << endl;
}

void Teacher::Seachid()
{
   
	char sid[10];
	cout << "请输入编号" << endl; cin >> sid;
	int i;
	for (i = 0; i < Teatop; i++)
	{
   
		if (!strcmp(Tea[i].id, sid))
		{
   
			Tea[i].Showone();
			break;
		}
	}
	if (i == Teatop)
	{
   
		cout << "该编号不存在" << endl;
	}
}
void Teacher::Seachname()
{
   
	char sname[5];
	cout << "请输入姓名" << endl; cin >> sname;
	int i;
	for (i = 0; i < Teatop; i++)
	{
   
		if (!strcmp(Tea[i].name, sname))
		{
   
			Tea[i].Showone();
			break;
		}
	}
	if (i == Teatop)
	{
   
		cout << "该姓名不存在" << endl;
	}
}
void Teacher::Showone()
{
   
	cout << "编号\t" << id << "\t姓
  • 14
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
1、问题描述 某高校有四类员工教师、实验员、行政人员教师兼行政人员共有的信息包括编号、姓名、性别、年龄等。其中教师还包含的信息有所在系部、专业、职称实验员还包含的信息由所在实验室、职务行政人员还包含的信息有政治面貌、职称等。 2、功能要求 (1)添加功能程序能够任意添加上述四类人员的记录可提供选择界面供用户选择所要添加的人员类别要求员工的编号要唯一如果添加了重复编号的记录时则提示数据添加重复并取消添加。 (2)查询功能可根据编号、姓名等信息对已添加的记录进行查询如果未找到给出相应的提示信息如果找到则显示相应的记录信息。 (3)显示功能可显示当前系统中所有记录每条记录占据一行。 (4)编辑功能可根据查询结果对相应的记录进行修改修改时注意编号的唯一性。 (5)删除功能主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空”并返回操作否则输入要删除的人员的编号或姓名根据所输入的信息删除该人员记录如果没有找到该人员信息则提示相应的记录不存。 (6)统计功能能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。 (7)保存功能可将当前系统中各类人员记录存入文件中存入方式任意。 (8)读取功能可将保存在文件中的人员信息读入到当前系统中供用户进行使用。
公司员工信息管理系统旨在帮助公司高效地管理员工的基本信息及相关数据。该系统应包括员工个人信息、合同信息、薪资信息、考勤信息等多个模块,方便公司HR部门对员工信息进行全面管理和统计分析。 首先,系统应包括员工基本信息录入和管理功能,记录员工的姓名、性别、出生日期、联系方式等个人信息,并能够对员工信息进行修改和查询。其次,系统应具备合同管理功能,记录员工入职合同的起止时间、职位、薪资等信息,并提醒合同到期或签署新合同的日期。 薪资管理是员工信息管理系统的关键功能之一,系统需要记录员工的薪资结构、工资条、奖金、补贴等信息,并能够根据公司规定自动生成工资条,提高薪资核算的效率。另外,考勤管理也是系统的重要组成部分,记录员工的请假、加班、迟到早退等考勤情况,为公司考勤管理提供依据。 员工信息管理系统还应包括权限管理、数据安全及数据备份等功能,确保员工信息的安全性和稳定性。同时,系统应提供多种报表和统计分析功能,方便HR部门及管理层进行数据的查询、分析和决策。 总之,员工信息管理系统计应该充分考虑公司内部管理需求,结合员工信息管理的实际情况,打造一个稳定、安全、高效的信息管理平台,提升公司管理效率和员工满意度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值