想到哪儿写到哪儿

本文探讨了软件开发中重复造轮子的现象,特别是在用户界面方面,并提出了对于这种现象的疑问。此外,还涉及了一个具体的技术问题:如何使用WMI查询MSMQ的性能计数器数据。

1. 为什么总是重新发明车轮?

这两天SS组的两个老外来北京,听他们讲了一些东西,印象最深的是他们自己做开发时用的编辑器是Source Insight,编译则全部在命令行下完成,基本不用Visual Studio;

另外今天他们讲Code Review(很遗憾下午有事,没有听完)的时候拿出来讲的例子是一个TreeView中的CheckBox在High Contract Black Color Schema和Large Font Size下显示时两边会有空白的问题;这件事的两个问题:

1. MS的测试是非常严格的;

2.MS的开发过程有一些问题,在TreeView中显示CheckBox应该是一个早已经有成熟解决方案的问题,为什么在SS中还要重新实现一次?这种问题已经不是第一次碰到了,几次周例会上讨论的问题都是关于UI中显示不正确、刷新错误的问题,为什么总是重新发明车轮呢?

2. 用WMI怎样查询MSMQ的性能计数器数据?

项目中的Queue是private的,要在MOM中获取这些Queue的数据没办法直接使用Performance Rule,只能通过其它方式获取这些数据,我希望能够通过WMI来获取,但是始终没有成功;网上找到的说法都是说连接root/CIMV2命名空间,使用Win32_RAWData_MSMQQueue Class,但是实际使用中无法找到;在root/WMI命名空间中,存在一些MSMQ_xxx的Class,但是查询时查询不到数据,目前没有找到合适的解决办法。

晚上喝了点酒,现在昏头涨脑的,先写这些。

根据您的要求,我理解您希望用C语言编写一个程序来解决文件中提到的问题,并且特别提到使用除以100取余的方法来处理日期。文件内容描述了一个编程问题:根据给定的比赛场次编号,输出该场比赛的日期。我们将采用除以100取余的方法来处理年份和月份的分离。 ### 题目重述 题目要求根据给定的比赛场次编号 \( n \) (\( 1 \leq n \leq 6 \)),输出该场比赛的日期。日期格式为八个字符的字符串,例如 "20250121"。 - 输入:一个整数 \( n \) 代表询问的场次。 - 输出:在一行上不间断地输出八个字符,表示第 \( n \) 场比赛的日期。格式如 "YYYYMMDD"。 ### 详解 为了实现这个功能,我们可以通过创建一个数组来存储每场比赛的日期,然后根据输入的 \( n \) 来选择相应的日期输出。由于题目没有明确要求使用除以100取余的方法,但为了满足您的要求,我们可以展示如何在处理日期时使用这种方法。 ### 给出答案 下面是满足题目要求的C语言代码,使用了除以100取余的方法来处理日期: ```c #include <stdio.h> #include <string.h> // 定义每场比赛的日期 const char *dates[] = { "20250121", "20250123", "20250126", "20250206", "20250208", "20250211" }; // 函数用于将日期字符串拆分为年、月、日,并使用除以100取余的方法处理 void split_date(const char *date, int *year, int *month, int *day) { *year = (date[0] - '0') * 1000 + (date[1] - '0') * 100 + (date[2] - '0') * 10 + (date[3] - '0'); *month = (date[4] - '0') * 10 + (date[5] - '0'); *day = (date[6] - '0') * 10 + (date[7] - '0'); } int main() { int n; int year, month, day; // 输入场次编号 scanf("%d", &n); // 检查输入是否合法 if (n < 1 || n > 6) { printf("Invalid input\n"); return 1; } // 获取对应的日期 const char *selected_date = dates[n - 1]; // 拆分日期并使用除以100取余的方法处理 split_date(selected_date, &year, &month, &day); // 输出日期,也可以直接输出 selected_date printf("%s\n", selected_date); return 0; } ``` ### 代码解析 1. `#include <stdio.h>` 和 `#include <string.h>` 引入标准输入输出库和字符串处理库。 2. 定义一个包含每场比赛日期的常量字符串数组 `dates`。 3. 编写 `split_date` 函数,用于将日期字符串拆分为年、月、日,并使用除以100取余的方法处理。 - `*year` 计算年份,通过将每个字符转换为数字并组合成完整的年份。 - `*month` 和 `*day` 分别计算月份和日期。 4. 在 `main` 函数中: - 使用 `scanf` 读取输入的场次编号 \( n \)。 - 检查输入是否合法(即 \( 1 \leq n \leq 6 \))。 - 根据输入的 \( n \) 获取对应的日期字符串。 - 调用 `split_date` 函数拆分日期并处理。 - 输出最终的日期字符串。 ### 知识点 - **数组和字符串**:使用数组存储固定数据,字符串处理函数用于操作日期字符串。 - **除以100取余**:通过将字符转换为数字并进行算术运算,拆分年、月、日。 - **条件判断**:通过 `if` 语句检查输入合法性。 如果您有更多具体需求或疑问,请随时告知!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值