zoukankan      html  css  js  c++  java
  • ConsoleApplication也精彩,一个控制台进度条的示例。

    这年头记得习惯用ConsoleApplication的人恐怕也没有多少了,系统工具无论巨细,一律拖个巨大的form出来..其实控制台,写得好点也是很有趣的,比如这个效果

    下面代码演示了如何在控制台下展示一个进度条的工作过程。原理很简单,就把他当成一张纸,不停的写了擦,擦了写,当中的技巧全靠想象力,因为这个类实在是太简单了。

    using  System;
    namespace  ConsoleApplication11
    {
        
    class  Program
        
    {
            
    /*
             *  ConsoleApplication也精彩。
             *  作者        jinjazz
             *  作者blog    
    http://blog.csdn.net/jinjazz
             *  演示功能    windows控制台下的进度条
             
    */

            
    public   static   void  Main()
            
    {

                
    bool  isBreak  =   false ;
                ConsoleColor colorBack 
    =  Console.BackgroundColor;
                ConsoleColor colorFore 
    =  Console.ForegroundColor;

                
    // 第一行信息
                Console.WriteLine( " *********** jinjazz now working...****** " );

                
    // 第二行绘制进度条背景
                Console.BackgroundColor  =  ConsoleColor.DarkCyan;
                
    for  ( int  i  =   0 ++ <=   25 ; )
                
    {
                    Console.Write(
    "   " );
                }

                Console.WriteLine(
    "   " );
                Console.BackgroundColor 
    =  colorBack;

                
    // 第三行输出进度
                Console.WriteLine( " 0% " );
                
    // 第四行输出提示,按下回车可以取消当前进度
                Console.WriteLine( " <Press Enter To Break.> " );

                
    // -----------------------上面绘制了一个完整的工作区域,下面开始工作

                
    // 开始控制进度条和进度变化
                 for  ( int  i  =   0 ++ <=   100 ; )
                
    {
                    
    // 先检查是否有按键请求,如果有,判断是否为回车键,如果是则退出循环
                     if  (Console.KeyAvailable  &&  System.Console.ReadKey( true ).Key ==  ConsoleKey.Enter)
                    
    {
                        isBreak 
    =   true ;
                        
    break ;
                    }

                    
    // 绘制进度条进度
                    Console.BackgroundColor  =  ConsoleColor.Yellow; // 设置进度条颜色
                    Console.SetCursorPosition(i / 4 1 ); // 设置光标位置,参数为第几列和第几行
                    Console.Write( "   " ); // 移动进度条
                    Console.BackgroundColor  =  colorBack; // 恢复输出颜色
                    
    // 更新进度百分比,原理同上.
                    Console.ForegroundColor  =  ConsoleColor.Green;
                    Console.SetCursorPosition(
    0 2 );
                    Console.Write(
    " {0}% " , i);
                    Console.ForegroundColor 
    =  colorFore;
                    
    // 模拟实际工作中的延迟,否则进度太快
                    System.Threading.Thread.Sleep( 100 );
                }

                
    // 工作完成,根据实际情况输出信息,而且清楚提示退出的信息
                Console.SetCursorPosition( 0 3 );
                Console.Write(isBreak 
    ?   " break!!! "  :  " finished. " );
                Console.WriteLine(
    "                        " );
                
    // 等待退出
                Console.ReadKey( true );
            }

        }

    }

  • 相关阅读:
    〖Linux〗秒开www.stackoverflow.com,非代理方式
    〖Linux〗git push orgin master不能解析域名的解决方法
    unity, terrain道出为obj
    unity, 顶点对齐
    world machine, 输出lightmap
    unity, scene视图查看场景时应调成正交模式
    unity, 由scriptableObject创建.asset
    unity, 播放循环背景音乐注意事项
    用audacity制作循环背景音乐
    unity, 保存prefab时material丢失问题
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204944.html
Copyright © 2011-2022 走看看