| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 935 人关注过本帖
标题:第一次问大家问题,.课程设计,,
取消只看楼主 加入收藏
a284102849
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-12
收藏
 问题点数:0 回复次数:1 
第一次问大家问题,.课程设计,,
* saleheader.h
#include <iostream.h>
class MoneyCounter
{
  public:
    MoneyCounter();
    ~MoneyCounter() {}
    void getmoney();       //显示可投币种类,显示顾客投币
    float money_from_buyer();      //返回投币金额
    void clear();        //清空,准备下一轮投币
    void return_money(float);      //返回找的零钱
  private:
    float input_money;     //标记顾客投币金额
};
MoneyCounter::MoneyCounter():input_money(0.0f)
{                  //初始化顾客投币金额为0.00
}
void MoneyCounter::getmoney()      //显示顾客投币
{
    float money;
    cout<<"\n请投入钱币。\n";
    cin>>money;
    input_money+=money;
    cout<<"\n您投入的金额是"<<input_money<<"元。\n";
    return;
}
float MoneyCounter::money_from_buyer()   //返回顾客投币金额
{
    return input_money;
}
void MoneyCounter::clear()
{
    input_money=0.0f;
    return;
}
void MoneyCounter::return_money(float change)
{
    cout<<"\n找零"<<change"元。\n";      //返回找零信息,
    return;
}
class GoodsInfo
{
  public:
    GoodsInfo();
    ~GoodsInfo(){}
    void set_goods(string,float,int);
    string goods_name();        //返回饮料的名称
    float goods_price();        //返回饮料的价格
    int goods_nunber();        //返回饮料的数量   
  private:
    string name;        //饮料名称
    float price;        //饮料的单价
    int total;         //饮料的总库存数
 };
GoodsInfo::GoodsInfo():name(""),price(0.0f),total(0)
{               //初始化饮料信息
}
void GoodsInfo::set_goods(string n,float p,int num)
{               //设置饮料信息
    name=n;
    price=p;
    total=num;
}
string GoodsInfo::goods_name()     //返回饮料名称
{
    return name;
}
float GoodsInfo::goods_nunber()    //返回饮料单价
{
    return price;
}
int GoodsInfo::goods_nunber()     //返回饮料数量
{
    return total;
}
class DrinkMachine
{
  public:
    DrinkMachine();           //初始化自动售货机中的商品信息
    ~DrinkMachine(){}           
    void showchoices();          //显示待选饮料信息
    void inputmoney();          //获取顾客投入钱币
    bool goodsitem(int);          //检查饮料状况
    void return_allmoney();
  private:
    MoneyCounter moneyctr;          //定义MoneyCounter的对象
    GoodsInfo v_goods[5];          //一共有5种饮料,详见该类的实现
}
DrinkMachine::DrinkMachine()         //初始化自动售货机中的商品信息
{
    v_goods[0].set_goods("橙汁",3,20);
    v_goods[1].set_goods("咖啡",5,0);
    v_goods[2].set_goods("纯净水",1.5,20);
    v_goods[3].set_goods("可口可乐",2,30);
    v_goods[4].set_goods("百事可乐",2,28);
    return;
}
void DrinkMachine::showchoices()        //显示待选商品信息
  {
     cout.precision(2);
     cout.setf(ios::fixed);
     cout<<"\n您投入的金额是"<<moneyctr.money_from_buyer()<<"元。\n";
     cout<<"请选择商品代码\n";
     for(int i=0;i<5;i++)
     {
        cout<<i<<" "<<v_goods[i].goods_name()<<" "<<v_goods[i].goods_price()<<"元"<<endl;
     }
     cout<<"5 退款并且退出\n";
     return;
  }
  void DrinkMachine::inputmoney()        //显示可接受的面值,提示顾客投币
  {
    cout<<"\n本机只接受10元、5元、2元、1元和0.5元的纸币跟硬币。";
    moneyctr.getmoney();          //提示顾客投币
    return;
  }
  bool DrinkMachine::goodsitem(int select)        //检查货物状况
  {
     int nunber=v_goods[select].goods_nunber();
     if(nunber>0)                      //剩余数量>0
     {
        if (moneyctr.money_from_buyer()>=v_goods[select].goods_price())               //投币额>货物金额
        {
           float change=moneyctr.money_from_buyer()-v_goods[select].goods_price();
           cout<<"\n您选择的是"<<v_goods[select].goods_name()<<",请在出口处拿取。\n";
           if(change>0)                   //有找零
           {
              moneyctr.return_money(change);         //显示找零信息
           }
           return true;
        }
        else
        {
          cout<<"\n您投入的金额不足!\n";
        }  
     }
     else
     {
        cout<<"\n您选择的饮料已售完!\n";
     }
     return false;
  }
  void DrinkMachine::return_allmoney()
  {
     cout<<"\n退款"<<moneyctr.money_from_buyer()<<"元。\n";
  }  
#include <iostream.h>
#include <string.h>
#include <"saleheader.h">      //用包含命令将类定义头文件包含进来
void main()
{
   DrinkMachine dri;
   string buf;
   bool go_on(true),cash_on(true),got_it(true);
   cout<<"\n=========欢迎使用本自动售货机!==========\n\n";
   //接收投入钱币
   while(go_on)       //继续购买则开始下一轮循环
   {
      while(cash_on)          //继续投币则开始下一轮循环
      {
         dri.inputmoney();
         cout<<"\n继续投币吗? y(yes)或者n(no)";
         cin>>buf;
         if(buf=="n"||buf=="no")
         {
            cash_on=false;
         }
      }
      //显示选择信息
      dri.showchoices();
      //接受顾客的数字选择
      cin>>buf;
      int select = atoi(buf.c_str());
      if (select == 5)       //显示退款信息,结束进程
      {
         dri.return_allmoney();
         go_on = false;
      }
      else
      {
         got_it = dri.goodsystem(select);
         if (got_it)
         {
            go_on = false;        //顾客购买完毕,自动结束
         }
         else
         {
            cout<<"\n需要其他饮料吗?y(yes)或者n(no)";
            cin>>buf;
            if(buf=="y"||buf=="yes")
            {
               cash_on = true;
               go_on = true;
            }
            else
            {
               dri.return_allmoney();
               go_on = false;
            }
         }
      }   
   }
   cout<<"\n谢谢!再见!";
}

这是一个关于饮料自动售货机的程序,急求一个完整的头文件,,,
搜索更多相关主题的帖子: 课程 设计 
2008-12-12 09:32
a284102849
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-12
收藏
得分:0 
希望大家有的可以联系QQ634603415或者邮箱missjiajia3344@
2008-12-12 09:35
快速回复:第一次问大家问题,.课程设计,,
数据加载中...
 
   



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

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