下沙论坛

 找回密码
 注册论坛(EC通行证)

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 3149|回复: 4
打印 上一主题 下一主题

〓〓救命啊,懂计算机的人帮帮我啊〓〓

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
' ~; T7 }2 k. r#include
9 @& ~2 ?, v) j#include
2 C; ?# D# o8 b% ~' g. l, b#include
4 F5 I# q% H% h% @8 w  B#define CRC 5
; j; |/ U7 w  A- O; q% rchar data[5]={'1','1','0','0','1'};+ h1 l' B0 M: Y: k
class Checkout' E* V$ x# h1 B) \" M
{
  H' S- E, r- j# n, m$ R7 H2 p3 F1 `8 xprivate:
7 m6 b& N5 \6 S: X1 ^7 m char ax[50];
5 C& D$ J% U# h! ~3 } char bx[4];
% r4 P, f+ N3 Z( O8 Z' X! h* }5 I8 h int x;
. f! ~5 ]: n2 U# cpublic:
7 a$ |# E4 \0 F! Y" X* ^4 J int length;
% l# t# K! t# k, C6 L. l# B Checkout()
" C4 w! O6 T  V3 Z# H3 F, _( V& K. ^9 y {  
  f& Y% m& x! _3 w" l4 G  cin>>ax;
/ `9 _; Y# B7 z  length=strlen(ax);
% ]" b7 u, @. r3 c: ~6 { }
: K! i! t5 w& Y4 E void cxc();
3 ?- \) f5 o0 S: D5 X! c; L bool qyu();; H1 B5 [* O* q* H% \0 z4 B% v
void add();0 o" h7 ]+ k% t. N7 P$ S; M* m. r
};
3 v* A/ V& t, ~/ @1 P) c2 ^  jvoid Checkout::cxc()2 l+ r% m8 j/ W4 X2 H& a
{3 Z) c2 J# ?7 h- E4 P
for(int i=0;i<4;i++){! z8 x8 l9 Q1 V) P$ j
  ax[length+i]='0';
! M, q" ?0 f$ F7 I( P9 p* a }
9 j6 W0 C0 g, C% U' z# W$ E1 j. I}//将输入序列后加4个0. D/ i$ H* o% v; x# Q
bool Checkout::qyu()! R0 ~6 P& S6 B' j+ E
{
& f6 F1 {0 s, n" T7 r  p4 Q( ~/ v char c[5];
) H8 |, x3 u+ _ int i,j,n;
, c) S  V$ T2 I; W6 ~ int m=5;* M+ o" {0 n5 J# n+ n* E
for(i=0;ax<i>=='0';i++);
; P) [* U$ }" X" i7 Z$ E2 q, Y* R: j  if(i==length)/ H/ |8 a1 p' G* n
  {cout<<"余式是0"<<endl;" M7 N* A4 c8 H* s! L% ]
   cout<<"发送成功"<<endl;
* d% ~+ E5 ~2 T7 z: k, X   exit(0);
4 Q! j& z5 e5 Q- h7 g. G( E; Y  }
3 p2 _( V& y/ lelse{
6 K5 D8 ]2 h3 A5 {% f1 ] for(i=0;i<5;i++)
  F' j; {' F- A0 d5 z* O8 f4 }4 Q/ o  c<i>=ax<i>;3 a1 A6 B" t; V% H# i; ~
while(m==CRC)
6 W- J' F6 d2 J! m( k% W4 s { for(j=0;j<CRC;j++)
4 u! T" R4 K% w9 `) T* ~   { ' ?$ Y/ f% H3 a
                if(c[j]==data[j])& z4 S/ }8 V8 F! |% Y
     c[j]='0';9 P& v8 V! _2 J: }) t/ Y/ l
    else/ F( [. f$ l* c$ T
     c[j]='1';
, O; o. t, x# H   }
# I! U. |& S$ T; n6 L! F- ~     for(j=0;c[j]=='0';j++);
, ^0 ?) F1 r* [$ @       n=j;
6 Z0 ^- N7 N9 E1 W' k/ ]. s     for(m=0;m<CRC-n;m++)  w0 Q$ V. z! a" S" I& ~9 A9 \5 H
     {+ Q3 @, Y# n+ w+ W
    c[m]=c[j];
  ]6 m" ~8 l% f6 t    j++;
' I! m9 k# W+ x4 H2 C( W7 T   }6 x$ z6 N: |# C! ?/ F& [4 Z& {- w
           while(i<length&&m<5)) Z0 T8 E+ {4 N- e1 U, ~3 y
   {
: L* B: T7 f' e+ @4 w        c[m]=ax[i++];
, o1 X) M1 E. y, j     m++;      
' g" O8 R8 J* e3 D   }
* X! x. s' v/ \+ ?0 B }, e3 ^8 _( i2 G$ K/ i
}: d4 r6 K% `. M: I1 x
int k;% l4 I% O: ~, c( f& J9 y5 I/ N$ B& B
for(k=0;k<m;k++)5 W( v( {9 H: \" @
  bx[k]=c[k];
3 A; B# j% [% c4 e4 y% a# W for(j=0;bx[j]=='0';j++);
% w* p0 M* ]  L; Z& {) S, M' j  if(j==m)  U4 \' p. C" {' q. t! b
  {cout<<'0'<<endl;
7 v$ Q, Z7 G$ ~) f5 T   x=0;5 J6 ~0 `8 P0 r- D
  return true;
3 c! U0 p: U0 [$ B: M  }
- F$ l2 z* z: r$ _  else+ B2 n! a2 w, M0 C  ?4 j
  {for(n=j;n<m;n++)9 ^* Q7 M# b( H3 }% E
     cout<<bx[n];$ V) z) [5 M8 R8 I3 b. ~; s
  x=m-j;7 q0 x. W5 K9 [, h' U. Z5 N
  cout<<endl;
) x8 @  e- {8 D' g! s  return false;
- E- C. x6 v3 k; x; f) M: Q8 I  }2 {. {" X& v4 r- n5 w1 ?
}
" I$ @: E: y% V/ y- mvoid Checkout::add()
3 d: F$ W4 d6 C" B; T; e{
5 M; v& o/ Z- L$ ~int j=0;# Z5 T  j+ v7 }3 s% o1 v
  for(int i=length-x;i<length;i++)
/ y" v: F  ~% q" s    ax<i>=bx[j++];7 a. q  x( l* f( c( q0 {
  cout<<"发送的序列加上余数后变成:";
: `% b% |& w- c4 m$ g" E+ D for(i=0;i<length;i++)
' ^2 g, W& r  K/ n% U6 }5 g  cout<<ax<i>;
* P0 r  [& J# U8 x) @2 o cout<<endl;7 ^& ~# @0 C+ o- e/ j
}8 W& P7 R2 e! b: Z' R0 q+ b  N; K
void main()( f( n2 Y, i7 H5 Z! k0 k
{  ) d* a! c% ^7 b9 h  I
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; 8 m8 c+ x8 |( B8 s  c* e6 D5 {
    cout<<"请输入发送数据比特序列:"<<endl;
' e2 H) X1 N! A0 S. U# o Checkout test;
: W# o8 v+ J8 Y# i test.cxc();! R" {0 V0 h: E/ R
  cout<<"余式比特序列是:";
# g* u- v& O$ a/ [; `: b! c  test.qyu();% V# ^  O$ N1 _. \" o
  test.add();4 c) m: z5 t, o+ S: J
  cout<<"试试这次是否能被整除."<<endl;3 J6 K9 e/ P2 p
cout<<"新余数是:";
) R3 A: D1 ^; N- [& p3 X3 S& |. Q% }. _  if(test.qyu())" \9 p) K8 _: i, ^: m
   cout<<"已发送成功!"<<endl;& C( z, k# L# [3 b1 ^0 ?9 T$ V
  else! O. d( W# n& T0 N
   cout<<"未发送,失败!"<<endl;( d- o0 b1 }8 T* e, D8 E# s
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
  • TA的每日心情

    2019-4-26 13:26
  • 签到天数: 2 天

    [LV.1]初来乍到

    2
    发表于 2005-6-16 00:18:00 | 只看该作者
    C++ ?

    该用户从未签到

    3
    发表于 2005-6-16 13:19:00 | 只看该作者
    头晕
  • TA的每日心情

    2019-4-26 13:26
  • 签到天数: 2 天

    [LV.1]初来乍到

    4
    发表于 2005-6-16 22:49:00 | 只看该作者
    给点小费偶帮你搞定 HOHO
    2 L" r8 [! o; Q
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    6 ]  v$ ?$ [) P$ L  {

    该用户从未签到

    5
    发表于 2005-6-17 01:01:00 | 只看该作者
    晕,有点义气和意气好不,会的帮帮他

    本版积分规则

    关闭

    下沙大学生网推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表