Exemplo n.º 1
0
int main(void)
{
	//HANDLE ThreadA;
	//hint();
	//ThreadA=CreateThread(NULL,0,ChangeInformation,NULL,0,NULL);//输入函数的线程
	//run();
	EggStart(EGG_LENGTH,EGG_WIDTH);
	inputControlFun();
	Draw_Track();
	Switch();

	Draw_ProbePoint();
	OriginalPos();
	EggCount=LayEgg();
	//WaitForExit();
	events();

	return 0;
 }
Exemplo n.º 2
0
/***********************************************************
	函数名称: initialize()
	函数功能: 初始化电梯参数和版权声明
	入口参数: 无
	出口参数: 无
	备 注:
***********************************************************/
void initialize(void)
{
    //定义变量
    int i;
    char temp;
    DWORD ThreadID3 = 3;
    HANDLE hRead2;

    printf("\t                                                \\\\\\|///\n");
    printf("\t                                              \\\\\  - -  //\n");
    printf("\t                                               (  @ @  )\n");
    printf("\t┏━━━━━━━━━━━━━━━━━━━━━━oOOo-(_)-oOOo━┓\n");
    printf("\t┃                        电梯系统                           ┃\n");
    printf("\t┃                  组长:黄昱恺                             ┃\n");
    printf("\t┃                  组员:胡梓庭、李宏凯                     ┃\n");
    printf("\t┃                  版权所有、翻版必究                Oooo   ┃\n");
    printf("\t┗━━━━━━━━━━━━━━━━━━━━━━ oooO━-(   )━┛\n");
    printf("\t                                               (   )   ) /\n");
    printf("\t                                                \\ (   (_/\n");
    printf("\t                                                 \\_)\n");


    //电梯初始参数设置
    printf("\n\t电梯初始参数设置:\n\n");
    printf("\t    请输入电梯每运行一层需要的时间(单位秒),建议输入5:  ");
    scanf("%d", &velocity);

    //判断输入数据是否合法
    for (; velocity <= 0;)
    {
        printf("\t    时间为正值、请重新输入:");
        scanf("%d", &velocity);
    }

    printf("\t    请输入电梯停靠时间(单位秒),建议输入5:  ");
    scanf("%d", &stopTime);

    //判断输入数据是否合法
    for (; stopTime <= 0;)
    {
        printf("\t    时间为正值、请重新输入:");
        scanf("%d", &stopTime);
    }

    printf("\t    请选择电梯初始策略\n\t        A:顺便服务策略\n\t        B:先来先服务策略\n\t        C:一般电梯策略\n\t        D:宏福电梯策略\n\t        E:最快响应策略\n\t        F:最短平均等待时间策略\n\t    请输入策略类型:");

    //判断输入数据是否合法
    for (; ok == 0;)
    {
        fflush(stdin);
        scanf("%c", &temp);

        //选择策略
        switch(temp)
        {
            case 'A'
                    :
                Profile = A;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            case 'B'
                    :
                Profile = B;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            case 'C'
                    :
                Profile = C;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            case 'D'
                    :
                Profile = D;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            case 'E'
                    :

                Profile = E;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            case 'F'
                    :

                Profile = F;
                previousProfile = Profile;//前一策略的参数初始化
                ok = 1;//输入数据符合格式要求
                break;

            default
                    :
                printf("\t    输入错误,请重新输入:");
        }


    }

    //策略为C、D时单独初始化数据
    fflush(stdin);

    if (Profile == C)
    {
        printf("\t    请输入电梯空闲多久后回到一层(单位秒),建议输入10:  ");
        scanf("%d", &waitTime);

        for (; waitTime <= 0;)
        {
            printf("\t    时间为正值、请重新输入:");
            scanf("%d", &waitTime);
        }
    }

    if (Profile == D)
    {
        printf("\t    请输入屏蔽电梯二层到第几层的请求(单位秒),建议输入5:  ");
        scanf("%d", &blockedFloor);

        for (; blockedFloor <= 1 || blockedFloor > 9;)
        {
            printf("\t    楼层输入不符合、请重新输入:");
            scanf("%d", &blockedFloor);
        }

    }

    //提示是否隐藏DOS窗口
    printf("\t    是否显示DOS控制台\n\t    (显示输入Y,隐藏输入N,可在图形界面按右键随时调出),建议输入N:  ");
    fflush(stdin);
    scanf("%c", &ShowConsole);
    fflush(stdin);

    //判断输入数据是否合法
    for (; ShowConsole != 'N' && ShowConsole != 'Y';)
    {
        printf("\t    输入错误,请重新输入:");
        fflush(stdin);
        scanf("%c", &ShowConsole);
    }

    //系统环境的提示
    MessageBox(NULL, TEXT("  本电梯系统图形界面分辨率为1024*768\n  如果系统分辨率过低可能导致电梯界面显示不完全\n  如果电梯下部分显示不完全,建议隐藏系统任务栏后使用"), TEXT("使用环境注意"), MB_ICONINFORMATION);

    if (ShowConsole == 'N')
    {
        EggStart(1024, 768);
        ShowConsoleWindow(0);//隐藏DOS窗口
    }
    else
    {
        EggStart(1024, 768);
    }


    //开始初始化,首先获得背景的句柄
    background = GetActiveEgg();
    //图形界面初始化新建一个线程
    hRead2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)initializeanimation, NULL, 0, &ThreadID3);

    //输入初始数据后,进入电梯界面
    for (i = 1; i <= 2; i++)
    {
        printf("\n");
    }

    //DOS界面初始化
    printf("\t电梯系统正在初始化");

    for (i = 1; i <= 2; i++)
    {
        printf("\n");
    }

    for (i = 1; i <= 14; i++)
    {
        printf(" ");
    }

    for (i = 1; i <= 50; i++)
    {
        printf("\|");
        Sleep(45);
    }


}