C++小程序『随机运气』的算法优化

#程序内容
随机运气加随机时间
核心是rand函数
原本要搭配srand函数
但多次尝试后发现有bug。
#bug内容
1.反应缓慢
2.输入数字无反应并继续运行。源码可见,cin>>读入一个字符。每次赋值m正常运行后总会判断m最终值为“ ”一个空格。所以会错误地跳转到其他子程序。
#核心问题
如何优化算法,从而避免大量if和rand杂糅从而降低运算速度。以及莫名奇妙的输入问题(详见bug内容2)

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
using namespace std;
#define MIN 0
#define MAX 90

int main()
 {
     char m='0';
     int a,b;
     for(int i=0;;i++)
     {
         
         system("cls");
         printf("模拟樱落机器人\n\n扣1 查看今日人品\n扣2 查看脱单时间\n扣3 结束程序\n\n仅供娱乐\n请输入:");
        cin>>m;
         if(isdigit(m)!=0)
        {
                if(m=='1')
        {
            //system("cls");
            //cout<<"1111"<<endl;
            system("cls");
    //srand((unsigned)time(0));
    
    //a=MIN+(int)MAX*rand()/(RAND_MAX + 1);
    a=int(rand()%91);
    b=int(rand()%2);
    if(b==1) 
    {
        if(a!=0) a=-a;
        else a=0;
    }
    else a=int(a);
    if(a>=-90&&a<-60) cout<<"Your luck is "<<a<<"     That is too bad!\n你的运气是"<<a<<"      \n已达成《好运破坏神》成就";
    else if(a>=-60&&a<-30) cout<<"Your luck is "<<a<<"     That is bad!\n你的运气是"<<a<<"    \n已达成《好运终结者》成就  ";
    else if(a>=-30&&a<0) cout<<"Your luck is "<<a<<"     That is not good!\n你的运气是"<<a<<"     \n已达成《好运无缘患者》成就";
    else if(a>=0&&a<30) cout<<"Your luck is "<<a<<"     That is not bad!\n你的运气是"<<a<<"     \n已达成《好运使者》成就";
    else if(a>=30&&a<60) cout<<"Your luck is "<<a<<"     That is good!\n你的运气是"<<a<<"     \n已达成《好运达人》成就";
    else if(a>=-30&&a<0) cout<<"Your luck is "<<a<<"     That is so good!\n你的运气是"<<a<<"     \n已达成《好运大师》成就";
    else if(a==90) cout<<"Your luck is "<<a<<"     That is really good!\n你的运气是"<<a<<"     \n已达成《运气之王》成就";
            Sleep(1.0*1000);
            system("cls");
            m=0;
            
        }
                else if(m=='2')
        {
            //system("cls");
            system("cls");
    srand((unsigned)time(0));
    int f,g,h,j,k,l;
    f=int(rand()%2);
    g=int(rand()%12);
    h=int(rand()%31);
    j=int(rand()%24);
    k=int(rand()%60);
    l=int(rand()%60);
    if(f!=0&&g!=0&&h!=0&&j!=0&&k!=0&&l!=0) cout<<"\n你还有"<<f<<"年"<<g<<"月"<<h<<"天"<<j<<"小时"<<k<<"分"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g!=0&&h!=0&&j!=0&&k!=0&&l!=0) cout<<"\n你还有"<<g<<"月"<<h<<"天"<<j<<"小时"<<k<<"分"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g==0&&h!=0&&j!=0&&k!=0&&l!=0) cout<<"\n你还有"<<h<<"天"<<j<<"小时"<<k<<"分"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g==0&&h==0&&j!=0&&k!=0&&l!=0) cout<<"\n你还有"<<j<<"小时"<<k<<"分"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g==0&&h==0&&j==0&&k!=0&&l!=0) cout<<"\n你还有"<<k<<"分"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g==0&&h==0&&j==0&&k==0&&l!=0) cout<<"\n你还有"<<l<<"秒脱单!"<< "\n加油啊!" ;
    else if(f==0&&g==0&&h==0&&j==0&&k==0&&l==0) cout<<"\n老实交代,你是不是爱神附体了!" ;
            Sleep(1.0*1000);
            system("cls");
            m=0;
            
        }
                else if(m=='3')
            {
                break;
                cout<<"程序即将结束"<<endl;
            }
                else if(m!='1'&&m!='2'&&m!='3')
        {
            system("cls");
            cout<<"你输入的数字 "<<m<<" 没有对应功能"<<endl;
            Sleep(0.3*1000);
            cout<<"请重新输入"<<endl;
            //Sleep(1.0*1000);
            cin.clear();
            cin.sync();
            
        }
        }
        else if(isalpha(m)!=0)
        {
            system("cls");
            cout<<"\n你输入的 "<<m<<" 不是数字,请重新输入\n";
            Sleep(0.8*1000);
            cin.clear();
            cin.sync();
        }
        else 
        {
            system("cls");
            cout<<"\n你输入的 "<<m<<" 不是数字,请重新输入\n";
            Sleep(0.8*1000);
            cin.clear();
            cin.sync();
        }
         
         
    }
    return 0;
 }

完。