VS2022实战测试题——2

一、题目要求

Console 类综合应用(15 分)
编写程序实现一个简单的用户交互界面:

  1. 使用 Console 类的不同方法实现:
  • 设置控制台背景色为深蓝色,前景色为白色
  • 输出带颜色的欢迎语(如绿色的 "欢迎使用 XX 系统")
  • 使用 ReadKey () 实现按任意键继续的功能
  • 使用 SetCursorPosition () 将光标定位到指定位置输出提示信息
  1. 接收用户输入的姓名和年龄,格式化输出如下内容:

姓名:XXX

年龄:XX岁

出生年份:XXXX年(根据当前年份计算)

  1. 程序结束前要求用户按 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 键退出");
                }
            }
        }
    }
}
相关推荐
雨落倾城夏未凉3 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
NE_STOP4 天前
Vibe Coding -- Claude Code 的核心配置与常用命令
程序人生
唐青枫4 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫5 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m6255 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户91721561902115 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
小码编匠6 天前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net
唐青枫8 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech8 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf10 天前
C#摸鱼实录——IoC与DI案例详解
c#