C++课程设计(大一)利用面向对象职工管理系统
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
#include <stdlib.h>
#include <stdio.h>
#define N 100 // 最多录入的职工人数
using namespace std;
string p; // 选择是否返回主菜单的变量
// 定义职工信息类
class Amployee
{
public:
Amployee() {} // 构造函数
void show(); // 职工信息显示
~Amployee() {} // 析构函数
friend class Amployee_List; // 友元
private:
int ID; // 定义职工号
char Name[20]; // 定义职工姓名
string Sex; // 定义职工性别
int Age; // 定义职工年龄
string Education; // 定义职工学历
float Wage; // 定义职工工资
char Address[30]; // 定义职工住址
int Telephone; // 定义职工电话
};
// 定义数组、函数类
class Amployee_List
{
private:
Amployee Amplo[N]; // 把职工定义成数组形式
int NUM; // 用来计录职工数目
int n; // 用来暂时记录当前操作第几个职工
public:
void add(); // 录入职工信息
void find(); // 查询职工信息
void deleate(); // 删除职工信息
void change(); // 修改职工信息
void save_file(); // 以文件形式保存职工信息
void Show_Amployee(); // 把职工信息显示在屏幕上
Amployee_List()
{
NUM = 0;
n = 0;
}
};
// 系统功能菜单
void menu()
{
system("color 30");
cout << "\n";
cout << " 欢迎使用公司职工信息管理软件\n"
<< endl;
cout << " ----------------------------" << endl;
cout << " -------1.录入职工信息-------" << endl;
cout << " -------2.修改职工信息-------" << endl;
cout << " -------3.删除职工信息-------" << endl;
cout << " -------4.查询职工信息-------" << endl;
cout << " -------5.浏览职工信息-------" << endl;
cout << " -------6.保存职工信息-------" << endl;
cout << " ---------7.退出系统---------" << endl;
cout << " ----------------------------" << endl;
}
// 主菜单
void main_menu()
{
Amployee_List s;
int a;
while (1)
{
menu();
cout << "请选择功能编号1~7" << endl;
cin >> a;
if (a < 1 || a > 7)
{
cout << "输入错误,请选择有效指令1~7!" << endl;
cin >> a;
}
switch (a)
{
case 1:
s.add();
break;
case 2:
s.change();
break;
case 3:
s.deleate();
break;
case 4:
s.find();
break;
case 5:
s.Show_Amployee();
break;
case 6:
s.save_file();
break;
case 7:
system("color 8F");
cout << "谢谢使用公司职工信息管理软件!" << endl;
exit(0);
default:
break;
}
cout << "是否返回主菜单? Y/N" << endl;
cin >> p;
if (p == "n" || p == "N")
{
cout << "系统退出!!" << endl;
exit(0);
}
}
}
// 录入职工信息
void Amployee_List::add()
{
system("color B0");
int id;
cout << "请输入职工信息:" << endl;
cout << "请输入职工号:";
cin >> id;
for (int i = 0; i < NUM; i++)
while (id == Amplo[i].ID) // 判断是否有重复的职工号
{
cout << "此职工号已存在,请重新输入:" << endl;
cout << "请输入职工号:";
cin >> id;
}
Amplo[NUM].ID = id;
cout << "请输入职工姓名:";
cin >> Amplo[NUM].Name;
cout << "请输入职工性别:";
cin >> Amplo[NUM].Sex;
cout << "请输入职工年龄:";
cin >> Amplo[NUM].Age;
cout << "请输入职工学历:";
cin >> Amplo[NUM].Education;
cout << "请输入职工工资:";
cin >> Amplo[NUM].Wage;
cout << "请输入职工地址:";
cin >> Amplo[NUM].Address;
cout << "请输入职工电话:";
cin >> Amplo[NUM].Telephone;
++NUM;
n = NUM;
}
// 修改职工信息
void Amployee_List::change()
{
system("color EC");
if (NUM <= 0)
{
cout << "没有录入职工信息,系统将返回主菜单,请先录入!" << endl;
menu();
}
cout << "请输入需要修改信息职工的职工号:" << endl;
int id;
cin >> id;
int j, k, f = 1;
while (f)
{
for (j = 0; j < n; j++)
{
if (id == Amplo[j].ID)
{
f = 0;
k = j;
break;
}
}
if (f)
{
cout << "此职工信息不存在,请重新输入:" << endl;
j = 0;
cin >> id;
}
}
cout << "选择修改的职工原信息为:" << endl;
cout << "\n";
cout << "职工号:" << Amplo[k].ID << endl;
cout << "姓名:" << Amplo[k].Name << endl;
cout << "年龄:" << Amplo[k].Age << endl;
cout << "性别:" << Amplo[k].Sex << endl;
cout << "学历:" << Amplo[k].Education << endl;
cout << "工资:" << Amplo[k].Wage << endl;
cout << "地址:" << Amplo[k].Address << endl;
cout << "电话:" << Amplo[k].Telephone << endl;
cout << endl;
cout << "***********************" << endl;
cout << "1.修改职工号" << endl;
cout << "2.修改职工姓名" << endl;
cout << "3.修改职工性别" << endl;
cout << "4.修改职工年龄" << endl;
cout << "5.修改职工学历" << endl;
cout << "6.修改职工工资" << endl;
cout << "7.修改职工地址" << endl;
cout << "8.修改职工电话" << endl;
cout << "9.返回主菜单" << endl;
cout << "**********************" << endl;
cout << endl;
cout << "请选择功能前的编号1~9" << endl;
int b;
cin >> b;
while (b < 1 || b > 9)
{
cout << "输入有误,请重新输入:" << endl;
cin >> b;
}
switch (b)
{
case 1:
{
cout << "请重新输入职工号:";
cin >> Amplo[k].ID;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 2:
{
cout << "请重新输入职工姓名:";
cin >> Amplo[k].Name;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 3:
{
cout << "请重新输入职工性别:";
cin >> Amplo[k].Sex;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 4:
{
cout << "请重新输入职工年龄:";
cin >> Amplo[k].Age;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 5:
{
cout << "请重新输入职工学历:";
cin >> Amplo[k].Education;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 6:
{
cout << "请重新输入职工工资:";
cin >> Amplo[k].Wage;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 7:
{
cout << "请重新输入工地址:";
cin >> Amplo[k].Address;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 8:
{
cout << "请重新输入职工电话:";
cin >> Amplo[k].Telephone;
cout << "修改信息已保存,现返回主菜单:" << endl;
menu();
break;
}
case 9:
menu();
default:
break;
}
}
// 删除职工信息函数
void Amployee_List::deleate()
{
system("color DF");
int id;
if (NUM <= 0)
{
cout << "没有录入职工信息,系统将返回主菜单,请先录入!" << endl;
menu();
}
cout << "请输入需要删除信息职工的职工号:" << endl;
cin >> id;
int j, k, f = 1;
while (f)
{
for (j = 0; j < n; j++)
{
if (id == Amplo[j].ID)
{
f = 0;
k = j;
break;
}
}
if (f)
{
cout << "无此员工信息,请重新输入:" << endl;
j = 0;
cin >> id;
}
}
cout << "将要删除的职工信息为:" << endl;
cout << "\n";
cout << "职工号:" << Amplo[k].ID << endl;
cout << "职工姓名:" << Amplo[k].Name << endl;
cout << "职工性别:" << Amplo[k].Sex << endl;
cout << "职工年龄:" << Amplo[k].Age << endl;
cout << "职工学历:" << Amplo[k].Education << endl;
cout << "职工工资:" << Amplo[k].Wage << endl;
cout << "职工地址:" << Amplo[k].Address << endl;
cout << "职工电话:" << Amplo[k].Telephone << endl;
cout << endl;
cout << "确认删除请输入Y,返回主菜单请输入N " << endl;
cin >> p;
while (1)
{
if (p == "y" || p == "Y")
{
cout << "员工信息已删除!" << endl;
for (int i = 0; i < n; i++)
if (Amplo[i].ID == id)
for (j = i; j <= n - 1; j++)
Amplo[j] = Amplo[j + 1];
n--;
break;
}
else if (p == "n" || p == "N")
{
menu();
break;
}
else
{
cout << "输入有误,请重新输入:Y或者N:";
cin >> p;
}
}
}
// 查询职工信息函数
void Amployee_List::find()
{
system("color F2");
int c;
if (NUM <= 0)
{
cout << "没有录入职工信息,系统将返回主菜单,请先录入!" << endl;
menu();
}
else
cout << "-----------------" << endl;
cout << "请选择查询方式:" << endl;
cout << "1.按职工号查询" << endl;
cout << "2.按职工姓名查询" << endl;
cout << "3.按职工学历查询" << endl;
cout << "4.返回主菜单" << endl;
cout << "-----------------" << endl;
cout << endl;
cout << "请选择查询方式:1~4" << endl;
cin >> c;
while (c < 1 || c > 4)
{
cout << "输入有误,请重新输入:" << endl;
cin >> c;
}
if (c == 1)
{
int id;
cout << "请输入要查询的职工的工号:" << endl;
cin >> id;
int j1, k1, f1 = 1;
while (f1)
{
for (j1 = 0; j1 < n; j1++)
{
if (id == Amplo[j1].ID)
{
f1 = 0;
k1 = j1;
cout << "查询的职工信息如下:" << endl;
cout << "职工号:" << Amplo[k1].ID << endl;
cout << "职工姓名:" << Amplo[k1].Name << endl;
cout << "职工性别:" << Amplo[k1].Sex << endl;
cout << "职工年龄:" << Amplo[k1].Age << endl;
cout << "职工学历:" << Amplo[k1].Education << endl;
cout << "职工工资:" << Amplo[k1].Wage << endl;
cout << "职工地址:" << Amplo[k1].Address << endl;
cout << "职工电话:" << Amplo[k1].Telephone << endl;
break;
}
}
if (f1)
{
f1 = 0;
cout << "该公司不存在此职工的信息!!\n返回主菜单" << endl;
break;
}
}
}
else if (c == 2)
{
char name[20];
cout << "请输入要查询的职工的姓名:" << endl;
cin >> name;
int j2, k2, f2 = 1;
while (f2)
{
for (j2 = 0; j2 < n; j2++)
{
if (name == Amplo[j2].Name)
{
f2 = 0;
k2 = j2;
cout << "查询的职工信息如下:" << endl;
cout << "职工号:" << Amplo[k2].ID << endl;
cout << "职工姓名:" << Amplo[k2].Name << endl;
cout << "职工性别:" << Amplo[k2].Sex << endl;
cout << "职工年龄:" << Amplo[k2].Age << endl;
cout << "职工学历:" << Amplo[k2].Education << endl;
cout << "职工工资:" << Amplo[k2].Wage << endl;
cout << "职工地址:" << Amplo[k2].Address << endl;
cout << "职工电话:" << Amplo[k2].Telephone << endl;
break;
}
}
if (f2)
{
f2 = 0;
cout << "该公司不存在此职工的信息!!\n返回主菜单" << endl;
break;
}
}
}
else if (c == 3)
{
string edu;
cout << "请输入要查询的职工的学历:" << endl;
cin >> edu;
int j3, k3, f3 = 1;
while (f3)
{
for (j3 = 0; j3 < n; j3++)
{
if (edu == Amplo[j3].Education)
{
f3 = 0;
k3 = j3;
cout << "查询的职工信息如下:" << endl;
cout << "职工号:" << Amplo[k3].ID << endl;
cout << "职工姓名:" << Amplo[k3].Name << endl;
cout << "职工性别:" << Amplo[k3].Sex << endl;
cout << "职工年龄:" << Amplo[k3].Age << endl;
cout << "职工学历:" << Amplo[k3].Education << endl;
cout << "职工工资:" << Amplo[k3].Wage << endl;
cout << "职工地址:" << Amplo[k3].Address << endl;
cout << "职工电话:" << Amplo[k3].Telephone << endl;
break;
}
}
if (f3)
{
f3 = 0;
cout << "该公司不存在此职工的信息!!\n返回主菜单" << endl;
break;
}
}
}
else if (c = 4)
menu();
}
// 显示职工信息函数实现
void Amployee_List::Show_Amployee()
{
system("color F0");
if (NUM <= 0)
{
cout << "没有录入职工信息,系统将返回主菜单,请先录入!" << endl;
menu();
}
else
cout << "已保存的职工信息如下:" << endl;
for (int i = 0; i < n; i++)
{
cout << "------------------" << endl;
cout << "职工号:" << Amplo[i].ID << endl;
cout << "职工姓名:" << Amplo[i].Name << endl;
cout << "职工性别:" << Amplo[i].Sex << endl;
cout << "职工学历:" << Amplo[i].Education << endl;
cout << "职工年龄:" << Amplo[i].Age << endl;
cout << "职工工资:" << Amplo[i].Wage << endl;
cout << "职工地址:" << Amplo[i].Address << endl;
cout << "职工电话:" << Amplo[i].Telephone << endl;
cout << "------------------" << endl;
}
}
// 把职工信息以文件的形式保存函数
void Amployee_List::save_file()
{
system("color 0F");
if (NUM <= 0)
{
cout << "没有录入职工信息,系统将返回主菜单,请先录入!" << endl;
menu();
}
else
{
ofstream fout;
fout.open("职工信息.txt", ios::out);
cout << "数据保存成功!" << endl;
fout << "已保存职工信息如下:" << endl;
for (int i = 0; i < n; i++)
{
fout << "------------------" << endl;
fout << "职工号:" << Amplo[i].ID << endl;
fout << "职工姓名:" << Amplo[i].Name << endl;
fout << "职工性别:" << Amplo[i].Sex << endl;
fout << "职工年龄:" << Amplo[i].Age << endl;
fout << "职工学历:" << Amplo[i].Education << endl;
fout << "职工工资:" << Amplo[i].Wage << endl;
fout << "职工地址:" << Amplo[i].Address << endl;
fout << "职工电话:" << Amplo[i].Telephone << endl;
fout << "------------------" << endl;
}
cout << "系统返回主菜单:" << endl;
menu();
fout.close();
}
}
// 主函数
int main()
{
main_menu();
return 0;
}
转载注明出处**********
posted on 2018-01-14 14:49 LOL_toulan 阅读(10) 评论(0) 收藏 举报 来源
浙公网安备 33010602011771号