下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊/ U% F0 K- [* D$ @9 M
#include
" I1 w/ R3 x% I8 L6 x7 B#include. K, ]' r/ B1 Z! ]5 s* j
#include1 C$ U' f9 }' T
#define CRC 5, D, P, u; c7 ~( h# B1 H) e
char data[5]={'1','1','0','0','1'};
5 h4 Z& M  j& Q9 d, b+ rclass Checkout
, S, F$ g( q$ _) [( W- ?{
3 f0 C( o# e% s4 K$ \private:# e/ o1 b3 Q4 i2 n
char ax[50];1 Z# ^$ W7 z! ~2 D. |5 N
char bx[4];
! i/ L8 p& J- `) |- @, k$ n int x;9 e; y: M& R- X
public:
0 d" ?/ C' r' o  _' ]0 m% I int length;
& `' v4 d" }! } Checkout()
8 z0 i2 F2 t5 q {  3 k% J' x, C! y& `& a' W
  cin>>ax;
+ a/ X2 @+ q7 M6 t6 G  T  length=strlen(ax);
. d; ^. B4 M! Q: o' ?( v }" s6 L4 Y/ ]* J5 L4 k
void cxc();2 G: b  W" {/ E( x( I- |
bool qyu();! L/ Q& R1 O) S3 p3 H( q
void add();7 A! S) a3 e! [  B. [
};' N9 g+ e6 Z( {: m- T% U( f
void Checkout::cxc()
; l) j- W9 L6 \; _2 {7 d4 e{
# _, p, |6 l3 r- d% o$ p/ [$ n1 ^ for(int i=0;i<4;i++){, z0 y1 r7 z" w6 c' s* T- w2 Q
  ax[length+i]='0';
0 T' X5 z5 P, i% ] }3 W- a3 ^- e4 V9 I; g
}//将输入序列后加4个0/ N- m# p1 t8 j1 S, `) ?" t
bool Checkout::qyu()8 o* l7 c; D! b
{$ J/ J1 V7 b/ S, U" F
char c[5];
% P& b1 U4 W5 J. G. E9 q3 \9 y0 ]- { int i,j,n;$ P- [7 ?( i0 X
int m=5;# h6 L7 N) j6 K' U
for(i=0;ax<i>=='0';i++);
3 H# c+ C2 r, K$ B! }' _  R  if(i==length)
2 n  \  T5 s1 o) K. I; k  {cout<<"余式是0"<<endl;$ T! I, H) N* ~& ?" A. k5 l* z
   cout<<"发送成功"<<endl;
9 P& V8 t0 {+ l) Q6 X+ [, ]   exit(0);; U0 k, ]' V* f
  }) [+ x4 ?2 ~) ]; Q
else{! d$ y4 p* x- J# J2 K% F6 L* X; d
for(i=0;i<5;i++)
$ ]. P' m8 Q. b, o  c<i>=ax<i>;
: i- \9 G! [2 }7 k. p' F while(m==CRC)' ^* g% L1 I- E. B) Y4 D
{ for(j=0;j<CRC;j++)
" o# s) K% l% P- i3 B0 {; w   {
2 K( E# J' @  H6 m' U                if(c[j]==data[j])
4 a" M' ]# d# N8 h6 D, R     c[j]='0';
- h7 X' d$ z: C8 g! E    else4 Y3 X1 t# H, G7 Y! s3 W3 X% n1 W1 `
     c[j]='1';: q$ n! t/ F; z
   }. B6 d1 q  a7 G9 p7 c# T7 O
     for(j=0;c[j]=='0';j++);6 O% Z& z& U( L: D7 ?0 P, o
       n=j;; O2 h* F: G4 K4 h
     for(m=0;m<CRC-n;m++)
3 R" u- B, G! |3 c. d9 o9 f     {
6 h. r0 k+ M, r    c[m]=c[j];
+ @( f9 \$ x9 i; N, {& s* h5 Z$ Y    j++;
9 P" w8 m& V2 w1 {   }$ z* q4 e8 }* P2 r; h& V  [7 `
           while(i<length&&m<5)
9 ~& H5 [0 m' X, t3 k   {  y+ s( T9 k5 R9 @' {. F
        c[m]=ax[i++];
: A$ Y: E) ^. ~$ Y" [5 K     m++;         E/ o& \: \6 c/ f. F
   }- R' B% F, t: }9 j( c& W4 X4 n5 n
}6 M- C0 c2 ]/ [" F" H- l  t5 c# N
}
4 ^' f0 v8 c' v8 d  l# ? int k;
$ ~* e- ^5 g3 l# E: V for(k=0;k<m;k++)
, \& \) L5 R8 [; M  bx[k]=c[k];4 S- F1 I) g3 j' y* T7 i' u
for(j=0;bx[j]=='0';j++);& a6 A4 \0 {$ k8 V
  if(j==m)
) |* y5 G$ }" a7 f; ^  {cout<<'0'<<endl;
8 f: Z: B) ]& ~9 x9 D; I   x=0;5 r+ G6 b; A3 e, t* P  `
  return true;
/ n' e" U7 x# A) x  Y, x9 Z, L* F  }# e9 `% d$ q/ m7 f- P9 `' c/ K
  else" o. n" S* q9 W0 L9 b
  {for(n=j;n<m;n++): [/ ?5 U( L. r. q% I4 N5 a
     cout<<bx[n];
6 A0 p" n! J& I* P- f- S6 q  x=m-j;
0 Z1 A1 @& R0 s5 [, I1 Y' x* T0 E  cout<<endl;0 U+ t4 W8 a! A3 D. |9 y
  return false;
. ^4 y- n- ]: K8 ?; g& \0 d/ k5 K  }7 J5 f3 X7 Z" h, r  v
}, P9 N) {1 O( b8 h8 Y
void Checkout::add()
3 o4 k/ s: t( u- s$ y2 ]0 s  ~# O{$ s% }0 h$ n% ]$ Q  Z( b
int j=0;
1 V7 [4 c, y' {" o  for(int i=length-x;i<length;i++)
( U' m4 U8 k, N9 J+ n- L6 z- V+ l    ax<i>=bx[j++];7 P' T3 g' x. v8 A/ n% i
  cout<<"发送的序列加上余数后变成:";1 s# c7 I% y! f& G' i
for(i=0;i<length;i++)2 ^9 }& v4 K! V" F7 S
  cout<<ax<i>;/ l% E6 {7 j- i. V8 i: a
cout<<endl;2 n* O) I  I/ e% b5 G) c
}
1 h/ h5 G) I# _; T' A7 e& Dvoid main()" p: N: ]: n8 v; L
{  
; C8 u0 Z+ v/ k9 q! J cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; * U9 W! g% n, j. i( b9 s( ?6 O
    cout<<"请输入发送数据比特序列:"<<endl;" J- c6 Z5 e# D5 J0 r
Checkout test;8 L- u8 ?% W, ~' V) S
test.cxc();& |4 w: H8 e9 g2 O# j/ d/ c- F" M9 k
  cout<<"余式比特序列是:";
; n; i1 ~& d4 W. L# z  test.qyu();
+ T' t! h3 J/ [% p  test.add();; O. R4 q+ s3 A, m
  cout<<"试试这次是否能被整除."<<endl;
' H8 A8 u; a7 _( O6 K! _ cout<<"新余数是:";
( {8 r/ h  t* ~0 q- s  if(test.qyu())
4 r& b% Q2 J& Q% i/ _   cout<<"已发送成功!"<<endl;2 R: C7 W0 \: J6 _2 l. r( Q+ x. B
  else# I9 h: Q! U+ z, q) v$ j! Q) d
   cout<<"未发送,失败!"<<endl;$ A! y9 b1 `+ b
}
分享到:  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! _- A7 i$ j! c  M7 J- y: q
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    6 [5 w) `0 W& W, X

    该用户从未签到

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

    本版积分规则

    关闭

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

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