当前位置:首页 >> 表格类模板 >>

员工信息管理系统


面向对象编程实验报告

题目:

公司员工信息管理设计

学生姓名: 学 号:

田涛 201306090126 电气与信息工程学院 网络工程 6 月 26 日

院 (系) : 专 业: 2015 年

目 录
选题背景 实验内容 实验环境 程序清单 调试结果及分析 总结 参考文献资料

实验内容 一、 选题背景

本次实验选题共有 16 道题目,这次实验我们组选的是第 5 小题,题目要求 为:某公司需要存储雇员的编号、姓名、所在部门、级别,并进行工资的计算。 其中,固原分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司 人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入输出 等内容。实现功能: (1)添加功能 (2)修改功能 (3)删除功能 (4)查找功能 (5)保存功能 (6)显示功能
二、 实验环境

本次实验所选择的环境是 Visual c++, 由于 Visual c++是学习 c 语言时所使用 的环境,相对比较熟悉,方便我们进行操作。
三、 设计思路或方案

3.1 程序设计思想

该职工管理系统针对员工信息数据的处理设计了以下功能:
1. 添加员工信息 添加员工信息,提供员工信息的添加,在该模块中设计了安全检查机制,即 确认是否添加员工的信息,若对员工信息的添加不满意,则可以选择重新输入。 还设置有返回主菜单的选项以方便用户。 2. 修改员工信息 修改员工信息设置了员工人数检查,果员工人数 NUM 的值为 0,则返回 主菜单。如果员工人数 NUM 不为 0,则进入删除员工信息的界面。修改员工信 息板块功能强大,界面友好,用循环控制修改某员工属性,这样使得操作极为方 便。 3. 删除员工信息 删除员工信息中设计了对员工人数的检查, 如果员工人数 NUM 的值为 0, 则返回到主菜单。如果员工人数 NUM 不为 0,则进入删除员工信息的界面。界 面包括员工信息列表,和删除选项,方便用户的操作。 4. 员工查找 通过 find()函数进行查找。该函数比较简单,通过循环一次比较 Per[n].num 是否与你输入的 num 是否相等,如果相等,则输入到屏幕上,如果未找到任何 匹配的员工,则显示“未找该员工” 。

5. 保存职工员工信息 保存员工的信息,即为将当前所有的员工的信息存入到 workerlist.txt 中。 这里我们采用的是 C++的 ofstream 的写入文件的对象进行控制。 6. 员工信息的显示 对职工信息进行显示,包括职工的工号,姓名,年龄,学历,工资地址, 电话等信息。方便对员工了解。
程序清单

#include<iostream> #include"string" #include<fstream> #include <stdlib.h> #include <stdio.h> #define N 100//N作为最大职工总数 int f=0;//f作为开关 using namespace std; string p;//p作为接收菜单选项的字符串 void menu();//显示菜单 class worker { public: worker(){} void show();//员工信息显示 ~worker(){} friend class WorkerList; private: string num,name,sex,edu,address,tel; int age,salary; };

class WorkerList { private: worker w[N]; int NUM;//用来计算员工数目 int count;//用来暂时记录当前操作第几个员工 public: void add();//员工信息录入 void search();//员工信息查找 void dele();//员工信息删除 void modify();//员工信息修改 void save();//员工信息以文件形式保存 void showworker();//显示员工信息在屏幕上

WorkerList(){ NUM=0; count=0; } };

void menu() { cout<<endl; cout<<"***********************************************"<<endl; 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<<"** 0.退出 **"<<endl; cout<<"** **"<<endl; cout<<"***********************************************"<<endl; cout<<endl; }

void domain()//主菜单函数实现 { WorkerList wl; while(1) { system("cls"); menu(); cout<<"请选择数字编号~7"<<endl; int i1; cin>>i1;

while(!(i1>=0&&i1<=7)) { cout<<"输入有误,请重新输入:"<<endl; cin>>i1; } switch(i1) { case 1: wl.add();break; case 2: wl.modify();break; case 3: wl.dele();break; case 4: wl.search();break; case 5: wl.save();break; case 6: wl.showworker();break; case 0: cout<<"系统退出! !"<<endl; exit(0); default: break; } cout<<"是否返回主菜单? Y/N"<<endl; cin>>p; if(p=="n"||p=="N") { cout<<"系统退出! !"<<endl; exit(0); } //getchar(); } }

