下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
+ |$ u: w( s  T! K. ?, {! I#include
% ]$ A7 i3 b& T7 X2 M/ k1 ^6 ]#include0 z" g' f% b, ?3 `7 D+ b
#include. z: F+ r4 s/ P# S  O
#define CRC 5' I, L5 J9 j; ]$ ?
char data[5]={'1','1','0','0','1'};+ d1 b/ J* s+ U( y# q/ h
class Checkout0 v: L9 y0 e+ X
{
% Q7 P+ A  I' yprivate:
8 }5 g* x5 Q- p, E1 e char ax[50];
9 m6 a! K; a& W2 o5 k$ A0 v char bx[4];
: S0 I6 o2 n6 d, W0 D7 B4 N int x;4 o: z3 b( j8 ]( ]
public:
' N9 c& f; q. x# `: _ int length;
1 P$ C9 c5 D6 e: O Checkout()1 F8 }0 {- a& S# p/ D+ N
{  ; @9 ?9 m  A# ~2 v
  cin>>ax;
! J! t/ D' L, b" S3 R. |  length=strlen(ax);
/ A) P% x2 _" Y; Y3 P+ k }
1 V& g/ Q# o' p4 i- t9 ^- ?$ a' | void cxc();% R8 @- H9 G2 i5 L6 q8 c
bool qyu();
$ a% ~9 e) K* j) ], w void add();# M! M; o- r  G) L( j
};
+ N" H# N% b* v) bvoid Checkout::cxc()- ]4 ~( e& l) s$ O; [
{
* _+ {7 d1 E1 L for(int i=0;i<4;i++){  F/ h6 o' Y' M( ^, w
  ax[length+i]='0';
: @2 }$ G( ?; t/ |( b }
. `. h; y) e$ |8 G. r5 s1 D- m) f3 O}//将输入序列后加4个0
7 b6 `5 m  @6 a( D2 Ebool Checkout::qyu()
, W! N7 q8 a/ N6 t" c{  h9 D% x9 m5 F3 c8 q9 P  e
char c[5];
  u' G) G: q2 a" v int i,j,n;
5 f+ n9 l. [: d. k% I! G  b int m=5;, A% _+ {' C7 J: J) h
for(i=0;ax<i>=='0';i++);  Z. ]' v8 Y2 t  }9 I
  if(i==length)8 p/ A2 z; q6 f) \7 M
  {cout<<"余式是0"<<endl;
0 \" ?+ d7 z0 y# R( ~( s  V   cout<<"发送成功"<<endl;$ Z9 P# _; e: |3 C$ H4 T/ F
   exit(0);% x4 K/ ^' [: ?  _6 s* H  W* f
  }
! B$ u5 V8 V) b: ?- u$ l; K: selse{
. R* U. e& t0 `: B( F for(i=0;i<5;i++)
+ u$ u$ T  `3 m9 X  c<i>=ax<i>;, u$ ?2 i. {  S
while(m==CRC)& k$ c/ z  \0 f# I
{ for(j=0;j<CRC;j++)9 h$ x# D+ o1 t" N. f! ~
   {
1 U0 c3 h" X) Q5 z% c* n                if(c[j]==data[j])/ X; W0 M- b3 z( _: L: g2 S% A
     c[j]='0';' C% A' s% Y) C& a% [$ A
    else
8 \6 E+ T, w- L: K8 p& M6 L/ T     c[j]='1';
3 \+ _8 M4 Q* n4 {/ M   }
8 T* w+ L' B0 f     for(j=0;c[j]=='0';j++);
! P' l6 A+ A/ |* D  `0 n0 ^       n=j;/ c# C* P1 k; A9 F. @' S! d
     for(m=0;m<CRC-n;m++)4 ?  b5 P6 O0 y6 Y; H" s" Q9 ^
     {: y4 b- {1 A" ^  W9 c% w1 x8 D% V3 S
    c[m]=c[j];
* c' B: k6 O1 Z! ]- B    j++;
/ G! @( O' K: i, I   }; N# E1 N) H  `" |& u1 z8 L- v0 n
           while(i<length&&m<5)
' X( }1 u+ m# y, T% b7 f0 ?   {: e% G, L5 H- R
        c[m]=ax[i++];
$ l! m+ Y) O) v  t     m++;       ; I; a4 z% z0 y& J
   }+ B0 E4 L& |! @$ D6 _+ ]! ]
}5 _: |# s! S& O8 D3 C7 R
}" l  n7 Q& y6 |: Z2 h
int k;% J) {" X  c; [2 g2 {
for(k=0;k<m;k++)
; b6 a, y& v3 a8 b4 o* y  bx[k]=c[k];
6 T3 K  U6 m" D$ U0 N9 |  s) d for(j=0;bx[j]=='0';j++);) j" |: w. f% o% x" n8 g
  if(j==m)
- ^$ C4 m( X  h( w/ @4 S' ~. U  {cout<<'0'<<endl;* K" G8 z/ P2 v
   x=0;0 q3 h- l2 C, I
  return true;
# P0 B, P3 M5 l  }# ^5 h& K8 ?/ M. d$ o6 r/ H' w
  else
' o5 Y* T' P2 }8 ~  {for(n=j;n<m;n++)+ @) V0 b# O' I: w' G) ~; e; A" b
     cout<<bx[n];
" M0 b. q6 A/ h$ v' l  x=m-j;
1 q' X+ R; [5 x* n/ Z  cout<<endl;$ C7 b8 ^" V( `  r7 K
  return false;
0 [5 X  Y, I* i$ e  }
8 J* S( _8 N$ e- t2 J}3 U  w. t3 y5 b7 Q  k/ ]
void Checkout::add()( m$ i( o7 h* {5 a2 y* [8 X
{; J# Z- L0 w1 v! [) d  E9 V" z/ F
int j=0;
2 e0 I) R% ?( @( H  for(int i=length-x;i<length;i++)! N' s9 [* w5 E9 L0 U
    ax<i>=bx[j++];( \- E4 b& P! `: S: W$ X6 a3 P3 F$ Z
  cout<<"发送的序列加上余数后变成:";
4 d! ?& P  m! J7 p for(i=0;i<length;i++)
  S1 b. C4 @+ m" t, Q- Z" }. X  cout<<ax<i>;
. h% y' w- y1 M4 l) Z8 ^ cout<<endl;
+ v' \' S) [3 q, l% T5 U}
( ]3 y# s. C/ h. H: ]void main()
% P; U) P& s7 J4 A{  # v" S  N$ N# ^1 Y+ ^. @6 J
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
% Y6 N. A. l: ~# b5 Y. [    cout<<"请输入发送数据比特序列:"<<endl;; `  z& U  \& R* ]6 Y) t
Checkout test;
1 P. G5 S4 l' I7 y  Q2 V, _- f test.cxc();# |6 U. z( i# C1 O1 r
  cout<<"余式比特序列是:";3 R/ R6 r5 e3 N* r, m
  test.qyu();
1 ~, u: a, Y6 _; M% p  test.add();
- q6 ]  z9 h  r0 y8 P& u  cout<<"试试这次是否能被整除."<<endl;$ B9 V) B  K( G) O
cout<<"新余数是:";
$ T7 f) K7 [, p" }, e) A1 S4 O& v  if(test.qyu())* l$ ]8 I+ U1 D# E! P
   cout<<"已发送成功!"<<endl;6 X+ S1 r( O3 w) y2 r: R" y
  else# ~/ J/ f, J& i4 v" d% Q/ _* W0 l
   cout<<"未发送,失败!"<<endl;
0 t) j; r0 v/ W}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

该用户从未签到

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

    2019-4-26 13:26
  • 签到天数: 2 天

    [LV.1]初来乍到

    4
    发表于 2005-6-16 22:49:00 | 只看该作者
    给点小费偶帮你搞定 HOHO
    + a# J9 V' Q2 N& g: F
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    5 d: S: H( ^3 `. N: v

    该用户从未签到

    3
    发表于 2005-6-16 13:19:00 | 只看该作者
    头晕
  • TA的每日心情

    2019-4-26 13:26
  • 签到天数: 2 天

    [LV.1]初来乍到

    2
    发表于 2005-6-16 00:18:00 | 只看该作者
    C++ ?
    关闭

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

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