zoukankan      html  css  js  c++  java
  • c++初学(电梯实验)

    模拟电梯载人实验

    Elevator.h

    class Elevator{
    public:
        Elevator();
        ~Elevator();
        void getNowNum();    
        void SetToNum(int);
        void UP();
        void DOWN();
    private:
        int NowNum;
        int ToNum;

    };

    Elevator.cpp

    #include<iostream>
    #include<Windows.h>
    #include"Elevator.h"    
    using namespace std;
    Elevator::Elevator()
    {
        NowNum = 1;
        ToNum = 10;
    }
    Elevator::~Elevator()
    {
    }
    void Elevator::getNowNum()
    {    
        HANDLE consolehwnd;
        consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(consolehwnd, 10);
        cout << "您现在在" << NowNum << "楼" << endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY
            | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
        cout << "请选择:";
        cout << "1.上升    2.下降    3.退出    " ;
    }
    void Elevator::SetToNum(int a)
    {
            ToNum = a;    
    }
    void Elevator::UP()
    {
        int i;
        if (ToNum < NowNum)    
                cout << "你不能上行" << endl;
        else if (ToNum == NowNum)
                cout << "亲,你就在这一层了,别调皮" << endl;
        else
        {
                for ( i = NowNum+1; i <= ToNum & i<=10; i++)
            {
                cout << "现在到了第" << i << "层了,我们就快到了" << endl;
                Sleep(500);
            }
            if (ToNum>10)
            {
                ToNum = i-1;
                cout << "以上楼层正在建设中,您只能到这里了。" << endl;
                NowNum = 10;
            }
            else    
            NowNum = ToNum;
        }
        
    }
    void Elevator::DOWN()
    {
        int i;
        if (ToNum > NowNum)
                cout << "你不能下行" << endl;
        else if (ToNum == NowNum)
                cout << "亲,你就在这一层了,别调皮" << endl;
        else
        {
            for ( i = NowNum - 1; i >= ToNum & i>=1; i--)
            {
                cout << "现在到了第" << i << "层了,我们就快到了" << endl;    
                Sleep(500);
            }
            if (ToNum<1)
            {
                ToNum = i+1;
                cout << "地下室正在挖,您过两天才能下去。" << endl;
                NowNum = 1;
            }
            else    
            NowNum = ToNum;
        }
        
    }

    demo.cpp

    #include<iostream>
    #include<Windows.h>
    #include"Elevator.h"
    using namespace std;
    int main()
    {

        Elevator e1;
        int choice,to;
        SYSTEMTIME time;    
        GetLocalTime(&time);        
        printf("%4d年%02d月%02d日 %02d:%02d:%02d 星期%1d ", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond,  time.wDayOfWeek);        
        cout << "欢迎乘坐电梯 " << endl;
        while (1)
        {    
            
            e1.getNowNum();
            cout<<"输入你的选择:";
            cin >> choice;
            e1.SetToNum(to);
            switch(choice)
            {
                case 1:{
                    cout<<"输入你要去的楼层:"<<endl;
                    cin>>to;
                    e1.SetToNum(to);
                    e1.UP();break;
                    }
                case 2:{
                    cout<<"输入你要去的楼层:"<<endl;
                    cin>>to;
                    e1.SetToNum(to);
                    e1.DOWN();break;
                }                
                case 3:
                    return 0;
                default:    
                    cout<<"输入错误!"<<endl;
            }
            
            
            
            
            
        }
        
        system("pause");
        return 0;
    }

  • 相关阅读:
    本地化中文示例代码需求调查
    微软一站式示例代码库下载过热导致下载计数器溢出bug
    中文版示例代码浏览器for Windows 8
    Tips of the Week for Microsoft Products
    [leetcode] Longest Substring Without Repeating Characters
    [leetcode] Add Two Numbers *
    树的直径 图的直径
    解题笔记(2)——部分面试题解题思路 [转]
    两个容积互质的水杯可倒出任意从1到容积和的水量
    latex中括号大小控制 [转]
  • 原文地址:https://www.cnblogs.com/da-peng/p/4946937.html
Copyright © 2011-2022 走看看