企业信息管理系统需求分析及要设计——程序的设计与实现①

因为文件比较繁多,本设计使用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 }

未完待续

原文地址:https://www.cnblogs.com/kid971220/p/10599215.html

时间: 2024-10-02 12:05:11

企业信息管理系统需求分析及要设计——程序的设计与实现①的相关文章

员工信息管理系统需求分析

员工信息管理系统"可以是面向企业或事业单位的科学.全面.高效进行人事管理的系统,可以根据企业或事业单位人事管理的实际情况,进行科学的.具体的.实用性的系统设计.内容包括机构的建立和维护,人员信息的录入和输出,各种实用信息的浏览,个人信息相关信息的添加,工资的调整和发放以及各类报表的绘制和输出等功能.系统简便灵活实用或者自动化功能较强均可. 系统设计分析 用于小型企业,其功能主要分为: 用户管理:用于对用户的添加,删除,修改. 帮助信息:用于对本系统的具体操作进行详解. 本系统性能力求易于使用,具

学生信息管理系统(cocos2d引擎)——数据结构课程设计

老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite*  spBG = CCSprite::create(""); this->addChild(spBG); //添加到当前层 spGB->setPosition(ccp(x,y)); //设置坐标 spGB->setScale(0.5); //缩放 文字按钮: CCMenuItemFont* pItem = CCMenuItemFont::c

开源项目CIIP(企业信息管理系统框架).2018.1.0910版更新介绍-上周工作总结

又狂撸了一周的代码.简化了0904版本的多数操作. 上一次更新时,总共需要10步,这次简化成3步.嗯嗯,自我感觉不错. 重要的:在创建项目时,可以选择常用模块啦! 第一步:启动CIIP.Designer 第二步:创建Customer业务对象. 第三步:点击生成按钮.出现登录界面,按下确定按钮. 好了,这就是结果,数据是为了方便理解,我录入的. 另外,还有一步创建子表: 生成看结果:多出了一个Order子表. 打不过我吧,就是这么强大~~~~~ <完> 原文地址:https://www.cnbl

基于Java EE技术的公司职员信息管理系统查询与统计功能的设计与实现

获取项目源文件,技术交流与指导联系Q:1225467431 摘要 二十一世纪的今天,随着互联网的普及与发展,计算机技术已经广泛的应用于人们的生产办公中,特别是信息的处理加工,更大大的推进着企业的生产效率的增长,企业管理信息化已经成为一个必然的趋势. 本课题研究并开发基于J2EE多层框架的人事信息管理系统.此系统不同于以往的人事信息管理软件,而是在互联网的大背景下,实现以数据库服务器来维护人事信息数据,浏览器客户端来动态访问服务器,这种采用B/S架构的管理系统,有利于充分利用互联网覆盖范围广,通信

企业资产管理系统(eam)设计与实施

EAM企业资产管理系统(EnterpriseAssetManagemeat,EAM)随着改革开放,我国技术密集型和资产密集型企业得到了大力的发展,在企业信息化建设的进程中,合理的应用EAM企业资产管理系统以资产.设备等现有的企业资源,以工单提交.审核.执行.预测的等几种运行模式.将企业资源信息集成在一个信息充分共享的平台中,发挥平台信息优势,合理分配资源,降低企业的投资成本,最大限度的将企业的资产得到最合理的应用.一.EAM企业资产管理系统设计 1 目前生产管理信息系统的现状 2001一2002

数据结构课程设计论文--学生信息管理系统

数据结构课程设计论文--学生信息管理系统 1.学生成绩分析问题 (1)问题描述.录入并保存一个班级学生多门课程的成绩,并对成绩进行分析. (2)基本要求.a)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat.b)对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出:计算每个人的平均成绩,按平均成绩排序,并生成文件:求出各门课程的平均成绩.最高分.最低分.不及格人数.60~69分人数.70~79分人数.80~89分人数.90分以上

第九周 程序阅读-学生信息管理系统

阅读程序"简单C++学生信息管理系统",找出其中出现构造函数.友元函数.运算符重载.静态数成员语法现象出现的位置,仔细体会其用法,在以后的设计中能够灵活应用有关方法和技巧. #include <iostream> #include <cstring> using namespace std; #define MAX 100 class CDate // 定义日期类 { private: unsigned short int year; // 年 unsigned

java课程设计(学生信息管理系统)

1.需求分析 功能要求: 1)需要管理的学生信息有:学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号. 2)实现查询.增.删.改等功能. 数据存储:数据库或文件. 2.本组课题及本人任务 本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面. 3.总体设计(概要设计) 本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号.并且使用数据库来储存学生信息. 小组成员 翁华辉:负责完成学

Java 学生信息管理系统的实现(简洁易懂),适合计算机专业学生参考,毕业论文设计参考等

编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************************************** =====欢迎进入学生管理信息系统===== 1. 新增学生 2. 修改学生 3. 删除学生 4. 查询学生 5. 退出系统 请选择(1-5): ************************************************** (