zoukankan      html  css  js  c++  java
  • 026 买水果小游戏(开关结构综合)

    #include<iostream>
    using namespace std;

    double capital=0.0;                                                //金额

    double call(int num,double quantity)                       //计价函数
    {
    switch(num)
    {
    case 0:
    return quantity*1.50;
    case 1:
    return quantity*1.70;
    case 2:
    return quantity*4.60;
    case 3:
    return quantity*0.90;
    case 4:
    return quantity*2.50;
    case 5:
    return quantity*3.70;
    case 6:
    return quantity*7.60;
    case 7:
    return quantity*3.90;
    }
    }

    int main()
    {

    cout<<"提示:本店提供8种水果,如下(左边为水果标号及名称,右边为其单价)"<<endl;
    cout<<"0 西瓜 1.50,1 木瓜 1.70,2 哈密瓜 4.60,3 苹果 0.9 "
    <<"4 梨 2.50,5 柚子 3.70,6 猕猴桃 7.60,7 山楂 3.9"<<endl;


    int num_choice=0; //几种选择

    while(1)                                                            //进入大循环
    {
    int Y_N;
    cout<<"请输入您要购买的种类数量:";
    cin>>num_choice;

    if(num_choice==0)                                              //不买东西
    {
    cout<<"您确定只是看看吗?要不买点吧?继续请按1,否则请按0,直接退出"<<endl;
    cin>>Y_N;
    if(Y_N==0)
    {
    cout<<"退出成功!"<<endl;
    break;
    }
    else if(Y_N==1)                                                       //为了语法简便
    {}
    else
    cout<<"不要捣乱,按规定输,亲"<<endl;
    }
    else
    {
    cout<<"种类编号分别为:";
    int * choice=new int[num_choice];                           //定义数组指针
    double * quantity_choice=new double[num_choice];

    for(int i=0;i<num_choice;i++)                                 //获得种类编号

    cin>>choice[i]; 


    cout<<"请输入对应购买种类的数量:";

    for(int k=0;k<num_choice;k++)                               //获得购买数量          
    cin>>quantity_choice[k];


    for(int j=0;j<num_choice;j++)                                 //计算总金额
    {
    capital +=call(choice[j],quantity_choice[j]);
    }

    cout<<"继续购物吗?继续请按1,否则请按0,开始结算"<<endl;
    cin>>Y_N;
    if(Y_N==0)
    {
    cout<<"开始结算,请付"<<capital<<"元"<<endl;
    break;
    }
    else if(Y_N==1)
    {}
    else
    cout<<"不要捣乱,按规定输,亲"<<endl;
    delete [] choice;                                                       //这四行释放指针的指令原书放在return 0之前,运行报错。博主分析释放的数组指针是在if..else结构中定义,不是全局变量,需在else结束前释放,改后正常

                                                                                          //ps:刚刚看网上文章提到,在VC6.0里i的范围可以在for循环外使用i,在VC2005里i只能在for循环里使用。猜想这个数组指针大概也是这个原理,大概博主用的vc版本和作者不一样。
    choice=NULL;
    delete[] quantity_choice;
    quantity_choice=NULL;
    }
    }
    return 0;
    }

    运行结果:

    来自侯晓琴《c++程序设计经典300例》

  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/butta/p/6385728.html
Copyright © 2011-2022 走看看