下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊6 `( }$ v! H4 h& m- g. [
#include
6 n: E3 _0 ?/ s! @: A#include+ t( p. a" {/ ^0 _( G0 N# T6 q; S
#include
3 q* {. U; `0 l- T$ C7 C#define CRC 5# O6 U1 F8 o. l  w' g/ Q; c
char data[5]={'1','1','0','0','1'};" [9 L" h: X  J7 O
class Checkout
  f& s7 G: g& _0 L0 D{
4 G$ |) t  B+ F# R8 l' T! v$ fprivate:, t8 d: R; @: X3 k
char ax[50];
' f) ?  K' p/ h+ `- I0 {& v char bx[4];
5 N* A( Q3 D& @3 w5 N int x;
( x2 w# q6 S: e3 K- {' X4 G4 gpublic:
, a4 m) u, B6 c int length;
8 G9 ]  n+ [5 a' v Checkout()6 {% C; A0 d! [) I' D; r" F
{  
* a! F3 v5 J# T' M8 h/ c  cin>>ax;! v. h, i2 }1 Z& H
  length=strlen(ax);' V8 V5 `% Q4 L& t& e( O
}
4 n; \( p# u9 d. ? void cxc();- H" W, e# C0 d5 P( e
bool qyu();
* g" M  P& p% v- ^5 m. C void add();% x  P0 V% H0 u( y) e
};
% P% L& K* p4 O/ n2 a: Fvoid Checkout::cxc()
* N% U4 l, p. E{% s  O: F* |* W' J% e4 U6 C
for(int i=0;i<4;i++){
" y/ S# d) q& h! J: ^+ H" c  ax[length+i]='0';
' F, z+ K. E3 x4 f: h }
$ d- |0 ]9 e" E5 _) c8 h$ Y3 R5 b}//将输入序列后加4个0
. _( m' u# q' ^4 ^3 C7 ?/ Sbool Checkout::qyu()( q( H  E  T% p- a
{
1 C& A4 s& F! E8 u: ^- H+ {# Z char c[5];5 t# M/ f. L3 L" w: ]
int i,j,n;* [" V9 J1 |2 J, ?0 [7 S5 m: k0 v
int m=5;
4 l9 f% R& K% H8 a/ J' y for(i=0;ax<i>=='0';i++);
, U, D" y" E# O  if(i==length)* W2 L5 A: J2 D! X* Z; i. _% U
  {cout<<"余式是0"<<endl;4 M8 m% Q! ]8 a
   cout<<"发送成功"<<endl;
! P, J( z9 H7 L: r+ }* Q# ~   exit(0);1 l! g6 d& G; o! a8 r5 O' y2 k
  }
, O' v0 N; Y0 i! J) a6 D( Z, ?else{
! {  r2 ^/ Q$ ?6 B: ]* e for(i=0;i<5;i++)) @3 Q; L5 j& m  U
  c<i>=ax<i>;& v+ O. b; C2 [- \2 W, s
while(m==CRC)
5 E! ~1 s% B6 k { for(j=0;j<CRC;j++)# [( U0 a' ?! ?8 U
   {
4 A  Q4 y2 S2 `" M! k" j                if(c[j]==data[j])7 Z6 V% B& q! q! Z
     c[j]='0';
! P, G% X0 u2 f9 H& Z# `    else
: q1 v( {% W* J3 Y& z     c[j]='1';
* \, d( ^! G' F! s2 l2 n( k7 A   }
- e# B5 h, J- J: P0 c# P2 G3 r& r! m     for(j=0;c[j]=='0';j++);: x, G: ~+ N9 s& t0 }
       n=j;
" I$ O) `0 m7 k4 |0 q" ^" S$ N$ C     for(m=0;m<CRC-n;m++)
9 H/ e; m9 y1 o: I  f0 K( V     {4 t9 ?4 j; `2 Y5 N$ T
    c[m]=c[j];9 B9 [! q2 I( O7 L" V$ |
    j++;
4 e  B) {! X5 H! ]# W7 q   }" w1 ^: g0 r# z9 k$ y
           while(i<length&&m<5)
1 Z& D% X3 t# }) b   {4 @) }. X) i: ]  D- k
        c[m]=ax[i++];
; h* A( c4 R; C' K     m++;       , s( ?1 {, p5 z+ x3 Y
   }
' ~7 s8 \4 Q0 s, n& c, w }4 A7 K: R: m  X
}
; n/ P! q2 _8 Y" _3 h int k;: P+ o( s( g: g5 t6 p  A7 _% p
for(k=0;k<m;k++)
& r/ ?: z: \# i5 V9 E5 S. u  bx[k]=c[k];7 X0 L; z( j3 |2 f2 J6 g% y
for(j=0;bx[j]=='0';j++);
' [" G$ R# \$ M. I5 d( X4 Q5 G7 T7 H  if(j==m), @8 b5 F4 U2 e  ?- n  d3 g
  {cout<<'0'<<endl;
6 O* a& M) A3 M9 ~, w$ F% Q   x=0;3 ^. W+ C0 g2 S
  return true;3 [9 q/ X9 a, D- U+ J
  }* T$ W' T, y) G& X" R2 u& v, o
  else
$ U  S: _5 R& B: H+ B  {for(n=j;n<m;n++)9 K* L( T3 a6 l8 u8 W$ D
     cout<<bx[n];
6 }# \2 n- j( H! }' f! L  x=m-j;2 ^' {4 Z- f2 B! A9 ?
  cout<<endl;0 ?: i/ R4 D( R4 M- a1 R
  return false;0 O9 C! o) G' M& K$ C5 d4 H- p
  }5 N. c7 Q% k: U7 T) F
}% o7 ~, h7 A- {% f
void Checkout::add()
! p9 e' Y1 _# N! o0 T{
! I3 o  W  s/ h: X* Yint j=0;6 G  K' f' q+ c( V: T3 |
  for(int i=length-x;i<length;i++): @0 n8 Y: S1 f. j, N) S
    ax<i>=bx[j++];
0 k6 Y; p" x7 p7 {1 m! i5 H) ?- W  cout<<"发送的序列加上余数后变成:";6 ]- J* b- Y# p3 ^5 Y0 D
for(i=0;i<length;i++)
3 i# X3 `6 S/ ^, @. v4 v- ?  cout<<ax<i>;
0 w* n% A1 l8 L- b( b cout<<endl;( t- ?! {* E' L6 K( m- C1 T0 T
}
" S- c9 n$ ~9 w" Xvoid main()( h1 u: n1 E: l
{  ' [" a' Y( n3 r5 h1 h/ s3 A! K
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; * c9 W. |+ {+ q4 T
    cout<<"请输入发送数据比特序列:"<<endl;
" i7 X# b% Q4 Z Checkout test;
) {( X8 P: s+ f) ^ test.cxc();5 u( ?. }2 H: _3 m+ C
  cout<<"余式比特序列是:";
7 U0 }2 D* ^  o* g" ^- ?  test.qyu();- }+ |& G: W- n% S$ w: F+ P
  test.add();0 q# G. q+ u/ n+ t+ {$ n
  cout<<"试试这次是否能被整除."<<endl;# e) L4 e' T& S
cout<<"新余数是:";6 Y; F& L3 c; D( p& P, X& ?: T
  if(test.qyu())
' ~' b% Y' I  {# f   cout<<"已发送成功!"<<endl;
* r% B: U9 T2 r  else* ~! D1 ]) Q% V4 P+ `; ]4 k3 W
   cout<<"未发送,失败!"<<endl;
& i! D& H: y, ]  a( a& R}
分享到:  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 g  y' V5 r1 F! k. n
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    ) M, Y* {; W9 t% E

    该用户从未签到

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

    本版积分规则

    关闭

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

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