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)    收藏  举报  来源