C++ 股票游戏 免费 代码


#include<bits/stdc++.h>
#include"windows.h"
using namespace std;
int r[11],cx[11],d,i,j,p,x,xx,xxx,rt,ret,stn,s,sd,sdn,k,tn,h,z,zx,wt,kkk,wek;
double money,c[11],n,b,bx,re,use,mb,dm,df,dx,cn,cun,nnn,tou;
bool bk,cj[11],hhh=1,ct=1;

void printn();

int main()
{

    printf("炒股票:(BY:huaxuanwu)\n");
    printf("你将进行一些操作来买卖股票\n");
    printf("你有一定的财富用于自由购买\n");
    printf("但当你的负债大于1000元时,你将破产\n");
    printf("请注意:即使不进行任何操作,每天仍会有不少于当前现金的千分之一的消耗\n");
    printf("注:-1为自选模式,0为无限模式\n");
    printf("\n请按回车键继续...");
    getchar(); 

    system("cls") ;
    printf("请输入你想要的难度(-1~6)");
    scanf("%d",&k);
    if(k<=6&&k>=-1)
    {
        switch(k)
        {

            case -1:
                printf("\n你期望的现金?") ;
                scanf("%lf",&money);
                printf("\n你期望的目标?") ;
                scanf("%lf",&mb);
                printf("\n你期望的日期?") ;
                scanf("%d",&tn);
                k=4;        
                break;

            case 0:
                money=1000000;
                mb=9999999.99;
                tn=9999999;
                break;  

            case 1:
                money=10000;
                mb=1000;
                tn=1000;
                break;

            case 2:
                money=20000;
                mb=5000;
                tn=100;
                break;

            case 3:
                money=30000;
                mb=15000;
                tn=90;
                break;

            case 4:
                money=50000;
                mb=30000;
                tn=80;
                break;

            case 5:
                money=100000;
                mb=100000;
                tn=70;
                break;

            case 6:
                money=300000;
                mb=700000;
                tn=60;
                break;

        }
        if(k==0)
        {
            k=7;
        }
    }
    else
    {
        return 0;
    }
    kkk=k;
    nnn=money;

    for(i=1;i<=k+2;i++)c[i]=i*100.00;

    printf("\n你需要在%d天内赚%.2lf元\n",tn,mb);
    printf("你的初始资金为%.2lf元\n",money);
    printf("祝君游戏愉快。\n");
    printf("\n请按回车键继续...");
    getchar();
    getchar(); 
    mb+=money;
    system("cls") ;
    system("color 7E");

        /* START */ 

    do
    {   
    if(hhh) 
        d++;
    system("cls");
    printf("指令:0=过,1=买,2=卖,3=借,4=还,5=存,6=取");
    if(!hhh)printf(",666=正常模式");
    if(k==7)printf(",7=GAME OVER");
    printf("\nDay %d:\n",d);    
    srand(clock());
     wt=rand()%600;
     if(wt==0)
     {
        printf("系统缺钱,向你借了%.2lf元\n",money/3);
        money/=1.5;
     }
     if(wt>590)
     {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        printf("    你遭受了偷窃!\n");
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|FOREGROUND_GREEN|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        tou=money*(k+2)/10;
        money-=tou;
     }
     if(tou&&wt<400&&wt>380)
     {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        printf("   你的财富得以追回!\n");
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|FOREGROUND_GREEN|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        money+=tou; 
     }

    if(d>=3)
    if(stn)
    {
        srand((int)time(0)),s=rand()%(k/2+1);
        if(s&&hhh) 
        {
            sd++;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            printf("     金融危机第%d天\n",sd);
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|FOREGROUND_GREEN|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            sdn=rand()%30+10;
        }
        else 
          sd=0,sdn=0,stn=0;
    }
    else
    {
        srand((int)time(0));
        s=rand()%10;
        if(!s&&hhh) 
        {
            sd=1;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            printf("     金融危机!\n");
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            sdn=20;
            stn=1;
        }
    }

    if(d>1&&hhh)
    {
        srand((int)time(0));
        use=rand()%50+sdn+money/1000;
        money-=use;
        df+=use;
    }

    printf("当前资产:%.2lf\n",money);

    if(k!=7) 
    {
        printf("我的目标:%.2lf\n",mb);
        printf("还剩%d天\n",tn-d+1);
    }

    dx=dm-df;
    if(dx>0)
    {
        printf("昨日净赚:%.2lf\n",dx);
    }
    else 
    printf("昨日净亏:%.2lf\n",-dx);

    re=re*1.7;
    cun*=1.005;

    printf("今日还款额度:%.2lf\n",re);
    printf("当前借款:%.2lf\n",bx);
    printf("当前存款:%.2lf\n",cun);

    if(d==ret-1)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        printf("明天你必须还钱!\n");
    } 
    if(d==ret&&hhh) 
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        printf("现在你必须还钱!\n");
        money-=b*re;
        ret=0;
        bk=0;
        re=0;
        df+=n;
    }

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
    FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
    BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);

    if(money<-1000&&hhh) break;
        printf("  股市情况:  股价(元/股) 当前持有量  增/降百分点\n");
            for(i=1;i<=k+2;i++) 
            {
                printf("  ");
                x=rand()% (120-k*10);
                if(c[i]<10.00)
                {
                    h+=2;
                    x+=5;
                    if(c[i]<1.00)
                    {
                        h+=2;
                        x+=10;
                        if(c[i]<0.1)
                        {
                            h+=2;
                            x+=25;
                        }
                    }
                }
                r[i]=x-25-min((sdn/2),50)+h;
                z+=r[i];
                zx+=r[i];
                c[i]*=r[i]*0.01+1;

                if(z<-240||zx<-80)
                {
                    h+=1;
                }
                else
                {
                    if((z>320||zx>100)&&hhh)
                    {
                        h-=1;
                    }
                }

                srand(clock());
                _sleep(x+15);

                if(i%2==0)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY|
                    BACKGROUND_BLUE);                   
                }
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY|
                    BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                }
                printf(" 公司%d",i);
                printf("%18.6f%12d   ",c[i],cx[i]);
                if(r[i]>=0)
                {

                    if(i%2==0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                        BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);
                    }
                    else
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                        BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);                        
                    }

                }
                else
                {
                    if(i%2==0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_RED|FOREGROUND_INTENSITY|
                        BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);
                    }
                    else
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_RED|FOREGROUND_INTENSITY|
                        BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);                        
                    }

                }
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            }
            zx=0;
        printf("********************************************************************************");

            while(1)
            {
                printf("\n接下来你要做什么?\n");
                scanf("%d",&x);
            if(x==0)
            {
                system("color F0");
                _sleep(100);
                system("color 7E");
                break;
            }
            if((x>0&&x<7)||x==666||(x==8&&k==7))    
                switch(x)
                {
                    case 1:
                        printf("买那个?\n");
                        scanf("%d",&xx);
                        printf("买多少?\n");
                        scanf("%d",&xxx);
                        n=c[xx]*xxx;
                        if(xx>0&&xx<k+3&&xxx>0)
                            if(money>=n)
                            {
                                printf("交易成功!\n");
                                money-=n;
                                cx[xx]+=xxx;
                                df+=n;
                            }
                            else
                            {
                                printf("你买不起!\n");
                            }
                        else
                        {
                            printf("无效操作\n");
                        }
                        break;

                    case 2:
                        printf("卖那个?\n");
                        scanf("%d",&xx);
                        printf("卖多少?\n");
                        scanf("%d",&xxx);
                        n=c[xx]*xxx;
                        if(xx>0&&xx<k+3)
                        {
                            if(cx[xx]>=xxx)
                            {
                                printf("交易成功!\n");
                                money+=n;
                                if(hhh)
                                cx[xx]-=xxx;
                                dm+=n;
                            }
                            else
                            {
                                printf("股票不足!\n");
                                break;                              
                            }
                        }
                        else
                        {
                            printf("无效操作\n");
                        }
                        break;

                    case 3:
                        if(!bk)
                        {
                            printf("借多少?\n");
                            scanf("%lf",&bx);
                            if(bx<=money)
                            {
                                if(bx<=0)
                                {
                                    printf("无效操作\n");
                                    break;
                                }
                                money+=bx;
                                b=bx;
                                ret=d+14;
                                if(hhh) 
                                bk=1,re=0.01;
                                if(hhh)
                                printf("交易成功!两周内你必须还钱!\n");
                            }
                            else 
                                printf("你还不能借这么多钱!\n");
                        }
                        else 
                            printf("你现在不能借钱!\n");
                        break;

                    case 4:
                        if(b*re>money+1000) 
                        {
                            printf("你无力还钱!\n");
                            break; 
                        }
                        if(b==0) 
                        {
                            printf("你无需还钱!\n");
                            break;
                        }
                        money-=b*re;
                        ret=0;
                        re=0;
                        bk=0;
                        df+=n;
                        printf("还钱成功!\n");
                        break;

                    case 5:
                        printf("存多少?\n");
                        scanf("%lf",&cn);
                        if(cn<=0) 
                        {
                            printf("无效操作\n");
                            break;
                        }
                        if(money>=cn)
                        {
                            cun+=cn;
                            money-=cn;
                            printf("存款成功!\n");
                            break; 
                        }
                        else
                        {
                            printf("你没有这么多钱!\n");
                            break; 
                        }

                    case 6:
                        if(cun==0||hhh==0)
                        {
                            printf("你没有存款!\n");
                            break; 
                        }
                        else
                        {
                            money+=cun; 
                            cun=0;
                            printf("取款成功!\n");
                            break; 
                        }

                    case 7:
                        ct=0;
                        break;

                    case 666:
                        if(hhh)
                        {
                            printf("你是否进入无敌模式?\n是=1\n");
                            scanf("%d",&xx);
                            if(xx==1){
                                system("color 02");
                                _sleep(300);
                                printn();
                                _sleep(300);
                                system("color 02");
                                _sleep(300);
                                printn();
                                _sleep(300);
                                printf("Nice\n");
                                k=7;
                                money+=1000000;
                                for(i=1;i<=k+2;i++)
                                {
                                    cx[i]=99999;
                                    h=1000;
                                    hhh=0;
                                }
                            }
                        }
                        else
                        {
                            printf("你是否退出无敌模式?\n是=1\n");
                            scanf("%d",&xx);
                            if(xx==1){
                                system("color 02");
                                _sleep(300);
                                printn();
                                _sleep(300);
                                system("color 02");
                                _sleep(300);
                                printn();
                                _sleep(300);
                                printf("Well\n");
                                k=kkk;
                                money+=1000000;
                                    h=-10;
                                    hhh=1;
                            }
                        }
                    break;
                }
            else
                printf("无效操作\n");
            getchar();
            getchar();
            printn();
            }
        df=0,dm=0;
        /*
        if(d%7==0) 
        {
            system("cls");
            wek=d/7;
            printf("这是第%d周\n",wek);
            printf("是否资助?(是1否0)\n",wek);
            scanf("%d",&x) ;
            if(x==1)
            {
                printf("资助哪个?\n");
                scanf("%d",&x) ;
                while(x<0&&x>k+3)
                {
                    printf("无效操作"); 
                    scanf("%d",&x) ;        
                 } 

            }
        }*/

    }
    while(money>-1000&&((money-bx<mb&&d<tn)||(k==7)&&ct));

        /* GAME OVER */

    system("color F0"); 
     if(money>=mb) 
     {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_RED|FOREGROUND_INTENSITY|
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_INTENSITY);
         printf("************************************YOU WIN!************************************\n");
          printf("你在%d天内用%.2f元赚取了%.2f元",d,nnn,money-nnn);
     } 
     else 
     {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_INTENSITY);

         printf("***********************************YOU LOSE!************************************\n");

        if(money<-1000)
        {
            printf("你破产了!\n");
         }
         printf("你的最终资金:%.2f",money);
    }
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
    BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_INTENSITY);

     getchar() ;
} 

