下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊  F7 b1 l7 I$ a
#include. z4 A% @! M$ o
#include: ^, i- e8 ^7 Z0 @: V9 M
#include
- [8 P4 n5 A. L#define CRC 5
& m7 }4 o; p% o! Hchar data[5]={'1','1','0','0','1'};, v8 H( h" d7 [
class Checkout
9 H8 p- R1 y; ?8 a{
) N6 \# w( y; ]; Jprivate:
8 m5 }  v8 e5 R3 f char ax[50];
. o4 r5 O" S/ ]* q' R9 D/ S char bx[4];
- R3 u$ L) }( j* [, s: G int x;5 I/ A- r% W* c- A7 d% f/ d
public:
4 ~1 q# [0 P3 o  @0 J6 M int length;
) R" T% x9 X# h1 Q* j- U! H$ I Checkout()" c' h. ?6 D. r4 o. C& k$ C1 g) i
{  ; G$ t* L- A4 p
  cin>>ax;2 M' ~9 ]& M0 z% `+ h: ^
  length=strlen(ax);5 Q) D3 }- V4 |5 R$ {
}
4 y, F$ x+ C4 S- e: ~+ g void cxc();2 k1 g' a; @+ Q
bool qyu();0 R8 \* [. {/ g, m9 F8 S
void add();
3 [1 A3 G, G6 P( q};
; j6 P3 U5 I! t4 g  d+ P7 A# Fvoid Checkout::cxc()7 m2 Z! w& e. ]
{
7 l  _8 P# L+ O) x" u% ?. B for(int i=0;i<4;i++){5 U% i' M, ?+ a' y) P( d
  ax[length+i]='0';
/ U# M/ [' \% a6 h# O" [* M# a; g6 d }* ~; ~0 o+ x0 g  j7 G
}//将输入序列后加4个0) g+ l- ~% l9 }! P% E
bool Checkout::qyu()& e+ j5 A0 G# W7 b
{
5 N" n! X. _+ D/ B* e' O char c[5];
1 B. h: r. i5 d/ m6 z9 I4 `" C8 H int i,j,n;/ z2 h6 X9 n8 ~
int m=5;1 H, k  f3 ^7 X! Z! b; z
for(i=0;ax<i>=='0';i++);
2 N1 Y4 @9 o1 D/ B  if(i==length)- c2 x0 y1 X/ c! o( j# N# P
  {cout<<"余式是0"<<endl;
) K2 N0 R* b- Q" Z5 _% s% i   cout<<"发送成功"<<endl;
  k! [* P, P  V/ R; V# S) r   exit(0);
: ^8 ?0 s- @: O7 R5 V  }+ B& e. g6 n* i, z" d
else{: b" Q% d! J5 u4 P
for(i=0;i<5;i++), C& Z3 ?( Y3 P9 b! h4 G2 ?* Q
  c<i>=ax<i>;
; f/ b3 ~! M" ~9 ]# R while(m==CRC)
  B/ R5 c# o; U* i) l. s% V6 B { for(j=0;j<CRC;j++)
. C' Z2 W1 n7 ^) P  Q% {   { 5 v/ y3 U, [. S% {1 A* a
                if(c[j]==data[j])
$ ~/ n3 {! k& |6 e     c[j]='0';. B% z( f: U3 q& ~" }; f' g! K
    else
8 |1 C" N2 \0 N# a8 x. }3 F; d     c[j]='1';1 T4 o# A; T9 |
   }+ L5 {# A! C: f% y
     for(j=0;c[j]=='0';j++);
. l; P1 L$ r0 n3 A; M2 V       n=j;
1 K0 z  @3 T! b) n' w: H* }# K0 q     for(m=0;m<CRC-n;m++)% K' `, `  P& g6 R3 }( L
     {# V, S2 v, `# r8 O) S- h  B
    c[m]=c[j];
% d8 W3 I1 {$ q    j++;
; |. K- @# \( T8 ]   }8 R. F" d( Q' U' ^
           while(i<length&&m<5)
( l! _4 a% h4 \   {- u6 y3 ^2 L/ T. B0 G
        c[m]=ax[i++]; - ~# p* L* \- N9 f
     m++;       - \) D! N7 z! \) U" D
   }
( ]5 W" t8 a4 S }1 e) M$ H0 i5 S( }+ z4 A
}
+ q( v; y) P8 P8 E, x& l7 A int k;
+ ]% @, _; h+ e( T( H/ w0 O0 a; t for(k=0;k<m;k++)
' O4 q% Y) M( i# \0 K2 }7 K+ O8 m  bx[k]=c[k];
  S, A6 c" L. s0 y0 O& k" X for(j=0;bx[j]=='0';j++);: G7 q9 Z; d% ]4 [
  if(j==m)
$ H! U+ t6 p" w+ I, J  H3 Y) @  {cout<<'0'<<endl;2 B+ D6 T5 l$ T4 m. D" g9 |$ E: d
   x=0;
" }7 r& A+ {7 w  return true;
- N/ h  T& }$ W$ L# V7 F$ e1 v  }5 j9 {/ Y- I2 X# s
  else
: L: X9 ~+ Z0 Z. q8 P  {for(n=j;n<m;n++)8 r1 B" g$ c: D" e- g* c
     cout<<bx[n];, S7 `6 s+ W: |0 l% b1 z
  x=m-j;8 O. _+ U# b4 y% N9 d4 P. Y
  cout<<endl;: r9 j4 _$ S7 `, ^# b5 ]. M
  return false;
/ w& y9 v1 E1 i9 U' E" d6 S% M, ~  }. a& J& |+ @0 H, Y+ Z
}" ]% y8 R) m& C# w5 E
void Checkout::add(), Z1 M- Z7 z2 U. k- z. t: L6 A
{4 o" ]9 r$ E4 q7 |" \: |& T
int j=0;3 M6 t( |4 O5 ]: O9 j1 ?" k8 H
  for(int i=length-x;i<length;i++)
7 [/ k7 \. k4 q) ?+ \    ax<i>=bx[j++];
6 j" x( v; j" [+ x  cout<<"发送的序列加上余数后变成:";/ K& L6 U1 e1 a9 T$ F
for(i=0;i<length;i++)+ ?1 A; W& y2 m' A0 G
  cout<<ax<i>;) _4 Z7 h7 P9 h) X7 Y: y" X
cout<<endl;, X5 M0 x2 v. @- f8 V0 t7 m& F/ M
}
2 C# J7 `( o; f0 Zvoid main()
7 }8 @# `6 B1 R. Y{  - E% _$ E2 @) {$ ~# [
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl;
1 z! A; v& G/ \3 g7 J" v" @" r    cout<<"请输入发送数据比特序列:"<<endl;
7 q. F3 o7 b5 o* i! U1 v5 r Checkout test;! t6 Q% \! R+ ]5 K; U
test.cxc();
. x5 U: [5 ]0 B9 s3 I  cout<<"余式比特序列是:";
# Z: f9 ?& l. [/ ^8 ^. L8 F  test.qyu();. M6 f/ e: v/ v. o
  test.add();) U; H9 v! `0 w* g# r& s* H3 S) n
  cout<<"试试这次是否能被整除."<<endl;) ]' a# R; H4 L: r0 J
cout<<"新余数是:";! J/ n# G3 d* n. }5 G( l
  if(test.qyu())# G* ]& B. \& O3 i- R
   cout<<"已发送成功!"<<endl;
7 [, W, E: C' X3 O+ w2 C  else9 N- p( N* p) J4 K
   cout<<"未发送,失败!"<<endl;
8 Y% z, g: H- A+ o4 v}
分享到:  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
    * [% \* P( u$ m2 Q% _
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    5 G5 w& n. ?9 ]# Q$ i

    该用户从未签到

    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 下一条

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