下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊5 U8 T- S( N# ]! u) y
#include
9 k3 R# O( _+ r- T) x6 s#include
1 T9 C( v* r, O' O* U4 A#include( y! _; F; x' Y/ B! X$ h
#define CRC 5. i9 Z7 k3 u$ s* m5 [& i' R% D
char data[5]={'1','1','0','0','1'};
6 Z( i: w* k" g4 A7 H; r  _class Checkout
1 n5 \/ W- i. h- ~, @  |$ _& w{$ Y% Y4 H+ U3 r) R" ]& `
private:
% t- ~& V7 f# Q" F* D0 g char ax[50];
) R6 n4 z- h0 D$ f" V char bx[4];, f! U. k  F$ M, R# H3 x, h
int x;
6 Q8 T3 j7 m: B; `( x+ Vpublic:
+ B) `& N( P% y/ s% a. ~ int length;
8 U- S5 z; p0 ~ Checkout()
7 b* I: B2 R9 H$ J3 B2 `! v {  
. E0 [+ A- Q+ v  cin>>ax;0 u. |) D8 q4 O6 K: F* V
  length=strlen(ax);- P0 y4 |# V5 C8 \
}
; e- P4 i2 h. w; ]* ~+ F7 h# k void cxc();
3 _3 w6 U8 c/ f1 k% a bool qyu();) `3 \4 m9 ~& n$ h
void add();
1 }. }# Y( ^; b8 t: ^};- O  c, e# S, |/ c4 p& v
void Checkout::cxc()' N: Z$ G2 P8 X& C3 r2 y! i
{* f/ M8 g9 i! O$ w/ A
for(int i=0;i<4;i++){3 t1 o9 G. b1 M+ n% c6 n
  ax[length+i]='0';
' c: |' x" b/ e" P }2 M5 [: j  F/ H9 C1 b2 K
}//将输入序列后加4个0" o& {' b2 g5 i: |- }. V
bool Checkout::qyu()
# [) e/ f. n( e{% R0 v+ j4 l: M& W  X% _
char c[5];' k1 h3 I8 e7 u/ @7 {" \
int i,j,n;+ }$ p5 N$ G4 k4 Y
int m=5;
2 }' d  M' a0 c+ ` for(i=0;ax<i>=='0';i++);
5 G$ {' R4 ]; C, O2 m  if(i==length)! S  [7 y8 N( x; H; d  Y2 t; g
  {cout<<"余式是0"<<endl;5 n4 k8 D6 j3 p( x( s8 I
   cout<<"发送成功"<<endl;
. L: m/ u. S/ R4 N: y   exit(0);, K3 I8 s  Y' ^: W4 f' x
  }. g# s& n# a, T$ Z6 |  Y
else{5 t+ H3 _. j) z# l7 b# z1 V  J
for(i=0;i<5;i++)) E2 A) W; @7 E7 @/ J" W' e8 b# z
  c<i>=ax<i>;. y. I' `* j1 Y/ c  D0 l
while(m==CRC)
2 s' a! {# b* V6 F) o7 x" h { for(j=0;j<CRC;j++)7 P$ h' k0 N0 D/ I* C
   {
1 H7 F7 Y8 B) E. V* X  O                if(c[j]==data[j])
  r" M$ y6 e- K, Q     c[j]='0';
7 _. s$ A$ M6 Y( ]; D) \; h    else
8 P& }& `7 g* C$ A     c[j]='1';% s3 W) q/ q5 P2 m
   }0 F/ N- d. r  j! B- x% G+ k6 [
     for(j=0;c[j]=='0';j++);
. e8 `! v# D: n6 @       n=j;8 G  Q) y1 B5 ~  j1 Z0 Z
     for(m=0;m<CRC-n;m++)) x0 g& B! q/ e6 \* b: X0 s
     {. K5 t1 n; O7 C
    c[m]=c[j];
6 \  h# y' k! u1 e    j++;6 l3 J/ I( q$ ]6 q
   }! ?. `+ x) Z0 P' a: m. \6 u
           while(i<length&&m<5)0 i  Z! r3 }* W+ d9 Q; M
   {
  z+ T7 J. ?. p        c[m]=ax[i++]; 0 J* d- W- {; |* g* ?
     m++;       , Y$ V3 i$ m! c/ j- j
   }; L& E1 B0 X! v1 T0 V1 C
}
% b& S8 S- @6 e, _9 b}
% d# D- P" m; U5 }7 a1 H int k;
* l. E) @1 g5 M* | for(k=0;k<m;k++)" V+ g$ F% c( V5 R/ y7 X% t
  bx[k]=c[k];) L" C0 b# ?5 r( \: D# I3 Z
for(j=0;bx[j]=='0';j++);3 n) M. W& H3 w  q3 S( M' J4 X- Y
  if(j==m)/ S4 H( {7 M, ^$ k
  {cout<<'0'<<endl;4 V, @4 o: |" X% u
   x=0;
) U8 `" V8 k  Q7 c; l; C# J8 X/ n0 ]9 l  return true;
* O1 Q) `4 d2 f  }% d, @4 {% _! ]% {
  else( n* E9 S* V8 c/ P
  {for(n=j;n<m;n++)5 o3 t* i# R" E' z
     cout<<bx[n];
+ q+ P( w. e# V  x=m-j;5 U' f  w1 k' W- K3 b) o% @
  cout<<endl;( }# b3 c/ Q  }8 x! T% p  i9 }) I
  return false;
+ A# m. O5 T6 e  }
8 M! w8 m0 V9 i7 u9 R' T}/ a) |- j: e, d3 Y5 e- h
void Checkout::add()' p' s8 T- j- \7 e/ B$ U: X
{$ d! b; \  J9 L% t8 I/ `5 h
int j=0;7 h$ l% H. M8 ^8 S
  for(int i=length-x;i<length;i++)% }8 [' S3 _! |! Z6 n
    ax<i>=bx[j++];9 Q0 {0 ~6 W+ n0 k- v- x6 c: G- y
  cout<<"发送的序列加上余数后变成:";
$ u3 g# c+ D; N5 V for(i=0;i<length;i++)
* J  A! ]/ y+ U: R+ B  cout<<ax<i>;- I, x% j* v4 r( l$ m
cout<<endl;" Q7 T9 c' @( R: y6 ]
}
  [1 x- }+ C$ jvoid main()# r2 ^$ |0 I- m3 G/ O. _- x
{  
" b/ I: j1 w" X. r# P4 `, g cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; 7 ?% z6 R: p5 q4 d& H. r
    cout<<"请输入发送数据比特序列:"<<endl;! @( I5 O2 Q% P- C- I
Checkout test;
& p: W+ G" z/ g1 W test.cxc();& X  m4 G! M/ |; z. s% p0 Q
  cout<<"余式比特序列是:";
* {" m, Q* B( X* E  test.qyu();
, G9 _# I; c- F+ A+ ~: u9 K  test.add();. m- _" }1 g7 R- O- a
  cout<<"试试这次是否能被整除."<<endl;
  q$ o! \/ z2 M  P" J cout<<"新余数是:";4 G( V/ b7 Z. V5 f
  if(test.qyu())5 ^3 U8 o8 y6 A3 F
   cout<<"已发送成功!"<<endl;! i: |5 w- b( N
  else4 y1 X: }2 s$ n
   cout<<"未发送,失败!"<<endl;
, D% m( H, r! f, o+ 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 | 只看该作者
    给点小费偶帮你搞定 HOHO
    ( `& T" }7 H4 u2 k8 S8 U; {
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    & t- o4 l! h  T+ A- `

    该用户从未签到

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

    本版积分规则

    关闭

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

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