考完试后

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

列一下一些紧迫的任务:

前段时间以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和指针买回来了...

# 题目重述 1. 使用 IntelliJ IDEA 创建 Java 项目,并截图展示; 2. 编写程序实现成绩等级划分: - $85 \leq 成绩 < 100$:A - $75 \leq 成绩 < 85$:B - $60 \leq 成绩 < 75$:C - $成绩 < 60$:D - 若输入为字符,则提示重新输入; 3. 要求可重复输入,直到输入合法数字为止,并截图展示运行过程。 --- # 详解 ### 第一步:IDEA 创建项目(截图展示) - 打开 IntelliJ IDEA → New Project → 选择 Java → 配置 JDK → 命名项目(如 GradeAnalysis); - 在 `src` 下新建类 `GradeAnalysis.java`; - 截图内容包括:项目结构、代码界面、运行结果。 --- ### 第二步:编写成绩分析程序 ```java import java.util.Scanner; public class GradeAnalysis { public static void main(String[] args) { Scanner input = new Scanner(System.in); double score; while (true) { System.out.print("请输入考试成绩(0-100):"); if (input.hasNextDouble()) { score = input.nextDouble(); if (score >= 85 && score < 100) { System.out.println("等级:A"); } else if (score >= 75 && score < 85) { System.out.println("等级:B"); } else if (score >= 60 && score < 75) { System.out.println("等级:C"); } else if (score >= 0 && score < 60) { System.out.println("等级:D"); } else { System.out.println("请输入有效的成绩范围(0-100)!"); continue; } break; // 合法输入并处理后退出循环 } else { System.out.println("输入错误!请输入一个数字。"); input.next(); // 清除非法输入 } } input.close(); } } ``` > ✅ 测试用例: > - 输入 `abc` → 提示“输入错误”,重新输入; > - 输入 `90` → 输出“A”; > - 输入 `55` → 输出“D”; 运行程序,测试各种情况并截图保存。 --- # 实践总结 ## 1. 实践过程中遇到的问题 - 输入字符时 `nextDouble()` 抛异常导致程序中断; - 输入非法数字(如负数或大于100)未做限制; - 循环无法跳出,用户体验差。 ## 2. 问题的解决方法 - 使用 `hasNextDouble()` 判断输入类型,避免崩溃; - 添加成绩范围校验(0~100),不满足则继续循环; - 使用 `while` 循环配合 `break` 实现容错与正常退出。 ## 3. 对知识进行总结 - **输入验证**:通过 `Scanner` 的 `hasNextDouble()` 方法判断输入是否为数值类型。 - **条件分支**:使用 `if-else if` 多条件判断实现成绩等级划分。 - **循环控制**:利用 `while` 实现错误输入重试机制,提升程序健壮性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值