考完试后

终于考完试了!!!更可喜的是在考试结束之前,我已经把所有的课程设计、所有的作业做完交上去了,当其他人还在忙课程设计的时候,我已经玩完一天回来了。

 

列一下一些紧迫的任务:

 

前段时间以Thorqq的华为802.1x认证程序为蓝本,进行移植工作。主要是消除Dot1x类对libpcap以外的东西的依赖(对Windows API、MFC或Winpcap的依赖),修改了一些命名方式。消除依赖的过程中,运用了Bridge模式(疑似)和Template Method模式。这样这个类的重用性大大提高了。这个过程中,研究了Cisco关于802.1x的一些课件,Thorqq的文章,还有发现了远远好用过Sniffer的Wireshark,一只脚踏进了嗅包分析协议的大门。同时还发现了libnet(网上有两个libnet,是google搜不到的那个),这样,大多数的协议的帧的构建就变得易如反掌,了解其背后机理也不必苦啃RFC,啃它的头文件就好了,哈哈~

 

第一个任务就是将已经半成品(事实上已经可以用了,我现在上网就用它)的802.1x认证的类库,更深入地进行拆解,尤其是必须重写UserData这个Struct为一到两个类。工作的一个难点是MAC地址的获取、IP地址的获取,较难直接写成非平台、非类库依赖的,有了一些线索,但还有待实现。不知道是不是只要把网卡设在非混杂模式,就能不需要MAC地址(主要是过滤表达式要用)...目前的测试来看是可以不要的,但是无法了解会出什么意外。

 

第二个任务是整理Screenshot Generator的代码,针对gtk下的无法设透明度的情况,暂时采用DummyFrame,对截屏过程不进行视觉提示。实现延时截屏。上载对最新的发布。在三个平台下得到现有的截图,传给B。

 

第三个任务是整理这个学期下载到的类库、工具等,刻几张toolkit碟,使得我能够在其他电脑上建立起工作环境,因为我即将离开这台电脑。

 

光这些已经做死人了....还有:尽量多做几道Google Code Jam的题;研究python和translate库,看看实现doxygen2po的可能性大不大;研究spirit库和编译原理;最近终于琢磨清楚怎么使用wxWidgets的RegEx类了,也学会了怎么实现Search...

 

事实上,我还有三个突发奇想:

 

一个是实现一个wxLatexCtrl,可以解析一段Latex代码,并予以显示。想首先做数学公式显示方面的。

 

第二个是,受最近学到的一些知识的启发,觉得可以实现一种我叫做arp线扯线的病毒,使得网络上所有的电脑都把ip地址和MAC地址搞混,以致瘫痪,而我的电脑可以独享带宽。

 

第三个是,我认为之所以以前可以两个号(802.1x认证帐号)同时上(只要同时点),是因为微弱的时差形成了帧与帧的夹心饼状况,理论上可以人为制造同一网段的多台机器的认证帧的夹心饼,从而实现一个帐号多人上网。

 

一些近来关注的关键词: CURL wxSqlLite CppUnit FreeType

 

顺便庆祝一下,C和指针买回来了...

<< 要解决这个问题,我们需要计算出小T的排名,并判断他的排名是否达到或优于目标位次s。以下是解决方案的具体步骤: ### 解决方案 1. **读取输入**:首先读入三个整数 n、s 和 t 表示班级人数、冲刺目标位次和小T的座号;然后读入长度为 n 的数组 `a` 表示每个学生的成绩。 2. **提取小T的成绩**:根据给定的小T的座位号 t 提取出他在成绩单中的得分。 3. **统计比小T高的学生数量**:遍历整个成绩列表,统计成绩大于小T的学生的数量 `count_higher_scores`,这个值就是小T的实际排名减去 1。 4. **计算排名并检查奖励条件**:小T的实际排名等于 `count_higher_scores + 1`,若该排名小于等于 s,则他可以获得奖励 (输出 "Y"),否则不能获得奖励 (输出 "N")。 5. **输出结果**:按照题目要求输出小T的排名及其是否能获得奖励的信息。 下面是完整的 C++ 实现代码: ```cpp #include <iostream> using namespace std; int main() { int n, s, t; cin >> n >> s >> t; // 输入n(人数), s(目标名次), t(T的位置) int scores[n]; // 存储所有人的成绩 for(int i = 0; i < n; ++i){ cin >> scores[i]; } int T_score = scores[t - 1]; // 获取小T的成绩(t是从1开始编号的) int count_higher_scores = 0; // 记录有多少人分数高于小T for(int i = 0; i < n; ++i){ if(scores[i] > T_score){ // 统计成绩比小T高的学生数目 count_higher_scores++; } } int rank_T = count_higher_scores + 1; // 小T的实际排名 char reward = (rank_T <= s) ? 'Y' : 'N'; // 判断是否有奖励 cout << rank_T << " " << reward; // 输出答案 return 0; } ``` #### 解释: - 我们使用了一个简单的循环结构来处理每一个学生的成绩与小T进行比较操作; - 使用了布尔表达式 `(rank_T <= s)` 来决定是否满足获奖条件从而设置相应的字符变量reward。 此段程序能够有效地解决问题并且符合时间复杂度的要求O(n),适合于所描述的问题规模。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值