void printn()
{
    system("cls") ;
    system("color 7E"); 
    printf("指令:0=过,1=买,2=卖,3=借,4=还,5=存,6=取");
    if(!hhh)printf(",666=正常模式");
    if(k==7)printf(",7=GAME OVER");
    printf("\nDay %d:\n",d);
    if(d>=3)
    if(stn)
    {
        if(s&&hhh) 
        {
            sd++;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            printf("     金融危机第%d天\n",sd);
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|FOREGROUND_GREEN|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        }
    }
    else
    {
        if(!s&&hhh) 
        {
            sd=1;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            printf("     金融危机!\n");
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
            FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
            BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
        }
    }
    printf("当前资产:%.2lf\n",money);

    if(k!=7) 
    {
        printf("我的目标:%.2lf\n",mb);
        printf("还剩%d天\n",tn-d+1);
    }
    if(dx>0)
        printf("昨日净赚:%.2lf\n",dx);
    else 
        printf("昨日净亏:%.2lf\n",-dx);

    printf("今日还款额度:%.2lf\n",re);
    printf("当前借款:%.2lf\n",bx);
    printf("当前存款:%.2lf\n",cun);

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
    FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
    BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);

        printf("  股市情况:   股价(元/股) 当前持有量  增/降百分点\n");
            for(i=1;i<=k+2;i++) 
            {
                printf("  ");
                if(i%2==0)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY|
                    BACKGROUND_BLUE);                   
                }
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY|
                    BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                }
                printf(" 公司%d",i);
                printf("%18.6f%12d   ",c[i],cx[i]);
                if(r[i]>=0)
                {

                    if(i%2==0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                        BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);
                    }
                    else
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                        BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);                        
                    }

                }
                else
                {
                    if(i%2==0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_RED|FOREGROUND_INTENSITY|
                        BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);
                    }
                    else
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_RED|FOREGROUND_INTENSITY|
                        BACKGROUND_INTENSITY|BACKGROUND_BLUE);
                        printf("%7d%  \n",r[i]);                        
                    }

                }
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|
                BACKGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE);
            }
            zx=0;
        printf("********************************************************************************");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值