下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊) z8 Z+ g0 g, D/ M4 ?$ o
#include% S$ G: q) m  V4 w! ]  T7 ~4 a9 h6 r
#include
' j: ~6 u! l+ K3 z) l#include" J: {8 L% j8 D: V! n" A
#define CRC 5, R  b2 X! f. f
char data[5]={'1','1','0','0','1'};
+ V, |! s  t. r* F0 T  W3 v3 O$ S9 s9 jclass Checkout+ u# L4 {1 h; c
{
1 c0 X1 ~" B5 Q. `3 Qprivate:
# j, V: O$ f  m char ax[50];* O3 h/ z, G: ~6 C( Q/ l* F* f
char bx[4];
- }/ i( U& k$ w1 Y; u int x;
+ k: P) c! H7 l+ e8 k; C2 h, c/ opublic:7 Y. r. A7 v7 T
int length;/ u- R- G( O$ o2 w& S
Checkout()4 S+ N0 g+ c7 X+ ?4 T# d
{  
% o0 U# {% L6 |2 Q7 b# }# W& I  cin>>ax;
4 D4 V; M  S$ H2 F9 |9 I  length=strlen(ax);
" g' m% c3 ^# S- ]8 F& E }
+ b7 I& T& I. G  @! O' D void cxc();4 ]3 C* `$ R) h* H
bool qyu();
( e* c- c# l% K* x5 E! N/ {+ f void add();
, W7 L9 K# }+ {2 z+ k0 x};8 Y' \! v+ p; J# B/ c
void Checkout::cxc()
% {+ P! ~0 l2 p* X{
& X1 Y3 c7 v6 Z7 X& m# B' p% o for(int i=0;i<4;i++){
: k9 u) E0 M6 i) O7 W4 u6 g  ax[length+i]='0';8 A* Z* v; l3 o* T
}  s* P2 n6 {5 b: Z  S# y/ N, n
}//将输入序列后加4个0! I: M" r6 B. [
bool Checkout::qyu(). W% a9 e  p/ C/ F
{. _- T% J/ p! b% v/ t
char c[5];2 H& }; {/ a5 n" b
int i,j,n;( m: x& P+ Q5 \4 P6 Z
int m=5;) ?7 a8 Q% y! _4 f3 ?* b
for(i=0;ax<i>=='0';i++);
$ G4 E  B6 a$ g# e  if(i==length)2 Y' l9 A  P' z& O
  {cout<<"余式是0"<<endl;' A0 G& c" U: g1 q  z$ M
   cout<<"发送成功"<<endl;2 B* `  X: E0 m9 ~
   exit(0);
+ Q2 b: ]2 |% l  }/ w' s0 A- k2 A9 [9 ~9 X# p
else{
( k* h3 g. f, F; {  M for(i=0;i<5;i++)
% i3 q9 Z4 {9 r3 T  c<i>=ax<i>;% y6 x% I2 P0 z; c
while(m==CRC); z4 A3 C. l0 ~1 l
{ for(j=0;j<CRC;j++)) S2 y% u" s7 w, W9 x
   { " V: W: ~" o( c# h- A  `) F/ V% W
                if(c[j]==data[j])" i/ N8 w0 B  u+ Z( E4 ]
     c[j]='0';. U; N, O! O: E
    else
9 Q- T, y0 p2 T/ y- k     c[j]='1';: w6 \  ]3 A5 V$ z$ g  y* ]; w
   }
1 s7 Z. u5 o+ v     for(j=0;c[j]=='0';j++);" j6 M' V, r* B- u8 T& j4 C
       n=j;5 [  N) }: n! X- M0 R+ J
     for(m=0;m<CRC-n;m++)- l3 o# q: ~( |& d3 Z- x8 W- s* H
     {& C3 U- C* C! P/ X* I# _* x
    c[m]=c[j];
9 y/ s0 X  i% c. p6 x& z/ b    j++;% J" J6 _5 E. |! P
   }' q5 n: S' c+ g7 D4 S
           while(i<length&&m<5)
