下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
' ?5 B' P/ i: N0 L( N#include/ ?' }0 D: Z0 l/ F; R% e7 T+ w* ~) l
#include
4 X$ B( }) M9 e1 j: E% [% ^#include' {( `' o2 `, Q7 [% e$ Y
#define CRC 5
$ J9 w2 n/ T! ]" j; l+ jchar data[5]={'1','1','0','0','1'};$ P3 \, \( L1 I; A
class Checkout
; L3 @$ |* S7 ?( \5 w' Z& m{: B, c0 _# t, c
private:2 J; i/ W; W) H+ w$ g; Q( }
char ax[50];* H5 {0 R, |' K7 ^
char bx[4];9 r1 X3 b( G0 g; m7 f
int x;. A% X& Q7 f% a- e8 s
public:
- ~1 _+ v& A# u1 w int length;
, [, z3 p; b- G; `% @ Checkout()! H2 |' J* c( P0 e" f* k5 }+ N
{  : o+ F5 z# Z, l6 x5 H
  cin>>ax;
- m. A! d* Y0 @1 E" x6 Z  length=strlen(ax);
  e8 z0 D( p1 ]% S }& H- O% Z# ^( K/ z8 `4 }7 }
void cxc();
1 L9 q) I' W! k7 E bool qyu();
( c/ N$ Q- J& N. w. o$ n void add();
  b- o3 h/ \+ h2 m: W};! m* ^) Z/ w# L0 U  L; ~" u
void Checkout::cxc()& F7 O6 \6 M: b: M/ O' q* J
{1 v  {4 r0 M% q* d% s7 M
for(int i=0;i<4;i++){
. \7 h, j4 L! l0 Z; G6 ^7 R  ax[length+i]='0';
6 y+ }: z9 y# c0 J6 F, z! J. N" M1 k }0 ?: v& h- c/ |/ K9 z: k& c, c
}//将输入序列后加4个0( ~% C; y2 V0 j4 y1 ~; R
bool Checkout::qyu()2 C7 X% b( k; W0 \5 ?
{0 B9 |- |& f. p
char c[5];2 u2 Y; r! l$ r) E4 _1 T3 s
int i,j,n;
7 b3 @' _/ S- ]2 f int m=5;
9 O' h0 `" F& g. {5 J2 t for(i=0;ax<i>=='0';i++);
% P/ F! w9 E& M% y  if(i==length)
+ I( W& C' t& E/ X. g7 {  {cout<<"余式是0"<<endl;
. }' W# b/ S6 T, h" m   cout<<"发送成功"<<endl;! `4 n& p$ g$ T, v) t9 @
   exit(0);, o7 S/ g6 r5 o3 v; h; R
  }8 H  y* E/ f6 O1 X
else{
2 @# O% B0 I+ [2 P8 S# Z for(i=0;i<5;i++)  ^2 I; q" O2 G7 g  ^: [
  c<i>=ax<i>;
; E* z' y# Q% Z$ w while(m==CRC)- b' @' x+ K4 s$ m% A: ]4 i
{ for(j=0;j<CRC;j++)/ h1 [/ g8 m0 i1 _0 u5 D3 c
   {
% K$ `3 \6 ^+ s* W                if(c[j]==data[j])/ }) L/ Z8 V6 J4 \3 f3 |
     c[j]='0';6 L6 g0 s& Z4 V3 @- W/ v( t% J, j8 r
    else6 Q) S# s1 m# \: k4 _1 E0 _
     c[j]='1';
2 |" F$ n4 y, T) o) f7 @7 O# \/ p7 M3 w   }
- v1 h. R: _" e$ G, |  m' g; G     for(j=0;c[j]=='0';j++);
* P3 r/ X! K' h) E+ S! A       n=j;% E  S$ o+ j" e
     for(m=0;m<CRC-n;m++)
5 b( S! m" O5 l1 W7 w, E     {' w$ v$ e  F7 f
    c[m]=c[j];  L5 \4 D2 l. X$ Q: w2 a
    j++;% y3 `& S5 t& t
   }- k- I% u8 R. A' F& V2 q! @6 h. b* O
           while(i<length&&m<5)
, Q6 q5 Q5 B) C5 m  J1 D# n   {
- m/ b# V' j. c; M$ r+ h, m        c[m]=ax[i++]; 1 x- N. ?% _9 x$ ?
     m++;      
' s$ J/ M, T- E4 T   }6 W( O; J+ Y0 d$ H, u
}9 S; c$ W! m+ i; J/ M- G
}
* {) m! A  h5 X# Z0 Q- F& W- N, A int k;
% v' W: U0 M$ s( g6 x for(k=0;k<m;k++)
9 [! B5 ?/ W* i7 S; J  bx[k]=c[k];' z$ \  c# q2 V8 `1 y
for(j=0;bx[j]=='0';j++);9 W/ S7 @' d6 W# y  I4 _+ v
  if(j==m)
6 {7 W9 P! ~. f" r! m# E$ N, w& c% t  {cout<<'0'<<endl;
& V' Y+ h% |( \3 Q4 b) _   x=0;1 C9 g) d! u: E  Q/ i0 G0 J
  return true;& X/ H, L; O/ m6 f8 L+ m+ R8 l
  }
5 M) X2 w' Q0 v- V  else; Z) w! U0 e- f3 O4 ?; _3 u
  {for(n=j;n<m;n++)8 T' Z: c0 E+ a' i6 K
     cout<<bx[n];
$ g( H! g, S5 S8 |& z* D; W  x=m-j;
9 o) b$ g" W$ H! z- C1 F" K% d  cout<<endl;! W7 V7 D( J3 a
  return false;
% e4 u4 `$ Y3 Q* p' E% {  W  }
1 S  k2 |  K- c3 A& G}/ @5 Z7 Y5 _# |# {8 g
void Checkout::add()# ~4 U- M- Y. I  i
{7 B/ r( b9 z: ~$ M- k+ ?* g
int j=0;
8 w4 A' ?+ i/ k: u6 @( q9 d  for(int i=length-x;i<length;i++)
) `+ @/ [0 \$ J5 l: y4 C( y. P    ax<i>=bx[j++];, l+ ~0 `2 ^2 p# g/ P
  cout<<"发送的序列加上余数后变成:";
' S1 h0 x- T( P# x7 x# E( p& } for(i=0;i<length;i++)- D1 ~( y, Y" F3 N4 F3 X# J/ M
  cout<<ax<i>;$ P, g) h2 U# K# K, N8 D
cout<<endl;1 y4 r% g/ U% z/ t4 e' j" V
}& C( ]4 Z. B9 E8 j4 r
void main()
- t8 S( i( L% h3 N{  
* W; c8 d4 d! E2 T5 P) ~ cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
1 `* A, W+ h( V1 A$ T3 e. Y; h    cout<<"请输入发送数据比特序列:"<<endl;
1 ~# [; y. o! K( L8 s Checkout test;
+ p& X- J$ T, k2 D9 ~% h2 O0 Q test.cxc();
2 Z# R* {: x: L4 g% n; ^9 J9 s  cout<<"余式比特序列是:";0 V; Y9 ?8 u, y- z
  test.qyu();
7 h: {3 ?% X8 i) U" n) o$ `  test.add();
* ^9 o$ |! s& ?" `; V7 F, w  cout<<"试试这次是否能被整除."<<endl;& b! W; G' c# J$ P; D5 `3 m
cout<<"新余数是:";1 ]% S$ Q! r1 l2 ^- ^4 l' u: n% u
  if(test.qyu())' W6 ~9 q9 i1 W1 ]) ~; B4 U
   cout<<"已发送成功!"<<endl;
6 \0 t$ |7 _. H) x8 T# L6 m  else3 L- f$ H5 \# X3 z' j
   cout<<"未发送,失败!"<<endl;0 M% k& G! ^* Q& ^  V0 d3 L' f
}
分享到:  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 | 只看该作者
    给点小费偶帮你搞定 HOHO4 n) w; y- k% I4 T+ p" h* H9 x
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    % `% ^* M, C8 A1 G/ b% N

    该用户从未签到

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

    本版积分规则

    关闭

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

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