从零到一:打造你的专属待办事项应用,探索 Windows 11 开发新境界

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:从零到一:打造你的专属待办事项应用,探索 Windows 11 开发新境界

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

    • 一、引言
    • 二、项目概述
      • 项目目标
      • 目标用户
      • 项目范围
      • 项目时间表
      • 预期成果
    • 三、技术栈
      • 1. 编程语言
      • 2. 用户界面框架
      • 3. 开发环境
      • 4. 数据库
      • 5. 数据访问技术
      • 6. 通知与任务栏集成
      • 7. 版本控制
      • 8. 测试框架
      • 9. 用户体验设计工具
      • 10. 文档与协作工具
    • 四、开发步骤
      • 1. 环境搭建
        • 1.1 安装开发工具
        • 1.2 配置开发环境
      • 2. 需求分析与设计
        • 2.1 确定功能需求
        • 2.2 用户界面设计
      • 3. 基础开发
        • 3.1 创建用户界面
        • 3.2 实现基本功能
      • 4. 数据持久化
        • 4.1 集成 SQLite 数据库
        • 4.2 实现数据操作
      • 5. 集成 Windows 11 特性
        • 5.1 通知中心集成
        • 5.2 任务栏集成
      • 6. 测试与优化
        • 6.1 编写单元测试
        • 6.2 用户测试
        • 6.3 性能优化
      • 7. 发布与维护
        • 7.1 准备发布
        • 7.2 发布应用
        • 7.3 后续维护
    • 五、完整代码
      • 1. 创建项目
      • 2. 添加 NuGet 包
      • 3. 创建模型类
      • 4. 创建数据库上下文
      • 5. 创建主窗口
      • 6. 实现功能逻辑
      • 7. 运行应用
      • 8. 进一步扩展
    • 六、结论
      • 1. 技术选择的重要性
      • 2. 用户体验的优先级
      • 3. 数据持久化的必要性
      • 4. 测试与优化的循环
      • 5. 持续迭代的重要性
      • 6. 学习与成长
      • 7. 未来展望
    • 7、投票

在这里插入图片描述

一、引言

  随着科技的不断进步,操作系统的更新迭代也在不断推动开发者的创新。2021 年,微软发布了 Windows 11,这一全新的操作系统不仅在视觉设计上进行了重大革新,还在功能和开发工具上提供了丰富的支持。Windows 11 的推出标志着一个新的开发时代,特别是在用户体验、性能和安全性方面的提升,为开发者提供了更多的可能性。

  Windows 11 引入了全新的用户界面,采用了圆角设计、透明效果和新的图标,使得应用程序的视觉效果更加现代化。同时,微软还推出了 Windows App SDK,这一工具集为开发者提供了更为强大的 API,使得跨平台开发变得更加简单。通过这些新特性,开发者可以更轻松地创建出符合现代用户需求的应用程序。

  在这个背景下,我们决定开发一个简单的待办事项应用(To-Do App),旨在展示如何利用 Windows 11 的新特性来提升应用的功能和用户体验。该应用不仅能够帮助用户管理日常任务,还将充分利用 Windows 11 的通知中心、任务栏集成等功能,提供更为流畅的使用体验。

  在接下来的部分中,我们将详细介绍项目的开发过程,包括环境搭建、用户界面设计、功能实现以及如何将 Windows 11 的特性融入到我们的应用中。希望通过这篇博文,能够为开发者们提供一些实用的参考和灵感,帮助他们在 Windows 11 的开发环境中更好地发挥创造力。

二、项目概述

  在现代快节奏的生活中,待办事项管理应用成为了人们日常生活中不可或缺的工具。为了帮助用户更高效地管理任务,我们决定开发一款简单而功能强大的待办事项应用(To-Do App)。该应用旨在提供一个直观的界面,使用户能够轻松添加、删除和标记任务,同时充分利用 Windows 11 的新特性,以提升用户体验。

