职工档案管理系统c++设计.docx

上传人:b****6 文档编号:7344651 上传时间:2023-01-23 格式:DOCX 页数:19 大小:56.05KB
下载 相关 举报
职工档案管理系统c++设计.docx_第1页
第1页 / 共19页
职工档案管理系统c++设计.docx_第2页
第2页 / 共19页
职工档案管理系统c++设计.docx_第3页
第3页 / 共19页
职工档案管理系统c++设计.docx_第4页
第4页 / 共19页
职工档案管理系统c++设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

职工档案管理系统c++设计.docx

《职工档案管理系统c++设计.docx》由会员分享,可在线阅读,更多相关《职工档案管理系统c++设计.docx(19页珍藏版)》请在冰豆网上搜索。

职工档案管理系统c++设计.docx

职工档案管理系统c++设计

中南大学

《高级程序设计实践(C++)》

课程设计报告

设计题目职工档案管理系统

指导老师

设计者

专业班级

设计日期

一、本次课题的基本内容和要求

二、软件设计整体规划及方案

三、程序功能简介

四、主体内容:

1、设计分析与程序结构

2、相关模块源程序功能及程序说明

3、操作方法(流程)

4、试验结果

5、设计体会

6、参考文献

一、本次课题的基本内容和要求

1、基本要求:

为方便管理某单位职工档案信息,编写一个职工档案管理系统软件。

系统记录必须包括职工的ID号、姓名以及性别、出生年月、职称、工资、所在单位、在岗情况等。

2、基本管理功能:

(1)添加:

增加一名职工的档案信息到管理系统中。

(2)查询:

可以根据职工姓名或ID号查找某人的相关信息,若找到则显示其信息。

(3)修改:

在管理系统中修改一名职工的记录。

(4)保存:

将所有职工档案信息保存在一个文件中(数据库文件或普通的文本文件)。

(5)读取:

从文件中读取已保存了数据。

(6)删除:

从管理系统中删除一条记录。

(7)恢复:

能恢复被删除的记录。

(8)统计:

(A)计算平均工资及总工资,(B)统计男/女职工各占总职工的人数的百分比、统计职工平均年龄和单位在岗职工人数占总职工人数的百分比、统计副高以上职工人数占总职工人数的百分比。

(C)以表格形式打印全部职工档案信息表。

二、软件设计整体规划及方案

1、自顶向下、逐步细化、逐步求精

所谓“自顶向下,逐步细化、逐步求精”就是在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分,称为“模块”。

每个子任务如果仍很复杂,还可以再分解为若干个子任务。

如此逐层分解,对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。

2、菜单技术

当一个程序的规模比较庞大,层次和模块比较多时,不要每次都将所有模块按顺序执行一遍,最好在每一层,至少在最高几层都设一个“菜单”。

为方便用户操作,“菜单”技术已广泛使用在计算机的系统软件中,具体做法是:

程序首先把各功能说明及相应代号以菜单形式显示在屏幕上,然后由用户在键盘上输入所选的功能代号,程序自动转去调用相应的功能模块进行处理。

3、时间安排

1、阅读设计题目、任务内容,规划设计进度,并进行软件的各相关功能模块的规划设计(1天)。

2、在C++环境下,用结构化程序设计思想进行C++语言程序设计、功能模块调试(7-9天)。

3、进行课程设计报告编写与整理(2天)。

4、课程设计结束时,进行设计成果演示;对相关电子文档进行整理上交(包括:

程序文件、帮助说明文档);交课程设计报告一份。

3、程序功能简介

1、数据文件管理功能:

创建新文件、打开老文件。

2、输入/添加/插入记录:

能够完成对任意一条记录输入、添加或插入数据表中,并保存到数据文件中。

3、显示、查询记录:

能够打开已存在的数据表文件,根据用户要求按所给记录关键字显示、查询一个或多个相关联记录的各项信息。

4、修改记录:

能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。

5、删除记录:

能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能),并对新的数据表信息进行文件保存。

6、统计功能:

能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:

总数、平均值、分段信息)。

7、恢复记录:

恢复已删除的数据并进行保存。

四、主体内容:

1、设计分析与程序结构

 

