下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
, x+ K) |9 f# Q7 A2 P1 M: `8 {3 q0 L#include! F4 L0 ]# e+ A7 n4 A+ r8 q# c
#include
) M" J) e% F3 h' s5 g  m#include
' E, ~4 D9 k9 H5 k#define CRC 5! G( w1 C5 t: s% F( v$ K5 {1 }
char data[5]={'1','1','0','0','1'};; n1 C1 v9 ]6 k4 E% y: v( N: G1 \0 `
class Checkout
  k) m- E1 F8 R9 k{
" G% G' v% c4 a4 ]3 i) {' iprivate:
  Y, P% c5 d* E( O" D char ax[50];9 o' M: d4 L# D) [6 y0 r
char bx[4];$ m, ]- h: x) L
int x;
4 x- h# g- P, L/ epublic:
3 ], W& h' v% Z6 f& t6 v% S int length;
9 s/ P' N1 ?# o( F; v% R9 } Checkout()
5 K1 ]0 `0 v' }, Z {  
! e, s/ w5 G& G3 K  cin>>ax;. V! l: G4 Q8 F6 n6 v1 O
  length=strlen(ax);' c* E5 b9 X4 N1 c" S) G
}
2 m3 t! G5 V. n: i) A& q% Z void cxc();+ z; T- d3 j3 \- U
bool qyu();
4 \4 G8 z# |% `. A# f void add();$ t% O6 z. i- g/ C
};
9 S: X5 k* b1 `/ |$ k& xvoid Checkout::cxc()
1 A$ m8 G* i  ?2 t  U9 o{' s5 m+ H1 c2 @3 Z( p; T
for(int i=0;i<4;i++){7 d# U1 [4 A  w( I
  ax[length+i]='0';
/ T8 w( @2 d1 Y; O. h' i* C% P0 m }
' x& K, }1 f2 R  \}//将输入序列后加4个0& ^" O% U! I) x+ N, t0 y' u$ Z; e
bool Checkout::qyu()' E' `# R9 O$ }, X2 D2 o
{
* O0 \; s- x' y- ], i0 Y9 `3 _, X char c[5];3 u( d+ `( b+ W$ L, U: ?
int i,j,n;4 j6 d  }! P) A( U: ~8 X+ z
int m=5;- D. U/ A6 A5 V- _3 U* [' I
for(i=0;ax<i>=='0';i++);% r1 U8 |+ i/ I  Y* \  J8 W
  if(i==length)
, v! L1 d# D+ H$ j5 b2 U2 y  {cout<<"余式是0"<<endl;2 P' g" m: ~9 Q
   cout<<"发送成功"<<endl;
6 ]' W  A& J$ ?4 X/ [   exit(0);# q+ |0 V( c/ E  l3 L: }+ \
  }
) l* L9 S$ m1 M  lelse{
3 [0 p+ Z# j" ]5 ^2 a# y0 D for(i=0;i<5;i++)
2 o/ d3 o5 j- S/ T+ V8 U0 d  c<i>=ax<i>;; w1 D4 C) _/ ^& V
while(m==CRC)
1 w9 h* J$ R2 ] { for(j=0;j<CRC;j++)* b  y$ R7 P& w0 X" R
   { 2 b; ]% a* t1 B, h5 w
                if(c[j]==data[j])
( F8 w# ~! m/ U0 R9 |  G     c[j]='0';% d" }# c% G! o) P
    else  ?  x# a/ o! Y* I' W8 }
     c[j]='1';1 N  c3 m6 Q$ `
   }  ?+ T  b% e$ U
     for(j=0;c[j]=='0';j++);
  V4 G& Q# ^$ o: L7 p! H9 J1 j) n       n=j;/ ^3 x. i4 [. \& r
     for(m=0;m<CRC-n;m++)  T! M- x2 ]) p% B3 Y
     {
$ b& C& c& h/ h* E    c[m]=c[j];' a: l4 ?0 n: I' A2 ~# y
    j++;
2 T, b$ q+ D9 u+ e, w   }( i+ x; O* r9 G0 G  V8 q
           while(i<length&&m<5). \( m* M1 t! v: c
   {
+ k' L0 [2 U# I6 z        c[m]=ax[i++]; $ J" a/ M( G) h+ q$ h. x( m2 |
     m++;      
$ P) y( b* u% I" {7 ~   }
# @& R8 A; E6 _7 f9 i6 ~ }
) q6 D# L) q! Q}7 N( D7 T, `. q  a
int k;
! X: |+ ~- h6 E3 r' d1 s% p) n7 i, E for(k=0;k<m;k++)
+ O6 R+ _% ~( t  @& K3 H  h1 I: \  bx[k]=c[k];
' F8 [2 Z4 G4 w. B& ?: _& j for(j=0;bx[j]=='0';j++);5 T  q: w, H6 l2 X6 a
  if(j==m). I+ f+ |' J" Y7 X& s" n
  {cout<<'0'<<endl;
7 ?# ^& v- {+ L   x=0;% \) K1 a1 n# t: h% M  ^
  return true;$ o, C* l/ I! ~# R
  }
( J% W2 S( K1 r- ?$ P6 ?0 G  N3 E  else" I5 F4 q: ]8 X/ I9 O
  {for(n=j;n<m;n++)* k) q- ?% B8 ^
     cout<<bx[n];) S! X! T* A/ S. ~! D1 T
  x=m-j;: f! b8 {+ ]$ u2 s. v! m' m
  cout<<endl;8 W) M) L  r! P# F& o
  return false;' l+ K: j! O% F) d) w, v
  }
7 i% c- n5 s! R# a}
8 V8 ^& j' n2 x2 Avoid Checkout::add()
3 V2 f' H, j; E7 N# g{4 T9 W8 a. V) @7 P
int j=0;* Y4 d" m5 U2 _
  for(int i=length-x;i<length;i++)" M8 O$ K3 o1 k4 k& N
    ax<i>=bx[j++];% K) r, S" ?0 A7 J* }) T
  cout<<"发送的序列加上余数后变成:";5 u) ^5 I- C0 C' k1 x
