C#编程

  程序写的有点繁杂,但大体功能出来的!

效果图:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using System.Threading;
  7 
  8 /*
  9  * 空间名:TrafficLight
 10  * 功能:模拟交通灯
 11  * 编写人:Doget
 12  * 编写日期:2017.10.14
 13 */
 14 namespace TrafficLight
 15 {
 16     class Program
 17     {
 18         const int RED_TIME = 10;
 19         const int GREEN_TIME = 15;
 20         const int YELLOW_TIME = 3;
 21 
 22         static void Main(string[] args)
 23         {
 24             //红绿灯程序开始
 25           START:
 26             Console.SetCursorPosition(0, 0);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
 27             Console.Write("请按S键开启交通灯:");
 28           if (InputYellow() == "s")
 29           {
 30               LightOn("green", GREEN_TIME);
 31               Thread.Sleep(500);
 32               LightOn("red", RED_TIME);
 33               Thread.Sleep(500);
 34               LightOn("yellow", YELLOW_TIME);
 35               Thread.Sleep(500);
 36           }
 37           else
 38           {
 39               Console.WriteLine("输入错误,请重新输入!");
 40               Console.Clear();
 41               goto START;
 42           }
 43           Console.Write("按g键继续,其他键退出:");
 44           if (InputYellow() == "g")
 45           {
 46               goto START;
 47           }
 48           else
 49               Console.ReadKey();
 50         }
 51         /// <summary>
 52         /// 输入黄色字体的内容
 53         /// </summary>
 54         /// <returns>用户输入的内容</returns>
 55         static string InputYellow()
 56         {
 57             string startCmd;
 58             Console.ForegroundColor = ConsoleColor.Yellow;
 59             startCmd = (Console.ReadLine()).ToLower();
 60             Console.ResetColor();
 61             return startCmd;
 62         }
 63         /// <summary>
 64         /// 亮灯控制
 65         /// </summary>
 66         /// <param name="color">设置亮灯的颜色</param>
 67         /// <param name="time">设置亮灯的时间</param>
 68         static void LightOn(string color, int time)
 69         {
 70             switch (color.ToLower())
 71             {
 72                 case "green":
 73                     Console.ForegroundColor = ConsoleColor.Green;
 74                     for (int i = time; i > 0; i--)
 75                     {
 76                         ShowNumber(i);
 77                         Thread.Sleep(1000);
 78                     }
 79                     Console.ResetColor();
 80                     break;
 81                 case "red":
 82                     Console.ForegroundColor = ConsoleColor.Red;
 83                     for (int i = time; i > 0; i--)
 84                     {
 85                         if (i < 10)
 86                         {
 87                             ShowNumber(i);
 88                         }
 89                         Thread.Sleep(1000);
 90                     }
 91                     Console.ResetColor();
 92                     break;
 93                 case "yellow":
 94                     Console.ForegroundColor = ConsoleColor.Yellow;
 95                     for (int i = time; i > 0; i--)
 96                     {
 97                         if (i < 10)
 98                         {
 99                             ShowNumber(i);
100                         }
101                         Thread.Sleep(1000);
102                     }
103                     Console.ResetColor();
104                     break;
105                 default:
106                     break;
107             }
108         }
109         /// <summary>
110         /// 显示数字方法
111         /// </summary>
112         /// <param name="number">要显示的数字</param>
113         static void ShowNumber(int number)
114         {
115             int geNum = number % 10;
116             int shiNum = number / 10 % 10;
117             int baiNum = number / 10 % 10;
118 
119             PrintNum(shiNum,0, 1);
120             PrintNum(geNum,8,1);
121         }
122         /// <summary>
123         /// 控制台打印要显示的字符
124         /// </summary>
125         /// <param name="number">要打印的数字</param>
126         /// <param name="shifx">打印数字距离屏幕左边距离</param>
127         /// <param name="shify">打印数字距离屏幕上边距离</param>
128         static void PrintNum(int number, int shifx, int shify)
129         {
130             switch (number)
131             {
132                 case 0:
133                     Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
134                     Console.Write("  ***    
");
135                     Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
136                     Console.Write(" *   *   
");
137                     Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
138                     Console.Write("*     *  
");
139                     Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
140                     Console.Write("*     *  
");
141                     Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
142                     Console.Write("*     *  
");
143                     Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
144                     Console.Write(" *   *   
");
145                     Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
146                     Console.Write("  ***    
");
147                     break;
148                 case 1:
149                     Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
150                     Console.Write("   *   
");
151                     Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
152                     Console.Write("  **   
");
153                     Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
154                     Console.Write(" * *   
");
155                     Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
156                     Console.Write("   *   
");
157                     Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
158                     Console.Write("   *   
");
159                     Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
160                     Console.Write("   *   
");
161                     Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
162                     Console.Write("*******
");
163                     break;
164                 case 2:
165                     Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
166                     Console.Write("*******
");
167                     Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
168                     Console.Write("      *
");
169                     Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
170                     Console.Write("      *
");
171                     Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
172                     Console.Write("*******
");
173                     Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
174                     Console.Write("*      
");
175                     Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
176                     Console.Write("*      
");
177                     Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
178                     Console.Write("*******
");
179                     break;
180                 case 3:
181                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
182                     Console.Write("*******
");
183                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
184                     Console.Write("      *
");
185                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
186                     Console.Write("      *
");
187                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
188                     Console.Write("*******
");
189                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
190                     Console.Write("      *
");
191                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
192                     Console.Write("      *
");
193                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
194                     Console.Write("*******
");
195                     break;
196                 case 4:
197                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
198                     Console.Write("*     *
");
199                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
200                     Console.Write("*     *
");
201                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
202                     Console.Write("*     *
");
203                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
204                     Console.Write("*******
");
205                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
206                     Console.Write("      *
");
207                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
208                     Console.Write("      *
");
209                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
210                     Console.Write("      *
");
211                     break;
212                 case 5:
213                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
214                     Console.Write("*******
");
215                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
216                     Console.Write("*      
");
217                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
218                     Console.Write("*      
");
219                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
220                     Console.Write("*******
");
221                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
222                     Console.Write("      *
");
223                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
224                     Console.Write("      *
");
225                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
226                     Console.Write("*******
");
227                     break;
228                 case 6:
229                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
230                     Console.Write("*******
");
231                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
232                     Console.Write("*      
");
233                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
234                     Console.Write("*      
");
235                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
236                     Console.Write("*******
");
237                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
238                     Console.Write("*     *
");
239                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
240                     Console.Write("*     *
");
241                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
242                     Console.Write("*******
");
243                     break;
244                 case 7:
245                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
246                     Console.Write("*******
");
247                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
248                     Console.Write("      *
");
249                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
250                     Console.Write("      *
");
251                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
252                     Console.Write("      *
");
253                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
254                     Console.Write("      *
");
255                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
256                     Console.Write("      *
");
257                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
258                     Console.Write("      *
");
259                     break;
260                 case 8:
261                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
262                     Console.Write(" ***** 
");
263                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
264                     Console.Write("*     *
");
265                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
266                     Console.Write("*     *
");
267                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
268                     Console.Write("  ***  
");
269                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
270                     Console.Write("*     *
");
271                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
272                     Console.Write("*     *
");
273                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
274                     Console.Write(" ***** 
");
275                     break;
276                 case 9:
277                                         Console.SetCursorPosition(shifx, shify);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
278                     Console.Write("*******
");
279                                         Console.SetCursorPosition(shifx, shify+1);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
280                     Console.Write("*     *
");
281                                         Console.SetCursorPosition(shifx, shify+2);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
282                     Console.Write("*     *
");
283                                         Console.SetCursorPosition(shifx, shify+3);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
284                     Console.Write("*******
");
285                                         Console.SetCursorPosition(shifx, shify+4);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
286                     Console.Write("      *
");
287                                         Console.SetCursorPosition(shifx, shify+5);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
288                     Console.Write("      *
");
289                                         Console.SetCursorPosition(shifx, shify+6);    //设置光标位置离屏幕左边为0,离屏幕顶部为1
290                     Console.Write("*******
");
291                     break;
292                 default:
293                     break;
294             }
295         }
296     }
297 }
View Code
原文地址:https://www.cnblogs.com/doget/p/7666367.html