职工档案管理系统c++设计Word文档格式.docx
- 文档编号:20453576
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:19
- 大小:56.05KB
职工档案管理系统c++设计Word文档格式.docx
《职工档案管理系统c++设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《职工档案管理系统c++设计Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
(A)计算平均工资及总工资,(B)统计男/女职工各占总职工的人数的百分比、统计职工平均年龄和单位在岗职工人数占总职工人数的百分比、统计副高以上职工人数占总职工人数的百分比。
(C)以表格形式打印全部职工档案信息表。
1、自顶向下、逐步细化、逐步求精
所谓“自顶向下,逐步细化、逐步求精”就是在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分,称为“模块”。
每个子任务如果仍很复杂,还可以再分解为若干个子任务。
如此逐层分解,对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。
2、菜单技术
当一个程序的规模比较庞大,层次和模块比较多时,不要每次都将所有模块按顺序执行一遍,最好在每一层,至少在最高几层都设一个“菜单”。
为方便用户操作,“菜单”技术已广泛使用在计算机的系统软件中,具体做法是:
程序首先把各功能说明及相应代号以菜单形式显示在屏幕上,然后由用户在键盘上输入所选的功能代号,程序自动转去调用相应的功能模块进行处理。
3、时间安排
1、阅读设计题目、任务内容,规划设计进度,并进行软件的各相关功能模块的规划设计(1天)。
2、在C++环境下,用结构化程序设计思想进行C++语言程序设计、功能模块调试(7-9天)。
3、进行课程设计报告编写与整理(2天)。
4、课程设计结束时,进行设计成果演示;
对相关电子文档进行整理上交(包括:
程序文件、帮助说明文档);
交课程设计报告一份。
3、程序功能简介
1、数据文件管理功能:
创建新文件、打开老文件。
2、输入/添加/插入记录:
能够完成对任意一条记录输入、添加或插入数据表中,并保存到数据文件中。
3、显示、查询记录:
能够打开已存在的数据表文件,根据用户要求按所给记录关键字显示、查询一个或多个相关联记录的各项信息。
4、修改记录:
能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。
5、删除记录:
能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能),并对新的数据表信息进行文件保存。
6、统计功能:
能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:
总数、平均值、分段信息)。
7、恢复记录:
恢复已删除的数据并进行保存。
#include<
iostream>
fstream>
string.h>
conio.h>
iomanip>
usingnamespacestd;
classWorker
{
public:
Worker()/*构造函数初始化*/
{num[0]='
\0'
;
name[0]='
floatsalary=0;
floatage=0;
sex[0]='
address[0]='
zhicheng[0]='
}
charnum[20];
charname[20];
floatsalary;
floatage;
charsex[20];
charaddress[20];
charzhicheng[20];
};
classfunction
private:
Workerwor[100];
/*Worker类中的对象数组*/
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<
<
"
添加成功!
!
endl;
m++;
break;
}
display()/*显示*/
cout<
所有信息如下:
(单位:
元)"
));
else
编号:
wor[i].num<
姓名:
wor[i].name<
工资:
wor[i].salary<
年龄:
wor[i].age<
性别:
wor[i].sex<
单位:
wor[i].address<
职称:
wor[i].zhicheng<
endl<
search_num(charnum[20])/*按职工号查找*/
intx,y=1,z=1;
strcmp(wor[i].num,num))
x=i;
z=0;
y=1;
elsey=0;
if(z==0)
if(y==0)
cout<
输入的编号查找不到!
!
search_name(charname[20])/*按姓名查找*/
strcmp(wor[i].name,name))
输入的姓名查找不到!
modify(charname[20])/*修改*/
intx;
chart;
(1)修改编号:
(2)修改姓名:
(3)修改工资:
(4)修改年龄:
(5)修改性别:
(6)修改单位:
(7)修改职称:
请选择:
cin>
>
t;
switch(t)
case'
1'
cout<
输入要修改成的编号:
charnum1[20];
cin>
num1;
strcpy(wor[x].num,num1);
修改成功!
break;
2'
输入要修改成的姓名:
charname1[20];
name1;
strcpy(wor[x].name,name1);
3'
输入要修改成的工资:
floatsalary1;
salary1;
wor[x].salary=salary1;
4'
输入要修改成的年龄:
floatage1;
age1;
wor[x].age=age1;
5'
输入要修改成的性别:
charsex1[20];
sex1;
strcpy(wor[x].sex,sex1);
6'
输入要修改成的单位:
charaddress1[20];
address1;
strcpy(wor[x].address,address1);
7'
输入要修改成的职称:
charzhicheng1[20];
zhicheng1;
strcpy(wor[x].zhicheng,zhicheng1);
}
save()/*保存*/
输入要保存的文件名"
name;
strcat(name,"
.txt"
);
ofstreamsave(name);
if(strcmp(wor[i].name,"
))
save<
性别;
save.close();
read()/*读取*/
输入要打开的文件名"
ifstreamopen(name);
charch;
while(!
open.eof())
open.get(ch);
ch;
open.close();
del(charname[20])/*删除*/
intx=1,y=1;
ofstreamrecover("
recover.txt"
ios:
app);
recover<
'
'
recover.close();
strcpy(wor[i].num,"
strcpy(wor[i].name,"
wor[i].salary=0;
wor[i].age=0;
strcpy(wor[i].sex,"
strcpy(wor[i].address,"
strcpy(wor[i].zhicheng,"
y=0;
删除成功"
m--;
if(y==1)
删除失败"
recover()/*恢复*/
ifstreamrecover("
))
recover>
wor[i].num>
wor[i].name>
wor[i].salary>
wor[i].age>
wor[i].sex>
wor[i].address>
wor[i].zhicheng;
recover.close();
您所删除的记录已恢复"
m++;
ofstreamclean("
clean<
clean.close();
statistics()/*统计*/
floatall=0,allage=0,fnum=0;
floatw1,w2,w3;
统计信息如下:
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;
}
统计表格如下:
setiosflags(ios:
left);
_______________________________________________________________"
│"
setw(7)<
编号"
│姓名"
│工资"
│年龄"
│性别"
│岗位"
│职称"
for(i=0;
{
wor[i].sex
<
}
________________________________________________________________"
_________________________________________________________________"
总职工数"
│总的工资"
│平均工资"
│平均年龄"
│女职工数"
│女职工比例"
___________________________________________________________________"
m<
│"
all<
w1<
w2<
fnum<
w3<
________________________________________________________________"
intmain()
************************职工档案管理系统*************************"
***系统开发设计者:
甘一帆***"
***专业班级:
电气工程1303班***"
*****************************************************************"
请按任意键开始"
getchar();
system("
cls"
functionc1;
intselect;
intk=1,e=1,j=1;
while(k==1)
{
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 档案管理系统 c+ 设计