iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现教职工信息管理系统课程设计
  • 181
分享到

C++实现教职工信息管理系统课程设计

2024-04-02 19:04:59 181人浏览 八月长安
摘要

本文实例为大家分享了c++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 #include<iOStream> #include<cstring&g

本文实例为大家分享了c++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下



#include<iOStream>
#include<cstring>
#include<fstream>
using namespace std;
class employee
{
public:
    employee()
    {
    }
    employee(char na[50], char sex[50], int num, char tel[20], char off[50], char pos[50]) :m_number(num)
    {
        strcpy(m_name, na);
        strcpy(m_sex, sex);
        strcpy(m_telephone, tel);
        strcpy(m_office, off);
        strcpy(m_posting, pos);
    }
    int getnum()
    {
        return m_number;
    }
    char *getna()  //
    {
        return m_name;
    }

    char *getoff()
    {
        return m_office;
    }

    char *getposting()  //
    {
        return m_posting;
    }
    friend ostream& operator <<(ostream &os, const employee & s)
    {
        os << "姓名:" << s.m_name << "  性别:" << s.m_sex << "  工号:" << s.m_number << "  电话:" << s.m_telephone << "  所在系部:" << s.m_office << "  职称:" << s.m_posting << endl;
        return os;
    }
    friend istream& operator >>(istream &is, employee &s)
    {
        is >> s.m_name >> s.m_sex >> s.m_number >> s.m_telephone >> s.m_office >> s.m_posting;
        return is;
    }
    ~employee()
    {
    }
private:
    char m_name[50];
    char m_sex[50];
    int m_number;
    char m_telephone[20];
    char m_office[50];
    char m_posting[50];
};

菜单功能选择:

void menu()       //1)菜单功能选择
{
    cout << "*************************************   教职工信息管理系统   *************************************" << 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 << "**                                 | * 0.关闭系统              |                                **" << endl;
    cout << "**                                 -----------------------------                                **" << endl;
    cout << "**----------------------------------------------------------------------------------------------**" << endl;
    cout << "**请输入序号使用对应的功能:(0,1,2,3,4,5,6,7,8)                                                  **" << endl;
    cout << "**************************************************************************************************" << endl;
}

输入信息:

void input()      //2)输入保存
    {
        fstream fs;
        int len;
        cout << "请输入教职工人数:" << endl;
        cin >> len;
        employee *emp = new employee[len];      //开辟空间,存教职工数据
        fs.open("guanli.dat", ios::out | ios::app | ios::binary);
        if (!fs)
            cout << "Open failed." << endl;
        else
        {
            cout << "Open succeedly." << endl;
            cout << "请输入教职工的姓名,性别,工号,电话,所在系部,职称:" << endl;
            for (int i = 0; i<len; i++)
            {
                cin >> emp[i];
                fs.write((char *)& emp[i], sizeof(emp[i]));     //fs<<emp[i]<<endl;二进制
            }
        }
        fs.close();
        delete[] emp;
    }

查询功能(根据工号):

void find1()       //3-1)查询---能够根据工号精确查询职工信息;
    {
        int num; 
        cout << "请输入教职工的工号:" << endl;
        cin >> num;
        fstream fs;
        fs.open("guanli.dat", ios::in | ios::binary);
        fs.seekg(0, ios::end);      //文件调到末尾
        int s = fs.tellg();      //告诉文件大小
        int n = s / sizeof(employee);      //计算职工人数
        fs.seekg(ios::beg);      //文件指针调到文件开头
        employee *emp = new employee[n];
        for (int i = 0; i<n; i++)
            fs.read((char *)& emp[i], sizeof(emp[i]));  //读入到内存
        fs.close();
        int a = -100;
        for (i = 0; i<n; i++)
        {
            if (num == emp[i].getnum())
            {
                cout << emp[i];
                a = i;
            }
        }
        if (a == -100)
            cout << "工号不正确!无此人!" << endl;
        delete[] emp;
    }

查询功能(根据姓名、科室):

void find2()       //3-2)查询---能够根据姓名、科室查询职工信息
{
    char na[50];
    char off[50];
    cout << "请输入教职工的姓名:" << endl;
    cin >> na;
    cout << "请输入教职工所属科室:" << endl;
    cin >> off;
    fstream fs;
    fs.open("guanli.dat", ios::in | ios::binary);
    fs.seekg(0, ios::end);
    int s = fs.tellg();
    int n = s / sizeof(employee);
    fs.seekg(ios::beg);
    employee *emp = new employee[n];
    for (int i = 0; i<n; i++)
        fs.read((char *)&emp[i], sizeof(emp[i]));
    fs.close();
    int a = -100;
    for (i = 0; i<n; i++)
    {
        if (strcmp(na, emp[i].getna())==0 && strcmp(off, emp[i].getoff())==0)
        {
            cout << emp[i] << endl;
            a = i;
        }
    }
    if (a == -100)
        cout << "名字或所属科室不正确!无此人!" << endl;
}

统计人数:

