示例#1
0
文件: main.cpp 项目: ZhouYuanlin/CPP
void yanghuiTriangle(int n)
//操作结果:显示三角形的第1行~第n行
{
    LinkQueue<int> q;
    int s, t;
    
    q.InQueue(1);
    q.InQueue(1);                                 //存储杨辉三角形的第一行的两个元素值
    
    cout << 1 << "\t" << 1;                       //显示杨辉三角的第一行
    for (int i = 2; i <= n; i++) {
        //依次显示杨辉三角形的第2行~第n行
        cout << endl;
        q.InQueue(1);                             //第i行第1个元素值为1
        cout << 1 << "\t";                        //显示第i行第1个元素值
        q.OutQueue(s);                            //取出第i-1行第1个元素
        for (int j = 2; j <= i; j++) {
            q.OutQueue(t);                        //取出第i-1行第j个元素
            q.InQueue(s+t);                       //s+t为第i行第j个元素的值
            cout << s+t << "\t";                  //显示第i行第j个元素的值
            s = t;
        }
        q.InQueue(1);                             //第i行第i+1个元素的值为1
        cout << 1;
    }
    cout << endl;
}
示例#2
0
/// 主函数
int main( )
{
    // 调试状态下的输出信息
    #ifdef DEBUG           // 如果宏定义了DEBUG, 执行一下语句
    cout <<"\t\tHello World*****************************************" <<endl;
    cout <<"\t\t**              Now Start Debug                   **" <<endl;
    cout <<"\t\t*****************************************Hello World" <<endl;
    #endif

    // 非调试状态下的输出信息
    #ifndef DEBUG                // 如果宏定义了DEBUG, 执行一下语句
    cout <<"\t\t**************************************************** " <<endl;
    cout <<"\t\t**               Test SqQueue Of                  **" <<endl;
    cout <<"\t\t****************************************************" <<endl;
    #endif

    Welcome( );         // 欢迎界面



    // 程序初始化部分
    char answer;
    int choice, length, temp;

    LinkQueue<int> queue;     // 建立一个顺序队

    Lording( );         // 载入函数
    while( 1 )
    {

        Menu( );        // 系统菜单

        cin >>choice;         // 输入您的选择

        system("cls");        // 确认自己的选择后清屏

        // 分支语句进行判断
        switch(choice)
        {
            /// 1 -=> 新建一整形线性表
          case 1:
            // 系统信息提示
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t** 您当前的选择1 -=> 新建一整形顺序循环队列 **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl <<endl;

            // 程序测试部分
            cout <<"请输入您希望建立的顺序队的队宽" <<endl;
            cout <<"输入后系统会建立一个顺序队数据随机" <<endl;
            cin >>length;       // 输入顺序队的数据

            srand(time(NULL));              // 设置随机数种子
            for(int i = 0; i < length; i++) // 将系统设置的数据压入队中
            {
                temp = rand() % 100 + 1;                    // 设置一个1-100的随机数
                queue.InQueue(temp);                           // 将数据压入队中
                cout <<"将数据" <<temp <<"压入队中" <<endl; // 提示信息
            }
            cout <<"当前链式循环队列的长度" <<queue.Length( ) <<endl;
            // 系统信息提示
            cout <<endl <<endl;
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              数据入队完毕            **" <<endl;
            cout <<"\t\t**             即将返回主菜单           **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;
            system("pause");
            break;

          /// 2 -=> 显示建立的顺序循环队列
          case 2:
            // 系统提示信息
            cout <<"\t\t********************************************" <<endl;
            cout <<"\t\t** 您当前的选择2 -=> 依次弹出顺序队的数据 **" <<endl;
            cout <<"\t\t********************************************" <<endl <<endl <<endl;

            while(!queue.Empty())
            {
                cout <<"弹出的数据: " <<queue.OutQueue() <<endl;
            }
            cout <<"当前链式循环队列的长度" <<queue.Length( ) <<endl;

            // 系统提示信息
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              数据入队完毕            **" <<endl;
            cout <<"\t\t**             即将返回主菜单           **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;
            system("pause");
            break;

          /// 3 -=> 元素入队
          case 3:

            // 系统提示信息
            system("cls");
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**      您当前的选择5 -=> 元素入队      **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl <<endl;


            // 程序测试部分
            cout <<"由于这是队数据结构, 无法设置入队位置" <<endl <<endl;
            while( 1 )
            {
                cout <<endl <<endl <<"请输入您要入队的数据[输入0结束入队]" <<endl;
                cin >>temp;
                if(temp == 0)
                {
                    break;
                }
                queue.InQueue(temp);
                cout <<"将数据" <<temp <<"扎入队顶" <<endl;
            }
            // 系统提示信息
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              数据入队完毕            **" <<endl;
            cout <<"\t\t**             即将返回主菜单           **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;
            system("pause");
            break;

          /// 4 -=> 元素出队
          case 4:
            // 系统提示信息
            system("cls");
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**      您当前的选择5 -=> 元素出队     **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl <<endl;

            // 程序测试部分

            do
            {	// 循环直到用户输入恰当的回答为止
                cout <<endl <<endl <<"请问您是否确定需要弹出队顶数据" <<endl;
                cout << "(y, n)?" << "用y或n回答:";
                while ((answer = getchar( )) == '\n');	// 跳过空格,制表符及换行符获取一字符
                if(answer == 'y' || answer == 'Y')         // 只要队不是空的
                {
                    if(queue.OutQueue(temp) == true)     // 弹出队顶元素
                    {
                        cout <<"弹出队顶数据" <<temp <<endl;
                    }
                }
                else if(answer != 'n' && answer != 'N')
                {
                    cout <<"信息输入有误, 请重新输入" <<endl;
                }

                if(queue.Empty() == true)   // 如果当前顺序队为空, 则系统将自动返回主菜单
                {
                    cout <<"队列中元素全部出队, 无法继续出队" <<endl;
                    break;
                }
            }while (answer != 'n' && answer != 'N');

            // 系统提示信息
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              数据出队完毕            **" <<endl;
            cout <<"\t\t**             即将返回主菜单           **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;
            system("pause");
            break;

          /// 5 -=> 清空顺序循环队列
          case 5:
            // 系统提示信息
            system("cls");
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**     您当前的选择6 -=> 清空顺序队     **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl <<endl;

            // 程序测试部分
            queue.Clear( );         // 将顺序队清空
            cout <<"清空完毕, 当前顺序队长度" <<queue.Length() <<endl <<endl;
            // 系统提示信息
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              队列清空完毕            **" <<endl;
            cout <<"\t\t**             即将返回主菜单           **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;
            system("pause");
            break;

          /// 0 -=> 退出程序
          case 0:
            // 系统提示信息
            cout <<"\t\t******************************************" <<endl;
            cout <<"\t\t**              玩家选择结束            **" <<endl;
            cout <<"\t\t**           系统正在做返回处理         **" <<endl;
            cout <<"\t\t******************************************" <<endl <<endl;
            cout <<"Please ent any key to continue........................" <<endl;          // 系统提示信息

            Stop( );

            Lording( );         // 载入函数
        }
    }

    return 0;
}