数据结构 程序设计 员工管理系统.docx
《数据结构 程序设计 员工管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构 程序设计 员工管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
![数据结构 程序设计 员工管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/12/0cf96d39-b820-4fdd-abe2-0529036ad0d6/0cf96d39-b820-4fdd-abe2-0529036ad0d61.gif)
数据结构程序设计员工管理系统
学号
数据结构课程设计
设计说明书
员工管理系统
起止日期:
2011年12月12日至2011年12月16日
学生姓名
班级
成绩
指导教师(签字)
电子与信息工程系
2011年12月16日
天津城市建设学院
课程设计任务书
2010—2011学年第1学期
电子与信息工程系软件工程专业班级
课程设计名称:
数据结构课程设计
设计题目:
员工管理系统
完成期限:
自2011年12月12日至2011年12月16日共1周
设计依据、要求及主要内容(可另加附页):
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。
凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
员工管理系统:
1)问题描述
每个员工的信息包括:
编号、姓名、性别、出生年月、学历、职务、电话、住址等。
系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
2)基本要求
(1)排序:
按不同关键字,对所有员工的信息进行排序。
(2)查询:
按特定条件查找员工。
(3)更新:
按编号对某个员工的某项信息进行修改。
(4)插入:
加入新员工的信息。
(5)删除:
按编号删除已离职的员工的信息。
四、参考文献
1.王红梅.数据结构.清华大学出版社
2.王红梅.数据结构学习辅导与实验指导.清华大学出版社
3.严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社
五.主要内容:
(一)需求分析
(1)。
系统分析:
本系统为员工管理系统,要求对员工的各项信息进行操作,其中包括新员工信息的录入,录入后对员工信息的查询,对目前所有员工信息的浏览,查看所有员工信息后对其进行修改,删除目前某个员工的信息。
通过以上所有要求我得出了如下结论:
首先对一个系统管理应该有个主界面,所以我先设定一个主菜单,其中包括了如下几项:
1,员工信息输入。
2,员工信息修改。
3,员工信息删除。
4,员工信息查找。
5,退出。
这样就需要编写一个主菜单的方法MAIN()方法来实现,
第二项是员工信息输入,这项重点内容是要对输入进去的信息进行储存,包括员工的编号,姓名,性别,生日,电话,学历,职务,地址等。
所以我引用了以个来完成这个操作,同时定义以个插入方法ADD()来实现数据的录入。
接下来是员工信息修改,编写MODIFY()方法。
首先要对其进行查询,如果没有其员工编号,则报错,如果有则显示其对应编号的员工信息,同时显示对员工各项的修改项目,修改成功后返回。
第四项,员工信息删除,DELE()方法,首先也先是查询,并输出目前所有员工信息,输入要删除的员工编号,删除员工信息,返回主界面。
第五项,员工信息查找,FIND()方法,输入员工的编号,找到匹配的员工信息,若有,则返回本条信息,若没有则报错。
通过以上分析,我确定了本系统应包含5个主要方法分别是:
主菜单调用方法MAIN()方法,员工输入ADD()方法,员工信息修改MODIFY()方法,员工信息删除DELE方法和员工信息查找FIND()方法。
并根据其上的方法引用String.h和Fstream等来实现其操作。
(2)系统流程图
(二).概要设计:
本系统从总体上分一共划分为5个模块,分别menu(),add(),modify(),find(),
dele()等。
1>.menu()主菜单。
2>.add()函数实现对员工基本信息的添加:
voidadd()
{
while
(1)//控制信息添加多次的循环
{
for(inti=0;i{
}
}
3>.modify()函数实现对员工信息的修改:
if(NUM==0)//判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数
{
}
for(inti1=0;i1{
}
for(inti=0;i{
}
}
4>.find()函数实现按编号对员工的查找:
voidfind()
{if(NUM==0)//判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数
{
}
intfound=0;//用于检测是否找到该编号员工
for(inti=0;i{
}
}
5>.dele()函数实现对已离职员工信息的删除:
voiddele()
{if(NUM==0)//判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数
for(inti=0;i{
}
}
(三).详细设计:
定义一个Person封装类,每个成员都是该封装类的对象。
该封装类中包含员工编号,姓名,性别,出生日期,电话、工资,学历,职务,地址等成员变量。
详细代码如下:
#include
#include
#include
#include
usingnamespacestd;
intNUM=0;
classPerson{
public:
Person(){}
voidsetPerson(char*num1,char*name1,char*sex1,char*birth1,char*tel1,char*degree1,char*position1,char*address1);
friendvoidadd();
friendvoidmodify();
friendvoiddele();
friendvoidfind();
private:
charnum[15];
charname[15];
charsex[5];
charbirth[15];
chartel[15];
chardegree[15];
charposition[15];
charaddress[15];
};
PersonPer[200];
voidPerson:
:
setPerson(char*num1,char*name1,char*sex1,char*birth1,char*tel1,char*degree1,char*position1,char*address1)
{
strcpy(num,num1);
strcpy(name,name1);
strcpy(sex,sex1);
strcpy(birth,birth1);
strcpy(tel,tel1);
strcpy(degree,degree1);
strcpy(position,position1);
strcpy(address,address1);
}
//主菜单
voidmenu()
{cout<<"\n\n"<cout<<"\t\t*************************************************"<cout<<"\t\t\t\t员工管理系统"<cout<<"\t\t*------------------------------------------*"<cout<<"\t\t*\t\t1.员工信息输入\t\t*"<cout<<"\t\t*\t\t2.员工信息修改\t\t*"<cout<<"\t\t*\t\t3.员工信息删除\t\t*"<cout<<"\t\t*\t\t4.员工信息查找\t\t*"<cout<<"\t\t*\t\t0.退出\t\t\t*"<cout<<"\t\t*************************************************"<cout<<"\n\n\t请选择(0~4):
";
}
//1.员工信息输入
voidadd()
{charnum[15];
charname[15];
charsex[5];
charbirth[15];
chartel[15];
chardegree[15];
charposition[15];
charaddress[15];
system("cls");
cout<<"\n\n输入员工信息:
"<cout<<"编号\t姓名\t性别\t生日\t电话\t学历\t职务\t地址"<cin>>num>>name>>sex>>birth>>tel>>degree>>position>>address;
Per[NUM].setPerson(num,name,sex,birth,tel,degree,position,address);
cout<<"\n\n\t\t添加数据成功!
\n"<saveCtrl=0;
NUM++;
return;
}
//2.员工信息修改
voidmodify()
{
system("cls");
if(NUM==0)
{
cout<<"\n\n\n\n\n\n\t\t\t没有任何员工记录。
\n\n\n\t\t\t即将返回主菜单";
Sleep(2000);
return;
}
charnum[15];
cout<<"编号\t姓名\t性别\t生日\t电话\t学历\t职务\t地址"<for(inti1=0;i1{
cout<}
cout<<"请输入要修改的员工的编号:
";
cin>>num;
intchoice;
for(inti=0;i{
if(strcmp(Per[i].num,num)==0)
{
do{
system("cls");
cout<<"编号\t姓名\t性别\t生日\t电话\\t学历\t职务\t地址"<cout<cout<<"\t\t*****************************************"<cout<<"\t\t*\t员工管理系统\t\t*"<cout<<"\t\t*----------------------------------*"<cout<<"\t\t*\t\t1.修改编号\t\t*"<cout<<"\t\t*\t\t2.修改姓名\t\t*"<cout<<"\t\t*\t\t3.修改性别\t\t*"<cout<<"\t\t*\t\t4.修改生日\t\t*"<cout<<"\t\t*\t\t5.修改电话\t\t*"<cout<<"\t\t*\t\t6.修改学历\t\t*"<cout<<"\t\t*\t\t7.修改职务\t\t*"<cout<<"\t\t*\t\t8.修改地址\t\t*"<cout<<"\t\t*\t\t9.返回主菜单\t\t*"<cout<<"\t\t*****************************************"<cout<<"\n\n\t请选择(0~9):
";
cout<<"请选择:
";
cin>>choice;
if(choice<0||choice>9)
continue;
switch(choice)
{
case1:
cout<<"请输入新的员工编号:
";
cin>>Per[i].num;
break;
case2:
cout<<"请输入新的员工姓名:
";
cin>>Per[i].name;
break;
case3:
cout<<"请输入新的员工性别:
";
cin>>Per[i].sex;
break;
case4:
cout<<"请输入新的员工生日:
";
cin>>Per[i].birth;
break;
case5:
cout<<"请输入新的员工电话:
";
cin>>Per[i].tel;
break;
case6:
cout<<"请输入新的员工学历:
";
cin>>Per[i].degree;
break;
case7:
cout<<"请输入新的员工职务:
";
cin>>Per[i].position;
break;
case8:
cout<<"请输入新的员工地址:
";
cin>>Per[i].address;
break;
case9:
return;
}
}while(choice<9);
}
}
}
//3.删除员工信息
voiddele()
{
system("cls");
if(NUM==0)
{
cout<<"\n\n\n\n\n\n\t\t\t没有任何员工记录。
\n\n\n\t\t\t即将返回主菜单";
return;
}
cout<<"编号\t姓名\t性别\t生日\t电话\t学历\t职务\t地址"<for(inti1=0;i1{if(Per[i1].num!
=NULL)
cout<}
charnum[15];
Persontemp;
cout<<"请输入要删除的员工的编号"<cin>>num;
for(inti=0;i{
if(strcmp(Per[i].num,num)==0)
{
temp=Per[i];
for(intj=i;jPer[j]=Per[j+1];
NUM--;
break;
}
}
cout<<"\n\n\n\t删除成功!
"<system("pause");
}
//4.员工信息查找
voidfind()
{
system("cls");
if(NUM==0)
{
cout<<"\n\n\n\n\n\n\t\t\t没有任何员工记录。
\n\n\n\t\t\t即将返回主菜单";
Sleep(2000);
return;
}
cout<<"编号\t姓名\t性别\t生日\t电话\t工资\t学历\t职务\t地址"<for(inti1=0;i1{
cout<}
charnum[15];
intfound=0;
cout<<"请输入员工编号:
";
cin>>num;
for(inti=0;i{
if(strcmp(Per[i].num,num)==0)
{system("cls");
cout<<"\n\n\n\t查询结果"<cout<<"编号\t姓名\t性别\t生日\t电话\t工资\t学历\t职务\t地址"<cout<found=1;
}
}
if(found==0)
{system("cls");
cout<<"\n\n\n\n\n\n\t\t\t未找到编号为:
"<\n\n\t\t\t即将返回主菜单!
"<Sleep(2500);
return;
}
system("pause");
}
intmain()
{
intchoice;
intrun=1;
while(run)
{system("cls");
menu();
cin>>choice;
if(choice<0||choice>5)
continue;
switch(choice)
{
case1:
add();
break;
case2:
modify();
break;
case3:
dele();
break;
case4:
find();
break;
default:
run=0;
break;
}
}
system("cls");
cout<<"\n\n\n\n\n\n\t\t谢谢使用\"员工管理系统\",再见!
"<Sleep(1000);
return0;
}
六.调试与测试:
调试方法:
在C++程序想调试的地方按F9,然后按F5开始调试。
测试结果与预想的正确。
测试过程中遇到的问题:
输入的排序二叉树的输入顺序不对,导致输出结果与预计的不想符。
七.实验界面截图:
(1)管理界面
(2)输入界面
(3)修改信息界面
(4)查询信息界面
(5)删除信息界面