XXX 大学课程设计报告
课程设计题目:第 1 题 IP 地址的合法性及子网判断
所属课程名称:计算机网络课程设计
计划学时:2 周
开设时间:2007 学年第二学期
授课学生:
授课人数: 人
指导教师:
《计算机网络》课程设计成绩单
开设时间:
课程设计目的
计算机网络课程设计是计算机科学与技术专业的重要实践性教学环节。
在进行了专业基础课和《计算机网络》的学习的基础上,设计或分析一
个实际的计算机网络是为了加深对计算机网络基本原理的认识,初步掌
握计算机网络协议和体系结构的实现,以及利用协议开发应用系统的方
法,提高进行工程设计和系统分析的能力。本次课程设计是为了巩固同
学们所学的知识,以及加强同学们分析解决计算机应用实际问题的能力
和培养同学们调查研究、查阅技术文献、资料、手册以及编写技术文献
的能力。这次课程设计是有助于培养应用性人才的一种教学形式,它将
是同学们在综合运用所学知识,解决本专业方向的实际问题方面得到系
统性的训练。
课程设计要点
题目一、IP 地址的合法性及子网判断
1)命令行形式:ip_test subnet/mask ip_addr
其中,ip_test 为程序名,subnet 为子网号,mask 为一个数值,代表
子网掩码连续的 1 的个数,ip_addr 是要测试的 IP 地址。
2)判断 subnet 和 ip_addr 的合法性
3)判断掩码的合法性
4)在 IP 地址合法的前提下,判断 ip_addr 是否属于子网 subnet。
5)输出命令行中的 ip 是否合法,掩码是否合法(给出不合法的原
因)以及 ip_addr 是否属于子网 subnet。
教
师
评
语
评价指标:
题目内容完成情况 优 □ 良 □ 中 □ 差 □
对原理的理解程度 优 □ 良 □ 中 □ 差 □
报告结构清晰 优 □ 良 □ 中 □ 差 □
总结和分析详尽 优 □ 良 □ 中 □ 差 □
成绩
教师签名:
一、 程序的需求分析
由于这个程序比较简单,所以分析起来是一目了然,其 UML 用例图如下:
由上图可以知道程序主要实现的 3 个功能分别是上面的 3 个 include 的用例。
二、 程序的总体设计
这个程序用 check()方法来分别实现 3 个检测功能,因为这 3 个功能是相关联
的。首先是检测 IP 及子网号的输入是否正确,若不正确则看是出现非数字字符还
是输入的数字不在 0 和 255 之间并输出结果。若正确,则进行子网掩码的检测。
对于 A 类,B 类和 C 类地址,其子网的子网掩码取值范围是不同的,因此要进行
判断是否出现非法字符或者掩码的 mask 值不在正确范围内。如果检测到掩码有误,
则根据其错误原因进行输出。如果无误则检测 IP 地址是否位于子网内。这也是最
复杂的一步。
A 类 IP 地址:mask-8 为子网号的占用的位数.
B 类 IP 地址:mask-16 为子网号占用的位数.
C 类 IP 地址:mask-24 为子网号占用的位数.
对于 A 类 IP 地址 , 若 mask 小于或等 于 16 且 ip 的 ip2/(2 的 16-mask) 次 方
==subnet.则属于子网,否则不属于该子网.
其它的则看 ip2==subnet/(2 的 mask-16 次方)是否成立,若成立则新的 subnet 值
为 subnet-ip2*2 的 mask-16 次方,再调用 B 类地址的子网检测方法.否则不属于该子
网.
对于 B 类地址,若 mask 小于或等于 24,且 subnet==ip3/(2 的 24-mask 次方).则属
于子网,否则不属于该子网.
若 mask 小于等于 31,且 ip3==subnet/(2 的 mask-24 次方).则新的 subnet 值为
subnet-ip3*2 的 mask-24 次方则调用 C 类地址的子网检测方法,否则不属于该子网.
对于 C 类地址,若 subnet==ip4/(2 的 32-mask 次方),则属于子网,否则不属于该
子网.
其代码如下: