下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
: ?5 T, l0 r" ~: `% ]6 p#include
* t, S) |$ M0 n: K6 Y  [9 m#include$ Z# A1 g2 a+ q
#include
8 a+ s& n9 H4 J3 j: ?' w4 H9 @#define CRC 5! w0 r* X% m& k3 s' D7 g( S; T
char data[5]={'1','1','0','0','1'};
; [# J! u4 a( \" y/ zclass Checkout
: {/ E6 e3 W# Q- U{
* `( N# w7 y" g, Vprivate:
* M. e/ x/ b. F/ H; D; r char ax[50];% H# `# G" M  P
char bx[4];
' y1 r6 b! b% z$ \' H int x;
) A  _- S) Y; E1 m- Fpublic:
2 H* S0 V* w7 ]' L# g( @* k int length;4 V. ^" B) m! T  m# ~6 E9 I
Checkout()  R2 n5 s$ |2 X+ I% X
{  
" q$ {& A& Q, o" f  cin>>ax;. X/ D* F0 X' [
  length=strlen(ax);
1 l/ Z& [3 l! A% u9 d }
' Q# @! ^, E8 X, v void cxc();$ L+ d/ V( }. R! P5 r$ Z: ]
bool qyu();
! P7 k. d% ^) m void add();: B" B6 A% }0 f) n
};
. E2 F: h4 y4 h# A, ~' vvoid Checkout::cxc()2 A" H2 r4 d1 L, m
{! Y* q5 ?0 @! W. @" i3 K2 J
for(int i=0;i<4;i++){
+ ~  O  M0 p& d  ax[length+i]='0';& y( q. e/ L3 ?& V; }  M7 h$ D% T
}
& [4 g9 I8 q0 h1 p}//将输入序列后加4个0
$ L! V+ |7 ^/ `: k- P7 |2 Lbool Checkout::qyu()5 W( x8 j. z( D0 O$ N2 u
{
& ?( L! b9 X% x0 B9 j7 [- G char c[5];
  R! `' |+ K2 D4 q. G. h int i,j,n;
3 a) J5 I+ L1 d( K4 ?' T" ~6 [ int m=5;
# b' G* ~) _1 j4 n0 \* W for(i=0;ax<i>=='0';i++);
, L) j/ q% O5 N7 k! W  if(i==length)
8 Z$ y) D2 J5 |/ L3 n. a  {cout<<"余式是0"<<endl;3 Q6 F2 T, E5 C' R; y" u; f1 {
   cout<<"发送成功"<<endl;
; _: F1 F, d$ a8 n+ Q   exit(0);$ R7 n: h* M9 z' F+ R2 S5 a" i# F
  }
