下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
3 y% |5 ^" g5 K! ]" ]6 q0 z#include
7 W) p: Z0 E, e6 M#include* W/ b5 n0 N4 `  K$ V( I
#include8 m; J6 V/ ~' l- L. Y0 c
#define CRC 50 j( ?" ^5 D8 a' g) E) i: N  O. D
char data[5]={'1','1','0','0','1'};
& J3 S  u! @: k% a3 Rclass Checkout
- l* P, C( r2 x{
+ z, g: a% h# z1 r; ]5 mprivate:
6 c: V% z6 o- P( L$ T# z+ ` char ax[50];' }( [4 E' R- ^: h
char bx[4];& Z6 T) m# w. p2 f- z  ]9 X/ q, Y
int x;
6 p4 `1 x0 G- Vpublic:
* `3 R$ r" ]+ @" S int length;) u( h, V9 R* ~; z# n' y
Checkout()
3 l, J/ {1 L3 @0 n( X/ Z% N9 B {  
3 H. Y) f/ m2 c6 }& P  cin>>ax;
& I/ H6 K, _7 m% @( `% x  length=strlen(ax);$ j3 t+ t" X2 @5 K; V* V1 C3 d& A# A; z
}
# J# C6 `( M- e3 l: ]- O& K/ g void cxc();! r! z2 ^! \9 w9 Z- f! {4 ]
bool qyu();; k8 o1 W" t+ h! H; V7 V
void add();
8 d* u# P/ y# R9 R$ w' v3 F1 q};
7 f+ w% E+ n8 w* O6 I; C8 svoid Checkout::cxc()
, P3 E' J$ G" R: r9 [+ l{
) k4 B% \! b! z for(int i=0;i<4;i++){% j  `8 p/ M3 g" h0 }# o: B% }1 {
  ax[length+i]='0';. ~- `" V8 F, A5 m1 b# C
}
9 {$ L3 h  R) w# {, @3 i}//将输入序列后加4个0
& @0 n0 [8 ?3 [bool Checkout::qyu()
. T: T+ G- T% {7 Z8 X5 S. @- G{
) z4 b* b# g% ^4 Q) H+ Q& L3 Y char c[5];
( O2 U4 q" Y8 t int i,j,n;
$ Z1 u( w: T; m, W. n int m=5;% S8 Y- W, k4 n2 ?! D2 b
for(i=0;ax<i>=='0';i++);
! t, m; ?3 y$ E# Y, h2 a  if(i==length)
" F3 k3 u( {6 `4 |7 R4 J- E+ U  {cout<<"余式是0"<<endl;  s: N6 j# l6 Y9 r
   cout<<"发送成功"<<endl;
  h% t7 M( D- C0 i/ C   exit(0);! _& \6 X' w' W$ D; ^, t
  }8 C3 \) s  t3 U; _9 _
else{
, @( A( t5 U- `! ?: N1 Z* C4 t for(i=0;i<5;i++)' y& K: c# e) ?( B, ?" {; r' R
  c<i>=ax<i>;6 M" h9 c% m. O1 \! F
while(m==CRC)
3 X- ]/ A/ A4 a7 v- ? { for(j=0;j<CRC;j++)
% ~) j( O% ^" J2 h- h# V" r' y   {
+ h# u1 b, h: I4 B                if(c[j]==data[j])1 |; Z. \; \  r+ i: P8 W
     c[j]='0';
$ \- r* v  r; v5 B2 S8 ^    else+ ^; B# d' @' f. q( t3 V
     c[j]='1';
9 ?* L2 h% c" S7 o   }
$ F( J7 Y5 i* \6 W( ^     for(j=0;c[j]=='0';j++);
6 q4 L% Z: i7 X; n1 f: t       n=j;" {+ X$ X: p9 s5 u% k
     for(m=0;m<CRC-n;m++)) W. {& B2 ~' @( i& N; s4 V/ [
     {
# k* K$ O- m; n& ?( [    c[m]=c[j];; B# `7 _& y- S( a
    j++;( c7 }4 Y+ V: B: Z
   }
! K2 E) g1 b3 ]- X           while(i<length&&m<5)$ ]' m% v& O2 r1 J+ U
   {7 Q7 g  e7 A, P8 }
        c[m]=ax[i++]; 3 |# j) D' k2 M4 g/ H
     m++;      
! W. D  V+ w( H# B0 b# b   }
0 `; K% Y# M' ^5 [ }4 X# s9 b0 r8 Y7 ^9 G# o
}; X& y" W+ ?3 Y! ?
int k;$ W$ E& Y9 x, A( Z( g
for(k=0;k<m;k++)8 C: }/ m! `( {
  bx[k]=c[k];8 P* M& E7 H9 q
for(j=0;bx[j]=='0';j++);! B- p( B2 w* p' i1 T( c& ]$ ]
  if(j==m)
0 @9 @$ {, W# l  q, W  {cout<<'0'<<endl;
) b" Y4 O1 _6 h) V+ [- ?   x=0;
/ a& e7 n( m+ N7 u4 T& i' ?! c  return true;6 E: k) K& o+ ~) ^' G; Z6 L/ c/ y
  }# w( x6 @, U# C' b1 L% T# g6 O, q
  else+ J! E! B: r( x
  {for(n=j;n<m;n++), \; G+ p7 G6 v! R' Z, \; j
     cout<<bx[n];9 x" z: l/ @+ t9 i. ~1 l
  x=m-j;
. O( C- I0 W* ?# ^4 }- s7 R  cout<<endl;9 I3 b4 c6 z7 }) S; z5 c
  return false;
1 ~/ ^3 w' b! P2 w* X# H  }, R9 c; O" {4 m
}: N; K7 D* y: I9 y0 h: _/ O
void Checkout::add()7 T! ]. W0 c, w/ U( y
{4 R% b# o' U  a
int j=0;+ I; L) C8 z% O% P$ }
  for(int i=length-x;i<length;i++)* z$ C) I+ V2 t
    ax<i>=bx[j++];( ]% O6 }) ~7 c6 u8 u
  cout<<"发送的序列加上余数后变成:";
- a1 Q9 [2 h; A1 C for(i=0;i<length;i++)
2 b) P1 ^6 s8 \( a; D+ c2 A  cout<<ax<i>;
* q! m  O, ?7 V  A! \ cout<<endl;7 j4 A, j8 l! j+ M' k! h
}
' G3 {+ J% ?; A' r! Bvoid main()# ?( N6 k7 z* ~
{  * f( S* v) b( t& Z" ~$ B1 N
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; ( N$ i( f3 g( M5 T/ L; a
    cout<<"请输入发送数据比特序列:"<<endl;+ [$ o5 p" Y' ?0 x- ~
Checkout test;9 r7 ^2 A. U/ E
test.cxc();; t$ c5 E- ^. r# _( d3 ^
  cout<<"余式比特序列是:";
0 n4 c% `' }8 m4 Q( v6 P# y  test.qyu();: ~- [$ p. k, h8 J
  test.add();
3 p3 R) l3 F3 i6 C) Z  cout<<"试试这次是否能被整除."<<endl;; u! }' ~  ~8 D5 I
cout<<"新余数是:";% g) D9 ~, n5 @+ I" R
  if(test.qyu())
5 p& Q  w8 c1 f4 m9 a0 `$ a; Y   cout<<"已发送成功!"<<endl;# i4 |( |4 ^* H+ }- n2 }5 U
  else
5 G; ^- d6 e8 r% k, U# Q5 `& `   cout<<"未发送,失败!"<<endl;( @% a* n' @: c) w" B
}
分享到:  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
    & s9 X! @+ a/ E3 t
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    ' ~; Y4 E) u7 _/ e& p

    该用户从未签到

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

    本版积分规则

    关闭

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

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