CRC实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳工程学院

学生实验报告

实验室名称:信息工程系软件实验室

实验课程名称:计算机网络

实验项目名称:CRC校验编程实现

班级:软本094

姓名:王诗娟陈志银刘云峰

学号:02、10、14

实验日期:2012年03月26日实验台编号:15 指导教师:郑秀颖

批阅教师(签字):成绩:

一.实验目的

掌握并理解CRC校验算法,编程实现CRC。

二.实验内容

1.设计CRC校验算法。.

2.编程实现CRC校验。

三.实验前的准备

1.复习、熟悉CRC校验算法。

2.编写好程序,上机调试。

四.实验要求及实验软硬件环境

【基本要求】

1.掌握并理解CRC校验算法。

2.编程实现CRC。

3.完成实验报告。

【实验组织方式】

小组实验。

【实验条件】

配置有java运行环境的微机一台,MyEclipse。

五.实验步骤

1.掌握并理解CRC校验算法。

2.设计发送界面。

3.编程实现CRC校验。

4.设计接收界面。

5.调试并实现程序。

6.参加答辩,并撰写实验报告。

六.主要程序部分(Java语言实现)

1.发送端主界面MainFrame.java 的主要代码如下所示。

jb.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String input1 = new String(jtf1.getText());

String input2 = new String(jtf2.getText());

if("".equals(input1) || "".equals(input2) || input1 == null || input2 == null){JOptionPane.showMessageDialog(jf, "请输入。。。", "错误", JOptionPane.ERROR_MESSAGE);

}else{ if(dealer.legal_binary(input1)){

if(dealer.legal_g_p(input2)){

String checkSum = dealer.get_cheksum(input1, input2);

String endResult = new String(input1+checkSum);

jtf3.setText(checkSum);

jtf4.setText(endResult);

try {

String tem =endResult + "." +input2;

fo.inputFile(tem);

} catch (Exception e1) {

e1.printStackTrace();}

}else{

JOptionPane.showMessageDialog(jf, "输入的生成多项式不正确", "错误", JOptionPane.ERROR_MESSAGE);

}

}else{

JOptionPane.showMessageDialog(jf, "输入不正确", "错误", JOptionPane.ERROR_MESSAGE);

} }

}

});

jb2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

jp1.setVisible(false);

GetMessage gm = new GetMessage();

String str="";

try {

str = fo.outputFile();

} catch (Exception e) {

e.printStackTrace();

}

String L="";

String R="";

int k= str.length();

for (int i = 0; i < str.length(); i++)

{

if (str.substring(i, i + 1).equals("."))

{

L=str.substring(0,i).trim();

R=str.substring(i+1,k).trim();

}

}

gm.jtf1.setText(L);

gm.jtf2.setText(R);

String res = dealer. get_cheksum (str, R);

gm.jtf3.setText(res);

gm.setVisible(true);

jf.add(gm);

}

});

2.对发送和接收的处理类Dealer.java的主要代码如下所示。

public class Dealer {

public boolean legal_binary(String str) {

for (int i = 0; i < str.length(); i++) {

if (('0' != str.charAt(i)) && ('1' != str.charAt(i))) {

return false;

}

}

return true;

}

public boolean legal_g_p(String str) {

if ((('1' == str.charAt(0)) && ('1' == str.charAt(str.length() - 1)) && legal_binary(str))) {

return true;

}

return false;

}

public StringBuffer montage(StringBuffer sb, int length) {

for (int i = 0; i < length - 1; i++) {

sb.append("0");}return sb;

}

相关文档
最新文档