下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
" u' c& ~+ p* Q( s) i- X9 `9 Q#include
  ~0 \# D7 I3 T- U  W* p#include: K0 G/ _1 d, ^3 A
#include5 k" w8 k6 L7 V# @9 Z4 X
#define CRC 5
8 F: h! s' C( K3 zchar data[5]={'1','1','0','0','1'};$ Z' k' W  H  _* p
class Checkout" i0 ]; N( c/ s) B& l1 b. s' W
{
0 O/ T  s! N# eprivate:6 P5 F3 p4 _7 W/ ~% l; d
char ax[50];7 o8 i' r: R1 e% C4 q+ x- ^9 M
char bx[4];
) E8 S( s( W' o. L9 X4 ^ int x;. [* {/ C9 b& r( K% F- z) `" k$ d
public:8 A+ t8 o+ Z4 [% T
int length;4 t! [' u: v* m
Checkout()2 F6 J" Q  k- [: h% p: l  O4 t/ Y
{  5 I' E2 O: v3 r, l6 x
  cin>>ax;& ^( H( p* D6 n, O- ~
  length=strlen(ax);
6 e! f4 @5 P2 X. A }# `) t- U, X" D, s. r, B
void cxc();
1 j* W$ H4 L/ X& Q% W1 R7 X' u' K bool qyu();$ U+ A3 `' r/ y5 s. {  k
void add();7 @( |3 u, b5 S$ o" g
};
" v: L, o% W  [, p6 Dvoid Checkout::cxc()
4 {! d5 X! g6 d: p{
/ H  j5 R8 E; G# G: a: h for(int i=0;i<4;i++){6 D1 k2 e/ w+ @( R6 B* C
  ax[length+i]='0';
, H1 {/ D# k6 `' b. u }
8 ?6 n4 a  _* P3 f$ p6 I}//将输入序列后加4个0
& e8 N. t% e$ A2 a# Abool Checkout::qyu()
' O  Y2 U8 r2 i3 b* ?5 M& q4 l{# g5 g$ y9 w3 [' a0 a+ U; g* ?. w
char c[5];
8 r. S) v% i5 N! Y int i,j,n;
. y0 E, r+ T1 c! R( P4 } int m=5;4 r* ^0 l4 B  |' M6 Q; \0 C. @
for(i=0;ax<i>=='0';i++);
/ c8 E% b" m2 c$ c  if(i==length)" D1 g  B6 _6 _
  {cout<<"余式是0"<<endl;* Z% u* |: q9 u* ~* Y9 Z  w1 z
   cout<<"发送成功"<<endl;
4 `$ R. ?: J- M2 e   exit(0);
2 Y/ \* v9 l' E0 C2 f  }2 m! x1 u6 E* |- G
else{
) H9 w+ Q1 g: V! b. H for(i=0;i<5;i++)
7 j- _0 H# M+ x+ D( y2 \; P  c<i>=ax<i>;  H% P: Y: d3 ~+ \2 B4 i& R' J
while(m==CRC)
: o2 V3 n6 U) V: \- V9 @ { for(j=0;j<CRC;j++)% ?2 S& Q/ ?! `3 [9 {) l+ I3 F1 B
   { 9 c. s" c8 W# z4 U/ W9 T5 t; B$ Z0 L* Y
                if(c[j]==data[j])
( {# Z8 }  M" i6 |0 C' }     c[j]='0';8 d0 r# e4 f9 q) {6 v( y
    else
1 z' Y& R/ j4 l* Y( ]     c[j]='1';
/ U, u6 ~! J1 W- q3 V' t" I3 t   }
' \( q9 e3 I' s3 Z) D1 V     for(j=0;c[j]=='0';j++);
7 j! W, B; C, L1 S% n       n=j;) f# |" |& X6 _( E  T$ S1 C
     for(m=0;m<CRC-n;m++)
: V! o. f; U4 \. t. O     {
0 L; H+ ^" o# A; Q. A2 h    c[m]=c[j];6 o3 B& W; ^6 z" `, o
    j++;
- r# D1 {4 r3 E! g9 ~% E   }
5 u- @0 Z) N# n           while(i<length&&m<5)9 N+ r: x; m4 f6 @+ L( Y
   {
! J4 p! S, ~2 e5 }8 D        c[m]=ax[i++];
) }  U( z+ T% Y. D5 M& @. y     m++;         C8 Z& \4 i, n0 J, T8 G
   }0 ~3 M" Q5 T) Q6 f- K, ?: S
}+ [) s- E7 z# W- ~; K
}2 t' Z4 |/ `# `3 Z  R4 Y
int k;
8 F- y$ Z3 z% H8 {/ A2 p for(k=0;k<m;k++)
& h1 G0 Q1 q& \( V$ h! `  bx[k]=c[k];9 F& C" A  p) L& A
for(j=0;bx[j]=='0';j++);
$ b3 @& D6 a8 u6 j4 F  if(j==m)
/ Z$ p, \! `. X  {cout<<'0'<<endl;
; _% K4 {7 W7 t   x=0;
$ l% V4 V6 U- @$ j6 a  return true;
4 K! D  F3 p: G6 `( K# I  }
. b! O5 l6 `& {/ Z  else. p1 C% T5 @! Y. C% w6 u* S+ s
  {for(n=j;n<m;n++); X& f0 L8 M( C# m
     cout<<bx[n];* g: Q/ b: l5 e" f/ a' n( a
  x=m-j;' z2 \2 Q' w) i$ y' c& u" K' b  M
  cout<<endl;2 v! `+ f. r3 I0 H( l
  return false;9 A5 `1 o5 k8 g3 p0 Q
  }
" Y7 g; x; X) d% R, A3 p}3 I! @( n7 h# i. Y$ K$ z
void Checkout::add()
8 e1 P( O: O; \5 e% r- {{4 D  K, |4 q3 j. X$ C: |" _
int j=0;
) q# `7 ^( X8 R2 K  for(int i=length-x;i<length;i++)
+ |; L+ q- ]4 y2 h    ax<i>=bx[j++];
; }, A4 s7 C+ s8 A8 r, q2 w3 z* S  cout<<"发送的序列加上余数后变成:";' _. o, y* U4 t! p6 |, P
for(i=0;i<length;i++)
/ D* a1 C( q' z! ]8 t$ V7 R  cout<<ax<i>;, Q6 M4 `1 ^3 z3 I
cout<<endl;; ?. S  S7 s5 R$ D
}% X2 U* K2 q1 f7 \* R; W; V
void main()
- z( w" M; s! I8 C% I{  
3 o" J% k% o) j6 A8 T cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; ( |3 q& K3 G" {+ A8 B/ k
    cout<<"请输入发送数据比特序列:"<<endl;
+ B$ d# e# L' n" b: ^* |, s Checkout test;
$ v1 L$ R0 |# F$ n9 s7 ]2 | test.cxc();* f" S! W% J2 j8 R5 S$ G6 F
  cout<<"余式比特序列是:";
! ^/ J& m+ x) a1 w  test.qyu();
" h1 `% T, @2 d1 j- A: m' X  test.add();
+ _% {: H. S: @  cout<<"试试这次是否能被整除."<<endl;  O3 e6 G! J3 P
cout<<"新余数是:";
7 o) U; L% G- D# f3 P4 D  if(test.qyu())
2 ~$ f! \( g1 p3 R) Q   cout<<"已发送成功!"<<endl;7 W1 T( {. G" m- @8 u) b( L, X
  else  u+ I+ N  A+ Y9 g  V
   cout<<"未发送,失败!"<<endl;; K' P5 L# s" ?7 g/ Z3 d
}
分享到:  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
    / |4 f  \6 q2 q- r# v9 ?; f
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    6 m8 S5 f6 U) F  X' [3 P

    该用户从未签到

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

    本版积分规则

    关闭

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

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