#include <WagedEmployee.h>
#include <SalariedEmployee.h>
#include <Contractor.h>
std::string ReadString(const std::string& prompt)
{
std::string str;
std::cout << prompt << ": ";
std::getline(std::cin, str);
return str;
}
Date ReadDate(const std::string& prompt)
{
Date dt;
std::cout << prompt << " (mm dd yyyy): ";
std::cin >> dt;
return dt;
}
Money ReadMoney(const std::string& prompt)
{
double mn;
std::cout << prompt << ": ";
std::cin >> mn;
return mn;
}
void PersonInput(Person* pPerson)
{
static std::string str;
std::getline(std::cin, str); // flush the input buffer
pPerson->SetName(ReadString("Name"));
pPerson->SetAddress(ReadString("Address"));
pPerson->SetPhone(ReadString("Phone"));
pPerson->SetDob(ReadDate("Date of birth"));
long int ssn;
std::cout << "SSN: ";
std::cin >> ssn;
pPerson->SetSSN(SSN(ssn));
char sx;
do {
std::cout << "Sex (m/f) ";
std::cin >> sx;
} while (sx != 'm' && sx != 'f');
pPerson->SetSex(sx == 'm' ?
Person::male : Person::female);
}
void EmployeeInput(Employee* pEmployee)
{
pEmployee->SetDateHired(ReadDate("Date hired"));
}
void WagedEmployeeInput(WagedEmployee* pWagedEmployee)
{
pWagedEmployee->SetHourlyWage(ReadMoney("Hourly wage"));
}
void SalariedEmployeeInput(SalariedEmployee*
pSalariedEmployee)
{
pSalariedEmployee->SetSalary(ReadMoney("Salary"));
}
void ContractorInput(Contractor* pContractor)
{
pContractor->SetStartDate(ReadDate("Start date"));
pContractor->SetEndDate(ReadDate("End date"));
pContractor->SetHourlyRate(ReadMoney("Hourly rate"));
}
int main()
{
Person* pPerson = 0;
std::cout << "1 = Salaried employee" << std::endl
<< "2 = Waged employee" << std::endl
<< "3 = Contractor" << std::endl
<< "Enter selection: ";
int sel;
std::cin >> sel;
switch (sel) {
case 1:
pPerson = new SalariedEmployee;
PersonInput(pPerson);
EmployeeInput((Employee*)pPerson);
SalariedEmployeeInput((SalariedEmployee*)pPerson);
break;
case 2:
pPerson = new WagedEmployee;
PersonInput(pPerson);
EmployeeInput((Employee*)pPerson);
WagedEmployeeInput((WagedEmployee*)pPerson);
break;
case 3:
pPerson = new Contractor;
PersonInput(pPerson);
ContractorInput((Contractor*)pPerson);
break;
default:
std::cout << "\aIncorrect entry";
break;
}
if (pPerson != 0) {
pPerson->FormattedDisplay(std::cout);
delete pPerson;
}
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
C++大学自学教程(第七版)源码
共695个文件
cpp:331个
tut:323个
h:19个
5星 · 超过95%的资源 需积分: 9 12 下载量 200 浏览量
2012-11-03
17:12:36
上传
评论
收藏 200KB RAR 举报
温馨提示
C++大学自学教程源码,欢迎下载,本书是一本可供读者自学C++语言的指导用 ... 开发经验技巧(tips),VCL三方组件(component),源代码(source code)
资源推荐
资源详情
资源评论
收起资源包目录
C++大学自学教程(第七版)源码 (695个子文件)
pr13001b.c 416B
pr23005.cpp 3KB
pr35007.cpp 3KB
pr26003.cpp 2KB
pr20004.cpp 2KB
pr32020.cpp 2KB
pr10003.cpp 2KB
date.cpp 2KB
pr33011.cpp 2KB
pr16005.cpp 2KB
pr32010.cpp 2KB
pr11002.cpp 2KB
pr33012.cpp 2KB
pr27001.cpp 2KB
pr21002.cpp 2KB
pr38001.cpp 1KB
Person.cpp 1KB
pr20003.cpp 1KB
pr34007.cpp 1KB
pr11001.cpp 1KB
pr32016.cpp 1KB
pr06011.cpp 1KB
pr16003.cpp 1KB
pr32019.cpp 1KB
pr15003.cpp 1KB
pr32005.cpp 1KB
pr32018.cpp 1KB
pr39001.cpp 1KB
pr25006.cpp 1KB
pr04007.cpp 1KB
pr21005.cpp 1KB
pr08012.cpp 1KB
pr33009.cpp 1KB
pr33010.cpp 1KB
pr18005.cpp 1KB
pr21007.cpp 1KB
pr33016.cpp 1KB
pr18003.cpp 1KB
pr16004.cpp 1KB
pr18004.cpp 1KB
pr12004.cpp 1KB
pr33001.cpp 1KB
pr37001.cpp 1KB
pr32024.cpp 1KB
pr33008.cpp 1KB
pr04006.cpp 1KB
pr33007.cpp 1022B
pr33014.cpp 1011B
pr21004.cpp 1007B
pr29011.cpp 1004B
pr32008.cpp 1000B
pr21009.cpp 999B
pr31006.cpp 996B
pr18007.cpp 991B
pr18001.cpp 991B
pr19005.cpp 990B
pr32009.cpp 984B
pr21006.cpp 981B
pr32014.cpp 980B
pr33006.cpp 978B
pr21010.cpp 977B
pr06005.cpp 977B
pr31012.cpp 969B
pr39004.cpp 958B
pr25002.cpp 951B
pr04005.cpp 947B
pr31018.cpp 940B
pr19001.cpp 938B
pr33015.cpp 933B
pr34008.cpp 932B
pr35003.cpp 930B
pr19002.cpp 917B
pr16001.cpp 907B
pr15004.cpp 903B
pr32017.cpp 898B
pr06010.cpp 890B
pr19003.cpp 889B
pr21003.cpp 876B
pr32021.cpp 875B
pr12005.cpp 868B
CustomDate.cpp 857B
pr08005.cpp 851B
pr25003.cpp 842B
pr32003.cpp 841B
Contractor.cpp 837B
pr32023.cpp 832B
pr34005.cpp 828B
pr25004.cpp 822B
pr32015.cpp 816B
pr19004.cpp 808B
pr33004.cpp 804B
pr35004.cpp 796B
pr35002.cpp 791B
pr09003.cpp 790B
pr32011.cpp 789B
pr33005.cpp 786B
pr14001.cpp 785B
pr36005.cpp 782B
pr09005.cpp 780B
pr39002.cpp 780B
共 695 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- Sun_Sky_Sea2015-02-03很好,非常不错!
- lishejinba2012-12-28这本书非常好,适合我这种初学者。
gongxi7facai
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功