项目目标

  1. 用户友好的界面:设计一个简洁、直观的用户界面,使用户能够快速上手,轻松管理任务。
  2. 基本功能实现
    • 添加任务:用户可以输入任务并将其添加到待办事项列表中。
    • 删除任务:用户可以从列表中删除已完成或不再需要的任务。
    • 标记任务:用户可以标记任务为已完成,以便更好地跟踪进度。
  3. 数据持久化:使用 SQLite 数据库存储用户的待办事项,确保任务在应用关闭后仍然可用。
  4. 集成 Windows 11 特性
    • 通知中心:在用户添加新任务时,发送通知提醒,增强用户体验。
    • 任务栏集成:允许用户通过任务栏快速访问应用,提升使用便捷性。

目标用户

本应用的目标用户包括:

  • 学生:需要管理学习任务和作业。
  • 职场人士:需要跟踪工作任务和项目进度。
  • 家庭用户:需要管理日常生活中的琐事和待办事项。

项目范围

本项目的范围包括:

  • 开发一个桌面应用程序,支持 Windows 11 操作系统。
  • 提供基本的待办事项管理功能。
  • 实现数据的持久化存储。
  • 集成 Windows 11 的新特性,提升用户体验。

项目时间表

项目的开发将分为几个阶段:

  1. 需求分析与设计(1周):确定应用的功能需求和用户界面设计。
  2. 环境搭建与基础开发(2周):搭建开发环境,创建项目框架,完成基本功能的实现。
  3. 数据持久化与特性集成(1周):实现 SQLite 数据库的集成,并添加 Windows 11 特性。
  4. 测试与优化(1周):进行全面的测试,收集用户反馈并进行优化。
  5. 发布与维护(持续):发布应用并根据用户反馈进行后续维护和更新。

预期成果

  通过本项目,我们希望能够实现一个功能齐全、用户友好的待办事项应用,帮助用户更高效地管理日常任务。同时,借助 Windows 11 的新特性,我们希望提升应用的整体体验,使其在众多待办事项应用中脱颖而出。最终,我们希望能够在应用商店发布该应用,吸引更多用户使用,并根据用户反馈不断进行迭代和优化。

三、技术栈

  在开发我们的待办事项应用(To-Do App)时,选择合适的技术栈是至关重要的。我们将使用一系列现代技术和工具,以确保应用的性能、可维护性和用户体验。以下是我们项目中所使用的主要技术栈的详细介绍:

1. 编程语言

  • C#:作为 Windows 应用开发的主要编程语言,C# 提供了强大的面向对象编程特性,易于学习和使用。它与 .NET 生态系统紧密集成,适合开发桌面应用程序。

2. 用户界面框架

  • XAML (Extensible Application Markup Language):XAML 是一种用于定义用户界面的标记语言,特别适用于 Windows 应用开发。通过 XAML,我们可以以声明的方式设计界面,简化布局和样式的管理。结合 C#,可以实现动态交互和数据绑定。

  • WinUI 3:Windows UI Library(WinUI)是微软为 Windows 应用提供的最新用户界面框架。WinUI 3 支持现代 UI 设计,提供了丰富的控件和样式,能够帮助开发者创建符合 Windows 11 设计语言的应用程序。

3. 开发环境

  • Visual Studio 2022:作为微软官方的集成开发环境(IDE),Visual Studio 2022 提供了强大的开发工具和调试功能。它支持 C# 和 XAML 的开发,具有丰富的扩展和插件生态,能够提高开发效率。

4. 数据库

  • SQLite:SQLite 是一个轻量级的关系型数据库,适合嵌入式应用。它不需要单独的服务器进程,数据存储在单一文件中,便于管理和部署。我们将使用 SQLite 来存储用户的待办事项,确保数据的持久化和安全性。

5. 数据访问技术

  • Entity Framework Core:作为一个强大的对象关系映射(ORM)框架,Entity Framework Core 可以简化数据库操作。通过使用 EF Core,我们可以以对象的方式与数据库进行交互,减少手动编写 SQL 语句的需要,提高开发效率。

6. 通知与任务栏集成

  • Windows Notifications API:通过 Windows Notifications API,我们可以向用户发送实时通知。当用户添加新任务时,应用可以通过通知中心提醒用户,增强用户体验。

  • Windows Taskbar API:利用 Windows Taskbar API,我们可以将应用集成到任务栏,允许用户快速访问和管理应用。这种集成提升了应用的可用性和用户体验。

7. 版本控制

  • Git:使用 Git 作为版本控制系统,可以有效管理项目的代码版本,跟踪更改历史,支持团队协作开发。我们将使用 GitHub 或 GitLab 作为代码托管平台,便于代码的共享和协作。

8. 测试框架

  • xUnit:作为一个流行的 .NET 测试框架,xUnit 提供了简单易用的单元测试功能。我们将编写单元测试来验证应用的各个功能模块,确保代码的质量和稳定性。

9. 用户体验设计工具

  • Figma:在设计用户界面时,我们将使用 Figma 进行原型设计和用户体验测试。Figma 是一个基于云的设计工具,支持团队协作,能够快速迭代设计方案。

10. 文档与协作工具

  • Markdown:使用 Markdown 格式编写项目文档,便于团队成员之间的沟通和协作。Markdown 简洁易读,适合撰写项目说明、开发文档和用户手册。

四、开发步骤

  在开发待办事项应用(To-Do App)的过程中,我们将遵循一系列系统化的步骤,以确保项目的顺利进行和高质量的交付。以下是详细的开发步骤:

1. 环境搭建

1.1 安装开发工具
  • 下载并安装 Visual Studio 2022:确保选择适合 Windows 应用开发的工作负载,包括 .NET 桌面开发和 Windows 应用 SDK。
  • 安装 Windows App SDK:通过 NuGet 包管理器安装 Windows App SDK,以便使用最新的 API 和功能。
1.2 配置开发环境
  • 创建新的 Git 仓库:在 GitHub 或 GitLab 上创建一个新的仓库,用于版本控制和代码管理。
  • 设置项目结构:在 Visual Studio 中创建一个新的 WinUI 3 项目,设置基本的文件结构,包括视图、模型和视图模型(MVVM)文件夹。

2. 需求分析与设计

2.1 确定功能需求
  • 基本功能
    • 添加任务
    • 删除任务
    • 标记任务为已完成
  • 附加功能
    • 任务优先级设置
    • 截止日期提醒
2.2 用户界面设计
  • 使用 Figma 进行原型设计:创建应用的用户界面原型,设计各个界面的布局和交互流程。
  • 用户体验测试:邀请潜在用户进行原型测试,收集反馈并进行迭代优化。

3. 基础开发

3.1 创建用户界面
  • 使用 XAML 设计界面:根据原型设计,使用 XAML 创建应用的主界面,包括输入框、按钮和列表框。
<StackPanel>
    <TextBox x:Name="TaskInput" PlaceholderText="输入任务" />
    <Button Content="添加任务" Click="AddTask_Click" />
    <ListBox x:Name="TaskList" />
</StackPanel>
3.2 实现基本功能
  • 添加任务功能:编写事件处理程序,处理用户输入并将任务添加到列表中。
private void AddTask_Click(object sender, RoutedEventArgs e)
{
    string task = TaskInput.Text;
    if (!string.IsNullOrWhiteSpace(task))
    {
        TaskList.Items.Add(task);
        TaskInput.Text = string.Empty; // 清空输入框
    }
}
  • 删除任务功能:实现删除按钮,允许用户从列表中删除选中的任务。
private void DeleteTask_Click(object sender, RoutedEventArgs e)
{
    if (TaskList.SelectedItem != null)
    {
        TaskList.Items.Remove(TaskList.SelectedItem);
    }
}
  • 标记任务功能:允许用户通过点击任务来标记其为已完成,改变其样式以示区分。

