gv天堂gv无码男同在线,欧美视频你懂的,毛片一级毛片毛片一级一级毛毛片,亚洲黄色视频免费播放,满18岁免费看的尤物视频,日本欧美三级片免费看,亚洲综合伊人影视在线播放

  • 首 頁(yè)
  • 采購(gòu)市場(chǎng)
  • 企業(yè)查詢
  • 營(yíng)銷建站
  • 營(yíng)銷推廣
  • 行業(yè)資訊
  • 發(fā)布信息
  • 存包柜C++

    懸賞分:20|
    超市門(mén)口的存包柜有n個(gè)存包箱,并且有1個(gè)投幣開(kāi)箱控制器,每個(gè)逛超市的顧客若要存一下自己的手提包后小件物品時(shí),只要往控制器投入1個(gè)1元的硬幣,如果有空的箱子,就會(huì)自動(dòng)打開(kāi)一個(gè)空的箱子,并且自動(dòng)打印輸出一張小小的密碼紙條;如果箱子沒(méi)有空,則提示本柜已滿。當(dāng)顧客離開(kāi)超市時(shí),用密碼紙條上指定的數(shù)字密碼依次輸入到開(kāi)箱控制器,則顧客所存包的箱子門(mén)就自動(dòng)打開(kāi),顧客取走物品后,關(guān)上門(mén)。請(qǐng)編寫(xiě)開(kāi)箱控制程序?qū)崿F(xiàn)上述過(guò)程。
    輸入數(shù)據(jù)時(shí),可先輸入存包柜總數(shù)n,再由用戶選擇是“投硬幣”還是“輸密碼”。
    如果“投硬幣”,則只有硬幣值是1才開(kāi)箱。如果有空柜,則輸出空柜編號(hào)及密碼(長(zhǎng)度自定);如果無(wú)空柜,則提示:“本柜已滿”。
    如果“輸密碼”,如果輸入的密碼與某一柜子密碼相符,則顯示打開(kāi)的柜子編號(hào),否則輸出提示:“密碼錯(cuò)誤”。問(wèn)題補(bǔ)充:
    請(qǐng)寫(xiě)一下C++程序
    知識(shí)庫(kù)標(biāo)簽: 存包柜   |列兵
    #include <iostream>
    using namespace std;
    struct GuiZi//每個(gè)存包柜屬性
    {
    long password;//每個(gè)柜子密碼
    bool isempty;//是否是空柜子
    };
    class Bag//存包柜
    {
    public:
    Bag();
    ~Bag();
    long PushBag();//存物品
    bool GetBag(long password);//取物品
    private:
    GuiZi* guizi;
    };
    Bag::Bag()
    {
    int n;
    cout<<"請(qǐng)輸入柜子個(gè)數(shù):";
    cin>>n;
    guizi = new GuiZi[n];
    int temp = 10000;
    for (int i=0; i<n; i++)
    {
    guizi ->isempty = true;//起初每個(gè)柜子為空

    guizi ->password = ++temp;//密碼值設(shè)定
    guizi++;
    }
    }
    Bag::~Bag()
    {
    delete guizi;
    }
    bool Bag::GetBag(long password)
    {
    GuiZi* current = guizi;
    while( current)
    {
    if(current ->password == password && current ->isempty != true)//取物品時(shí),需找不為空且密碼符合的柜子
    {
    current ->isempty = 1;//取出物品后該柜子空了
    cout<<"請(qǐng)取出物品!<<endl";
    return true;
    }
    else
    current++;
    }
    cout<<"密碼錯(cuò)誤!<<endl";//密碼錯(cuò)誤
    return false;
    }
    long Bag::PushBag()
    {
    GuiZi* current = guizi;
    while(current)
    {
    if(current ->isempty == true )//存物品時(shí),需找空柜子
    {
    cout<<"請(qǐng)放進(jìn)物品,保存好密碼!<<endl";
    current ->isempty = false;//存放后,該柜子不為空了
    return current ->password;//返回密碼,讓客戶保存
    }
    else
    current++;
    }
    cout<<"存儲(chǔ)柜已滿!"<<endl;//所有柜子都滿了
    return -1;
    }
    int main()
    {
    long password;
    bool flag = 0;//0標(biāo)示存物品,1標(biāo)示取物品
    Bag bag;
    while(1)//模擬很多客戶不停存取物品的規(guī)程,故為死循環(huán)
    {
    //……重要的都寫(xiě)出來(lái)了,剩下的自己寫(xiě)了哈
    }
    return 0;
    }
    為最佳答案評(píng)分?
    100% (1)
    不好 0% (0)
    (目前有 1 個(gè)人評(píng)價(jià))

    其 他 回 答共2條

    1樓

    你的這個(gè)程序我?guī)鸵粋€(gè)網(wǎng)友改過(guò) 你參考一下吧
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define N 100
    int mima(void);
    int main(void)
    {
    long bags[N]={0}; //有N個(gè)箱子,初始化數(shù)據(jù)
    int i,a,b=0,pass,flag1=0,flag2;//a為命令選擇,b為硬幣,flag1判斷是否有空位,flag2判斷是否密碼重復(fù)
    do{
    printf("投硬幣按1\n輸密碼按2\n");
    printf("你的選擇是:");
    scanf("%d",&a);
    if(a==1){
    //存包
    printf("請(qǐng)投硬幣(按1)\n");//投幣
    scanf("%d",&b);
    for(i=0;i<N;i++) //是否有空位
    if(bags[i]==0)
    {
    flag1=1;
    if(b==1){
    do { //密碼是否重復(fù)
    flag2=0;
    pass=mima();
    for(int j=0;j<N;j++) //用i來(lái)判斷 密碼是否重復(fù) 影響了 你是否有空位的循環(huán) 因?yàn)?i的值被修改了
    if(bags[j]==pass)
    flag2=1;
    }while(flag2); //while 應(yīng)該放在外面 與do連成一個(gè)do while語(yǔ)句,
    bags[i]=pass;
    printf("第%d號(hào)箱子的密碼是%d\n",i+1,pass);
    break;
    }
    }
    if(flag1==0)
    printf("本柜已滿");
    }
    else if(a==2){ //取包
    printf("請(qǐng)輸入你的密碼:");
    scanf("%d",&pass);
    for(i=0;i<N;i++)
    {
    if(bags[i]==pass)
    {
    printf("您的柜子是%d號(hào)\n",i+1);
    break;
    } //漏了一個(gè)花括號(hào)
    }
    if(i>=N)
    printf("密碼錯(cuò)誤");
    }
    else
    printf("輸入錯(cuò)誤,請(qǐng)重輸");
    }
    while(1); //這里是不是打錯(cuò)了 怎么 1==1???
    return 0; //主函數(shù)返回一個(gè) 0對(duì)應(yīng) int main
    }
    int mima()
    {
    int a[6],i;
    srand((unsigned)time(NULL));
    for(i=0;i!=6;++i)
    {
    a[i]=rand()%10;
    }
    return a[0]*100000+a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5];
    }
    知識(shí)庫(kù)標(biāo)簽: |列兵

    我來(lái)回答這個(gè)問(wèn)題

    立即登陸回答獲取會(huì)員積分,提高用戶級(jí)別
    友情鏈接:
    Copyright © 商名網(wǎng) All Rights Reserved.