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 键退出");
                }
            }
        }
    }
}
相关推荐
专注VB编程开发20年1 小时前
开发VS2026插件最佳方案:老式VSIX EnvDTE
ide·c#·visual studio
专注VB编程开发20年2 小时前
VS2026最新ide插件VisualStudio.Extensibility进程外 OOP 新模型
ide·c#·visual studio
协享科技2 小时前
前端 SSE 流式响应处理实践:从接收、解析到渲染
前端·人工智能·程序人生·go·ai编程·sse
scan7242 小时前
短期记忆记忆存储在内存里,一个会话里的多轮对话
开发语言·c#
JaydenAI2 小时前
[MAF预定义Agent中间件-01]LoggingAgent——在Agent调用前后输出日志
ai·c#·agent·maf·agent管道·agent中中间件
JaydenAI2 小时前
[MAF预定义的AIContextProvider-10]TodoProvider——用TodoList驱动Agent的任务执行
ai·c#·agent·maf
淡水瑜3 小时前
C# 实操
开发语言·c#
Fms_Sa3 小时前
贪心算法-背包问题
算法·贪心算法·c#
csdn_aspnet3 小时前
C# 使用linq给List某个属性值赋值
c#·list·linq
专注VB编程开发20年4 小时前
VisualStudio.Extensibility跨进程插件是防卡死IDE?
ide·visual studio