主要功能:

1.添加员工信息

2.显示员工信息

3.删除员工信息

4.修改员工信息

5.查找员工信息

6.员工信息排序

7.清空数据

(1)显示数据

(2)修改数据

(3)查找数据

(4)信息排序

部分代码展示:workerManager.cpp。需要完整代码可以留邮箱,有时间就发

#include "stdafx.h"
#include "workerManager.h"WorkerManager::WorkerManager()
{//1.文件不存在ifstream ifs;ifs.open(FILENAME, ios::in);//读文件if (!ifs.is_open()){//cout << "文件不存在" << endl;this->m_staffNum = 0;this->m_staffArray = NULL;this->m_FileIsEmpty = true;ifs.close();return;}//2.文件存在,数据为空char ch;ifs >> ch;if (ifs.eof()){//cout << "文件为空!" << endl;this->m_staffNum = 0;this->m_staffArray = NULL;this->m_FileIsEmpty = true;ifs.close();return;}//3.文件存在数据int num = this->get_staffNum();this->m_staffNum = num;//开辟空间this->m_staffArray = new Worker*[this->m_staffNum];//将文件中的数据存在数组中this->init_staff();
}void WorkerManager::Show_Menu()
{cout << "*********************************************" << endl;cout << "*************欢迎进入酒店管理系统************" << endl;cout << "***************0.退出管理系统****************" << endl;cout << "***************1.添加员工信息****************" << endl;cout << "***************2.显示员工信息****************" << endl;cout << "***************3.删除员工信息****************" << endl;cout << "***************4.修改员工信息****************" << endl;cout << "***************5.查找员工信息****************" << endl;cout << "***************6.员工信息排序****************" << endl;cout << "***************7.清空员工信息****************" << endl;cout << "*********************************************" << endl;cout << endl;
}void WorkerManager::exitSystem()
{cout << "系统退出" << endl;system("pause");exit(0);
}void WorkerManager::Add_staff()
{cout << "输入添加员工的数量:" << endl;int  addNum = 0;  //保存员工的数量cin >> addNum;if (addNum > 0){//计算新空间的大小int newSize = this->m_staffNum + addNum;//开辟新空间Worker ** newSpace=new Worker *[newSize];//将原始数据拷贝到新空间中if (this->m_staffArray != NULL){for (int i = 0; i < this->m_staffNum; i++){newSpace[i] = this->m_staffArray[i];}}for (int i = 0; i < addNum; i++){int id;string name;int dId;cout << "请输入第" << i + 1 << "个员工的编号:" << endl;cin >> id;//判断该编号是否存在int ret = this->IsExist(id);  if (ret != -1){while (1){cout << "该编号已存在,请重新输入编号:" << endl;cin >> id;ret = this->IsExist(id);if (ret == -1){break;}}}cout << "请输入第" << i + 1 << "个员工的姓名:" << endl;cin >> name;cout << "请输入该员工的岗位:" << endl;cout << "1.普通员工" << endl;cout << "2.经理" << endl;cout << "3.老板" << endl;cin >> dId;Worker *worker = NULL;switch (dId){case 1:worker = new staff(id, name, 1);break;case 2:worker = new manager(id, name, 2);break;case 3:worker = new boss(id, name, 3);break;default:break;}//将数据保存newSpace[this->m_staffNum + i] = worker;}//释放原有空间delete[] this->m_staffArray;//更改新空间的指向this->m_staffArray = newSpace;//更新新的员工数量this->m_staffNum = newSize;//提示添加成功this->m_FileIsEmpty = false;//文件不为空cout << "成功添加" << addNum << "个员工" << endl;this->save();}else{cout << "输入有误!" << endl;}//按任意键回到上级目录system("pause");system("cls");
}void WorkerManager::save()
{ofstream ofs;ofs.open(FILENAME, ios::out);  //写文件for (int i = 0; i < this->m_staffNum; i++)  {ofs << this->m_staffArray[i]->m_Id << " "<< this->m_staffArray[i]->m_Name << " "<< this->m_staffArray[i]->m_dId << endl;}//关闭文件ofs.close();
}int WorkerManager::get_staffNum()
{ifstream ifs;ifs.open(FILENAME, ios::in); //打开文件,读操作int id;string name;int dId;int num = 0;while (ifs >> id && ifs >> name && ifs >> dId){num++;}return num;
}void WorkerManager::init_staff()
{ifstream ifs;ifs.open(FILENAME, ios::in);int id;string name;int dId;int index = 0;while (ifs >> id && ifs >> name && ifs >> dId){Worker * worker = NULL;if (dId == 1){worker = new staff(id, name, dId);}else if (dId == 2){worker = new manager(id, name, dId);}else if (dId == 3){worker = new boss(id, name, dId);}this->m_staffArray[index] = worker;index++;}ifs.close();
}//显示员工数据
void WorkerManager::show_staff()
{if (this->m_FileIsEmpty){cout << "文件不存在或者记录为空" << endl;}else{for (int i = 0; i < m_staffNum; i++){this->m_staffArray[i]->showInfo();}}system("pause");system("cls");
}
//
int WorkerManager::IsExist(int id)
{int index = -1;for (int i = 0; i < this->m_staffNum; i++){if (this->m_staffArray[i]->m_Id == id){index = i;break;}}return index;
}//删除员工
void WorkerManager::Del_staff()
{if (this->m_FileIsEmpty){cout << "文件不存在或者为空" << endl;}else{cout << "请输入删除员工的的编号:" << endl;int id = 0;cin >> id;int index = this->IsExist(id);if (index != -1)  //员工存在,删除{for (int i = index; i < this->m_staffNum - 1; i++){this->m_staffArray[i] = this->m_staffArray[i + 1];}this->m_staffNum--; //更新员工的数量//文件数据同步this->save();cout << "删除成功" << endl;}else{cout << "该员工不存在" << endl;}//清屏操作system("pause");system("cls");}
}//修改员工数据
void WorkerManager::Mod_staff()
{if (this->m_FileIsEmpty){cout << "文件不存在或者为空" << endl;}else{cout << "请输入修改的职工编号:" << endl;int id;cin >> id;int ret=this->IsExist(id);if (ret != -1){delete this->m_staffArray[ret];int newId = 0;string newName = " ";int newdId = 0;cout << "查找到" << id << "号职工,请输入新职工编号:" << endl;cin >> newId;cout << "请输入新的名字:" << endl;cin >> newName;cout << "请输入新的岗位" << endl;cout << "1.清洁员" << endl;cout << "2.经理" << endl;cout << "3.老板" << endl;cin >> newdId;Worker * worker = NULL;switch (newdId){case 1:worker = new staff(newId, newName, newdId);break;case 2:worker = new manager(newId, newName, newdId);break;case 3:worker = new boss(newId, newName, newdId);break;default:break;}//更新数据到数组中this->m_staffArray[ret] = worker;cout << "修改成功" << endl;//保存到文件中this->save();}else{cout << "修改失败,查无此人" << endl;}}system("pause");system("cls");
}//查找员工
void WorkerManager::Find_staff()
{if (this->m_FileIsEmpty){cout << "文件不存在或者数据为空";}else{cout << "请输入查找方式:" << endl;cout << "1.按编号查找" << endl;cout << "2.按姓名查找" << endl;int select = 0;cin >> select;if (select == 1){int id;cout << "请输入查找的职工编号:" << endl;cin >> id;int ret = IsExist(id);if (ret != -1){cout << "查找成功!该员工信息如下:" << endl;this->m_staffArray[ret]->showInfo();}else{cout << "查无此人" << endl;}}else if (select == 2){string name;cout << "请输入查找的职工名字:" << endl;cin >> name;//判断是否查到bool flag = false;//默认未找到for (int i = 0; i < m_staffNum; i++){if (this->m_staffArray[i]->m_Name == name){cout << "查找成功,职工编号为:"<< this->m_staffArray[i]->m_Id<< "该员工信息如下:" << endl;flag = true;this->m_staffArray[i]->showInfo();}}if (flag == false){cout << "查无此人" << endl;}}else{cout << "查无此人" << endl;}}system("pause");system("cls");
}
//对员工编号进行排序
void WorkerManager::Sort_staff()
{if (this->m_FileIsEmpty){cout << "文件不存在或者为空" << endl;system("pause");system("cls");}else{cout << "请选择排序方式:" << endl;cout << "1.升序排列" << endl;cout << "2.降序排序" << endl;int select = 0;cin >> select;for (int i = 0; i < m_staffNum; i++){int minOrMax = i;  //最小值或者对大值的下标for (int j = i + 1; j < m_staffNum; j++){if (select == 1) //升序{if (this->m_staffArray[minOrMax]->m_Id > this->m_staffArray[j]->m_Id){minOrMax = j;}}else //降序{if (this->m_staffArray[minOrMax]->m_Id < this->m_staffArray[j]->m_Id){minOrMax = j;}}}if (i != minOrMax){Worker * temp = this->m_staffArray[i];this->m_staffArray[i] = this->m_staffArray[minOrMax];this->m_staffArray[minOrMax] = temp;}}cout << "排序成功!" << endl;this->show_staff();this->save();}
}void WorkerManager::Clean_File()
{cout << "确认清空数据?" << endl;cout << "1.确认" << endl;cout << "2.返回" << endl;int select = 0;cin >> select;if (select == 1){ofstream ofs(FILENAME, ios::trunc);//删除后重建,相当于清空ofs.close();if (this->m_staffArray != NULL){//删除堆区的每个对象for (int i = 0; i < this->m_staffNum; i++){delete this->m_staffArray[i];this->m_staffArray[i] = NULL;}//删除堆区数组指针delete[] this->m_staffArray;this->m_staffArray = NULL;this->m_staffNum = 0;this->m_FileIsEmpty = true;}cout << "清空成功" << endl;}system("pause");system("cls");
}
WorkerManager::~WorkerManager()  //释放
{if (this->m_staffArray != NULL){for (int i = 0; i < m_staffNum; i++){delete this->m_staffArray[i];this->m_staffArray[i] = NULL;}delete[]this->m_staffArray;this->m_staffArray = NULL;}
}

C++ 酒店管理系统相关推荐

  1. Java项目:酒店管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 主要技术:java springmvc  mybatis   mysql  tomcat js   jauery  jsp   log4j等 ...

  2. java 酒店系统_基于JAVA的酒店管理系统

    <基于JAVA的酒店管理系统>由会员分享,可在线阅读,更多相关<基于JAVA的酒店管理系统(31页珍藏版)>请在人人文库网上搜索. 1.酒店管理系统,专业: 姓名: 指导教师, ...

  3. 酒店管理系统c语言带注释,酒店管理系统--C语言版.pdf

    酒店管理系统...C语言版. // #include #include #include #include //成员变量的声明 int i,j,k,p 0; char temp[] "&qu ...

  4. mysql 酒店管理设计_酒店管理系统的设计与实现(Myeclipse,MySQL)

    酒店管理系统的设计与实现(Myeclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库) 本系统是一个酒店管理系统,以Java ...

  5. Oracle客房管理系统论文,[转载]基于WEB的酒店管理系统论文【1】

    摘 要 现代化的酒店组织庞大.服务项目多.信息量大,要想提高劳动生产.降低成本.提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理.酒店管理系统正是为此而设计的.优秀的酒店 ...

  6. 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。“Room[][] roo

    代码 房间类 package com.bjpowernode.javase.day23homework; //每一个房间Room应该有:房间编号.房间类型.房间是否空闲 public class Ro ...

  7. Topsky酒店管理系统v1.4.2.3

    介绍: Topsky 是一款针对中小型酒店设计的管理系统,基于 .Net Framework 4.5.2 设计,C# 语言编写,采用 SQL Server 2008 R2 数据库作为数据支持. 开发环 ...

  8. java酒店信息管理系统_java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 要求: [酒店管理系统]HotelSystem.java 某酒店有12层楼,每层楼有10个房间(二维数组),要求为该酒 ...

  9. 基于JAVA+Swing+MYSQL的酒店管理系统

    酒店管理系统 本项目主要是基于Swing框架搭建的java桌面应用程序 在项目中主要实现的功能有: 注册界面.实现了验证码的生成和验证,以及出生日期的日历控件化的选择,当用户注册成功后,用户名密码就会 ...

  10. JAVA day06 酒店管理系统

    酒店管理系统分析 业务: 1.查房(show)      1001    1002    1003    1004    1005     null    null    null    null   ...

最新文章

  1. Flex 按钮添加图标
  2. oc引导win方法_[OC更新]机械革命8代、9代标压稳定版更新
  3. 打印多项式的那些坑(洛谷P1067题题解,Java语言描述)
  4. 多进程服务器(python 版)
  5. 带你学习ES5中新增的方法
  6. word一键排版工具_超赞的Word标尺小工具,轻松帮你搞定各种「对不齐」排版问题...
  7. mysql两台服务器怎么做数据同步_让两台服务器的MySQL数据同步(互为主从关系)...
  8. android ffmpeg 优点_在Android中使用FFmpeg(android studio环境)
  9. typescript 方法后面加感叹号_typescript专题(四) 「泛型」
  10. F5实现2台机器的热备 Priority Group Activation
  11. JVM 方法调用之动态分派
  12. Mac下adb不能重启
  13. IDEA Maven 使用教程
  14. 论文阅读——LSQ:Learned Step Size Quantization
  15. Cortex-M中特别实用的DWT计数器
  16. 论文阅读:Regularizing Deep Networks with Semantic Data Augmentation
  17. 微信开发者工具登录二维码不显示
  18. 北大计算机录取分数线2017,北大2017年高考在全国31省市录取分数线人数对比
  19. [Swift]UIButton文本添加下划线
  20. repair mysql_REPAIR TABLE语法--MySql数据库

热门文章

  1. Arduino 红外接收码获取程序
  2. 苹果录屏没声音_苹果手机外放没声音,自己动手就能解决
  3. 【债券量化策略研究系列】债券风险测度指标:久期(Duration)与凸度(Convexity)
  4. 《IS-IS网络设计解决方案》一第6章 最短路径优先算法6.1 SPF算法概述
  5. 设计师培养设计思维的5个方法
  6. 信度和效度经典例子_如何做信度与效度分析?
  7. 因为计算机中丢失lua.dll,lua51.dll丢失修复
  8. 用Java 语言实现正整数的质因数分解
  9. popperjs V2 之应用库 tippy.js 源码阅读
  10. 功能设计:如何实现一个扫码上传附件的功能