下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
! {, [: N% D; m* o#include& t! U  E0 I/ e
#include
0 {2 [0 P8 o) E9 d9 v3 A/ l1 J1 i% P#include+ d: @, Z* L5 m( t0 \0 I
#define CRC 5
+ x+ l4 c% J" ]$ V! tchar data[5]={'1','1','0','0','1'};! ?3 O6 d: |4 O  v1 `3 j" I9 q
class Checkout
5 u% Y: N$ [) f& [- J$ V+ i{3 E* E9 y1 y' r% @
private:2 J1 h& j) H, r
char ax[50];
; {# B8 D) G( ^$ o char bx[4];
# j% S4 [& ~% d8 E7 J1 D int x;
) y- J# W1 e" G7 S8 [% {public:5 n9 _1 w! i; {* z) w6 X
int length;. E7 A. n8 c  K: h  ]) M- K$ p
Checkout()
$ J5 [! v8 X) c6 X) \9 {$ K) a {  $ x2 _+ V" v; k$ J8 h* o; L; V
  cin>>ax;8 Q" E; o6 U1 |; M
  length=strlen(ax);
6 x4 Q/ |1 z- X3 s" Q0 ^ }% |7 m( X0 v. C1 D( `+ I# i
void cxc();6 N% S8 f" M  b- |* k, N
bool qyu();2 j2 R5 J  Z: v5 P* X' \9 q
void add();
4 H8 K9 O' p* B, H$ t7 D! H* n7 U+ }9 B};
4 L1 y0 p3 U1 i; m, g/ Pvoid Checkout::cxc()# R+ X$ p' K7 a+ D; s" ?. l
{7 x, y$ @0 u" D, r5 ]; ~% `
for(int i=0;i<4;i++){$ K! c2 X* @7 Y6 m) K
  ax[length+i]='0';
; k% ]. Z0 L7 I3 M: M2 T, @ }2 X& P8 ?2 e2 I1 I! ~: s- w
}//将输入序列后加4个0+ g" r8 D0 K/ g/ _! w( K
bool Checkout::qyu()* o& D' _: [( [/ r# I+ ^
{4 w, ?/ V4 x, O& G9 N+ A
char c[5];
1 g2 L! R5 p) c, e( \ int i,j,n;
$ j% a9 U/ T* L7 l6 B$ g int m=5;
) d: o$ A* k1 q; `/ m6 v for(i=0;ax<i>=='0';i++);% c, E  o% y" G+ ?
  if(i==length)7 P4 ^7 W7 g& }8 Z# R
  {cout<<"余式是0"<<endl;
  w  j. O* {1 R) Z   cout<<"发送成功"<<endl;0 k4 @* j& O; v" ]1 n4 q) g# ]3 ]
   exit(0);! a5 P5 `5 y, o, n  [
  }
# Q9 T9 _6 t, S  i% H) Y  ielse{7 D7 c; R: R2 W4 a  K! |5 H2 R  |
for(i=0;i<5;i++)* I+ ~" C: a6 H1 u- A  S' H1 t0 Y+ d
  c<i>=ax<i>;, r, I/ c3 _& L# `+ ?