4. 数据持久化

4.1 集成 SQLite 数据库
  • 安装 SQLite NuGet 包:在项目中添加 SQLite 的 NuGet 包,以便进行数据库操作。
  • 创建数据库模型:定义待办事项的模型类,并使用 Entity Framework Core 进行数据库操作。
public class TodoItem
{
    public int Id { get; set; }
    public string Task { get; set; }
    public bool IsCompleted { get; set; }
}
4.2 实现数据操作
  • 加载任务:在应用启动时,从数据库中加载已保存的任务,并显示在列表中。
  • 保存任务:在添加或删除任务时,更新数据库中的记录,确保数据的持久化。

5. 集成 Windows 11 特性

5.1 通知中心集成
  • 使用 Windows Notifications API:在用户添加新任务时,发送通知提醒用户。
var toastContent = new ToastContentBuilder()
    .AddText("新任务添加成功")
    .AddText(task)
    .GetToastContent();

ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(toastContent.GetXml()));
5.2 任务栏集成
  • 实现任务栏图标:允许用户通过任务栏快速访问应用,提升使用便捷性。

6. 测试与优化

6.1 编写单元测试
  • 使用 xUnit 编写测试用例:为应用的各个功能模块编写单元测试,确保代码的正确性和稳定性。
6.2 用户测试
  • 进行用户测试:邀请真实用户进行测试,收集反馈,识别潜在问题和改进点。
6.3 性能优化
  • 分析性能瓶颈:使用性能分析工具,识别并优化应用中的性能瓶颈,确保流畅的用户体验。

7. 发布与维护

7.1 准备发布
  • 创建发布版本:在 Visual Studio 中生成发布版本,确保所有功能正常工作。
  • 编写用户手册:撰写用户手册,帮助用户了解如何使用应用的各项功能。
7.2 发布应用
  • 在 Microsoft Store 发布:将应用提交到 Microsoft Store,进行审核和发布。
7.3 后续维护
  • 收集用户反馈:持续收集用户反馈,定期更新和优化应用,添加新功能以满足用户需求。

五、完整代码

  下面是一个简单的待办事项应用(To-Do App)的完整代码示例。该示例使用 C# 和 XAML,结合 SQLite 进行数据持久化。

1. 创建项目

在 Visual Studio 中创建一个新的 WinUI 3 项目,命名为 TodoApp

2. 添加 NuGet 包

在项目中添加以下 NuGet 包:

  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools

3. 创建模型类

在项目中创建一个名为 Models 的文件夹,并添加一个名为 TodoItem.cs 的类文件:

// Models/TodoItem.cs
namespace TodoApp.Models
{
    public class TodoItem
    {
        public int Id { get; set; }
        public string Task { get; set; }
        public bool IsCompleted { get; set; }
    }
}

4. 创建数据库上下文

Models 文件夹中添加一个名为 TodoContext.cs 的类文件:

// Models/TodoContext.cs
using Microsoft.EntityFrameworkCore;

namespace TodoApp.Models
{
    public class TodoContext : DbContext
    {
        public DbSet<TodoItem> TodoItems { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=todo.db");
        }
    }
}

5. 创建主窗口

MainWindow.xaml 中设计用户界面:

<!-- MainWindow.xaml -->
<Window
    x:Class="TodoApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="待办事项应用" Height="450" Width="400">
    
    <StackPanel Margin="20">
        <TextBox x:Name="TaskInput" PlaceholderText="输入任务" />
        <Button Content="添加任务" Click="AddTask_Click" Margin="0,10,0,0"/>
        <ListBox x:Name="TaskList" SelectionMode="Single" />
        <Button Content="删除任务" Click="DeleteTask_Click" Margin="0,10,0,0"/>
    </StackPanel>
</Window>

6. 实现功能逻辑

MainWindow.xaml.cs 中实现功能逻辑:

// MainWindow.xaml.cs
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using System.Collections.Generic;
using System.Linq;
using TodoApp.Models;

namespace TodoApp
{
    public sealed partial class MainWindow : Window
    {
        private TodoContext _context;

        public MainWindow()
        {
            this.InitializeComponent();
            _context = new TodoContext();
            _context.Database.EnsureCreated();
            LoadTasks();
        }

        private void LoadTasks()
        {
            var tasks = _context.TodoItems.ToList();
            TaskList.ItemsSource = tasks;
        }

        private void AddTask_Click(object sender, RoutedEventArgs e)
        {
            string taskText = TaskInput.Text;
            if (!string.IsNullOrWhiteSpace(taskText))
            {
                var newTask = new TodoItem { Task = taskText, IsCompleted = false };
                _context.TodoItems.Add(newTask);
                _context.SaveChanges();
                LoadTasks();
                TaskInput.Text = string.Empty; // 清空输入框
            }
        }

        private void DeleteTask_Click(object sender, RoutedEventArgs e)
        {
            if (TaskList.SelectedItem is TodoItem selectedTask)
            {
                _context.TodoItems.Remove(selectedTask);
                _context.SaveChanges();
                LoadTasks();
            }
        }
    }
}

7. 运行应用

  确保 SQLite 数据库文件 todo.db 在项目的输出目录中创建。运行应用程序,您将看到一个简单的待办事项应用,允许您添加和删除任务。

8. 进一步扩展

  • 标记任务为已完成:可以通过在 TodoItem 类中添加一个复选框来实现。
  • 任务优先级和截止日期:可以在 TodoItem 类中添加相应的属性,并在界面中提供输入选项。
  • 通知功能:可以使用 Windows Notifications API 来实现任务添加时的通知。

六、结论

  在本项目中,我们成功地开发了一个简单而功能齐全的待办事项应用(To-Do App),充分利用了 Windows 11 的新特性和现代开发工具。通过这一过程,我们不仅实现了基本的任务管理功能,还探索了如何将数据持久化和用户体验优化结合在一起。以下是我们在开发过程中得到的一些重要结论和反思:

1. 技术选择的重要性

  选择合适的技术栈对项目的成功至关重要。我们使用了 C# 和 XAML 进行开发,结合 WinUI 3 框架,使得用户界面设计更加现代化和灵活。SQLite 数据库的集成确保了数据的持久化,而 Entity Framework Core 则简化了数据库操作。这些技术的结合使得开发过程更加高效,代码的可维护性也得到了提升。

2. 用户体验的优先级

  在设计应用时,用户体验始终是我们的首要考虑。通过使用 Figma 进行原型设计,我们能够在开发之前就识别潜在的用户体验问题,并进行相应的调整。简洁的界面、直观的操作流程和及时的反馈(如任务添加后的通知)都极大地提升了用户的满意度。

3. 数据持久化的必要性

  在现代应用中,数据持久化是不可或缺的。通过使用 SQLite,我们能够确保用户的待办事项在应用关闭后依然可用。这不仅提高了应用的实用性,也增强了用户的信任感。数据的持久化设计也为后续功能的扩展(如任务优先级和截止日期)打下了良好的基础。

4. 测试与优化的循环

  在开发过程中,测试和优化是一个持续的循环。我们通过编写单元测试来验证各个功能模块的正确性,并通过用户测试收集反馈。这种反馈机制使我们能够快速识别问题并进行改进,确保最终交付的应用质量达到预期。

5. 持续迭代的重要性

  软件开发是一个不断迭代的过程。即使在发布后,我们也应继续收集用户反馈,定期更新和优化应用。通过引入新功能和修复潜在问题,我们可以保持应用的活力,满足用户不断变化的需求。

6. 学习与成长

  通过本项目的开发,我们不仅提升了技术能力,还增强了团队协作和项目管理的能力。面对挑战时,我们学会了如何有效地沟通、解决问题并快速迭代。这些经验将为我们未来的项目奠定坚实的基础。

7. 未来展望

  随着 Windows 11 的不断发展,未来我们可以考虑引入更多的功能,如云同步、跨设备访问、任务分析等,以进一步提升应用的价值。此外,随着用户需求的变化,我们也应保持敏感,及时调整产品方向,确保应用始终符合用户的期望。

  总之,本项目不仅是一个技术实现的过程,更是一个学习和成长的旅程。希望通过这篇博文,能够激励更多开发者在 Windows 11 的开发环境中探索和创新,创造出更多优秀的应用。

7、投票

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902785.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7、基于爬虫+Flask+Echarts+MySQL的网易云评论可视化大屏

基于爬虫FlaskEchartsMySQL的网易云评论可视化大屏 1、前言2、实现2.1 挑选想要采集的歌曲评论2.2 构建爬虫2.2.1 采集歌曲评论2.2.2 清洗数据入库 2.3 搭建flask框架2.4 数据传值2.5 完整代码&数据集获取 1、前言 本项目是基于requests爬虫flaskecharts搭建的网易云评论的…

WASM 使用说明23事(RUST实现)

文章目录 1. wasm是什么1.1 chatgpt定义如下:1.2 wasm关键特性&#xff1a; 2. wasm demo2.1 cargo 创建项目2.2 编写code2.3 安装wasm-pack2.4 编译 3.1 html页面引用wasm代码&#xff08;js引用&#xff09;3.2 访问页面4 导入js function4.1 编写lib.rs文件&#xff0c;内容…

应用案例 | Panorama SCADA助力巴黎奥运会:保障赛事协调与安全

谈到2024年最受关注的体育盛事&#xff0c;巴黎奥运会无疑是焦点之一。作为全球瞩目的顶级赛事&#xff0c;它不仅汇集了来自世界各地的精英运动员&#xff0c;还点燃了全球观众的热情。然而&#xff0c;组织如此大规模的活动绝非易事。从大量游客通过公共交通涌入&#xff0c;…

基于SSM的宠物猫狗商业系统设计与实现

前言 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统宠物猫狗商业采取了人工的管理方法&#…

mfc之tab标签控件的使用--附TabSheet源码

TabSheet源码 TabSheet.h #if !defined(AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_) #define AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // TabSheet.h : …

华为云低代码Astro Zero技巧教学7:打造实时更新的动态数据表

数字化经营的浪潮中&#xff0c;数据管理的高效与准确成为企业持续成长的关键。Astro Zero高级页面功能通过创新的表格视图编辑模式&#xff0c;实现了前端操作与后台数据的无缝同步&#xff0c;极大地提升了数据处理的效率和可靠性。 本次技巧内容&#xff1a;使用Astro Zero制…

【亲测】mini版centos7.9配置网络基础ssh等直接使用

1,安装好系统: 默认安装好 CentOS-7-x86_64-Minimal-2009.iso2,配置静态或动态ip: 保持root登陆操作 先配置成动态ip: vi /etc/sysconfig/network-scripts/ifcfg-eth0 重启网卡 systemctl restart network 测试网络畅通 3,配置国内yum镜像源: 先备份: cp /etc/y…

Python | Leetcode Python题解之第503题下一个更大元素II

题目&#xff1a; 题解&#xff1a; class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:n len(nums)ret [-1] * nstk list()for i in range(n * 2 - 1):while stk and nums[stk[-1]] < nums[i % n]:ret[stk.pop()] nums[i % n]stk.appen…

排查PHP服务器CPU占用率高的问题

排查PHP服务器CPU占用率高的问题通常可以通过以下步骤进行&#xff1a; 使用top或htop命令&#xff1a;这些命令可以实时显示服务器上各个进程的CPU和内存使用情况。找到CPU使用率高的进程。 查看进程日志&#xff1a;如果PHP-FPM或Apache等服务器进程的日志记录了具体的请求…

中国书法、绘画

