下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊& ^  M2 M! m7 u! o. s+ a
#include
6 \& C0 a! \5 K; W: b8 G: q#include
3 r6 K4 ?: Z4 k, ~6 J#include( H$ a+ D3 D1 k# t: @2 _
#define CRC 50 b( J9 V8 ?0 a+ T6 Z  l
char data[5]={'1','1','0','0','1'};: o' S7 m/ p; \* A7 D# R
class Checkout
* l0 X3 |+ b% E" M# s; s" J{
4 T0 {9 s) p- r% I9 K! `5 K" uprivate:6 X) M8 t$ i9 @- t" w2 z! T8 k
char ax[50];
+ @2 S1 ?3 R" H1 u8 A! L( a char bx[4];3 V. Q" w6 @4 e3 t4 W+ k( W. l& C
int x;2 w) B* Q( ]. [; M2 x) L- ^
public:
) S7 h0 x' w; I7 X1 {2 J6 p8 S  p5 K int length;
/ ^: K0 A' Q2 [  P Checkout()# @9 k' K4 w6 v  H; V6 F
{  
" Y  e. F7 _  W7 e  cin>>ax;3 ~: {1 f" z$ V& ?% U- h( o4 _
  length=strlen(ax);7 n) p* q" w; y& l+ d$ J
}
4 |& B6 O8 o$ o; W5 A* H void cxc();/ y& f) h! T' O6 ]& l6 k. x. h- J
bool qyu();( X! }7 g* A$ L8 I* @6 Q
void add();
6 Q" W( v# a7 E% u1 {& y};1 r/ ~4 K1 N: F% J! k' r8 R
void Checkout::cxc()2 }  A. I- Y- G5 g) B
{
! `4 Y( ]1 J0 M% H7 q3 Q for(int i=0;i<4;i++){
* _* t3 b: V) p2 n  S! |  ax[length+i]='0';
9 z( f- [( c6 n! a! {6 r6 P2 P }
/ [* R) e- t: E# F}//将输入序列后加4个0
( U0 W5 a% _1 b2 jbool Checkout::qyu()8 H7 W5 b, T! v; ?4 X/ y
{6 w5 F3 ^+ G8 ?+ O; y' X
char c[5];+ S, c8 L. e' g) `+ `# A
int i,j,n;4 z9 p4 ^+ L9 l5 A1 q8 L" i
int m=5;. _# t: B" ?  L8 y
for(i=0;ax<i>=='0';i++);
3 z0 X/ J( c4 Z  if(i==length)3 I# n- m# V! y
  {cout<<"余式是0"<<endl;
: N  V  a6 ~' p% B9 a2 `/ h   cout<<"发送成功"<<endl;% ~: f6 @: K6 G5 o  K
   exit(0);
. n3 L; N. r  e  }
) d; Q; v5 u& N& celse{9 h" j5 @9 a8 ]0 t/ w
for(i=0;i<5;i++)( J8 i) i# m$ `4 G: Z
  c<i>=ax<i>;  d3 p, l& n" C' c% _
while(m==CRC)
6 ~  M+ v3 t) }5 E2 N { for(j=0;j<CRC;j++)2 ?9 M6 K; o5 t& ]0 F* Z
   { ( k. C5 M9 _  X! e' b2 c4 a5 l) P9 g% g
                if(c[j]==data[j])
. B) ~* |. A% y4 P9 X% U& E6 }     c[j]='0';
  P) Z$ ~' w  J9 g6 a8 t& S    else5 _* @1 i' b" }8 O0 Q  l
     c[j]='1';/ M, U$ U6 Z9 B! o% {3 t1 H. L1 P
   }
4 H2 z' Y% [+ }1 r     for(j=0;c[j]=='0';j++);5 ]2 S+ k0 @1 h7 m2 c. q- t9 X- S
       n=j;7 G  I) P4 h) H5 f
     for(m=0;m<CRC-n;m++)
& I0 v9 f+ B* |3 j/ [3 `     {
; Q" f, L5 s$ D) J    c[m]=c[j];
: b" `5 ~9 a- G7 o( r3 H    j++;( D" s( G. Q9 R% T! h3 m7 w% q
   }
3 Z! g$ e: Y- V           while(i<length&&m<5)2 u% M( W4 o0 k/ v
   {( @* W7 X; W' R( q$ c
        c[m]=ax[i++]; 1 Z& l1 Q& \4 b6 @# Y
     m++;       - B/ e5 w$ l0 ^7 N0 Z! J! G4 X
   }
7 i; T8 \( T9 w- R; _& `! u }
3 ]8 K& q, K) V% n# u}
; [0 v5 y6 W/ T int k;+ d: v3 x+ S$ x0 H/ m( E1 A% |+ B
for(k=0;k<m;k++): S, s- Z& R% o. [3 F& v5 V, v' U
  bx[k]=c[k];
1 f9 B; d8 Q, C, Q6 o for(j=0;bx[j]=='0';j++);
( G& Z, f% E! m% j0 A; z5 P0 ~  if(j==m)
7 ~8 B/ f; _/ y2 D  {cout<<'0'<<endl;
. ~: O3 l+ G+ U* _- y: p7 e   x=0;
2 ]2 ?. v, ^; R. ~+ [" b  return true;
, d% N4 V; P- T8 v  }
0 L1 M! ]0 j% |. [  else) B& U& |8 `) z
  {for(n=j;n<m;n++): A; B9 P3 x2 d7 j
     cout<<bx[n];
1 C: n# A5 [* V, C+ T+ J) x  x=m-j;0 O! c1 Q9 z. p/ ~. T% c
  cout<<endl;$ B( M8 q$ O& O/ J4 j; L
  return false;
/ y* v& v8 `4 O. ~8 ]1 M  }
0 t" `0 Q# V9 z$ b( j0 Q}
" d$ f4 J& h2 X3 Uvoid Checkout::add()
8 b) T- `" b3 l& {  V1 @, x{
5 r6 e# S# t/ m% Q2 V% Z) ^int j=0;
* B. d! G0 Q! `9 K  n" _, c  i0 Z  for(int i=length-x;i<length;i++)4 H& u/ n0 ]8 ?8 ?6 S
    ax<i>=bx[j++];$ p* F/ u, J/ I9 {, R+ x
  cout<<"发送的序列加上余数后变成:";
! _4 Q, y; ]' S7 d- g for(i=0;i<length;i++)% z" a! N. b6 O& {+ N( N$ h0 m1 f
  cout<<ax<i>;6 z  C5 J) M5 F: V
cout<<endl;
4 x- V5 }$ D1 b8 @5 A. z8 w/ h}
+ X$ H; k1 n0 v' |, o% ]void main()6 @! k" T# ?- I3 e: C, D. }
{  
8 g' {) D" k2 f7 @ cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
: B4 c7 h7 `- a) q2 E4 J- m- M7 {    cout<<"请输入发送数据比特序列:"<<endl;8 M4 l, j, v/ N$ b" Q5 y: e
Checkout test;! t; _* W( r' E% V
test.cxc();
+ o! J9 ?1 Q2 [/ D4 P/ e1 j& D  cout<<"余式比特序列是:";, Y. i" [. [/ i) l3 E
  test.qyu();
, a1 S. O: W  r) Z) O  test.add();' d7 `- Q* @* S! h$ H
  cout<<"试试这次是否能被整除."<<endl;2 o7 B& e9 [; q& d* W
cout<<"新余数是:";% i. A8 Q0 d- |  K) C
  if(test.qyu())3 ?- }- N- T, C& A/ B
   cout<<"已发送成功!"<<endl;
3 S9 i+ @0 s2 |* Q  else
. [. u6 d/ Q# c0 b   cout<<"未发送,失败!"<<endl;
' A: W9 W% A0 s; {}
分享到:  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+ n) \& |" ^9 {2 D) a+ S' }
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    ; M8 h) W2 \; @$ `1 z8 f' k1 @& A

    该用户从未签到

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

    本版积分规则

    关闭

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

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