下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊3 q* F6 x1 y; E
#include& v& S5 {0 n$ F% P, e* {
#include
) K& U+ j% i/ a; N( T8 [#include3 V  P, o8 M8 N! \" ?
#define CRC 5
6 S+ ?0 R- `! y2 Hchar data[5]={'1','1','0','0','1'};
& r0 a, o. z8 v, j+ ~( }* o# Sclass Checkout( a1 y) P1 f% R/ }
{
9 V8 n' \$ u# {& |6 i' K" qprivate:/ B3 @. W/ t. h3 }6 d
char ax[50];
) V6 s3 N2 u% `6 v5 L) S! z char bx[4];
  e4 P! w  w$ A* O int x;% R7 O+ [4 O$ l( \
public:6 {2 a* R9 }+ @8 i' r6 j
int length;: X  c7 Z5 d4 @* e: g" g
Checkout()! ]# x4 `; N5 E! x
{  
$ }' W9 z/ q1 G( R. `" S* k1 u  cin>>ax;- v# V% \- f* z' ?. j4 Z
  length=strlen(ax);, F8 Q8 u4 n: B/ w
}
% ^6 O0 z) X* z  O  _ void cxc();# ~# Z9 n3 a4 H9 L- L. Y( T
bool qyu();/ N+ w+ J+ t/ Z* O( k
void add();
7 i$ f1 P) D+ w" J) k};
6 ?' d' M4 q" }void Checkout::cxc()
% ]- x: o( _7 v2 g/ c* z: I{$ t! t- U3 q+ [% R/ V
for(int i=0;i<4;i++){
3 }8 [& h0 V9 t4 }  ax[length+i]='0';
9 {) k& ]0 P, y) h! R. u) X' z }
& ?+ l0 i* D0 D2 H- L}//将输入序列后加4个0: A& ^0 M" Z  S' T) q2 C
bool Checkout::qyu()! ~& M7 `1 l0 z4 j
{2 b6 n* H  M& ~# s7 m
char c[5];- W7 x) }- A7 l! |2 ?7 a6 O( ^
int i,j,n;
; v4 o( s" x9 V8 L" H3 S9 K int m=5;
3 _9 x6 M% W! q( a3 m+ L' u for(i=0;ax<i>=='0';i++);
7 ?+ i$ u( {7 E, Q$ A( ~% n& A  if(i==length)7 y2 r% x6 H+ h! h5 [( h  _# [; r
  {cout<<"余式是0"<<endl;
) S  U# ?# a+ T. }   cout<<"发送成功"<<endl;' E4 m7 A# c$ B$ |
   exit(0);5 Z0 w8 ~9 l+ h* ~4 W1 V* x
  }
0 A; d& m9 q% f! E. f: lelse{8 h' x. `2 N! r# ~
for(i=0;i<5;i++)
% y1 K* W& `+ {0 M0 a, `$ U  c<i>=ax<i>;$ m* I( L# P# ?, q1 }0 F7 y! G2 f
while(m==CRC)& l& y7 }7 `1 G8 ~
{ for(j=0;j<CRC;j++)* d4 J5 {0 l5 F
   { # R! Q* p4 q4 d4 Z4 Y
                if(c[j]==data[j])
# F6 s+ O; ]. C     c[j]='0';
& q" C* `- o$ \3 ~7 i. h& B6 U    else
, m; {' Y4 S/ c' `: |* X9 O. I" u3 w     c[j]='1';
9 l/ y( @* `& p% E/ ]4 Q9 B   }3 |2 t+ ^- k! m% e9 ^' {
     for(j=0;c[j]=='0';j++);% E/ x! f  d" \
       n=j;' d! k- f* _" l) k  k
     for(m=0;m<CRC-n;m++)1 a" z, z% _0 }1 P
     {
5 A0 A, @( b" B) ^    c[m]=c[j];) |" y+ t" T' `- B2 z! e; S* Z
    j++;$ b9 v5 j. |. X
   }
1 b5 I7 \; B  c5 h+ k# Z           while(i<length&&m<5)
. \0 r6 E8 o; t& o, Q( V6 J+ I   {8 a) x/ F) ^8 T5 g, D
        c[m]=ax[i++]; + C. X4 f0 I; @3 g
     m++;      
1 s9 d' @! H9 ?# E6 n6 g9 R   }1 [0 k0 y$ h% w0 x. ?
}
+ t- W% \$ n8 ~& V' ~}
) x2 i& A" A% ^. e3 {# m  f( m1 A7 f int k;
& z6 ~7 [' |; X for(k=0;k<m;k++); I! d+ z' V8 i8 E
  bx[k]=c[k];
7 _' e2 W: U" q* V+ m+ c3 S for(j=0;bx[j]=='0';j++);
6 j! Q. V$ R# X5 `4 K+ F  if(j==m), R0 _: ]$ s# L& [
  {cout<<'0'<<endl;
5 {! ]4 j& s0 h7 W   x=0;
3 D0 f  }) g* [' s7 p  J, j  return true;
6 j% g# f1 \9 h* A: n  }
* w/ P3 Z8 l( S  else5 h  I+ ]' M+ X2 J4 G
  {for(n=j;n<m;n++)+ }: c1 k3 a8 e  x" `
     cout<<bx[n];0 H' l8 r2 c3 U
  x=m-j;
3 H" d5 ?+ s' S. x1 I  cout<<endl;
/ a; p+ h1 V( z7 K  return false;
* G& h3 G' b4 C9 ~) k" p  }
* Q' W  h4 i5 {& |}
7 b3 x) n8 X9 A) a$ uvoid Checkout::add()2 w$ e+ F( n2 m3 |( v2 u
{
) ~% D% E5 C: W8 f+ @6 ?) {9 Z0 oint j=0;
4 X* g  P* i2 {8 P3 `! B7 P  for(int i=length-x;i<length;i++)
- U3 V# p7 I) u  @    ax<i>=bx[j++];# `. |& m$ ?% {! \5 V4 v. K8 m
  cout<<"发送的序列加上余数后变成:";
* q4 k, ]7 ^/ S+ U3 C# @4 p for(i=0;i<length;i++)
1 B0 ?1 ~3 h. J  cout<<ax<i>;
9 E- m# c& }. D; _8 Q. r; [6 o- O cout<<endl;
4 m" V5 ]6 W+ y# k- O}
/ l3 V! P5 @4 l+ |. c" Svoid main()3 `2 U2 F+ ^7 }8 b8 d* d; j! n* w
{  5 H( M  ]8 L% M" M
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
4 b: I1 ]4 A9 F4 \2 T    cout<<"请输入发送数据比特序列:"<<endl;
& G2 U% x& V7 [$ L; s Checkout test;
3 d4 y! O: u  u) R' ^$ Q# r! S- a) ^ test.cxc();7 Z) e6 m; h$ E: R
  cout<<"余式比特序列是:";6 ?7 r0 A) d  U4 S' C# w! B* i" @+ {" z
  test.qyu();% e4 U/ F: n3 c7 r  j4 d
  test.add();
6 r" p. \* V& K  cout<<"试试这次是否能被整除."<<endl;
5 W7 A  }/ q& q% e+ W) Y  n cout<<"新余数是:";3 F  G$ b/ W0 l3 `3 ?
  if(test.qyu()); Z' c0 I% s7 H
   cout<<"已发送成功!"<<endl;
  f8 g2 i2 _2 v  else0 v$ ?& _( s& s
   cout<<"未发送,失败!"<<endl;9 T. |' u$ g0 L, u6 W
}
分享到:  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
    + p* Q, x& `" T2 u( k" f$ w
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    / P$ e4 l0 V9 D( |: U* j+ o

    该用户从未签到

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

    本版积分规则

    关闭

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

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