2、相关模块源程序功能及程序说明

#include

#include

#include

#include

#include

usingnamespacestd;

classWorker

{

public:

Worker()/*构造函数初始化*/

{num[0]='\0';name[0]='\0';floatsalary=0;floatage=0;sex[0]='\0';address[0]='\0';zhicheng[0]='\0';}

charnum[20];

charname[20];

floatsalary;

floatage;

charsex[20];

charaddress[20];

charzhicheng[20];

};

classfunction

{

private:

Workerwor[100];/*Worker类中的对象数组*/

public:

voidadd(charnum[20],charname[20],floatsalary,floatage,charsex[5],charaddress[20],charzhicheng[20]);/*添加职工信息*/

voiddel(charname[20]);/*删除*/

voidsearch_num(charnum[10]);/*按职工号查找*/

voidsearch_name(charname[20]);/*按姓名查找*/

voidmodify(charname[20]);/*修改*/

voidsave();/*保存*/

voidread();/*读取*/

voidrecover();/*恢复*/

voidstatistics();/*统计*/

voiddisplay();/*显示*/

};

floatm=0;

voidfunction:

:

add(charnum[20],charname[20],floatsalary,floatage,charsex[5],charaddress[20],charzhicheng[20])/*添加职工信息*/

{

intx=1;

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,"\0"))//第i个对象姓名为空字符

{

strcpy(wor[i].num,num);

strcpy(wor[i].name,name);

wor[i].salary=salary;

wor[i].age=age;

strcpy(wor[i].sex,sex);

strcpy(wor[i].address,address);

strcpy(wor[i].zhicheng,zhicheng);

x=0;

}

if(x==0)

{

cout<<"添加成功!

!

"<

m++;

break;

}

}

};

voidfunction:

:

display()/*显示*/

{

cout<<"所有信息如下:

(单位:

元)"<

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,"\0"));

else

{

cout<<"编号:

"<

cout<<"姓名:

"<

cout<<"工资:

"<

cout<<"年龄:

"<

cout<<"性别:

"<

cout<<"单位:

"<

cout<<"职称:

"<

}

}

}

voidfunction:

:

search_num(charnum[20])/*按职工号查找*/

{

intx,y=1,z=1;

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].num,num))

{

x=i;

z=0;

y=1;

cout<<"编号:

"<

cout<<"姓名:

"<

cout<<"工资:

"<

cout<<"年龄:

"<

cout<<"性别:

"<

cout<<"单位:

"<

cout<<"职称:

"<

}

elsey=0;

if(z==0)

break;

}

if(y==0)

cout<<"输入的编号查找不到!

"<

}

voidfunction:

:

search_name(charname[20])/*按姓名查找*/

{

intx,y=1,z=1;

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,name))

{

x=i;

z=0;

y=1;

cout<<"编号:

"<

cout<<"姓名:

"<

cout<<"工资:

"<

cout<<"年龄:

"<

cout<<"性别:

"<

cout<<"单位:

"<

cout<<"职称:

"<

}

elsey=0;

if(z==0)

break;

}

if(y==0)

cout<<"输入的姓名查找不到!

"<

}

voidfunction:

:

modify(charname[20])/*修改*/

{

intx;

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,name))

x=i;

}

chart;

cout<<"

(1)修改编号:

"<

cout<<"

(2)修改姓名:

"<

cout<<"(3)修改工资:

"<

cout<<"(4)修改年龄:

"<

cout<<"(5)修改性别:

"<

cout<<"(6)修改单位:

"<

cout<<"(7)修改职称:

"<

cout<<"请选择:

";

cin>>t;

switch(t)

{

case'1':

cout<<"输入要修改成的编号:

";

charnum1[20];

cin>>num1;

strcpy(wor[x].num,num1);

cout<<"修改成功!

"<

break;

case'2':

cout<<"输入要修改成的姓名:

";

charname1[20];

cin>>name1;

strcpy(wor[x].name,name1);

cout<<"修改成功!

"<

break;

case'3':

cout<<"输入要修改成的工资:

";

floatsalary1;

cin>>salary1;

wor[x].salary=salary1;

cout<<"修改成功!

"<

break;

case'4':

cout<<"输入要修改成的年龄:

";

floatage1;

cin>>age1;

wor[x].age=age1;

cout<<"修改成功!

"<

break;

case'5':

cout<<"输入要修改成的性别:

";

charsex1[20];

cin>>sex1;

strcpy(wor[x].sex,sex1);

case'6':

cout<<"输入要修改成的单位:

";

charaddress1[20];

cin>>address1;

strcpy(wor[x].address,address1);

cout<<"修改成功!

"<

break;

case'7':

cout<<"输入要修改成的职称:

";

charzhicheng1[20];

cin>>zhicheng1;

strcpy(wor[x].zhicheng,zhicheng1);

cout<<"修改成功!

"<

break;

}

}

voidfunction:

:

save()/*保存*/

{

charname[20];

cout<<"输入要保存的文件名";

cin>>name;

strcat(name,".txt");

ofstreamsave(name);

for(inti=0;i<100;i++)

{

if(strcmp(wor[i].name,"\0"))

{

save<<"编号:

"<

save<<"姓名:

"<

save<<"工资:

"<

save<<"年龄:

"<

save<<"性别;"<

save<<"单位:

"<

save<<"职称:

"<

}

}

save.close();

}

voidfunction:

:

read()/*读取*/

{

charname[20];

cout<<"输入要打开的文件名";

cin>>name;

strcat(name,".txt");

ifstreamopen(name);

charch;

while(!

open.eof())

{

open.get(ch);

cout<

}

open.close();

}

voidfunction:

:

del(charname[20])/*删除*/

{

intx=1,y=1;

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,name))

{

ofstreamrecover("recover.txt",ios:

:

app);

recover<

recover.close();

strcpy(wor[i].num,"\0");

strcpy(wor[i].name,"\0");

wor[i].salary=0;

wor[i].age=0;

strcpy(wor[i].sex,"\0");

strcpy(wor[i].address,"\0");

strcpy(wor[i].zhicheng,"\0");

x=0;

y=0;

}

if(x==0)

{

cout<<"删除成功"<

m--;

break;

}

}

if(y==1)

cout<<"删除失败";

}

voidfunction:

:

recover()/*恢复*/

{

ifstreamrecover("recover.txt");

for(inti=0;i<100;i++)

if(!

strcmp(wor[i].name,"\0"))

recover>>wor[i].num>>wor[i].name>>wor[i].salary>>wor[i].age>>wor[i].sex>>wor[i].address>>wor[i].zhicheng;

recover.close();

cout<<"您所删除的记录已恢复";

m++;

ofstreamclean("recover.txt");

clean<<'\0';

clean.close();

}

voidfunction:

:

statistics()/*统计*/

{

floatall=0,allage=0,fnum=0;

floatw1,w2,w3;

cout<<"统计信息如下:

(单位:

元)"<

for(inti=0;i<100;i++)

{

if(!

strcmp(wor[i].name,"\0"));

else

{

cout<<"编号:

"<

cout<<"姓名:

"<

cout<<"工资:

"<

cout<<"年龄:

"<

cout<<"性别:

"<

cout<<"单位:

"<

cout<<"职称:

"<

all=all+wor[i].salary;

w1=all/m;

allage=allage+wor[i].age;

w2=allage/m;

if(!

strcmp(wor[i].sex,"f"))

{

fnum=fnum+1;

w3=fnum/m;

}

}

}

cout<

"<

cout<

:

left);

cout<<"_______________________________________________________________"<

cout<<"│"<

cout<<"_______________________________________________________________"<

for(i=0;i<100;i++)

{

if(!

strcmp(wor[i].name,"\0"));

else

{

cout<<"│"<

<<"│"<

}

}

cout<<"________________________________________________________________"<

cout<<"_________________________________________________________________"<

cout<<"│"<

cout<<"___________________________________________________________________"<

cout<<"│"<

cout<<"________________________________________________________________"<

};

intmain()

{

cout<

cout<

甘一帆***"<

cout<

电气工程1303班***"<

cout<

cout<

getchar();

system("cls");

functionc1;

intselect;

intk=1,e=1,j=1;

while(k==1)

{

cout<

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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