; p9 O5 G/ r) D3 r" P   {/ R( ]5 t! I0 l! b1 {
        c[m]=ax[i++];
: T+ i+ Q7 L" q! D- P) \7 ?     m++;       ( ^0 D2 Q( x$ T8 ]) h
   }! U7 v" _7 @5 s$ \8 [
}2 Y2 T/ R7 ]' o! d% z
}
0 o4 c: L. f! Q: n int k;5 ]9 j) ?: j0 K0 Y# ]' w
for(k=0;k<m;k++)# N7 b/ H: w: J2 C) Z5 D
  bx[k]=c[k];$ R7 @# ?1 a- _* S+ G+ l
for(j=0;bx[j]=='0';j++);! W6 _$ h  q4 ?5 H9 q2 W7 y
  if(j==m)
( i/ P  B4 y+ _) x, N) I  {cout<<'0'<<endl;
: Y4 @) F8 j0 \8 Z5 u, u3 f2 o5 B   x=0;3 z& W+ ^0 E) H
  return true;
* [' l5 e# ?" \  }
8 f8 v2 ^4 H. o- ]7 R  else
. Y3 Z, a5 X( P9 h/ w3 s7 Q/ y  {for(n=j;n<m;n++)  A5 R# A& M0 i2 \4 ]3 f
     cout<<bx[n];
7 R+ U  C9 q8 y& m' m  x=m-j;
% T3 j- N; p  a  cout<<endl;. }) s% j) W3 L
  return false;* Z& [8 v. R) b; l' N. F, X
  }
0 U9 o0 Q3 q  D; k}! m+ w. U5 P! g# _1 c% @3 E
void Checkout::add()
) v$ R9 z' \* k3 t  @6 L& x{: Y) [; }* K. M3 |" W( L' o8 y( u2 g
int j=0;
: V; j; ]- f, ?1 X+ v- ?3 V  for(int i=length-x;i<length;i++)' b. L' V5 s" |. p  t% O/ Z6 h' ?
    ax<i>=bx[j++];5 `- X# h) t0 _  i6 v. ]4 n* y2 j
  cout<<"发送的序列加上余数后变成:";
( Y3 w" d) }3 w, F# ?! P for(i=0;i<length;i++)
, V- Z4 e3 O  t7 H* S  cout<<ax<i>;: y* U4 V5 i3 T! s& H
cout<<endl;/ |0 ^! K( H" Z) v
}- K$ H# Z4 P) g" u- N
void main()
% j" n1 Y/ ~1 e: g. s{  
! Z5 B4 v% I3 u( H cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; 0 _7 Y  t  R; x, V2 w0 P3 J/ I1 E: ~  `3 Q
    cout<<"请输入发送数据比特序列:"<<endl;0 X& w$ m! b* x3 U
Checkout test;
7 w) G* z; {8 T$ \ test.cxc();
. t& K  ?/ O8 s6 m, f( K3 D  cout<<"余式比特序列是:";, N$ M7 }: n4 r+ l  S- u' P
  test.qyu();! E+ _' m  J, V5 w! g
  test.add();
2 i0 T- Z1 s; g8 o* [  cout<<"试试这次是否能被整除."<<endl;
  ]0 [9 m6 R# x7 { cout<<"新余数是:";
( Q$ i( M! b2 k7 K3 E  if(test.qyu())
! w+ E  }& j% L2 n. R+ V   cout<<"已发送成功!"<<endl;
, W1 V( \' Z" _! L8 Q1 o  else
$ M) c' A+ T2 W( D: a& e& X4 h   cout<<"未发送,失败!"<<endl;+ \. I( U2 ^2 V: X$ I- P
}
分享到:  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 | 只看该作者
    给点小费偶帮你搞定 HOHO4 V) o9 V0 B; p2 d+ Q
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    8 W9 O- F% e( W3 s' i) u7 S

    该用户从未签到

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

    本版积分规则

    关闭

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

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