系统概
公司职员信息理程序实现功:输入员工姓名输出该员工基信息级月工资信息需求
1 某型公司总理技术理技术员销售理销售员求存储员信息:姓名性出生年月技术特长血型星座参加工作时间接入公司时间联系电话编号级月薪计算月薪总额显示全部信息
2 员编号1开始次递增
3 程序员提升级功假设员初始级均1级然进行升级总理升4级技术理销售理升3级技术员升2级销售员1级
4 月工资计算办法:总理固定月薪10000元 技术理固定月薪6000元加奖金技术员固定月薪3000元加奖金销售理固定月薪领取销售提成固定月薪4000元销售提成辖部门月销售总额5‰销售员月薪月销售额1%提成
5 考核结果作升级工资提成考核结果百分制计算
二 基功求
设计基类employee然派生出technician(技术员)类manager(理)类saleman(销售员)类3类基础通继承派生实现类职员信息求保存文件部分数应设置操作权限
三 功描述
1 新进入公司员工基信息输入
2 公司员工基信息查询修改
3 离开公司员工信息处理
4 员工级关操作
5 月薪关操作
6 员考核关操作
四 知识点
1 C语言程序设计技术特数组指针应
2 面象程序设计技术特继承派生文件操作
总体设计思路:
职工信息理系统C++语言知识基础运种函数文件等方式实现录入职工信息保存显示职工信息查询职工信息职工信息修改保存删职工信息月薪总额理退出功程序函数调友元类方式工作菜单功函数中switch语句实现该程序8函数说函数该程序核心灵魂函数分
Input()函数:输入函数实现员工信息输入存入文件
enlarge() 增加员工函数
delete() 删员工函数
alter() 修改员工函数
checkperson()查询信息函数
save() 保存函数
promote()升级函数
test()设定考核成绩函数
具体流程图程序
void main()
{ char ch
Function person
do
{ cout<<_______________________________________________<
switch(ch)
{case '1' personinput() break
case '2' personenlarge() break
case '3' personDelete()break
case '4' personalter()break
case '5' personcheckperson()break
case '6'personpromote()break
case '7'persontest()break
case '8' personsave() break
}
}
while(ch'8')
}
输入字符ch
ch否8
Break
enlarge()
Break
Break
Break
Input()
结束
save()
test()
checkperso
alter()
Delete()
promote()
Break
break
Break
Break
Break
输入函数
void Functioninput()
{employee *p
int duty技术特长
string name姓名
string sex性
string birthday生日
string blood_type血型
string xinzuo星座
string cg_time参加工作时间
string jr_time接入公司时间
int phone联系电话
int position 级
int grade
double mount1mount2mount月销售额
double jiangjin1jiangjin2奖金
double salary月薪总额
int i
system(cls)
cout<<\n**员信息 **\n 输入员工信息 总理技术理技术员销售理销售员
ofstream f(employeetxtiosapp)
for(i1i
ID++
cout<<输入岗位(1总理2技术理3技术员4销售理5销售员) cin>>dutyf<
switch(duty)
{case 1salary10000f<<月薪总额<
fclose()
*switch(duty)
{
case 1pnew manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID4grade)break
case 2pnew tech_manager(jiangjin1namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID3grade)break
case 3pnew technician(jiangjin2namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID2grade)break
case 4pnew sale_manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID3grade)break
case 5pnew saleman(mountnamesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID1grade)break
}
p>next0
员工结点加入链表
if(people) 果已存结点
{employee *p2
p2people
while(p2>next)p2p2>next
p2>nextp 连接
}
else peoplep 存结点 连接*
ifstream fe(employeetxt)
if(fe)
{
cerr<
exit(1)
}
for(i1i
}
文件中读取
循环体
建立读入文件
存入文件
输入员信息
循环体
建立文件
Input()
}
增加成员函数
void Functionenlarge()
{
employee *p
int n增加数
int i
int duty技术特长
string name姓名
string sex性
string birthday生日
string blood_type血型
string xinzuo星座
string cg_time参加工作时间
string jr_time接入公司时间
string phone联系电话
int no
int grade月考核
int position 级
double salary
double mount1mount2mount月销售额
double jiangjin1技术理奖金
double jiangjin2技术员奖金
system(cls)
cout<<\n++++++++++++++++++++++++++++ 新增员工 ++++++++++++++++++++++++++++++\n
输入总理技术理技术员销售理销售员 信息
ofstream f(employeetxtiosapp)
IDMaxNo
cout<<输入增加数
cin>>n
for(i1i
cout<<输入岗位(1总理2技术理3技术员4销售理5销售员) cin>>dutyf<
{case 1salary10000f<<月薪总额<
fclose()
switch(duty)
{
case 1pnew manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID4grade)break
case 2pnew tech_manager(jiangjin1namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID3grade)break
case 3pnew technician(jiangjin2namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID2grade)break
case 4pnew sale_manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID3grade)break
case 5pnew saleman(mountnamesexbirthdaydutyblood_typexinzuocg_timejr_timephoneID1grade)break
}
p>next0
员工结点加入链表
if(people) 果已存结点
{employee *p2
p2people
while(p2>next)p2p2>next
p2>nextp 连接
}
else peoplep 存结点 连接
ifstream fe(employeetxt)
if(fe)
{
cerr<
exit(1)
}
for(i1i
增加员函数
建立读出文件
建立文件
循环体
循环体
读取文件信息
输入增加成员信息
存入文件
建立新接点
删函数
void FunctionDelete() 删员
{
int no
system(cls)
cout<<\n++++++++++++++++++++++++++删员工 ++++++++++++++++++++++++++\n
cout<<输入删员工ID cin>>no
查找结点
employee *p1*p2
p1people
while(p1)
{
if(p1>nono)
break
else
{
p2p1
p1p1>next
}
}
删结点
if(p1)找结点删
{if(p1people) 果删第结点
{peoplep1>next
delete p1
}
else
{p2>nextp1>next
delete p1
}
cout<<找删\n
}
else 未找结点
cout<<未找\n
}
删函数
输入员编号
结点否存
继续寻找结点
删员信息
修改函数
void Functionalter()修改员
{
int no
int duty技术特长
string name姓名
string sex性
string birthday生日
string blood_type血型
string xinzuo星座
string cg_time参加工作时间
string jr_time接入公司时间
string phone联系电话
int position级
int grade月考核
double salary
double mount月销售额
double jiangjin1技术理奖金
double jiangjin2技术员奖金
system(cls)
cout<<\n++修改员工信息++\n
cout<<输入修改员工ID cin>>no
查找修改结点
employee *p1*p2
p1people
while(p1)
{if(p1>nono)break
else
{p2p1p1p1>next}
}
if(p1)果找结点
{ p1>show()
cout<<\n+++调整职务(1总理2技术理3技术员4销售理5销售员)+++
cin>>duty
if(p1>dutyduty) 职务发生变动
{cout<<输入姓名 cin>>name
cout<<输入姓名: cin>>name
cout<<输入性:cin>>sex
cout<<输入生日:cin>>birthday
cout<<输入血型:cin>>blood_type
cout<<输入星座:cin>>xinzuo
cout<<输入参加工作时间:cin>>cg_time
cout<<输入接入公司时间:cin>>jr_time
cout<<输入联系电话:cin>>phone
cout<<输入级:cin>>position
cout<<输入输入月考核成绩0—100分:cin>>grade
if(duty2){cout<<月奖金:cin>>jiangjin1}
if(duty3){cout<<月奖金:cin>>jiangjin2}
if(duty5){cout<<月销售额 cin>>mount}
employee *p3创建新员工结点
switch(duty)
{case 1p3new manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneIDpositiongrade)break
case 2p3new tech_manager(jiangjin1namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneIDpositiongrade)break
case 3p3new technician(jiangjin2namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneIDpositiongrade)break
case 4p3new sale_manager(namesexbirthdaydutyblood_typexinzuocg_timejr_timephoneIDpositiongrade)break
case 5p3new saleman(mountnamesexbirthdaydutyblood_typexinzuocg_timejr_timephoneIDpositiongrade)break
}
p3>nextp1>next员工结点换链表
if(p1people)peoplep3 果换结点第结点
else p2>nextp3
delete p1
}
else 职务没变动
{cout<<输入姓名 cin>>p1>name
cout<<输入性:cin>>p1>sex
cout<<输入生日:cin>>p1>birthday
cout<<输入血型:cin>>p1>blood_type
cout<<输入星座:cin>>p1>xinzuo
cout<<输入参加工作时间:cin>>p1>cg_time
cout<<输入接入公司时间:cin>>p1>jr_time
cout<<输入联系电话:cin>>p1>phone
cout<<输入级:cin>>p1>position
cout<<输入月考核成绩0—100分:cin>>p1>grade
if(duty5){cout<<月销售额cin>>mount ((saleman*)p1)>SetS(mount)}
else if(duty2){cout<<月奖金:cin>>jiangjin1salary6000+jiangjin1*((tech_manager*)p1)>SetT(jiangjin1)*}
else if(duty3){cout<<月奖金:cin>>jiangjin2((technician*)p1)>SetJ(jiangjin2)}
}
cout<<修改成功\n
}
else cout<<未找\n 未找结点
}
修改函数
查找修改接点
职务否原相
输出原信息
输入改正信息
存入文件
Break
Break
Break
Break
Break
Break
Break
Break
保存函数
保存函数函数联合达存盘效果出原程序没附流程图结果截屏
void Functionsave() 文件保存
{double salary
double mount1mount2月销售额
double jiangjin1技术理奖金
double jiangjin2技术员奖金
ofstream femployee
femployeeopen(employeetxtiosapp)
employee *ppeople
if(p>duty1){salary10000}
if(p>duty2)
{cout<<月奖金:cin>>jiangjin1salary6000+jiangjin1
}
if(p>duty3)
{cout<<月奖金:cin>>jiangjin2salary3000+jiangjin2
}
if(p>duty4){cout<<月销售额 cin>>mount1salary4000+0005*mount1}
if(p>duty5)
{cout<<月销售额 cin>>mount2salary001*mount2
}
while(p){femployee<
<
<
}
femployeeclose()
system(cls)
cout<<\n完成保存\n
}
升级函数
void Functionpromote()升级函数
{int no
system(cls)
cout<<\n++++++++++++++++++++++++++员工级修改++++++++++++++++++++++++++\n
cout<<请输入修改员ID cin>>no
查找修改结点
employee *p1*p2
p1people
while(p1)
{if(p1>nono)break
else
{p2p1p1p1>next}
}
if(p1)找结点
{ p1>show()
cout<<输入修改级:
cin>>p1>position
cout<<级修改成功<
else cout<<未找\n
}
输入升级编号
升级函数
查升级结点否存
继续查找
输入升级级
存盘
设定考核分数函数
void Functiontest()设定考核成绩函数
{int no
system(cls)
cout<<\n++++++++++++++++++++++++++设定员工考核成绩++++++++++++++++++++++++++\n
cout<<请输入员工ID cin>>no
查找修改结点
employee *p1*p2
p1people
while(p1)
{if(p1>nono)break
else
{p2p1p1p1>next}
}
if(p1)找结点
{ p1>show()
cout<<输入员工月考核成绩:
cin>>p1>grade
cout<<考核成绩设定成功<
else cout<<未找\n
}
员考核函数
输入考核编号
Break
peo[j]salsal3+sal5
查找结点
继续查找
考核分数
存盘
查询信息函数
void Functioncheckperson()查询信息函数
{string name
system(cls)
cout<<输入查询员工姓名 \ncin>>name
employee *p
ppeople
while(p)
{if(p>namename)break
else pp>next
}
if(p)p>show()果找结点
else cout<<未找\n 未找结点
}
查询信息函数
姓名
继续查找
查找结点
输出全部信息
心体会 :
程序设计实懂更东西C++语言编程进步解具体说:
1) 编程新步认识C++语言编程更深解更加熟悉C++语言编程种方法
2) C++语言编程算法进步知识储备懂更算法然部分学间相互帮助网程序帮助
3) 次实明白C++语言编程块处理重变程序样处理程序编辑定实战验
4) 实次整实程中体会:做事太急躁耐心慢慢思考算法警长时候产生心情时候突然闪现程中做保持心态
5) 通次程序设计实更加深刻体会学帮助重需帮助时候学伸手援助更体现间感情次编程实友谊次考验
6) 觉次实收获提高身逻辑思维力编程时候体现缜密逻辑思维力样实方面力提高
实觉编程序问题问题否编程序样缜密思维做事编程序样种整体观念样事情做全局观念着想现学培养样?学会编程重社会计算机应已渗透社会行业正改变着传统工作学生活方式推动着社会发展理信息系统已广泛应行业然国计算机理信息系统建设20世纪80年代已开始起步发展极衡说部分企业目前处低水开发应阶段着济体制改革市场济发展企业运行机制变化企业生产更赖市场竞争信息成企业重资源信息系统建设已成企业走现代化重标志信息系统企业运作市场中竞争具重作前形势信息化企业发展必路世界济发展已进入激烈竞争年代说谁先获信息谁抓住发展济机遇样谁理利信息谁占领市场获效益国外量事实已说明:目前激烈竞争市场济中谁信息理现代化水高谁重视信息资源开发利谁抓住机遇竞争中取胜
见学程序设计门重课程发展基础腾飞插翅膀更成二十世纪领路坚实基础相信未世界属加油
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档