下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊: p; J" r) q0 x8 z2 [
#include! M8 v7 |3 P; k. a; S
#include5 b  j9 [5 a) m  `
#include
) E2 c3 l) e5 d% [# @$ ]#define CRC 5. S+ A1 `* J, g  P% J4 x  z0 c
char data[5]={'1','1','0','0','1'};
8 H0 U; S+ ^+ A+ P9 b- F& ]- ^class Checkout
/ z8 `5 D, T/ C$ Z( |% Q+ p& @& R{
9 \' s' ^# l2 O' o0 I. @7 y( eprivate:6 m$ A" J, @6 t$ `7 g
char ax[50];* U# M: L9 Z& M
char bx[4];
: P6 d9 |6 f& H$ X2 t, T int x;* r) t  o$ H1 |2 T" h( `
public:  I9 @8 }  s+ {1 L$ K; S
int length;
* J8 A% V' R- R Checkout()3 O( h# V. e( _6 p# ~, p
{  & b, Y9 q& {; B: M  `
  cin>>ax;7 M0 R- t* [1 C3 n+ ~* l
  length=strlen(ax);
0 A3 L1 F0 q( k" o }
4 ~3 }9 k2 t8 a& ? void cxc();
1 i( r" v1 P$ \: ] bool qyu();
+ N) j6 X: M' Z* Q void add();
) [. s: l6 V( P1 }# D};  v# D, N( t' y5 w6 A0 e& E" Y5 }1 _
void Checkout::cxc()
3 q  \' \; A7 `+ P{/ J- x/ V, F8 E  D0 T, z9 K! K
for(int i=0;i<4;i++){
. l" t) ]3 k7 T) O3 H: t' b  ax[length+i]='0';# {% S/ E( }. z( _1 ~
}
" P- f7 D. I5 y}//将输入序列后加4个08 N; `4 Z6 M( g% v( {4 ]! m- h8 _1 f6 N
bool Checkout::qyu()
9 y; L8 x% A6 Z, e# P{* Q$ }! {7 s1 z$ g  A6 a: j- t9 B: ~
char c[5];% a2 [6 z( \/ Y0 k6 \
int i,j,n;* R3 _, K* X3 \* H9 f* A1 y
int m=5;* l& X) H& E  a% s
for(i=0;ax<i>=='0';i++);
; N. z8 F, t+ M  V0 N' m  if(i==length)
4 T* G# O9 X9 {" j% r5 z  {cout<<"余式是0"<<endl;/ V# F. B; i) l/ O
   cout<<"发送成功"<<endl;
' Z) x: I) C* T   exit(0);7 u* n2 \/ }7 P- Q  ~; E" e- z
  }5 p9 ?5 R% O( w" l% }! h' t! x
else{
, g7 B& \8 A. _" r for(i=0;i<5;i++)
) D/ R7 l2 l+ _8 I  c<i>=ax<i>;
! o: `( C' E2 F' @, X6 w. g" d while(m==CRC)
  J7 v' l) t4 p! n( \6 u6 g' ?- c { for(j=0;j<CRC;j++)2 J, `$ R$ z3 |0 J3 T
   {
/ V6 E. U2 S* t' P2 ~! `9 v1 k1 ?                if(c[j]==data[j])+ `7 v/ L+ N+ E+ @1 r8 L
     c[j]='0';
0 I5 ]9 @8 B5 D' E2 _1 h7 ?    else
2 @, R0 w$ M+ x0 L' g3 H( p     c[j]='1';+ N/ n" v9 D; ?1 b2 G1 A0 w7 @
   }+ o' e( Z: B4 T/ J7 X: o
     for(j=0;c[j]=='0';j++);* \/ j9 U! r$ _' N5 f! S1 h
       n=j;
0 e* O% ]0 A% A; x: M! j- A' v     for(m=0;m<CRC-n;m++)
/ D, Z3 J" Y. R     {
. k$ C# z: f9 A8 E- m: `    c[m]=c[j];/ L4 X$ q: G: a8 C
    j++;( r/ @3 [. K8 o. m( ~
   }' c1 k0 {2 f" s& n( M
           while(i<length&&m<5)& u- X  w- p- `1 @, d4 p$ i
   {3 {9 w% t  M# @- f7 L  I
        c[m]=ax[i++];
  u0 c8 _- s# X0 H& k" m* r     m++;       3 a" }: t) a$ N* _: w+ s, L
   }; k1 k) }; _) w, S
}$ N* q9 b4 D4 o  t: F
}8 a' f# M* c5 K% K0 l
int k;" \8 y3 C1 G# L8 a/ v" Z7 f
for(k=0;k<m;k++)& p0 R; D- M5 {( j; Y8 e# F
  bx[k]=c[k];
, e: }  J4 p. k  ] for(j=0;bx[j]=='0';j++);) J& T7 V! X- m
  if(j==m)
, |! u8 e, L+ X6 w% S  {cout<<'0'<<endl;
% e; t/ l& E7 S& j" I  [7 |   x=0;. x) ]7 ?. Q6 V  U' e' s6 t: i
  return true;5 e5 o0 ?6 E# [1 w0 {6 h
  }4 c, \8 }  N; P6 o+ ]: W4 @- Q
  else5 C1 }3 Q1 _% D- G7 A
  {for(n=j;n<m;n++)
: K' p6 R9 j5 a9 B2 D     cout<<bx[n];
# {, Y- x9 d: a3 o, w8 E) t  x=m-j;
7 l: j) K( z& W+ T; S/ I  cout<<endl;
* U3 D9 K- q5 b& g  return false;
; n1 u, |! B0 ?8 h  }
. S! o! B7 M9 F' c}$ `- F8 N( o5 Z% M* {
void Checkout::add()" L' s8 R) u9 A6 ~
{! `! W" O' M* c) c6 J- ~
int j=0;
8 B- L, T8 `( h* s- T; g  for(int i=length-x;i<length;i++)
/ u6 h( T- Z4 J# S2 A    ax<i>=bx[j++];* H$ P% G6 `; k' A& s; m+ j, S
  cout<<"发送的序列加上余数后变成:";
2 R' Y" J" ^+ i& }! g! e for(i=0;i<length;i++)) m& h' o& a. f3 |( Y: x
  cout<<ax<i>;- {) g1 }2 f3 K& f! Y& [, L2 c
cout<<endl;
4 M% M, T+ q+ ?; T}
: C* c& X! q- P) Y+ n8 Q: Ovoid main()
, k+ V4 h% o) p. `) m9 M6 P  c1 P{  
: J7 Q; ?! Z1 ^& y" P cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; ! x. j- X+ A& _6 r
    cout<<"请输入发送数据比特序列:"<<endl;8 H! v: L0 }% B; t! L1 R
Checkout test;- u1 q7 J% ]* O6 H+ u
test.cxc();! r3 D  K) O) o, R' S
  cout<<"余式比特序列是:";3 h! _* G& A! i' Q/ g
  test.qyu();
% ?6 x6 D, b7 j9 d  test.add();
) G. q3 t9 k# k9 K8 v: y  cout<<"试试这次是否能被整除."<<endl;& r& J$ U6 I( j# O& a+ p
cout<<"新余数是:";1 H1 e' X% H; Z7 I! A
  if(test.qyu())
0 m7 y( g  g; I   cout<<"已发送成功!"<<endl;
8 V' t% N3 U! B8 t  else
+ K, V7 N4 b, ~. _   cout<<"未发送,失败!"<<endl;0 F0 F$ n( y- |  m2 K; k
}
分享到:  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- S/ x: J8 p4 a
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    6 I  |" _: @1 f% J& p7 w* s5 U

    该用户从未签到

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

    本版积分规则

    关闭

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

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