# R) m1 }# y  t2 z/ Velse{
; R0 U  k1 k& j3 Z( x- s for(i=0;i<5;i++). M4 x; j* d9 c, Y0 `9 k! u
  c<i>=ax<i>;3 V, v7 l' K! _6 m- Z8 v$ M
while(m==CRC)3 {: h! \8 x/ B- e- i2 Z
{ for(j=0;j<CRC;j++)& q% e/ j0 G: @- t7 g7 q" S
   {
4 p; j) T2 `( F' ^* l) L) _. G                if(c[j]==data[j])9 L' f6 m# b- r4 q+ Z. m! Z
     c[j]='0';
% P+ a3 j3 @5 V. E& Y6 Y    else+ c+ D8 x6 q( B" p
     c[j]='1';. ^( p7 S- r% R% R: m2 G! D+ ]4 @
   }
9 n) I1 x% e3 `# v+ s     for(j=0;c[j]=='0';j++);
2 s5 e4 G) V# D: S       n=j;& }  z+ X# ?+ ^; t' M
     for(m=0;m<CRC-n;m++)
4 q. Y2 c+ B/ u1 Z     {$ e. q: {/ m  P" j) I; A' O
    c[m]=c[j];* ^9 s/ {! o1 V, j" _
    j++;
. ]! G/ E" Y' x7 r7 _" A4 ?   }
% C% L/ W/ ~6 U1 h3 Z" z0 v           while(i<length&&m<5)+ d8 ]7 |# `' E" N+ U; r5 k
   {
/ C2 v9 m+ V& i        c[m]=ax[i++];
: M- y4 X2 v# d3 V+ X. d     m++;      
+ M8 R4 \: h4 l. S   }
8 s8 t$ Q. K. n  j' D8 Y1 y: D }
# f8 a: C6 M# ^3 P+ a& }}
' Q$ w7 F% f% Q int k;( h" f$ a$ r* a  R2 H
for(k=0;k<m;k++)
" b! T2 I( O. t2 l: p7 S9 C  bx[k]=c[k];
# V0 i  O1 P; D9 ^& r! r for(j=0;bx[j]=='0';j++);
0 N' m4 ?/ E5 b% F9 Z% U, x) B  if(j==m)  I* t( L( w; {" p! ]0 k0 O/ u; K. R
  {cout<<'0'<<endl;2 E5 l, G& d( g  [9 A+ X
   x=0;
  K  C7 P# F7 D9 `  return true;
9 R1 a, _1 }$ s) C  }
2 g/ A+ ~2 G. h  else
. q2 P7 t$ @9 F/ d/ R  {for(n=j;n<m;n++)) [) z7 O2 {' @- Z; L2 r
     cout<<bx[n];
# b, g7 {: L0 C$ c2 g! y! Z/ K  x=m-j;1 A3 O& a) M/ r
  cout<<endl;  `" }& g/ I" I# F, n
  return false;
+ T( t1 q) j. r' B  }. c: k/ {$ E0 I/ \) g, h
}& H0 q5 I* D, r3 l
void Checkout::add()
+ i5 F( m; \2 L, F: S* M$ x{0 q' Z; P) c( v$ U5 O2 Q- t5 Y4 {
int j=0;/ M. }* n- l) ?1 R# c% c- C
  for(int i=length-x;i<length;i++)
5 g8 m% L( u  |    ax<i>=bx[j++];
. q8 {! T6 Q4 h+ _9 ]  cout<<"发送的序列加上余数后变成:";
! x: f2 R3 u6 ]) _ for(i=0;i<length;i++)
3 F4 O  A2 b6 o' Y: o2 ~  cout<<ax<i>;
: c' ?/ h  K( n+ ]. @3 J6 n+ D cout<<endl;$ }) N& H7 ~/ y: J0 O) _
}% }- ?& J6 |& q: n/ c( U& k+ h
void main()
. k/ s6 l; W# K/ n* [8 O4 W{  5 B% U1 U+ m8 {2 @% z8 u3 x* m
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; - _8 T9 c6 T2 w, o  G4 E2 m
    cout<<"请输入发送数据比特序列:"<<endl;% y' Q9 W$ F9 ^" A* b  j
Checkout test;
2 L+ ~& A4 H" e0 q6 O( M0 F test.cxc();7 A$ X. |- p6 K) Z
  cout<<"余式比特序列是:";( Q( N/ C, W; m0 G( y: l9 u8 w
  test.qyu();
8 g: Z1 v, k) a' T2 W; O; k  test.add();+ r5 z' P* N2 l; G
  cout<<"试试这次是否能被整除."<<endl;4 T$ h5 l% Z1 y! C: o! r
cout<<"新余数是:";  b, b% ^' _2 t3 F9 L
  if(test.qyu())% L! M- r0 A9 B1 J* G6 U* r+ p
   cout<<"已发送成功!"<<endl;
" I- d- g& e7 t2 }" }- O  else
0 C! \4 z; c0 U5 g' `' I$ D4 I   cout<<"未发送,失败!"<<endl;9 t% [, z9 A+ c! N6 s: U
}
分享到:  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
    * F5 X* C, r3 p6 V  _  U' w0 Z
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    - i; `( a( p+ X" ]# R6 ]. L

    该用户从未签到

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

    本版积分规则

    关闭

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

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