void WorkerList::add()//员工信息添加函数实现

{ cout<<"请输入员工信息:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; string num; cin>>num; for(int i=0;i<NUM;i++) while(num==w[i].num) { cout<<"此员工编号已存在,请重新输入:"<<endl; cin>>num; } w[NUM].num=num; cin>>w[NUM].name>>w[NUM].sex>>w[NUM].edu>>w[NUM].age>>w[NU M].salary>>w[NUM].address>>w[NUM].tel; ++NUM; count=NUM; }

void worker::show()//显示员工信息函数实现 { cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; cout<<num<<'\t'<<name<<'\t'<<sex<<'\t'<<edu<<'\t'<<age<<'\t'<<salary<<' \t'<<address<<'\t'<<tel<<endl; cout<<endl; }

void WorkerList::modify()//员工信息修改函数实现 { if(NUM<=0)

{ cout<<"没有员工信息存入,系统将返回主菜单"<<endl; menu(); } else { cout<<"员工信息如下:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; for(int i=0;i<count;i++) cout<<w[i].num<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].edu<<'\t'<<w[ i].age<<'\t'<<w[i].salary<<'\t'<<w[i].address<<'\t'<<w[i].tel<<endl; } cout<<"请输入需要修改信息员工的工号:"<<endl; string num1; cin>>num1; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num1==w[j].num) { flag=0; k=j; break; } } if(flag) { cout<<"不存在此员工,请重新输入:"<<endl; j=0; cin>>num1; } } cout<<"你选择的员工的信息为:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; cout<<w[k].num<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].edu<<'\t'<< w[k].age<<'\t'<<w[k].salary<<'\t'<<w[k].address<<'\t'<<w[k].tel<<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<<"请选择数字编号~8"<<endl; int i3; cin>>i3; while(i3<0||i3>8) { cout<<"输入有误,请重新输入:"<<endl; cin>>i3; } switch(i3) { case 1: cout<<"请输入新的员工工号:"; cin>>w[k].num; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 2: cout<<"请输入新的员工姓名:"; cin>>w[k].name; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 3: cout<<"请输入新的员工性别:"; cin>>w[k].sex; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 4: cout<<"请输入新的员工学历:"; cin>>w[k].edu; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 5: cout<<"请输入新的员工年龄:";

cin>>w[k].age; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 6: cout<<"请输入新的员工工资:"; cin>>w[k].salary; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 7: cout<<"请输入新的员工地址:"; cin>>w[k].address; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 8: cout<<"请输入新的员工电话:"; cin>>w[k].tel; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; case 0: menu(); default: break; } }

void WorkerList::showworker()//员工信息显示函数实现 { if(NUM<=0) { cout<<"没有员工信息存入,系统将返回主菜单"<<endl; menu(); }

else cout<<"已保存的员工信息如下:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; for(int i=0;i<count;i++) cout<<w[i].num<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].edu<<'\t'<<w[ i].age<<'\t'<<w[i].salary<<'\t'<<w[i].address<<'\t'<<w[i].tel<<endl; /*cout<<"是否返回主菜单? Y/N"<<endl; cin>>p; while(1) { if(p=="y"||p=="Y") { menu(); } else if(p=="n"||p=="N") { cout<<"系统退出!!"<<endl; exit(0); } else { cout<<"输入有误,请重新输入:"; cin>>p; } }*/ } void WorkerList::search() { if(NUM<=0) { cout<<"没有员工信息存入,系统将返回主菜单"<<endl; menu(); } else cout<<"请选择查找方式:"<<endl; cout<<"***********************************************"<<endl; cout<<"** 1.按工号查找 **"<<endl; cout<<"** 2.按姓名查找 **"<<endl; cout<<"** 3.按工资查找 **"<<endl; cout<<"** 4.按学历查找 **"<<endl; cout<<"** 0.返回主菜单 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl;

