网络技术与通信课设报告sch4131155027

更新时间:2023-10-03 23:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

江 苏 大 学 京 江 学 院

JINGJIANG COLLEGE OF J I A N G S U U N I V E R S I T Y

网络技术与通信课程设计报告

班级: J电信1301 学号: 4131155019 姓名: 张欢 指导教师: 孙俊

2016年7

题目1:计算校验和

1.1课程设计要求

根据介绍的算法,编制程序为给定数据计算校验和。 (1) 以命令形式运行:check_sum infile

其中check_sum为程序名,infile为输入数据文件名。 (2) 输出:数据文件的校验和。

1.2课程设计分析

校验和的计算过程主要分为三个步骤:数据文件的传输,校验和的计算和校验结果的输出。其中,主要的是数据的输入和校验和的计算过程。

输入数据可能是以字符的形式存储的,而校验和的计算则要采用数据形式,所以在从文件读取数据时,都要进行字符到数据的相互转换。 1 ) 将读入的ASCII码转化为相应的整型变量。

2)在使用C++编程时直接使用16进制的方式打开输入文件。 3)校验和的计算

校验和算法是本程序的核心部分,应用最为普遍的是端循环进位法。

2

流程图: 程序开始,初始化ch,count,sum,checksum 从文件中读取一个字符ch ch=EOF? N ch=’’ N ch转换为相应的8位数据,count++ count 偶数 N ch低4位送入ch高4位 ch低4位送入ch低4位 得到chr值 N (count/2)%2=1? chr和sum高8位相加 chr和sum低8位相加 得到chr值 将32位sum折叠到16位 求sum反码并输出

3 结束 1.3运行结果截图及解释

程序运行的结果如下:

在D盘下建立的1.TXT文档的内容是:

参考程序:

#include #include

void main(int argc, char *argv[])//指针数组作为主函数参数,用于函数带参数入 {//定义并初始化变量 FILE *fp; char ch;

unsigned char chrl,chrh;

unsigned int count=0,checksum=0,chr=0; unsigned long int sum=0; //打开文件argv[1]

if((fp=fopen(\

printf(\

} printf(\ //从txt文件读取字符,并进行数据处理 while(1) {

if((ch=fgetc(fp))!=EOF) {

count++; if(ch!=' ') {

4

if(count==0) printf(\

//将字符转换成相应的整形变量 if(ch>='0'&&ch<='9') ch-='0'; else

if(ch>='a'&&ch<='f') ch=ch-'a'+10; else

if(ch>='A'&&ch<='F') ch=ch-'A'+10;

//计算8字节数的累加值,将奇数位累加到长整形sum的15~8位,偶数位累加到低8~0位 //这样就避免了数据个数为奇偶的处理操作 if(count%2==1) chrh=ch<<4; else {

chrl=ch&0x0f; chr=chrh|chrl; if(count%4==2) sum+=chr<<8; else

if(count%4==0) sum+=chr;

printf(\} } else {

count--; } } else { break; } }

//将sum由32位折合成16位 if(sum>>16)

checksum=(long(sum>>16)+long(sum&0x0000ffff)); checksum=checksum&0x0000ffff; //结果输出

printf(\printf(\fclose(fp);}

题目2 :IP地址的合法性及子网判断

2.1 课程设计要求

本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定子网。 2.2 课程设计分析 1.程序大致流程

1)分别判断子网号,掩码和IP地址的基本格式是否合法。

2)如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0,全1.

5

本文来源:https://www.bwwdw.com/article/gkbd.html

Top