下沙论坛

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

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊( D% Z4 t7 @" z( L, ^; J( r( w
#include
7 G5 k# e+ Z0 |; c2 A' m#include
0 O1 p5 D# }$ t' P#include4 P) m" \( g2 r: T6 I
#define CRC 5- v  @" w% }# I0 R! Y
char data[5]={'1','1','0','0','1'};! E3 R$ w: T. n7 s2 J% v
class Checkout
8 M% y8 N5 o- Q$ ]# I, P{
0 Q4 A; l! O+ m. qprivate:  x( \1 _* ~3 k( P. t( t1 ~
char ax[50];
* [$ }* ~* \7 l3 S) w7 [$ ] char bx[4];- K0 q3 R1 E: z5 @; @* D
int x;0 R9 n- D# B" W4 S. ?0 \0 W
public:
* h9 c9 q! J8 g- h. E( | int length;2 }2 V) W, [: R1 m0 k3 N0 \
Checkout()# L5 H1 U5 [4 V. ~
{  2 C8 B" s$ @6 v- U
  cin>>ax;; a" b! z0 W! K
  length=strlen(ax);+ t& ?7 p4 X% l( x
}# W7 D+ F' ^" B5 y2 H
void cxc();8 @; K* X8 H" E; h, t- [
bool qyu();
, E# J. {, C+ `; _6 Q void add();, w5 v8 g" N0 R( q
};! x. a# X3 |& y1 w( C5 I5 `! T! h
void Checkout::cxc()
4 }9 ~0 v5 n- ?{# f$ `9 u7 F' H  V4 k
for(int i=0;i<4;i++){- M9 E, c: d/ a: h: y( B# c
  ax[length+i]='0';, \  x  B4 r5 N+ l2 e
}
" h) B  C+ o9 i3 P8 ~2 ?# T( T}//将输入序列后加4个0
1 `2 R4 s4 s: m# g: n, V: l' ~bool Checkout::qyu()
" D7 w: n6 V$ H; ~{
, C. E( @4 t! I+ \& l% g char c[5];/ G7 m. T) {  K4 ~" s" D( Q' E
int i,j,n;! v5 P+ ]) n- j: g/ V, I2 c
int m=5;# t' i1 m. W% d$ x$ p: h
for(i=0;ax<i>=='0';i++);" |7 N- X3 d# Y3 ]8 I
  if(i==length)
5 L! c1 Y6 S, o  d  {cout<<"余式是0"<<endl;
7 n+ x9 M7 W, ^; j  I# k5 e. {   cout<<"发送成功"<<endl;3 U* O0 Z4 }8 ~  h0 t& h3 A
   exit(0);3 F+ i& K" g0 z6 ]7 E$ C
  }
' H* n& @3 Z5 H' ~% \' Nelse{& W' w2 J' o9 Q, ]- K3 v
for(i=0;i<5;i++)6 F' q! a9 u/ e7 f0 ^" E, n2 i
  c<i>=ax<i>;
5 T$ i( N: ?7 W6 \' A# a7 F2 U while(m==CRC). T$ J' G- |& f4 ]' \7 T
{ for(j=0;j<CRC;j++)+ S  o8 ^; j# L  f  g6 \' i1 a. C
   { / O0 Q* d. X/ K& v
                if(c[j]==data[j])
( I( x" o; }# m     c[j]='0';
' ^5 D( d, J4 w/ K! ~. r    else
9 T5 F% w4 @" n! x     c[j]='1';
  Q, n' }& j8 ~   }; w# o; B/ D$ l' ~
     for(j=0;c[j]=='0';j++);
( }1 y8 ?9 j( p" [0 l( M" j' H       n=j;; ]# Y% Y' t' V! ~: C/ n7 e4 B
     for(m=0;m<CRC-n;m++)* a  {" Y; j/ Z
     {
6 [* }& u& L# l% ?1 h8 U    c[m]=c[j];, H3 g% s  X! `& m0 K1 V. v
    j++;  `1 T: E6 s) T0 ?+ ^( p
   }) a0 o- b, ^/ q. w2 ~0 p. l# }
           while(i<length&&m<5)4 @6 s% ?4 ^( b
   {
% A8 a/ P  Y9 N) N% g        c[m]=ax[i++]; ' j% _; U; |9 u- h- F4 F/ {
     m++;      
5 {3 Y. ?( ]- H- Z4 x   }7 d9 ?' m! Z' h' D2 w4 h
}, [; W5 {+ @6 L* q1 k. s
}1 X! V* D. u/ C: Q' C8 M- v' N
int k;
% K- k' U& H  X* ?: g2 O! Y for(k=0;k<m;k++)
. t- N. h1 q8 |  bx[k]=c[k];
- s0 s3 B  s$ W" W* O5 X for(j=0;bx[j]=='0';j++);
2 S3 d& [) R8 A7 K6 H  if(j==m)7 d/ P% E! Q5 `6 z3 h# g
  {cout<<'0'<<endl;
+ n3 u6 p+ t9 _; m2 Z   x=0;
& S0 b9 Q* x* q% f: H6 `  return true;4 e( Y; z6 Z4 @
  }) N* O( v- k) o
  else, H" H, T4 _& s0 j5 R, @+ k- k
  {for(n=j;n<m;n++). d$ n$ A  z( X6 G1 V
     cout<<bx[n];% `  \$ F0 p1 C  v% R. `% i- i
  x=m-j;1 @/ E3 m5 z: Z
  cout<<endl;( ~) C$ X" e7 d. h5 u! K
  return false;
3 }( m1 k+ d3 b. v$ V0 C5 W5 d  }# G; T8 f: i4 I' x. L
}
9 h: S0 Y6 A" m: ?# Nvoid Checkout::add()' P7 ~7 l" }+ o+ c0 Y* ]
{& y6 a, U8 r2 @- O
int j=0;! w! i. E$ I$ y6 _" e0 B/ A! n
  for(int i=length-x;i<length;i++)
! r7 X; @  V2 L) z" D    ax<i>=bx[j++];
4 v# L1 M* h# i. t& h- {  cout<<"发送的序列加上余数后变成:";
% W8 i4 e4 g5 }6 e for(i=0;i<length;i++)
; Z/ S  T6 _7 @+ t* K0 ]/ F0 _. q  cout<<ax<i>;5 U* q4 J$ m9 a3 W9 f  K8 Z
cout<<endl;
7 j: \  y- L+ @9 T" `9 s! w}
/ @6 O, Q; H: k2 Q0 m2 N  O! nvoid main()& \1 c$ Y$ S& s+ A- ?7 n5 S) |1 s
{  
4 e4 d+ K" O7 n9 d cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
  \2 p$ ]6 a% D2 x: v5 @. d    cout<<"请输入发送数据比特序列:"<<endl;+ b) Q& U3 m; ~$ s; m: v
Checkout test;
+ J, \' T, I; r  D# W, i( v test.cxc();
: R* u* O" i6 S- x' P# r  cout<<"余式比特序列是:";
1 H7 ?& f5 V. ?* z( H/ @8 g# t  test.qyu();
5 E* _0 x" K& ?- s- Z. `  a# U8 g1 Y' t- d  test.add();- |8 _9 e& P) ]. V  O1 E2 A& z
  cout<<"试试这次是否能被整除."<<endl;
1 R7 @& I2 O2 y7 l; a6 C cout<<"新余数是:";
- d/ j" a' ^, R, m! s  if(test.qyu())" C5 j& \1 z4 ^6 l. d
   cout<<"已发送成功!"<<endl;
; {5 w  D. z# v, O  else
8 ^6 x: a) |- I2 O- g/ z/ D   cout<<"未发送,失败!"<<endl;$ o1 S4 p: @7 ~2 V0 n& S) X
}
分享到:  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
    8 S( K2 i; D! }# t! K% y2 Y
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

      N$ w0 T& a' {1 _5 O/ _

    该用户从未签到

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

    本版积分规则

    关闭

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

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