cout<<"请选择数字编号~4"<<endl; int i4; cin>>i4; while(i4<0||i4>4) { cout<<"输入有误,请重新输入:"<<endl; cin>>i4; } if(i4==1) { string num2; cout<<"请输入要查询的员工的工号:"<<endl; cin>>num2; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num2==w[j].num) { flag=0; k=j; cout<<"查询的员工信息如下:"<<endl; cout<<"工号\t姓名 \t性别 \t学历\t年龄 \t工资\t地址 \t 电话"<<endl; cout<<w[k].num<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].edu<<'\t'<< w[k].age<<'\t'<<w[k].salary<<'\t'<<w[k].address<<'\t'<<w[k].tel<<endl; break; } } if(flag) { flag=0; cout<<"不存在此员工!!\n返回主菜单"<<endl; break; } } } else if(i4==2) { string name2; cout<<"请输入要查询的员工的姓名:"<<endl;

cin>>name2; int j2=0,k2; int flag2=1; while(flag2) { for(;j2<count;j2++) { if(name2==w[j2].name) { flag2=0; k2=j2; cout<<"查询的员工信息如下:"<<endl; cout<<"工号\t姓名 \t性别 \t学历\t年龄 \t工资\t地址 \t 电话"<<endl; cout<<w[k2].num<<'\t'<<w[k2].name<<'\t'<<w[k2].sex<<'\t'<<w[k2].edu<<' \t'<<w[k2].age<<'\t'<<w[k2].salary<<'\t'<<w[k2].address<<'\t'<<w[k2].tel<<endl ; break; } } if(flag2) { flag2=0; cout<<"不存在此员工!!\n返回主菜单"<<endl; break; } } } else if(i4==3) { int salary2; cout<<"请输入要查询的员工的工资:"<<endl; cin>>salary2; int j3=0,k3; int flag3=1; while(flag3) { for(;j3<count;j3++) { if(salary2==w[j3].salary) { flag3=0;

k3=j3; cout<<"查询的员工信息如下:"<<endl; cout<<"工号\t姓名 \t性别 \t学历\t年龄 \t工资\t地址 \t 电话"<<endl; cout<<w[k3].num<<'\t'<<w[k3].name<<'\t'<<w[k3].sex<<'\t'<<w[k3].edu<<' \t'<<w[k3].age<<'\t'<<w[k3].salary<<'\t'<<w[k3].address<<'\t'<<w[k3].tel<<endl ; break; } } if(flag3) { flag3=0; cout<<"不存在此员工!!\n返回主菜单"<<endl; break; } } } else if(i4==4) { string edu2; cout<<"请输入要查询的员工的学历:"<<endl; cin>>edu2; int j4=0,k4; int flag4=1; while(flag4) { for(;j4<count;j4++) { if(edu2==w[j4].edu) { flag4=0; k4=j4; cout<<"查询的员工信息如下:"<<endl; cout<<"工号\t姓名 \t性别 \t学历\t年龄 \t工资\t地址 \t 电话"<<endl; cout<<w[k4].num<<'\t'<<w[k4].name<<'\t'<<w[k4].sex<<'\t'<<w[k4].edu<<' \t'<<w[k4].age<<'\t'<<w[k4].salary<<'\t'<<w[k4].address<<'\t'<<w[k4].tel<<endl ; break; } }

if(flag4) { flag4=0; cout<<"不存在此员工!!\n返回主菜单"<<endl; break; } } } else if(i4==0) menu(); }

void WorkerList::dele()//员工信息删除功能实现 { if(NUM<=0) { cout<<"没有员工信息存入,系统将返回主菜单"<<endl; menu(); } else cout<<"职工信息如下:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; for(int i=0;i<count;i++) cout<<w[i].num<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].edu<<'\t'<<w[ i].age<<'\t'<<w[i].salary<<'\t'<<w[i].address<<'\t'<<w[i].tel<<endl; cout<<"请输入需要删除信息员工的工号:"<<endl; string num3; cin>>num3; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num3==w[j].num) { flag=0;

