用C/c++写一个给朋友的生日祝福,保证代码运行

时间:2025-03-11 14:59:58
#include <>
#include <> //rand(), srand()
#include <>
#include <>
#define ONEMB    (1024*1024)
#define ONEGB    (1024*ONEMB) 
 
//bute转化函数 
int convByteToHumanResult(unsigned int bytes, char* result)
{
    int i;
    char uint[][5] = {"B", "Kb", "MB", "GB", "TB", "PB"};
    double dbBytes = bytes;
    
    if(NULL == result)
    {
        return -1;
    }
        
    for(i=0; dbBytes>=1024.0;i++)
    {
        dbBytes /= 1024.0;
    }
 
    sprintf(result, "%.2lf%s", dbBytes, uint[i]);
    return i;
}
 
//显示进度条函数 
void showProcessBar(unsigned int total, unsigned int recv, char* info)
{
    int i;
    float frecv = recv;
    int percent = (int)((frecv/total) * 100);
    char res1[64] = {0};
    char sum1[64] = {0};
    char bar[101] = {0};
    
    for(i=0; i<percent; i++)
    {
        bar[i] = '#';
    }
    
    convByteToHumanResult(recv, res1);
    convByteToHumanResult(total, sum1);
    
    if(NULL != info)
    {
        printf("\r%s total:%s(%u Byte) recv:%s(%u Byte) [%d%%%s]     ", info, sum1, total, res1, recv, percent, bar);
        fflush(stdout);
    }    
}
 
