一、题目要求
Console 类综合应用(15 分)
编写程序实现一个简单的用户交互界面:
- 使用 Console 类的不同方法实现:
- 设置控制台背景色为深蓝色,前景色为白色
- 输出带颜色的欢迎语(如绿色的 "欢迎使用 XX 系统")
- 使用 ReadKey () 实现按任意键继续的功能
- 使用 SetCursorPosition () 将光标定位到指定位置输出提示信息
- 接收用户输入的姓名和年龄,格式化输出如下内容:
姓名:XXX
年龄:XX岁
出生年份:XXXX年(根据当前年份计算)
- 程序结束前要求用户按 ESC 键退出,其他键则提示 "请按 ESC 键退出"
评分标准
- Console 类颜色设置(3 分)
- 光标定位与 ReadKey 使用(4 分)
- 输入输出格式化(4 分)
- ESC 键退出逻辑(2 分)
- 代码规范(2 分)
二、参考程序
cs
using System;
namespace Console类综合应用
{
class Program
{
private static void Main(string[] args)
{
// 1. 设置控制台背景色为深蓝色,前景色为白色
Console.ForegroundColor = ConsoleColor.White;
Console.BackgroundColor = ConsoleColor.DarkBlue;
Console.Clear(); // 清屏,让颜色设置立即生效(优化点)
// 2. 输出带颜色的欢迎语(绿色)
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("欢迎使用出生年份查询系统");
Console.ResetColor(); // 重置颜色,不影响后续输出
// 3. 使用 ReadKey() 实现按任意键继续(拦截按键,不回显)
Console.WriteLine("\n按任意键继续...");
Console.ReadKey(true);
// 4. 使用 SetCursorPosition() 定位到指定位置(第5行、第10列,指定坐标)
Console.SetCursorPosition(10, 5);
Console.WriteLine("请输入姓名:");
string name = Console.ReadLine();
Console.SetCursorPosition(10, 7); // 定位到第7行,避免内容重叠
Console.WriteLine("请输入年龄:");
int age = int.Parse(Console.ReadLine());
// 5. 格式化输出结果
Console.SetCursorPosition(10, 9); // 定位到结果区
Console.WriteLine($"姓名:{name}");
Console.WriteLine($"年龄:{age} 岁");
int birthYear = DateTime.Now.Year - age;
Console.WriteLine($"出生年份:{birthYear} 年");
// 6. ESC 键退出逻辑
Console.SetCursorPosition(10, 13); // 定位到提示区
Console.WriteLine("按下 ESC 键退出程序...");
while (true)
{
ConsoleKeyInfo keyInfo = Console.ReadKey(intercept: true);
if (keyInfo.Key == ConsoleKey.Escape)
{
Console.WriteLine("\n检测到 ESC 键,程序即将退出...");
Environment.Exit(0);
}
else
{
Console.WriteLine("请按 ESC 键退出");
}
}
}
}
}