k=j; break; } } if(flag) { cout<<"不存在此员工,请重新输入:"<<endl; j=0; cin>>num3; } } cout<<"你选择的员工的信息为:"<<endl; cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; cout<<w[k].num<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].edu<<'\t'<< w[k].age<<'\t'<<w[k].salary<<'\t'<<w[k].address<<'\t'<<w[k].tel<<endl; /*cout<<"确认请输入Y\t返回主菜单请输入N "<<endl; string p; cin>>p; while(1) { if(p=="y"||p=="Y") { cout<<"员工信息已删除!"<<endl; for(int i=0;i<count;i++) if(w[i].num==num3) int j=i; for(;j<=count-1;j++) w[j]=w[j+1]; count--; break; } else if(p=="n"||p=="N") { menu(); } else { cout<<"输入有误,请重新输入:"; cin>>p; } }*/ } void WorkerList::save()

{ if(NUM<=0) { cout<<"没有员工信息存入,系统将返回主菜单"<<endl; menu(); } else { ofstream fout; fout.open("D:\\worker.txt",ios::out); cout<<"文件正在保存......请稍候! !"<<endl; cout<<"数据保存成功! ! !"<<endl; fout<<"已保存员工信息如下:"<<endl; fout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<<endl; for(int i=0;i<count;i++) fout<<w[i].num<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].edu<<'\t'<<w[i ].age<<'\t'<<w[i].salary<<'\t'<<w[i].address<<'\t'<<w[i].tel<<endl; cout<<"系统返回主菜单:"<<endl; menu(); fout.close(); } }

int main() { domain(); return 0; }

调试结果及分析

总结
在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存在着 不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存 在一些缺陷和不足。因为对职工信息管理的整个流程不够熟悉,在需求分析时 未能做到完全满足用户的需求。 尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据 库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必 需的。通过开发这个系统,我组掌握了的项目基本开发过程,用到的知识巩固了 我组对 C 语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具 的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献

C++语言基础教程(第三版)吕凤翥编著 C++ primer 中文版 王刚 杨巨峰 译

Stanley B.Lippman 著


赞助商链接
相关文章:
企业职工信息管理系统
14 企业职工信息管理系统摘要随着科技的不断发展,企业的不断壮大,传统的企业人事管理主要以人工 为主,人工管理既费力、费时,又容易出现错误,严重制约了企业员工管理...
-职工信息管理系统
-职工信息管理系统 - 西安文理学院 信息工程学院 软件编程课程设计报告 设计题目: 学生学号: 专业班级: 学生姓名: 学生成绩: 指导教师: 课题工作时间: 职工信息...
员工信息系统管理源程序
员工信息系统管理源程序 - 大作业源程序 Bean package bean; publicclass Page { privateinttotalPage; privateintcurrent...
员工信息管理系统论文
中央广播电视大学开放教育 计算机科学与技术毕业论文 员工信息管理系统 姓学学 名: 郭岩 校:河南广播电视大学吉利分校 号: 1341001209774 王卫兵 2015 年 6 月 22...
公司员工信息管理系统设计
公司员工信息管理系统设计_互联网_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档公司员工信息管理系统设计_互联网_IT/计算机_专业资料。面向对象程序设计(...
员工信息管理系统
员工信息管理系统 - 员工信息管理系统 系统的功能描述 设计一个员工信息管理系统,使之具有以下功能 (1)系统以菜单方式工作 ,应为用户提供清晰的使用提示 ,依据用户...
《员工信息管理系统》概要设计说明书
员工信息管理系统概要设计说明书》一、引言 1.1 编写目的根据《员工信息管理系统需求规格说明书》 ,在仔细考虑讨论之后,我们又 进一步对《员工信息管理系统》软件...
职工信息管理系统
当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的 不慎而出现纰漏。因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到 员工管理...
员工信息管理系统
员工信息管理系统 一、 语言和环境 1、 实现语言:C# 2、 环境要求:Visual Studio.Net 2010、SQL Server 2008 3、 开发架构:三层架构 二、 要求 公司要建立...
企业员工信息管理系统
系统主要是针对中小型企业员工的工资、出勤情况等信息进 行管理,系统主要包括以下几部分: (1)对员工基本信息管理 能够添加、删除、修改、保存、打印和查找员工...
更多相关标签: