数据结构 程序设计 员工管理系统.docx

上传人:b****5 文档编号:5035698 上传时间:2022-12-12 格式:DOCX 页数:16 大小:85.73KB
下载 相关 举报
数据结构 程序设计 员工管理系统.docx_第1页
第1页 / 共16页
数据结构 程序设计 员工管理系统.docx_第2页
第2页 / 共16页
数据结构 程序设计 员工管理系统.docx_第3页
第3页 / 共16页
数据结构 程序设计 员工管理系统.docx_第4页
第4页 / 共16页
数据结构 程序设计 员工管理系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构 程序设计 员工管理系统.docx

《数据结构 程序设计 员工管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构 程序设计 员工管理系统.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构 程序设计 员工管理系统.docx

数据结构程序设计员工管理系统

学号

 

数据结构课程设计

设计说明书

员工管理系统

起止日期:

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;j

Per[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)删除信息界面

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1