下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊: T! D+ z9 P: V" a: C- G) F
#include
6 t, Y* ]$ Q0 w- o8 D3 s2 M- e" b#include% r. I+ `. M. T0 U1 k# D3 g
#include
& W: j. E6 C$ ?#define CRC 5  F# I. E2 N' P4 W" x: r5 J' J; w
char data[5]={'1','1','0','0','1'};
) ~! J9 @1 B5 A8 ~, q1 ?' Sclass Checkout
" d! S7 V0 j/ i- L( q7 |{
( c7 a% W) N7 g! I. h9 Mprivate:
' {+ i% x5 G! V2 I' v char ax[50];9 Q' `( J$ B" o
char bx[4];
6 A6 x% g& A" t5 V int x;
5 u2 E3 d6 E8 A) R/ b/ B1 zpublic:
9 L$ {+ W5 c! m- [ int length;
* X: ~; \! Y5 f$ y+ {, V, I Checkout()
! ?2 v) \/ i% x: m2 H8 u3 O" k5 ` {  # |2 k$ ~" i/ ?0 f
  cin>>ax;, h+ B8 d$ \5 Y* m8 c& b9 j$ X( ?
  length=strlen(ax);! m  _- d. x/ _/ ?- t
}
$ R; B# b) k& g; i0 } void cxc();
7 X# R/ v7 c* ]6 ?4 \* o bool qyu();
$ e2 p) Q! k, F( b& }8 E void add();7 D7 r, X+ i1 H; x; T0 F
};
4 W( K" ?% b/ o& ~void Checkout::cxc()  r" i& K. p8 q; {/ E& `
{
- I2 x3 }/ F# Q) R for(int i=0;i<4;i++){8 C0 }" z0 q% O( K# R' i
  ax[length+i]='0';; {2 n  w1 V9 T5 X# j: Y
}1 o, T8 Z2 B; G& q: T
}//将输入序列后加4个0! M( }+ Z( t8 c3 u+ l0 B6 e
bool Checkout::qyu()7 y2 T5 S# ^8 t9 z! s% G4 [3 N; D
{
0 t5 Q6 k4 s: X' r char c[5];4 q7 ]" f" V; N4 [3 }$ E% I" f) [
int i,j,n;2 a9 R# M+ O! E- P7 s
int m=5;) R2 x. Q4 q% X  \, B; b
for(i=0;ax<i>=='0';i++);
7 O+ ]* [/ _+ X3 y4 R6 n( H  if(i==length)% m. A+ z6 |1 G# v5 q9 f
  {cout<<"余式是0"<<endl;
9 X8 Y) {9 E( ?5 f: {: I9 A   cout<<"发送成功"<<endl;
8 V* g. J, E& @  W# j( X: n; a   exit(0);1 i, e9 W1 }; F9 |, s# D9 m8 a
  }+ B' O' P) L9 D+ [: S$ b5 ^
else{2 i  _! T" j! a; f
for(i=0;i<5;i++)
3 S; F5 \  n9 w7 ?/ i- n# h1 H  c<i>=ax<i>;8 e7 w- E  `5 [' y! [- V
while(m==CRC)
! {. K) W" Q  [5 h4 B8 t { for(j=0;j<CRC;j++)
5 M  t+ K4 A* Q& D" q( g; ?   {
3 F( _$ Z  T  p6 s                if(c[j]==data[j])
9 n9 S3 v  s* g     c[j]='0';
7 h, D+ `# s) U  z9 I, f    else, q. a: v: J  N+ W. E
     c[j]='1';
* D% h) r* S3 @! w" }$ Q   }) F: r# u+ L7 A& d( Q- @- h
     for(j=0;c[j]=='0';j++);  o9 F+ A1 z3 @
       n=j;0 e, j8 u# _. f1 S7 m% w+ c; j$ Z7 l
     for(m=0;m<CRC-n;m++)
* Q' H% i" N' I2 i5 L     {
; G1 x$ S5 l7 Q# M    c[m]=c[j];
, M* F( J, L' e# y0 l: m1 V. m    j++;
2 I2 G. v' h' \0 t/ T9 a8 T   }# Y8 B& D3 K: j0 [+ x2 P
           while(i<length&&m<5)
0 k* v2 S  R- o9 h  ?# |   {" N2 @# n' B- ~& i  I
        c[m]=ax[i++]; 7 S7 U$ J! k9 f; a4 X) D. ?
     m++;       ) G3 n5 l/ a. L" I6 f
   }
" D- r8 B$ |3 B, E: X/ p* |( c6 A }  c  ~9 B0 a- w4 q
}+ B6 x% d, Q2 I% Y' N- g
int k;
. k! _1 X' b; X3 L' X1 Y for(k=0;k<m;k++)) E* ^2 \- w8 i4 Y) l
  bx[k]=c[k];% x! I! R+ {; f. i5 h
for(j=0;bx[j]=='0';j++);
9 A$ [$ `( P4 N% j: b  if(j==m)
$ A6 \4 b/ h6 Y5 p  {cout<<'0'<<endl;
( Q# }' P( ]7 `! M7 C5 P   x=0;
, @, i" h$ t# t$ h7 h. _5 ]9 g/ ~  return true;  l+ Q6 |% ^  J$ F6 R" ?' \. f6 K
  }+ }" K3 w, a8 [4 D+ y6 m
  else
9 n6 ]8 R2 |( x  {for(n=j;n<m;n++)
1 I8 y9 r* F6 b     cout<<bx[n];- b  O; {: I: b/ P* b# Z
  x=m-j;$ U, B/ N1 d2 ?9 X0 e- P
  cout<<endl;4 B% _) K5 A- {1 ?
  return false;$ b2 z! N/ S' p0 h( N
  }
- N  w- P5 g/ ^- ^6 G6 {8 k}
* ^+ f! i( e' T; o; A; G% U) @& Hvoid Checkout::add()
* `) Z$ q8 x9 G: \# s& v& h; M{
: S* k# m4 [1 h1 pint j=0;  p/ W) z; N1 q* S( Q7 ?
  for(int i=length-x;i<length;i++)
- L& A% V% n8 ^  n4 z6 _    ax<i>=bx[j++];
' D7 z: V% c1 Z% ~. v  cout<<"发送的序列加上余数后变成:";8 F6 J8 P: h4 D  M1 o* m* [
for(i=0;i<length;i++)6 {, P7 M) ?3 u" h
  cout<<ax<i>;% p# J% m( g, ^; [, O; |8 J4 U
cout<<endl;
+ ~( T0 }, n* f3 P}
4 R7 `; i) X# o3 E. K5 g' m- N/ ~: Nvoid main()4 v; \8 t; z& f3 k
{  # o$ x5 S% p( I+ K! @8 \  `' d, s
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; % f* F4 N8 A' T4 h% u  a+ q' S
    cout<<"请输入发送数据比特序列:"<<endl;
. O* u! m0 [* E  O. | Checkout test;
7 b8 b" p- k6 z/ a test.cxc();0 A, l2 j7 ~7 c  m
  cout<<"余式比特序列是:";
# d% }+ a' N: v( p; m; F5 i4 t  test.qyu();
: e" q  |2 U( D" o/ u) K* l  test.add();
% b: P- C# u1 B4 u4 U1 k  cout<<"试试这次是否能被整除."<<endl;/ i  V" u& O5 N
cout<<"新余数是:";
1 P( [, d7 y. j9 y) b' B/ \5 {  if(test.qyu())4 a- E: }7 |8 p2 D& |, t
   cout<<"已发送成功!"<<endl;' r/ E2 a: m) r3 {) K9 S( K$ A
  else
9 z9 P5 V0 M' {. I   cout<<"未发送,失败!"<<endl;' {) H' i' }' n+ \, S2 Z
}
分享到:  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 o: H' L+ I) b! _/ {7 _
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    8 S2 V( k; U2 Y8 `) W

    该用户从未签到

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

    本版积分规则

    关闭

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

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