for(i=0;i<length;i++)
, ]8 ^! W& c: w+ Z% ]- ?  m1 C# Y/ g  cout<<ax<i>;
3 _8 `& I" F. ]1 Y3 V' [ cout<<endl;
# T4 z$ s6 t( e}9 {5 w4 p$ b) p
void main()
: y! G, O; F+ X0 O{  
8 b7 A" S& d9 Z" X; x2 z cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; + I* b9 |8 u& D, `' s
    cout<<"请输入发送数据比特序列:"<<endl;5 B0 \! ?& n6 M: I
Checkout test;, B* k- P* ?' e! ?/ Y
test.cxc();/ b, L% ?9 B; W' P- y
  cout<<"余式比特序列是:";
: |: |0 ~$ \7 {: {) s2 X( d7 y  test.qyu();# ?% F$ V% r0 x8 x
  test.add();
' r+ \5 e3 y+ y- F- ^4 f. G; b  cout<<"试试这次是否能被整除."<<endl;) G% |3 ^. i) k, A% Z( w
cout<<"新余数是:";
, W* W3 R: o6 O& r1 E  if(test.qyu())
: E4 T- z: ^5 U7 B/ f+ i, I( m4 g0 J   cout<<"已发送成功!"<<endl;/ N/ w2 b8 H  C3 n2 N
  else8 N  m9 i) D$ ~/ g
   cout<<"未发送,失败!"<<endl;. r4 `+ Q% M2 Q
}
分享到:  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 | 只看该作者
    给点小费偶帮你搞定 HOHO5 w  @2 R  I) G1 n
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    + A- a+ J9 D% i6 O; }: l' a! Q

    该用户从未签到

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

    本版积分规则

    关闭

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

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