while(m==CRC)! s& T  ]8 C" X& v) ]3 Z0 v
{ for(j=0;j<CRC;j++)( _0 L  V  |/ @) \& E) }- C
   {
5 A) ^- s' O) P* I: G" ~                if(c[j]==data[j])
7 k' @, ?9 \( C     c[j]='0';
! `' p' ~5 R0 W$ b- c    else! F5 f& o3 i" j5 M4 M- m0 z4 p
     c[j]='1';
; N! ?% |8 J/ f( P   }, Z! V+ p1 h2 O( A
     for(j=0;c[j]=='0';j++);: e- d; P5 P/ M6 T% Q0 c
       n=j;
5 o2 M1 J5 k& n5 b/ M0 U9 ^. u# [     for(m=0;m<CRC-n;m++), i  p% A0 ?( u2 m3 X
     {
. |0 m( p$ h* b+ _. x7 [! ~' X    c[m]=c[j];6 L" K2 u+ }$ E$ u4 h4 J
    j++;
$ g) \; |3 Z; O9 z   }
7 ~5 f+ y3 [! l           while(i<length&&m<5)0 S6 G" n; R7 v1 q) C# u1 ?1 l
   {; }0 y% O) q( N  u* G, l/ h
        c[m]=ax[i++]; 0 A8 d/ a) I5 w! W0 t8 r" H* C: L
     m++;       7 N" u- v6 \) Y) o3 _0 }
   }
( b9 D, F/ i: u' ]- i }( v3 Q5 l3 A" y& K
}
% x* L: z+ s, F0 X  \8 D5 ` int k;
% @& ]7 W$ }* m4 q' P3 E8 P for(k=0;k<m;k++), Y) g1 f% g# V1 g6 C0 M  s' w
  bx[k]=c[k];0 U6 e9 p0 Q! Q7 {
for(j=0;bx[j]=='0';j++);
$ R* J0 h7 M) y2 v  if(j==m)
. e4 F; |  _6 ^( L5 g8 w$ g- m5 S  {cout<<'0'<<endl;
6 ^! `2 _" z5 {( L7 [  R- t% b7 t   x=0;
6 b5 V" w7 N3 y: c( \( \  return true;
3 k+ O9 f) |( S; F% I  }
8 `. x* B6 g1 b, k5 z! h5 ^7 N  else# [, P6 M' ]* G6 i
  {for(n=j;n<m;n++)* X1 \9 |  `$ c& j
     cout<<bx[n];
9 D, S% _8 u" o  D3 ^  x=m-j;9 j2 Y- v% D) s
  cout<<endl;
9 g4 Y3 }; i5 r  a; d! _8 u  return false;# r% ~( ~: y0 W6 s
  }& ]: I4 [0 y2 H
}
7 }4 Z- k: o3 c" G1 E% J, p0 H; z5 avoid Checkout::add()* P, {5 a- f9 q% R7 K) p
{: u4 C6 H0 i7 n7 q( _, K- q, x
int j=0;
+ }! M( H0 c* \8 n9 u3 q- i7 l  for(int i=length-x;i<length;i++)- @8 W3 L( J) @+ L" ^3 m6 h, E
    ax<i>=bx[j++];
3 G9 y* ]' S9 d9 G8 q2 c  cout<<"发送的序列加上余数后变成:";4 U' }& g9 K1 o1 \$ w
for(i=0;i<length;i++)
4 \9 m/ V5 b0 V5 r  cout<<ax<i>;
4 o: h. M- [) T1 I# @( z) k7 M cout<<endl;6 V- Z$ _! z! g' S# t1 ^* x
}. u8 `, P" z1 [/ W
void main()
* ]# C: v! b) V{  & \/ [$ j. g; w& h2 Y
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; $ ^' L/ E' t4 D$ y& g- u
    cout<<"请输入发送数据比特序列:"<<endl;- l0 {) Q! e! `- w* @
Checkout test;% a, @% M6 z0 o% m# P
test.cxc();
/ Y3 r+ j9 j9 w, d  cout<<"余式比特序列是:";# y- z0 ]: b) ]( Y+ y
  test.qyu();/ b: O2 ]! _9 p  C. \
  test.add();, o: g4 y- |! {( B1 Z, O. I3 e
  cout<<"试试这次是否能被整除."<<endl;4 O- Z" Y" N. k7 e$ U8 }7 S' }
cout<<"新余数是:";+ `; G% M' H& H" a7 `9 v
  if(test.qyu())3 U4 h0 g1 U& i5 I
   cout<<"已发送成功!"<<endl;
8 A+ E$ e$ {) q7 B3 \  else
- E/ w4 m# B) c( X# `) p2 I3 L   cout<<"未发送,失败!"<<endl;
: L/ r3 O# E9 j% j- ~4 V+ O$ s9 d# H}
分享到:  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 | 只看该作者
    给点小费偶帮你搞定 HOHO6 k( D3 ?4 V+ K& }
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    ( a" u6 q2 ]+ m' @! t

    该用户从未签到

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

    本版积分规则

    关闭

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

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