标题:求大神解答,只有一处错误了。
只看楼主
寂寞围城
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-12-25
结帖率:100%
已结贴  问题点数:20 回复次数:4 
求大神解答,只有一处错误了。
#include"stdafx.h" #include"iostream" #include"string" #include"list" #include"cassert" usingnamespacestd;  /* 编号、姓名、部门、应付工资、保险、税金、实付工资。 其中实付工资由公式计算得到:实付工资=应付工资-保险-税金 */ structemployee{ stringm_num;//编号 stringm_name;//姓名 stringm_dep;//部门 doublem_salary;//应付工资 doublem_insurance;//保险 doublem_tax;//税金 };  /* (1)录入:输入职工数据,其中“实付工资”通过计算得到; (2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息) (3)修改:允许对已经录入的数据重新进行编辑、修改; (4)显示:显示全体职工数据; (5)查询: a.输入职工姓名,显示该职工的全部数据; b.输入某部门值,显示该部门职工的数据、工资总额、平均工资。 (6)退出程序。 */  list<employee>emps;  int_tmain(intargc,_TCHAR*argv[]) { voidprint(constemployee&e); voidinput(); voiddel(); voidmod(); voidshow_all(); voidshow_name(); voidshow_dep();  cout<<"简易职工薪水管理程序by做他\n";//deletethisline cout<<"版权没有请随意复制或修改任何代码\n";//deletethisline  cout<<"请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:"; intchoose=0; cin>>choose; assert(!cin.fail()); while(choose!=6) { if(choose==1)input(); if(choose==2)del(); if(choose==3)mod(); if(choose==4) { intchoice=0; cout<<"请选择操作1.按姓名查询2.按部门查询3.退出:"; cin>>choice; if(choice==1)show_name(); if(choice==2)show_dep(); if(choice==3) { cout<<"请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:"; cin>>choose; assert(!cin.fail()); continue; } } if(choose==5)show_all(); cout<<"请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:"; cin>>choose; assert(!cin.fail()); } return0; }  voidprint(constemployee&e) { cout<<"编号:"<<e.m_num<<endl; cout<<"姓名:"<<e.m_name<<endl; cout<<"部门:"<<e.m_dep<<endl; cout<<"保险:"<<e.m_insurance<<endl; cout<<"税金:"<<e.m_tax<<endl; cout<<"应付工资:"<<e.m_salary<<endl; cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl; }  voidinput() { stringnum,name,dep; doublesalary,ins,tax; cout<<"请输入员工编号:"; cin>>num; cout<<"请输入员工姓名:"; cin>>name; cout<<"请输入员工部门:"; cin>>dep; cout<<"请输入员工保险:"; cin>>ins; assert(!cin.fail()); cout<<"请输入员工税金:"; cin>>tax; assert(!cin.fail()); cout<<"请输入员工应付工资:"; cin>>salary; assert(!cin.fail()); employeetemp; temp.m_dep=dep; temp.m_insurance=ins; temp.m_name=name; temp.m_num=num; temp.m_salary=salary; temp.m_tax=tax; emps.push_back(temp); cout<<"员工录入操作完毕.\n"; }  voiddel() { if(emps.size()==0) { cout<<"没有员工记录.\n"; return; } stringname; boolisfind=false; cout<<"请输入要删除的员工姓名:"; cin>>name; list<employee>::iteratoriter; for(iter=emps.begin();iter!=emps.end();iter++) { if(iter->m_name==name) { isfind=true; emps.erase(iter); cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n"; return; } } if(!isfind) { cout<<"没有找到姓名为\""<<name<<"\"的员工.\n"; return; } }  voidmod() { if(emps.size()==0) { cout<<"员工记录为空.\n"; return; } boolisfind=false; stringname; cout<<"请输入要修改的员工姓名:"; cin>>name; list<employee>::iteratoriter; for(iter=emps.begin();iter!=emps.end();iter++) { if(iter->m_name==name) { isfind=true; cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n"; break; } } if(isfind) { stringnum,name,dep; doubletax,ins,salary; print(*iter); cout<<endl; cout<<"请输入新的员工编号:"; cin>>num; cout<<"请输入新的员工姓名:"; cin>>name; cout<<"请输入新的员工部门:"; cin>>dep; cout<<"请输入新的员工保险:"; cin>>ins; assert(!cin.fail()); cout<<"请输入新的员工税金:"; cin>>tax; assert(!cin.fail()); cout<<"请输入新的员工工资:"; cin>>salary; assert(!cin.fail()); iter->m_dep=dep; iter->m_insurance=ins; iter->m_name=name; iter->m_num=num; iter->m_salary=salary; iter->m_tax=tax; cout<<"1员工记录被成功修改.\n"; } else { cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n"; } }  voidshow_all() { if(emps.size()==0) { cout<<"员工记录为空.\n"; return; } cout<<"显示全体员工数据:\n"; cout<<"--------------------\n"; list<employee>::iteratoriter; for(iter=emps.begin();iter!=emps.end();iter++) { cout<<endl; print(*iter); cout<<endl; } cout<<"--------------------\n"; }  voidshow_name() { if(emps.size()==0) { cout<<"员工记录为空.\n"; return; } boolisfind=false; stringname; cout<<"请输入要查询的员工姓名:"; cin>>name; list<employee>::iteratoriter; for(iter=emps.begin();iter!=emps.end();iter++) { if(iter->m_name==name) { isfind=true; cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n"; print(*iter); break; } } if(!isfind) { cout<<"没有找到姓名为\""<<name<<"\"的员工.\n"; return; } }  voidshow_dep() { if(emps.size()==0) { cout<<"员工记录为空.\n"; return; } doubleisfind=0.00; doubletotal_salary=0.00; stringdep; cout<<"请输入要查询的部门名称:"; cin>>dep; cout<<"部门["<<dep<<"]的员工信息:\n"; cout<<"--------------------\n\n"; list<employee>::iteratoriter; for(iter=emps.begin();iter!=emps.end();iter++) { if(iter->m_dep==dep) { isfind++; total_salary+=iter->m_salary; print(*iter); cout<<endl; continue; } } cout<<"--------------------\n"; if(isfind==0) { cout<<"没有找到名称为["<<dep<<"]的部门.\n"; } else { cout<<"部门["<<dep<<"]工资统计:\n"; cout<<"工资总额:"<<total_salary<<endl; cout<<"平均工资:"<<total_salary/isfind<<endl; } }
搜索更多相关主题的帖子: include 保险 信息 姓名 
2014-12-25 19:38
chjiang78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:29
专家分:119
注 册:2014-11-17
得分:20 
既然都是头文件,应该写成?
#include <stdafx.h>
 #include"iostream"
 #include"string"
#include"list"
#include"cassert"
也不知道这些vc类前为何不加C。
2014-12-28 07:14
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
楼主的代码风格值得我们学习

DO IT YOURSELF !
2014-12-28 09:14
hao341202
Rank: 2
来 自:上海
等 级:论坛游民
威 望:1
帖 子:18
专家分:46
注 册:2014-12-23
得分:0 
这个代码,怎么看嘛。
2014-12-28 11:56
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
得分:0 
这是参加C语言混乱代码大赛吧
2016-10-14 11:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440370-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149210 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved