// page196.cpp : 定义控制台应用程序的入口点。
//C++ 面向对象程序设计
//根据Quick_shop连锁超市的定价策略来确定一件商品的零售价
#include "stdafx.h"
#include <iostream>
const double LOW_MARKUP = 0.05 ; //低涨幅5%
const double HIGH_MARKUP = 0.10;// 高涨幅10%
const int THRESGOLD = 7 ; //如果预计7天内无法售出, 则使用HIGH_MARKUP
void introduction();
//后条件: 在屏幕上输出程序说明
void get_input(double& cost , int& turnover);
//前条件:用户准备好输入正确的值
//后条件:cost 的值设为一件商品的批发价
//turnover 的值设为上屏预计售出的天数
//返回商品的零售价
double price (double cost , int turnover);
//前条件:cost 的值设为一件商品的批发价
//turnover 的值设为上屏预计售出的天数
//返回商品的零售价
void give_output(double cost , int turnover , double price);
//前条件:cost 的值设为一件商品的批发价,turnover是商品
//预计售出的天书, price是商品的零售价
//后条件:在屏幕上输出cost,trunover 和price的值
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std ;
double wholesale_cost , retail_price ;
int shelf_time ;
introduction ();
get_input(wholesale_cost , shelf_time);
retail_price = price(wholesale_cost , shelf_time);
give_output(wholesale_cost , shelf_time , retail_price);
cin >> shelf_time;
return 0;
}
void introduction ()
{
using namespace std ;
cout << " This program determines the retail price for\n"
<< " an item at a Quick-shop supermarket store .\n";
}
//使用 iostream
void get_input(double& cost , int& turnover)
{
using namespace std ;
cout << " Enter the wholesale cost of item: $";
cin >> cost ;
cout << " Enter the expected number of days until soid: ";
cin >> turnover;
}
//使用iostream
void give_output(double cost , int turnover , double price)
{
using namespace std ;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << " Wholesale cost = $" << cost << endl
<< " Expected time until sold =n "
<< turnover << " days"<< endl
<< " Retail price = $" << price << endl;
}
//使用已定义的常量LOW_MARKUP , HIGH_MARKUP 和 THRESGOLD
double price (double cost , int turnover)
{
if(turnover <= THRESGOLD)
return (cost + (LOW_MARKUP * cost));
else
return (cost + (HIGH_MARKUP * cost));
}