void find3()       //3-3)分系部进行职称统计,计算各职称的人数
    {
        char off[50], posting[50];
        cout << "请输入所查系部:" << endl;
        cin >> off;
        cout << "请输入所查职称:" << endl;
        cin >> posting;
        fstream fs;
        fs.open("guanli.dat", ios::in | ios::binary);
        fs.seekg(0, ios::end);
        int s = fs.tellg();
        int n = s / sizeof(employee);
        fs.seekg(ios::beg);
        employee *emp = new employee[n];
        for (int i = 0; i<n; i++)
            fs.read((char *)&emp[i], sizeof(emp[i]));
        fs.close();
        int sum = 0;
        for (i=0; i<n; i++)
        {
            if (strcmp(off, emp[i].getoff()) == 0 && strcmp(posting, emp[i].getposting()) == 0)
                sum++;
        }
        cout << "该部门此职称有" << sum << "人!" << endl;
        delete[] emp;
    }

排序输出:

void output()      //4)根据职工的职称排序输出
    {
        fstream fs;
        fs.open("guanli.dat", ios::in | ios::binary);
        fs.seekg(0, ios::end);
        int s = fs.tellg();
        int n = s / sizeof(employee);
        fs.seekg(ios::beg);
        employee *emp = new employee[n];
        for (int i = 0; i<n; i++)
            fs.read((char *)&emp[i], sizeof(emp[i]));
        fs.close();
        employee temp;
        for (int j = 0; j<n - 1; j++)
        {
            for (int k = 0; k<n - 1 - j; k++)
            {
                if (strcmp(emp[k].getposting(), emp[k + 1].getposting())>0)
                {
                    temp = emp[k];
                    emp[k] = emp[k + 1];
                    emp[k + 1] = temp;
                }
            }
        }
        for (i = 0; i<n; i++)
            cout << emp[i];
        delete[] emp;
    }

修改功能:

void modify()      //5)根据工号修改职工信息
{
    fstream fs;
    fs.open("guanli.dat", ios::in | ios::out | ios::binary);
    fs.seekg(0, ios::end);
    int s = fs.tellg();
    int n = s / sizeof(employee);
    fs.seekg(ios::beg);
    employee *emp = new employee[n];
    for (int i = 0; i<n; i++)
        fs.read((char *)&emp[i], sizeof(emp[i]));
    int num;
    cout << "请输入所修改的职工号:" << endl;
    cin >> num;
    int a=-100;
    for (i = 0; i < n; i++)
    {
        if (num == emp[i].getnum())
        {
            fs.seekp(sizeof(employee)*i);
            employee e;
            cout << "请输入要修改的教职工的姓名,性别,工号,电话,所属系部,职称:" << endl;
            cin >> e;
            fs.write((char *)&e, sizeof(employee));
            cout << "职工信息修改成功!" << endl;
            a = i;
        }
    }
    if(a==-100)
        cout << "工号不正确!无此人!" << endl;
        fs.close();
        delete[] emp;
    
}

删除功能:

void del()      // 6)根据工号删除职工信息
{
    fstream fs;
    fs.open("guanli.dat", ios::in | ios::out | ios::binary);
    fs.seekg(0, ios::end);
    int s = fs.tellg();
    int n = s / sizeof(employee);
    fs.seekg(ios::beg);
    employee *emp = new employee[n];
    for (int i = 0; i<n; i++)
    {
        fs.read((char *)&emp[i], sizeof(emp[i]));
    }
    fs.close();
    int num;
    cout << "请输入要删除的职工号:" << endl;
    cin >> num;
    int a=-100;
    for ( i = 0; i<n; i++)
    {
        if (num == emp[i].getnum())
            a = i;
    }
    if(a==-100)
        cout << "工号不正确!无此人!" << endl;
    fs.open("guanli.dat", ios::out | ios::binary);
    if (!fs)
        cout << "Open failed." << endl;
    else
    {
        cout << "Open succeedly." << endl;
        for (int i = 0; i<n; i++)
        {
            if (i == a)
                continue;
            else
                fs.write((char *)& emp[i], sizeof(emp[i]));
        }
    }
    if (a >= 0 && a <= n)
        cout << "删除成功!" << endl;
    else
        cout << "删除失败!" << endl;
    fs.close();
    fs.clear();
    delete[] emp;
}

查看功能:

void show()      //8.查看所有人员信息
    {
        fstream fs;
        fs.open("guanli.dat", ios::in | ios::binary);
        fs.seekg(0, ios::end);
        int s = fs.tellg();
        int n = s / sizeof(employee);
        fs.seekg(ios::beg);
        employee *emp = new employee[n];
        for (int i = 0; i<n; i++)
        {
            fs.read((char *)&emp[i], sizeof(emp[i]));
            cout << emp[i];
        }
        fs.close();
        delete[] emp;
    }

