课 程 设 计
课程名称: C++课程设计
设计课题: 职工信息管理系统
指导教师:
总评成绩:
专业: 软件工程 班级:
姓名: 学号:
二O二四 年 六 月 三十 日
目 录
第一章 课设目标、内容及要求 1
1.1 课设目标 1
1.2 课程设计内容和要求 1
1.2.1需求分析 1
1.2.2系统功能 1
1.2.3设计要求 2
第二章 程序功能模块组成及流程图 3
2.1 功能模块 3
2.2 流程图 3
第三章 程序主要数据结构及函数列表 5
3.1数据结构 5
3.2函数列表 6
第四章 程序代码及运行结果 7
4.1 程序代码 7
4.2 运行结果 26
第五章 课程设计总结与体会 30
第六章 参考文献 31
前言
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。本组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行增加、删除、修改等功能,而用户也可以通过这个系统对职工信息进行查询等功能。在日益发展的现代社会,一个高效实用的职工信息管理系统已经是企业必不可少的一个管理工具,它可以使企业在管理方面减少很多时间,本课程设计针对现代社会企业对员工信息的管理而设计, 使员工的管理更加的简捷,更加的方便,界面友好,易于操作。采用的的开发环境是Dev c++ 5.11.在设计中,我们放弃的传统的面对过程的结构化设计思想,因为面向过程的结构体的或链表的方法存储每个员工的静态属性: 编号、姓名、性别、年龄、电话、工资等数据有很多的不方便也有很多的不安全,所以我们采用 C++的对象的编程思想来把每个职工的数据封装成一个人员的对象。使得操作的方式更加的合理,安全。也使本组课程设计的成员更加的了解面向对象程序设计的解决问题的思维方式
第一章 课设目标、内容及要求
1.1 课设目标
C++面向对象程序设计课程设计是集中实践性环节之一,是学习完《C++程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握C++面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的C++面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
1.通过本课程设计,培养上机动手编程能力,使学生巩固《C++程序设计》课程学习的内容,掌握C++面向对象程序设计语言里面类的定义,对象等的知识点的强化,强化上机动手能力,闯过编程关;
2.为后续各门计算机课程的学习打下坚实基础。
1.2 课程设计内容和要求
在如今信息化教育的今天,公司要更好的实现日常运行管理,不仅需要优秀的管理者,也需要有一个好的软件系统,职工信息管理系统是一套完整的信息化管理系统,用来实现公司职工的统一方便的信息管理操作,以用来实现公司职工流动及时进行更新、及时反馈公司职工信息、分析公司需求以达到提升工作效率、制定招聘计划的管理目的。
1.2.1 需求分析
某公司需要存储职工的工号、姓名、性别、学历、年龄、工资、地址、电话,并实现职工信息的添加、删除、修改、查找、显示、保存、排序。其中,排序可以按照工号、姓名或工资升降排序。查询可按工号、姓名或工资查找职工。
1.2.2 系统功能
该职工管理系统针对职工信息数据的处理设计了以下功能:
1.添加职工信息
职工信息,提供职工信息的添加,在该模块中设计了安全检查机制,即确认是否添加职工的信息,若对职工信息的添加不满意,则可以选择重新输入。还设置有返回主菜单的选项以方便用户。
2.修改职工信息
修改职工信息设置了职工人数检查,职工人数 NUM 的值为 0,则返回主菜单。如果职工人数 NUM 不为0,则进入删除职工信息的界面。修改职工信息板块功能强大,界面友好,用循环控制修改某员工属性,这样使得操作极为方便。
3.删除职工信息
删除职工信息中设计了对职工人数的检查,如果职工人数 NUM 的值为 0,则返回到主菜单。如果职工人数 NUM 不为 0,则进入删除职工信息的界面。界面包括职工信息列表,和删除选项,方便用户的操作。
4. 职工查找
通过 find()函数进行查找。该函数比较简单, 通过循环一次比较 Per[n]. num是否与你输入的 num 是否相等,如果相等,则输入到屏幕上,如果未找到任何匹配的职工,则显示“未找该职工” 。
5.保存职工信息
保存职工的信息,即为将当前所有的职工的信息存入到 workerlist. txt中。这里我们采用的是 C++的 ofstream的写入文件的对象进行控制。
6.职工信息的排序
对职工信息进行排序,包括按职工编号排序 (从小到大),按职工工资进行排序(从高到低)。其中也设置了职工人数检查机制,即:如果职工的人数为0则直接返回主菜单。
7.职工信息的显示
对职工信息进行显示,包括职工的工号,姓名,年龄,学历,工资地址,电话等信息。方便对职工了解
1.2.3 设计要求
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个方法的定义;
(6)完成系统的应用模块;
(7)功能调试;
第二章 程序功能模块组成及流程图
2.1 功能模块
(1)主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。
(2)信息添加模块完成职工信息的输入功能,输入信息包括工号、姓名、性别、学历、年龄、工资、地址、电话。
(3)信息显示模块完成已录入职工信息的显示。
(4)信息查询模块完成职工信息的查询,查询时对应有按工号、姓名或工资查询。
(5)信息修改模块完成职工信息的修改功能。
(6)信息删除功能模块完成职工信息的删除功能。
(7)信息排序模块完成对职工信息的排序,排序内容包括工号、姓名或工资按升降序排序。
(8)信息保存模块完成对职工信息的保存。
职工信息管理系统功能模块图如图2-1所示。
图2-1职工信息管理系统功能模块图
2.2 流程图
系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。职工信息管理系统的流程图如图2-2所示。
图2-2职工信息管理系统流程图
第三章 程序主要数据结构及函数列表
3.1数据结构
职工信息管理系统中主要的数据结构就是职工的信息,包含工号、姓名、性别、学历、年龄、工资、地址、电话,在处理过程中各项可以作为一个职工的不同属性来进行处理。
1.employee类:
class employee
{
public:
employee(){}
void show();//职工信息显示
~employee(){}
friend class employeeList;
private:
string num,name,sex,edu,address,tel;
int age,salary;
};
- employeeList类:
class employeeList
{
private:
employee w[N];
int NUM; //用来计算职工数目
int count;//用来暂时记录当前操作第几个职工
public:
void add();//职工信息录入
void sort();//职工信息排序
void search();//职工信息查找
void dele();//职工信息删除
void modify(); //职工信息修改
void save();//职工信息以文件形式保存
void showemployee ();//显示职工信息在屏幕上
employeeList(){
NUM=0;
count=0;
}
};
3.2 函数列表
- employee类的主要函数有:
employee (){}
void show();//职工信息显示
~employee(){} - employeeList类的主要函数有:
void add();//职工信息录入
void sort();//职工信息排序
void search();//职工信息查找
void dele();//职工信息删除
void modify(); //职工信息修改
void save();//职工信息以文件形式保存
void showemployee ();//显示职工信息在屏幕上
employeeList(){//构造函数
NUM=0;
count=0;
}
第四章 程序代码及运行结果
#4.1 程序代码
#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 employee
{
public:
employee(){}
void show();//职工信息显示
~employee(){}
friend class employeeList;
private:
string num,name,sex,edu,address,tel;
int age,salary;
};
class employeeList
{
private:
employee w[N];
int NUM; //用来计算职工数目
int count;//用来暂时记录当前操作第几个职工
public:
void add();//职工信息录入
void sort();//职工信息排序
void search();//职工信息查找
void dele();//职工信息删除
void modify(); //职工信息修改
void save();//职工信息以文件形式保存
void showemployee();//显示职工信息在屏幕上
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<<"** 7.职工信息保存 **" <<endl;
cout<<"** 0.退出 **" <<endl;
cout<<"** **" <<endl;
cout<<"***********************************************" <<endl;
cout<<endl;
}
void domain()//主菜单函数实现
{
employeeList wl;
while(1)
{
system("cls");//清屏
menu();
cout<<"请选择数字编号0~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.sort();break;
case 5:
wl.search();break;
case 7:
wl.save();break;
case 6:
wl.showemployee();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 employeeList::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[NUM].salary>>w[NUM].address>>w[NUM].tel;
++NUM;
count=NUM;
}
void employee::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 employeeList::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<<"请选择数字编号0~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 employeeList::showemployee()//职工信息显示函数实现
{
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 employeeList::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<<"请选择数字编号0~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 employeeList::sort()//职工信息排序功能实现
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单 "<<endl;
menu();
}
else
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<<"请选择数字编号0~6"<<endl;
int i5;
cin>>i5;
while(i5<0||i5>6)
{
cout<<"输入有误,请重新输入: "<<endl;
cin>>i5;
}
if(i5==1)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-1-i;j++)
if(w[j].num>w[j+1].num)
{
string temp;
temp=w[j].num;
w[j].num=w[j+1].num;
w[j+1].num=temp;
}
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;
}
else if (i5==2)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-1-i;j++)
if(w[j].num<w[j+1].num)
{
string temp;
temp=w[j].num;
w[j].num=w[j+1].num;
w[j+1].num=temp;
}
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;
}
else if (i5==3)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-1-i;j++)
if(w[j].name>w[j+1].name)
{
string temp;
temp=w[j].name;
w[j].name=w[j+1].name;
w[j+1].name=temp;
}
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;
}
else if (i5==4)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-i-1;j++)
if(w[j].name<w[j+1].name)
{
string temp;
temp=w[j].name;
w[j].name=w[j+1].name;
w[j+1].name=temp;
}
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;
}
else if (i5==5)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-i-1;j++)
if(w[j].salary>w[j+1].salary)
{
int temp;
temp=w[j].salary;
w[j].salary=w[j+1].salary;
w[j+1].salary=temp;
}
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;
}
else if(i5==6)
{
for(int i=0;i<count-1;i++)
for(int j=0;j<count-i-1;j++)
if(w[j].salary<w[j+1].salary)
{
int temp;
temp=w[j].salary;
w[j].salary=w[j+1].salary;
w[j+1].salary=temp;
}
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;
}
else if (i5==0)
menu();
}
void employeeList::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 employeeList::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; }
4.2 运行结果
4-1职工信息管理系统添加职工
4-2职工信息管理系统修改职工
4-3职工信息管理系统删除职工
4-4职工信息管理系统排序职工
4-5职工信息管理系统查询职工
4-6职工信息管理系统显示职工信息
4-7职工信息管理系统保存职工信息
4-8退出职工管理管理系统
第五章 课程设计总结与体会
通过17周的学习,我进一步掌握了C++语言类、以及封装知识的用法。我认为一个好的程序不仅是在设计时能够尽量简洁化、易懂化,并且还需要健壮,不能因为一点小错误而导致整个程序出错,并且编写程序时初期构想的思路非常重要,有一个好的思路,才能编出一个好的程序。综上,我认为这一次课程设计让我体会到了做一个程序应该有的步骤,为我今后的发展埋下了铺垫。
第六章 参考文献
谭浩强著.C++面向对象程序设计[M].北京:清华大学出版社,2015
吴乃陵,况迎辉,李海文著.VC++程序设计[M].北京:高等教育出版社,2003.8[3]邓宗明,张睿哲,张晓竞,等编著.Visual C++ 6.0编程实用技术与案例[M].北京:清华大学出版社,2001.5
李海文,吴乃陵等编C++程序设计及实践教程[M].北京:高等教育出版社,2003.9
陈清华,朱红主编.Visual C++课程设计案例精选与编程指导[M].南京:东南大学出版社,2003.06
灏浩强, C ++面问对象栓予议计 M .2版,北京:清华大学出版社,201a,遺浩强. C ++程序设计 M ,了版,北京;清华大学出版社,2018.
谭浩强. C 程序设计 M ,了淑,北京:清华大学出版社,2017.
ntel H M , Deitel PJC +十桎序议计驭栓 M 小辟力鹏,等译北京:机被工业出版社20m Linpman SB , LajoieJ , C ++ Yrimer (中义双)1M,潘发民,译.3版.北京:中国电力出版社,2002
Decoder . C / C ++程序设[ M ].北京:中国铁道出版社,2002.1 Brian Overland . C ++沿言命今评群[ M .重梁,等译.2版,北京:电子工业出版社,2002.
AI Stevens , Clayton Walnum .标准 C ++宝興[ M ].林丽闽,等译.北京:电子工业出版社,2001.
Leen Ammeraal . C ++程序设计教程[ M ],刘瑞挺,等译.3版北京:中国铁道出版社,2003.