下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊: f# i) V$ _4 x* h
#include$ s. u( Z  h4 U
#include
, @# U% _4 {  }) Z2 f; |2 E0 B#include
& K, O) K6 A9 @#define CRC 5
5 B! _+ J6 v/ `1 fchar data[5]={'1','1','0','0','1'};
$ [. m# P3 a* x4 Hclass Checkout
2 V' _! n" E6 f! |+ |5 @{
" R9 X, L9 S! m. vprivate:4 ^# _; ^) _. s- B4 t3 k$ d
char ax[50];( O- n3 n. x0 x
char bx[4];) U' X: H3 k' @
int x;
8 r4 a1 }  y+ C! Wpublic:/ E# k) K1 ^$ G+ ^. A6 A( Z
int length;1 ?2 K  q' g: Q' Z. K
Checkout()
8 {: I+ E9 K, l; K- @* D {  
* f( G9 M3 X3 ]" F6 d+ v6 U5 d  cin>>ax;9 Z) f' ?& m( j1 s) A. M& A8 E' I- K
  length=strlen(ax);
/ T8 [. E6 Q0 w- N' A6 l) s' A( Y" D }
3 v, X/ C' W5 Q4 I- ^ void cxc();
' d5 j. T8 `* G bool qyu();# ~5 q9 {% p5 \4 y. Y# Q8 Z
void add();' S3 N+ [' r# v( H2 h+ ]
};  m/ k4 S0 m) i/ b1 E5 d' F
void Checkout::cxc()
8 e, O' U7 G3 }{4 h, k# V6 ]. k& \( _* I
for(int i=0;i<4;i++){( g) G  i" ^' ?9 H9 |0 W/ ?
  ax[length+i]='0';) C  c, N9 n5 f7 Q6 |
}
# t  e3 @4 d- x" |/ ~}//将输入序列后加4个0" L& R- X3 D" P
bool Checkout::qyu()
& P% R% h7 B3 i{6 x- i) Y2 Z$ c
char c[5];. ^9 t2 v3 f! d+ d+ n" e* h/ H
int i,j,n;' b4 c4 X2 V0 u! V( F
int m=5;! D0 P: i: Y" |: A
for(i=0;ax<i>=='0';i++);
7 h2 @2 r. }$ @" Q3 q7 T  if(i==length)
. \. |8 L( w2 t. W  {cout<<"余式是0"<<endl;
2 h' a$ [, c- C4 ?   cout<<"发送成功"<<endl;1 f/ A. ^) Y# K% h8 u* F7 u
   exit(0);9 Z6 k8 z; h6 P( E3 Q  w
  }
. y- S; n" s* U* N4 velse{
+ r( ~. j1 j' z" M. O' \' F8 |* ]6 F for(i=0;i<5;i++)
( G, W: ?, q" W; L  c<i>=ax<i>;
1 _  a4 |% D5 {8 l: j- ? while(m==CRC)( Q6 X* [2 M; D. _
{ for(j=0;j<CRC;j++)
' o1 R! B6 E8 Z7 @   { 5 e( k; j# e7 z- s& z. [7 h) ~
                if(c[j]==data[j])
. [( Z$ _/ T* q1 j% g4 d$ A, G     c[j]='0';* |! b) q# Z# h( @9 c9 ]
    else! p+ @/ ?" U1 ]& r) O- t
     c[j]='1';
1 |( g0 `. j# y9 k: X$ Z9 G% s   }
) e1 I" Z+ H8 z  T2 V7 ~9 d$ [     for(j=0;c[j]=='0';j++);
7 A& b  h' l1 t, ?2 G: A       n=j;) J8 I( {# a) V# T+ p
     for(m=0;m<CRC-n;m++)
4 g7 m: V. u/ r4 v" e$ ~     {9 @! p4 ~# _' U3 c
    c[m]=c[j];/ r% q/ f5 ?0 H$ a4 s9 X
    j++;
- W  Z2 G" w1 j9 \   }
+ @* {0 ~. L. `4 ?           while(i<length&&m<5)
( `/ c) S" |% M- v4 G9 c   {
2 ?1 v( J4 r1 v3 u! A5 E5 I. d6 e6 ]        c[m]=ax[i++];
' {& t6 I. G4 ]: C     m++;      
! e3 F, b. e- r2 ?3 n   }
% j1 K+ E9 ^/ m! i! b( {, J }
8 r! Z' I3 w; W7 `  z}
5 `' P: k: {" y9 m' S5 K) { int k;
  y7 }/ B" ?* L* l: p; a for(k=0;k<m;k++)
9 _% ?! r! _' B  bx[k]=c[k];
, Y3 x* u1 n. E9 Y$ ~ for(j=0;bx[j]=='0';j++);9 d0 Q  ]- T$ ?$ ?/ E( S
  if(j==m)( D, b, t- {3 n* r9 a! l) g8 ]; I% l
  {cout<<'0'<<endl;
% b1 Y' m% [/ ?7 h. Y+ c( _: _   x=0;
2 K# e, {7 Z# S2 T6 z: W  return true;+ m! [8 `$ p/ r$ U+ E
  }
( k0 d$ P9 a2 z  ^  else( D% l1 t1 H, ^9 l: T8 p1 j
  {for(n=j;n<m;n++)
* M+ X8 t. x$ }6 p% o7 k     cout<<bx[n];
6 I# j: A; w  W0 V  x=m-j;6 t* y1 o9 g, D! J/ I* N" e5 l8 l' _
  cout<<endl;' {! I: W# P! }$ r# i
  return false;$ c# b0 _/ K: ]) }
  }8 H/ q3 A6 |. \% d) l
}1 m, D/ K1 Z2 Q$ ]
void Checkout::add()
( m$ L$ p* g  Y* o5 J( `' H- J{* p: N; Y7 T/ o7 j1 s. b
int j=0;
  [0 b; W$ }3 O- q; A2 [  for(int i=length-x;i<length;i++)
+ w' R6 b$ h6 L0 o0 B    ax<i>=bx[j++];
: D7 H, G% _5 _  cout<<"发送的序列加上余数后变成:";
. X* K5 r: E' x& Z for(i=0;i<length;i++)
4 z! [7 }/ d6 r& N  cout<<ax<i>;
" J" r1 M/ Y& s" z& `0 D cout<<endl;; l6 A: V( r( u: }
}
* Z& S. }7 p" l( P3 ~) ]' |void main()
/ b: f* S0 o: Z, I7 ]$ {{  
: c0 i  s5 s/ P, L8 Y cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
: M, f: T7 `/ C; @+ {/ B    cout<<"请输入发送数据比特序列:"<<endl;" ]/ \: D) V3 ?9 \& }: C0 ]- E
Checkout test;3 x; N% i" y2 _/ c3 D
test.cxc();
3 S! g( P% l# r9 \  cout<<"余式比特序列是:";
/ W3 c* a! {5 g( M  test.qyu();/ F8 r' s+ D1 G0 P9 E; }
  test.add();& L/ Z8 E% c/ \9 F2 v" }
  cout<<"试试这次是否能被整除."<<endl;. Q1 \% p1 q* z. H: m3 l
cout<<"新余数是:";8 K4 S- c0 q  @0 X& [
  if(test.qyu())
& m7 L! @, {( ~4 o* `9 ?4 A' R   cout<<"已发送成功!"<<endl;
6 T# y; v( K0 ~1 q- i0 A2 t  else( x( h/ B9 N6 s, ]9 ~
   cout<<"未发送,失败!"<<endl;
% _2 w5 K3 K  S* g6 H$ b0 t}
分享到:  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
    5 m: S4 c  ?" G7 ~. C1 j; O
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    ( ^! D" F. ]7 A

    该用户从未签到

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

    本版积分规则

    关闭

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

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