zoukankan      html  css  js  c++  java
  • 企业信息管理系统需求分析及要设计——程序的设计与实现①

    因为文件比较繁多,本设计使用Qt编写程序。

    department.h

     1 #ifndef DEPARTMENT_H
     2 #define DEPARTMENT_H
     3 #include <iostream>
     4 #include "employee.h"
     5 using namespace std;
     6 class Department
     7 {
     8     int m_nid;
     9     char m_strName[20];
    10     int m_num;
    11     vector<Employee*> m_vesEmps;
    12 public:    
    13     //Department();
    14     Department(int id = 100,const char *name="",int num=0);
    15     bool deleteEmp(int id);
    16     void listEmp(vector<Employee*>& m_vesEmps);
    17     bool mondifyEmp(Employee& emp,vector<Employee*>& m_vesEmps);
    18     int getnum(void);
    19     void setnum(void);
    20     void set_num(int num);
    21     int getid(void);
    22     char* getname(void);
    23     void setname(const char *name);
    24     void setid(int id);
    25 
    26     vector<Employee*>& getvector(void);
    27 };
    28 
    29 #endif//DEPATRMENT_H

    employee.h

     1 #ifndef EMPLOYEE_H
     2 #define EMPLOYEE_H
     3 class Employee
     4 {
     5 int m_nid;
     6 char m_strName[20];
     7 bool m_bGender;
     8 int m_nAge;
     9 public:
    10     Employee(int id=100,const char* name="",bool sex=false,int age=18);
    11     Employee(Employee& employee);
    12     int getid(void);
    13     char* getname(void);
    14     bool getsex(void);
    15     int getage(void);
    16     void setid(int id);
    17     void setname(char* name);
    18     void setsex(bool sex);
    19     void setage(int age);
    20 };
    21 #endif//EMPLOYEE_H

    service_impl.cpp

      1 #include <iostream>
      2 #include "service_impl.h"
      3 #include "department.h"
      4 #include "employee.h"
      5 #include "tools.h"
      6 #include <vector>
      7 #include "servicedao_file_impl.h"
      8 
      9 using namespace std;
     10 
     11 vector<Department*> m_vecDepts;
     12 vector<Employee*> m_vesEmps;
     13 
     14 ServiceImpl::ServiceImpl()
     15 {
     16     m_pDao = new ServiceDaoFileImpl;
     17 }
     18 
     19 bool ServiceImpl::addDept(Department& dept)
     20 {
     21     m_pDao->load(m_vecDepts);
     22     m_vecDepts.push_back(&dept);
     23     m_pDao->save(m_vecDepts);
     24     return true;    
     25 }
     26 
     27 bool ServiceImpl::deleteDept(int deptid)
     28 {
     29     m_vecDepts.clear();
     30     m_pDao->load(m_vecDepts);
     31     vector<Department*>::iterator itor;
     32     for(itor = m_vecDepts.begin();itor !=m_vecDepts.end();itor++)
     33     {
     34         if((*itor)->getid() == deptid)
     35         {
     36             itor = m_vecDepts.erase(itor);
     37             m_pDao->save(m_vecDepts);
     38             return true;
     39         }
     40     }
     41     return false;
     42 }
     43 
     44 void ServiceImpl::listDept(void)
     45 {
     46     m_vecDepts.clear();
     47     m_pDao->load(m_vecDepts);
     48     cout << "部门ID" << " " << "部门名" << " " << "人数" << endl;
     49     for(unsigned int i=0;i<m_vecDepts.size();i++)
     50     {
     51         cout << m_vecDepts.at(i)->getid() << " " << m_vecDepts.at(i)->getname() << " " << m_vecDepts.at(i)->getnum() << endl;
     52     }
     53 } 
     54 
     55 bool ServiceImpl::addEmp(Employee& emp)
     56 {
     57     cout << "请输入添加的部门ID" << endl;
     58     int id = 0;
     59     cin >> id;
     60     for(unsigned int i=0;i<m_vecDepts.size();i++)
     61     {
     62          if(m_vecDepts.at(i)->getid() == id)
     63          {
     64             m_vecDepts.clear();
     65             m_pDao->load(m_vecDepts);
     66             m_vecDepts.at(i)->getvector().push_back(&emp);
     67             m_vecDepts.at(i)->setnum();
     68             m_pDao->save(m_vecDepts);
     69             return true;
     70          }
     71     }
     72     return false;
     73 }
     74 
     75 bool ServiceImpl::deleteEmp(int empid)
     76 {
     77     m_pDao->load(m_vecDepts);
     78     for(unsigned int i=0;i<m_vecDepts.size();i++)
     79     {
     80         unsigned int temp = m_vecDepts.at(i)->getnum();
     81         for(unsigned int j=0;j<temp;j++)
     82         {
     83             if(m_vecDepts.at(i)->getvector().at(j)->getid() == empid)
     84             {
     85                 m_vecDepts.at(i)->deleteEmp(empid);
     86                 m_pDao->save(m_vecDepts);
     87             }
     88         }
     89     }
     90     return false;
     91 }
     92 
     93 bool ServiceImpl::modifyEmp(Employee& emp)
     94 {
     95 
     96     m_pDao->load(m_vecDepts);
     97     for(unsigned int i=0;i<m_vecDepts.size();i++)
     98     {       
     99         m_vecDepts.at(i)->mondifyEmp(emp,m_vesEmps);
    100         m_pDao->save(m_vecDepts);
    101         return true;
    102     }
    103     return false;
    104 }
    105 
    106 void ServiceImpl::listEmp(int deptid)
    107 {
    108     m_pDao->load(m_vecDepts);
    109     for(unsigned int i=0;i<m_vecDepts.size();i++)
    110     {
    111          if(m_vecDepts.at(i)->getid() == deptid)
    112          {
    113             unsigned int temp = m_vecDepts.at(i)->getnum();
    114             for(unsigned int j=0;j<temp;j++)
    115             {
    116             
    117             cout << m_vecDepts.at(i)->getvector().at(j)->getid() << " " << m_vecDepts.at(i)->getvector().at(j)->getname() << " " << m_vecDepts.at(i)->getvector().at(j)->getsex() << " " << m_vecDepts.at(i)->getvector().at(j)->getage() << endl;
    118             
    119             }
    120             return;
    121          }
    122     }
    123 }
    124 
    125 void ServiceImpl::listAllEmp(void)
    126 {
    127     m_pDao->load(m_vecDepts);
    128     for(unsigned int i=0;i<m_vecDepts.size();i++)
    129     {
    130         cout << m_vecDepts.at(i)->getid() << " " << m_vecDepts.at(i)->getname() << " " << m_vecDepts.at(i)->getnum() << endl;
    131         unsigned int temp = m_vecDepts.at(i)->getnum();
    132         for(unsigned int j=0;j<temp;j++)
    133         {
    134             
    135             cout << m_vecDepts.at(i)->getvector().at(j)->getid() << " " << m_vecDepts.at(i)->getvector().at(j)->getname() << " " << m_vecDepts.at(i)->getvector().at(j)->getsex() << m_vecDepts.at(i)->getvector().at(j)->getage() << endl;    
    136             
    137         }
    138     }
    139 }
    140 ServiceImpl::~ServiceImpl()
    141 {
    142     delete[]m_pDao;
    143 }

    serviceview_console_impl.cpp

      1 #include <iostream>
      2 #include <string.h>
      3 #include <stdlib.h>
      4 #include <unistd.h>
      5 #include "serviceview_console_impl.h"
      6 #include "department.h"
      7 #include "employee.h"
      8 #include "tools.h"
      9 #include "service.h"
     10 #include "service_impl.h"
     11 
     12 
     13 using namespace std;
     14 extern vector<Manager*> managers;
     15 
     16 ServiceViewConsoleImpl::ServiceViewConsoleImpl()
     17 {
     18     m_pService = new ServiceImpl;
     19 }
     20 
     21 void ServiceViewConsoleImpl::menu(void)
     22 {
     23     system("clear");
     24     int id;
     25     char password[20] ={};
     26     cout << "请输入您的ID: " << endl;
     27     cin >> id;
     28     clear_stdin();
     29     cout << "请输入您的密码:" << endl;
     30     cin >> password;
     31     clear_stdin();
     32 
     33     bool flag=false;
     34     if(!managers.size()) return;
     35     vector<Manager*>::iterator itor;
     36     for (itor = managers.begin(); itor != managers.end(); itor++)
     37     {
     38         if((*itor)->getid() == id)
     39         {
     40 
     41             if (0 == strcmp((*itor)->getpassword(),password))
     42             flag = true;
     43         }
     44     }
     45 
     46     if(flag == false)
     47     {
     48         cout << "您的ID或密码错误" << endl;
     49         getch();
     50         return;
     51     }
     52 
     53     while(1)
     54     {
     55         system("clear");
     56         cout<<"----企业管理系统----"<<endl;
     57         cout<<"1、增加部门"<<endl;
     58         cout<<"2、删除部门"<<endl;
     59         cout<<"3、列出部门"<<endl;
     60         cout<<"4、增加员工"<<endl;
     61         cout<<"5、删除员工"<<endl;
     62         cout<<"6、修改员工信息"<<endl;
     63         cout<<"7、列出部门员工"<<endl;
     64         cout<<"8、列出所有部门员工"<<endl;
     65         cout<<"9、退出"<<endl;
     66         cout<<"------------------"<<endl;
     67         switch(get_cmd('1','9'))
     68         {
     69             case '1':addDept();break;
     70             case '2':deleteDept();break;
     71             case '3':listDept();break;
     72             case '4':addEmp();break;
     73             case '5':deleteEmp();break;
     74             case '6':modifyEmp();break;
     75             case '7':listEmp();break;
     76             case '8':listAllEmp();break;
     77             case '9':return;
     78             default :cout << "请重新输入" << endl; continue;
     79         }
     80     }
     81 }
     82 
     83 void ServiceViewConsoleImpl::addDept(void)
     84 {
     85     cout << "请输入部门名称" << endl;
     86     char name[20];
     87     cin >> name;
     88     int id = generator_DeptId();
     89     Department dept(id,name,0);
     90     if(m_pService->addDept(dept))
     91     {
     92         cout << "添加部门成功!"<< endl;
     93     }
     94     anykey_continue();
     95 }
     96 
     97 void ServiceViewConsoleImpl::deleteDept(void)
     98 {
     99     int id = 0;
    100     cout << "请输入要删除的部门id" << endl;
    101     cin >> id;
    102     if(m_pService->deleteDept(id))
    103     {
    104         cout << "删除部门成功!" << endl;
    105     }
    106     anykey_continue();
    107 }
    108 
    109 void ServiceViewConsoleImpl::listDept(void)
    110 {
    111     m_pService->listDept();
    112     anykey_continue();
    113 }
    114 
    115 void ServiceViewConsoleImpl::addEmp(void)
    116 {
    117     cout << "请输入员工姓名" << endl;
    118     char name[20]= {};
    119     cin >> name;
    120     clear_stdin();
    121     cout << "请输入员工性别" << endl;
    122     bool sex;
    123     cin >> sex;
    124     clear_stdin();
    125     cout << "请输入员工年龄" << endl;
    126     int age;
    127     cin >> age;
    128     clear_stdin();
    129     int m_id = generator_EmpId();
    130     Employee emp(m_id,name,sex,age);
    131     if(m_pService->addEmp(emp))
    132     {
    133         cout << "添加员工成功!"<< endl;
    134     }
    135     
    136     anykey_continue();    
    137 }
    138 
    139 void ServiceViewConsoleImpl::deleteEmp(void)
    140 {
    141     int id = 0;
    142     cout << "请输入要删除的员工id" << endl;
    143     cin >> id;
    144     clear_stdin();
    145     if(m_pService->deleteEmp(id))
    146     {
    147         cout << "删除员工成功!" << endl;
    148     }
    149     anykey_continue();
    150 }
    151 
    152 void ServiceViewConsoleImpl::modifyEmp(void)
    153 {
    154     cout << "请输入修改员工的部门ID" << endl;
    155     int id = 0;
    156     cin >> id;
    157     cout << "请输入要修改员工的ID" << endl;
    158     int m_id2;
    159     cin >> m_id2;
    160 
    161     cout << "请输入要修改的员工姓名" << endl;
    162     char name[20]= {};
    163     cin >> name;
    164     clear_stdin();
    165     cout << "请输入要修改的员工性别" << endl;
    166     bool sex;
    167     cin >> sex;
    168     clear_stdin();
    169     cout << "请输入要修改的员工年龄" << endl;
    170     int age = 0;
    171     cin >> age;
    172     clear_stdin();
    173     int m_id = generator_EmpId();
    174     Employee emp(m_id,name,sex,age);
    175     if(m_pService->modifyEmp(emp))
    176     {
    177         cout << "修改员工成功!"<< endl;
    178     }
    179     anykey_continue();
    180 }
    181 void ServiceViewConsoleImpl::listEmp(void)
    182 {
    183     int id = 0;
    184     cout << "请输入要列出的部门id" << endl;
    185     cin >> id;
    186     m_pService->listEmp(id);
    187     anykey_continue();
    188 }
    189 void ServiceViewConsoleImpl::listAllEmp(void)
    190 {
    191     m_pService->listAllEmp();
    192     anykey_continue();
    193 }
    194 ServiceViewConsoleImpl::~ServiceViewConsoleImpl(void)
    195 {
    196     delete []m_pService;
    197 }

    未完待续

  • 相关阅读:
    linux System V IPC Mechanisms
    linux pipes
    linux create a process
    linux processes identifiers
    linux processes
    beaglebone-black reference url
    git commit steps(1)
    hadoop hadoop install (1)
    OpenWrite方法打开现有文件并进行写入
    OpenRead方法打开文件并读取
  • 原文地址:https://www.cnblogs.com/kid971220/p/10599215.html
Copyright © 2011-2022 走看看