C企业工资管理系统课程设计文档格式.doc
《C企业工资管理系统课程设计文档格式.doc》由会员分享,可在线阅读,更多相关《C企业工资管理系统课程设计文档格式.doc(23页珍藏版)》请在冰点文库上搜索。
![C企业工资管理系统课程设计文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/f5900c50-2c49-438b-b8b4-51480ebfeffc/f5900c50-2c49-438b-b8b4-51480ebfeffc1.gif)
(2)添加操作:
voidadd(intx),该模版主要实现工资信息的添加;
(3)删除操作:
voiddel(intx),该模版主要实现工资信息的删除;
(4)修改操作:
voidmodify(intx),该模版主要实现工资信息的修改;
(5)查询操作:
voidfind(intx),该模版主要实现工资信息的查询统计操
(6)统计操作:
voidcount(intx),实现最高工资,最低工资等的统计;
(7)退出;
三、详细设计
(1)类模块
classmessage{
charbornplace[10];
charduty[10];
charname[10];
charbumen[10];
intbasesalary;
intjiangjin;
message(){}//********************构造函数
voidxinxi(chara_name[],chara_bornplace[],chara_duty[],chara_bumen[],inta_ID,inta_basesalary,inta_jiangjin)
{
strcpy(name,a_name);
strcpy(bornplace,a_bornplace);
strcpy(duty,a_duty);
strcpy(bumen,a_bumen);
ID=a_ID;
basesalary=a_basesalary;
jiangjin=a_jiangjin;
}
message&
operator=(constmessage&
s)//**********************运算符重载
strcpy(name,s.name);
strcpy(bornplace,s.bornplace);
strcpy(duty,s.duty);
strcpy(bumen,s.bumen);
ID=s.ID;
basesalary=s.basesalary;
jiangjin=s.jiangjin;
return*this;
friendvoidmodify(intx);
//************************友元函数
friendintdel(intx);
voidput()//定义put函数,以便于其他函数的调用
cout<
<
name<
"
"
bornplace<
duty<
bumen<
ID<
basesalary<
jiangjin<
endl;
~message()//**************************析构
{}
};
(2)主函数流程图
开始
intb,i
输入i值
i=1
录入
i=2
添加
i=3
删除
i=4
修改
i=5
查找
i=6
统计
i=7
退出
结束
(3)录入、添加函数流程图
开始
cout(请输入您要添加的信息)
cout(姓名,职务,身份证号,籍贯,基本工资,奖金,)
cin(name,,duty,ID,bornplace,basesalary,,jiangjin,)
(4)删除函数流程图
inti,j,temp,flag=-1,charming
输入删除的名字
name=ming
i<
temp,j<
temp-1
a[j]=b[i],i++,j++
i++
没有找到要删除的人
end
(5)修改函数流程图
start
inti,j,charname
输入ming
b[i].name=ming
输入修改的信息(名字,,职务,身份证号,籍贯,工资)
cin(name,duty,ID,bornplace,basesalary,jiangjin)
没找到要修改的
(6)查找函数流程图
inti,j,k,num;
charming,
k=1
输入要查询的名字
b[j].put
没有找到要查找的姓名
(8)统计函数流程图
四、调试分析
1、开始使用文件保存时出现不能为read错误,后通过查阅资料解决了问题;
2、删除部分程序开始不能判断是否找到了要删除的人员信息,后来加了flag标记后可以判断了;
3、统计部分程序在求均方差的时候出现算法错误,后来查阅了均方差公式后改正了过来
4、使用友员函数可以解决类外作用域问题。
五、用户手册
1.本程序的运行环境为doc操作系统;
2.进入界面后,按照提示输入选择;
3.选择1:
执行工资信息录入操作;
4.选择2:
执行工资信息添加操作;
5.选择3:
执行工资信息删除操作;
6.选择4:
执行工资信息修改操作;
7.选择5:
执行工资信息查询操作;
8.选择6:
执行工资信息统计操作;
9.选择7:
退出工资管理系统;
10.输入后按回车键,即可输出信息,按提示输入即可。
六、测试数据
七、附录
#include"
iostream.h"
#include"
stdlib.h"
stdio.h"
string.h"
message.h"
intnumber;
//工号
intjobsalary;
//岗位工资
intyljj;
//医疗基金
intsj;
//税金
intjiangjin;
voidxinxi(chara_name[],chara_bornplace[],chara_duty[],chara_bumen[],inta_ID,inta_number,inta_basesalary,inta_jobsalary,inta_jiangjin,inta_yljj,inta_sj)
number=a_number;
jobsalary=a_jobsalary;
yljj=a_yljj;
sj=a_sj;
number=s.number;
jobsalary=s.jobsalary;
yljj=s.yljj;
sj=s.sj;
number<
jobsalary<
yljj<
sj<
voidmain()
{
inti,b;
intor;
cout<
********欢迎进入企业工资管理系统********"
***********1.工资信息录入操作***********"
***********2.工资信息增加操作***********"
***********3.工资信息删除操作***********"
***********4.工资信息修改操作***********"
***********5.工资信息查找操作***********"
***********6.工资信息统计操作***********"
***********7.退出***********************"
*********请输入你要进行的操作选项*******"
cin>
>
i;
while(i!
=10)
switch(i)
{
default:
cout<
你输入的有误,请重新输入。
break;
case1:
cout<
输入企业人员的人数:
;
//输入信息
cin>
b;
cout<
writein(b);
break;
case2:
//添加
add(b);
b++;
case3:
//删除
del(b);
b--;
break;
case4:
//修改
modify(b);
break;
case5:
//查询
cout<
┌─────────────┐"
cout<
│请输入您要选择的查询方式:
│"
│1.按姓名查找操作│"
│2.按工号查找操作│"
cout<
└─────────────┘"
cin>
or;
if(or==1)
namfind(b);
elseif(or==2)
numfind(b);
case6:
//统计
intcc;
┌─────────────┐"
│1.按部门统计│"
│2.按单位统计│"
//cin>
:
cc;
if(cc==1)
bmcount(b);
elseif(cc==2)
dwcount();
case7:
exit(0);
}
}
voidwritein(intx)//工资信息录入
messagea[10];
chara_name[10],a_bornplace[10],a_duty[10],a_bumen[10];
//姓名籍贯职务部门
intj,a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number;
//身份证号基本工资岗位工资奖金医疗住房基金税金
fstreamf("
wenjian.txt"
ios:
:
out);
//打开文件
if(!
f)
{
cout<
Cannotopenfile\n."
}
for(j=0;
j<
x;
j++)
姓名:
cin>
a_name;
籍贯:
a_bornplace;
职务:
a_duty;
部门:
a_bumen;
身份证号:
a_ID;
工号:
a_number;
基本工资:
a_basesalary;
岗位工资:
a_jobsalary;
奖金:
a_jiangjin;
医疗住房基金:
a_yljj;
税金:
a_sj;
a[j].xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj);
f.write((char*)&
a[j],sizeof(a[j]));
//保存录入的信息
f.close();
//关闭文件
ifstreamin("
in);
messageb[10];
for(j=0;
in.eof())
in.read((char*)&
b[j],sizeof(a[j]));
b[j].put();
else
exit(0);
in.close();
voidadd(intx)//工资信息添加
chara_name[10],a_bornplace[10],a_duty[10],a_bumen[10];
inta_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number,temp=30;
messagec;
输入要增加的人员的信息:
cout<
c.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj);
ofstreamout("
app);
out.write((char*)&
c,sizeof(classmessage));
//保存到文件中
out.close();
增加成功!
intdel(intx)//工资信息删除
inti,j,temp,flag=-1;
charming[10];
system("
cls"
);
ifstreamin("
messageb[30],c;
30;
{
in.eof())
in.read((char*)&
b[j],sizeof(classmessage));
else
temp=j-1;
break;
文件内保存的信息有:
//输出文件内的人员信息
姓名地址职务部门身份证号工号工资"
temp;
b[j].put();
fstreamsp("
in||ios:
sp.eof())
sp.read((char*)&
sp.close();
messagea[30];
fstreamap("
cout<
请输入要删除人员信息的名字:
cin>
ming;
for(j=0,i=0;
i++)
if(strcmp(b[i].name,ming)==0)//标记要删除的信息
{
flag=i;