int main(void)
{
    unsigned int i;
    unsigned int total1 = (unsigned int)188 * ONEMB;
    unsigned int total2 = (unsigned int)1 * ONEGB + 267 * ONEMB;
    
    srand(time(0));//设置个随机数种子
    
    printf("正在连接!请稍后。");
    Sleep(2000);
    
    printf("\nStart download ...\n");
    for(i=0;;)
    {
        showProcessBar(total1, i, "download...");
        
        if(i >= total1)
        {
            break;
        }
        
        i += rand()%1024;
        
        if(i>total1)
        {
            i = total1;
        }
    }
    
    printf("\nDownload finish!\n\n");
    
    
    printf("\n别慌,还有一个要加载。\n");
    Sleep(1000);
    printf("\n我们可以开始了吗?\n");
    printf("Y/N\n");
    char a;
    while(1)
    {
        a=getchar();
        getchar();
        if(a=='n'||a=='N'||a=='Y'||a=='y')break;
        else printf("\n不合法的输入!请重新输入吧:Y/N\n");
    }
    if(a=='n'||a=='N')
    {
        printf("\n啊?确定吗?Y/N\n") ;
        char b;
            while(1)
        {
            b=getchar();
            getchar();
            if(b=='n'||b=='N'||b=='Y'||b=='y')break;
            else printf("\n不合法的输入喔!请重新输入吧:Y/N\n");
        }
        if(b=='y'||b=='Y'){printf("\n好吧...\n");Sleep(3000);printf("等几秒我就会退出了。");Sleep(10000);return 0;    } 
    } 
    printf("\n好的!\n");Sleep(1000);
    printf("\n按任意键我们继续。\n");
    getchar();
    Sleep(1000);
    printf("\nStart download ...\n");
    Sleep(2000);
    for(i=0;;)
    {
        showProcessBar(total2, i, "download...");
        
        if(i >= total2)
        {
            break;
        }
        
        i += rand()%8192;
        
        if(i>total2)
        {
            i = total2;
        }
    }
    
    printf("\nDownload finish!\n");
    Sleep(1000); 
    printf("\n现在开始确认使用者身份。\n");Sleep(1000);
    printf("\n方便输入您的姓名吗?\n");Sleep(1000);
    
    char aa[100];
    while(1)
    {
        printf("\n请输入姓名:");
        scanf("%s",aa);
        getchar();
        if(strcmp(aa,"某某某")==0){printf("\n查询中");Sleep(400);printf("...\n");Sleep(2000);
        printf("\n找到啦!\n");break; }
        else 
        {
            printf("\n查询中");
            Sleep(400);
            printf("...\n");
            Sleep(3000);
            printf("\n不好意思。本程序的被邀请人不是您。\n");
            Sleep(500);
            printf("\n是不是不小心输错了?\nY/N\n");
            char pp;
            while(1)
            {
                pp=getchar();
                getchar();
                if(pp=='n'||pp=='N'||pp=='Y'||pp=='y')break;
                else printf("\n不合法的输入喔!请重新输入吧:Y/N\n");
            }
            if(pp=='n'||pp=='N')
            {    
                printf("\nok,正在退出。\n");
                Sleep(4000);
                return 0;
            }
        
        } 
    }
    printf("\n好耶!某某是你!\n");Sleep(1000);Sleep(1000);
    printf("\n我是moumou,嘿嘿。\n");
    Sleep(2000);
    printf("\n额\n");
    Sleep(2000); 
    printf("\n额,啊不\n");
    Sleep(2000); 
    printf("\n我是机器人0505号;\n你可以叫我的英文名:Abi,\n");Sleep(2000);
    printf("\n鼓掌!\n"); Sleep(1000);
    while(1)
    {
        printf("\n请输入:‘你好,Abi'.\n");Sleep(1000);
        char xx[100];
        scanf("%s",xx);
        getchar();
        if(strcmp(xx,"你好,Abi")!=0){printf("\n输入错了!真笨!\n\n不鼓掌了。\n");Sleep(1000);} 
        else
        break;
    }Sleep(1000);
    printf("\n输入正确!\n");Sleep(1000);
    printf("\n也问你好哦!\n");Sleep(1000);
    printf("\n鼓掌!\n"); Sleep(1000);
    Sleep(1000);
    printf("根据《地球简史》记载,某小姐您是在 地球年NNNN年 地球月NN月 地球日NN日 降临于这个星球!\n\n");Sleep(1000);
    printf("\n鼓掌!\n") ;Sleep(1000);
    printf("\n正在计算中");Sleep(1000);
    Sleep(1000);printf(".");
    Sleep(1000);printf(".");
    Sleep(1000);printf(".\n");
    Sleep(3000);
    printf("\n今天是某小姐您留在这个星系观察的第N个地球年。\n按照地球人类生物的习俗,是个值得纪念的日子!\n");Sleep(1000);
    printf("\n鼓掌!\n") ;
    Sleep(3000);
    printf("\n据我猜测,这一年你应该过的很充实吧。\n");Sleep(1000);
    printf("\nAbi也过得非常充实,哈哈。");Sleep(1000);
    printf("\n鼓掌!\n") ;
    Sleep(3000);
    printf("\n好啦,我来这的目的就是祝你生日快乐的!\n");
    Sleep(1000);
    printf("\n如果你以后继续留在这个星系的话,祝你观察顺利哦!");Sleep(2000);
    printf("\n如果你想去其他星系的话,可以联系我o!\n");Sleep(2000);
    printf("\n才怪,哈哈。我只是个机器人。我又不在地球\n");Sleep(2000);
    printf("\n不过我在太阳耳朵里里装了一个接收装置\n");Sleep(2000);
    printf("\n只要你赞美太阳,装置就会告诉太阳,让太阳在有空的时候晒晒你。\n");Sleep(2000);
    printf("\n鼓掌!\n") ;Sleep(2000);
 
    Sleep(2000);
    printf("赞美太阳!\n");
    printf("\n祝福你!\n"); 
    printf("乌拉!\n乌~拉~!\n"); 
    
    printf("用Python 给你画个飞机,哈哈。\n");    Sleep(1000);
    printf("来源代码找找吧!\n");    Sleep(1000);
    printf("Python海龟好累(小声bibi)\n按任意键结束程序。"); 
    getchar();    Sleep(2000);
    
    for(i=0;;)
    {
        showProcessBar(total2, i, "正在关闭...");
        
        if(i >= total2)
        {
            break;
        }
        
        i += rand()%8192;
        
        if(i>total2)
        {
            i = total2;
        }
    }
    printf("本次连接已断开!"); 
    /*
    import turtle
#太阳
('red')
()
(250,200)
()
turtle.begin_fill()
(50)
turtle.end_fill()
('black','blue')
turtle.begin_fill()
#飞机
()
()
()
(5)
(-300,150)
(100,50)
(0,0)
turtle.end_fill()
(-30,-125)
(-50,-50)
turtle.begin_fill()
(-300,150)
(-125,-125)
(-50,-50)
(-30,-125)
(-85,-85)
turtle.end_fill()
#线条
(3)
()
(75,25)
()
(200,0)
()
(50,-5)
()
(250,-30)
()
(10,-80)
()
(100,-150)
()
(-80,-125)
()
(120,-200)
()
 
    */
 
    return 0;
}