孙溟㠭浅析“篆刻” 什么是篆刻&#xff0c;治印一般采用篆书&#xff0c;先写后刻&#xff0c;所以称&#xff02;篆刻&#xff02;&#xff0c;也是镌刻印章的统称。博物馆常见的金属印章&#xff0c;多数是先刻印模&#xff0c;然后再浇铸&#xff0c;也有提前做好金属印坯…

Java当中的数据类型

基本数据类型和引用数据类型基本数据类型&#xff1a; 四类&#xff1a;整型、浮点型、字符型以及布尔型八种&#xff1a; 注意&#xff1a; 字符类型char&#xff1a;2字节&#xff08;1字节8位&#xff09;boolean数据类型不可以 Java当中没有所谓的&#xff1a;0是假 …

已知圆心经纬度,半径长度。算圆上点的经纬度,画圆

前言&#xff1a;经度变化1度&#xff0c;111320米.纬度变化1度&#xff0c;111130米 #define pi 3.14159265 double convertArc(double angle) {double angle_arc(angle/180.0)*pi;return angle_arc; } typedef struct{double lng;double lat;double height;}polygon_points;…

Day03罗马数字转整数

罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;即为 X II 。 27 写做 XXVII, 即为 XX V II 。 通常情况下&…

深入拆解TomcatJetty——Tomcat如何实现IO多路复用

深入拆解Tomcat&Jetty 专栏地址&#xff1a; 极客时间-深入拆解Tomcat & Jetty IO 多路复用 当用户线程发起 I/O 操作后&#xff0c;网络数据读取操作会经历两个步骤&#xff1a; 用户线程等待内核将数据从网卡拷贝到内核空间。内核将数据从内核空间拷贝到用户空间…

面试域——技术面试准备

摘要 来到技术面试这环节有两种情况&#xff0c;其一&#xff1a;这场技术面试可能就是一个面试官KPI面试&#xff08;就是面试工作量&#xff0c;这个面试你是不可能过。&#xff09;如今的就业环境下&#xff0c;人力资源部门也是有考核指标。如果遇到这样的面试你就放平心态…

RabbitMq-队列交换机绑定关系优化为枚举注册

&#x1f4da;目录 &#x1f4da;简介:&#x1f680;比较&#x1f4a8;通常注册&#x1f308;优化后注册 ✍️代码&#x1f4ab;自动注册的关键代码 &#x1f4da;简介: 该项目介绍&#xff0c;rabbitMq消息中间件&#xff0c;对队列的注册&#xff0c;交换机的注册&#xff0c…

SQL进阶技巧:如何求组内排除当前行的移动平均值?

目录 0 需求描述 2 数据准备 3 问题分析 4 小结 0 需求描述 -- 按照 日期,省份,等级 分组 求分数的平均值;但是需要剔除当前行的数据 2 数据准备 create table avgtest as (select 2024-10-24 as cdate, 广东 as province,深圳 as city, 2 as level, 200 as scoreunio…

雷池社区版OPEN API使用教程

OPEN API使用教程 新版本接口支持API Token鉴权 接口文档官方没有提供&#xff0c;有需要可以自行爬取&#xff0c;爬了几个&#xff0c;其实也很方便 使用条件 需要使用默认的 admin 用户登录才可见此功能版本需要 > 6.6.0 使用方法 1.在系统管理创建API TOKEN 2.发…

基于SSM+小程序的汽车保养登录管理系统(汽车1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序的汽车保养登录管理系统实现了管理员及用户。 1、管理员实现了管理门店和其对应的员工&#xff0c;管理保养信息和汽车配件信息&#xff0c;管理各种状态的订单。 2、用户…

offset Explorer连接云服务上的kafka连接不上

以上配置后报连接错误时&#xff0c;可能是因为kafka的server.properties配置文件没配置好&#xff1a; 加上面两条配置&#xff0c;再次测试连接&#xff0c;成功 listeners和advertised.listeners