主函数:

 int main()
    {
        char flag = 'n';
        while (flag == 'n' || flag == 'N')    //由y/n控制循环
        {
            menu();
            int judge;
            cin >> judge;
            if (judge >= 0 && judge <= 8)
            {
                switch (judge)
                {
                case 0:
                    cout << "是否退出系统(y/n):" << endl;
                    cin >> flag;
                    break;
                case 1:
                    input();
                    break;
                case 2:
                    find1();
                    break;
                case 3:
                    find2();
                    break;
                case 4:
                    find3();
                    break;
                case 5:
                    output();
                    break;
                case 6:
                    modify();
                    break;
                case 7:
                    del();
                    break;
                case 8:
                    show();
                    break;
                default:
                    break;
                }
            }
            else
                cout << "输入错误,请重新输入!" << endl;
            cout << "------------------------------------------Press any key to continue!------------------------------" << endl;
            getchar();
            getchar();
            system("cls");
        }
        return 0;
    }

运行主界面:(其余的图就不图啦)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C++实现教职工信息管理系统课程设计

本文链接: https://www.lsjlt.com/news/142994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++实现教职工信息管理系统课程设计
    本文实例为大家分享了C++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<cstring&g...
    99+
    2024-04-02
  • C++实现教职工管理系统课程设计
    本文实例为大家分享了C++实现教职工管理系统的具体代码,供大家参考,具体内容如下 要求:设计一个程序来管理职工较全面数据信息,具备数据的输入、查找、删除等功能。具体功能细节可以根据自...
    99+
    2024-04-02
  • C++实现职工工资管理系统课程设计
    本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下 现在的大学里经常有一些课程设计 ,这不,我就遇到了 。 我们的c++老师 ,给了我们许 多的题目要...
    99+
    2024-04-02
  • C++实现教职工信息管理系统
    本文实例为大家分享了C++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法...
    99+
    2024-04-02
  • C++实现职工信息管理系统
    本文实例为大家分享了c++实现职工信息管理系统的具体代码,供大家参考,具体内容如下 1、项目需求 2、功能实现的具体思路为: (1) 经行职工信息的读入,用while循环进行读入,...
    99+
    2024-04-02
  • 如何使用C++实现教职工信息管理系统
    这篇文章主要介绍如何使用C++实现教职工信息管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一.问题描述一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法如下:经理:...
    99+
    2023-06-29
  • C语言实现超市信息管理系统课程设计
    本文实例为大家分享了C语言实现超市信息管理系统的具体代码,供大家参考,具体内容如下 一、 需求分析 目前商品市场的商品信息玲琅满目,货物信息的储存以及更新就变的越来越重要。因此,我们...
    99+
    2024-04-02
  • C语言实现简单职工信息管理系统
    本文实例为大家分享了C语言实现职工信息管理系统的具体代码,供大家参考,具体内容如下 代码实现如下: #include <stdio.h>//输入、输出指令 #includ...
    99+
    2024-04-02
  • C语言实现学生宿舍信息管理系统课程设计
    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 一、问题陈述 宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,...
    99+
    2024-04-02
  • C++如何实现教职工管理系统
    这篇文章主要介绍“C++如何实现教职工管理系统”,在日常操作中,相信很多人在C++如何实现教职工管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++如何实现教职工管理系统”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • C++实现教工考勤信息管理系统
    本文实例为大家分享了C++实现教工考勤信息管理系统的具体代码,供大家参考,具体内容如下 需求分析 传统意义上的考勤管理都是采用原始的手工操作来完成的。人事部的管理人员或办公室人员要进...
    99+
    2024-04-02
  • C++实现职工管理系统
    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 workermanager.h #pragma once//防止头文件重复包含 #include...
    99+
    2024-04-02
  • C++实现图书管理系统课程设计
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 大一 C++课设,没有用分文件的形式,只是把菜单页面单独分开了。用的是链表,都是一些基础的东西。另外采...
    99+
    2024-04-02
  • C++实现班车管理系统课程设计
    本文实例为大家分享了C++实现班车管理系统的具体代码,供大家参考,具体内容如下 课程设计要求: 一交通公司,班车系统的数据包括如下两部分: ①班车信息:班交及车号、最大载客数、起点、...
    99+
    2024-04-02
  • C++实现职工工资管理系统
    本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下 main.cpp #include <iostream> #include <v...
    99+
    2024-04-02
  • Java课程信息管理系统怎么实现
    这篇文章主要讲解了“Java课程信息管理系统怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java课程信息管理系统怎么实现”吧!一、项目运行环境配置:Jdk1.8 + Tomcat8...
    99+
    2023-06-29
  • C++怎么实现教工考勤信息管理系统
    这篇“C++怎么实现教工考勤信息管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++怎么实现教工考勤信息管理系统”文...
    99+
    2023-06-30
  • C语言实现宿舍管理系统课程设计
    宿舍管理系统C语言源码,供大家参考,具体内容如下 内容摘要 学生宿舍管理系统时应对学生宿舍管理的现代化、网络化,逐步摆脱学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包...
    99+
    2024-04-02
  • C语言实现学籍管理系统课程设计
    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 学校的课程设计,自己完成后整理了一下。自己用链表实现的一个较简单的学籍管理系统,都是通过一些链表以及文...
    99+
    2024-04-02
  • C语言实现宾馆管理系统课程设计
    本文实例为大家分享了C语言实现宾馆管理系统的具体代码,供大家参考,具体内容如下 课程设计题目: 宾馆管理系统 一、需求分析 近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作