下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
3 C& Y& `2 x+ X( [1 K% W#include
) e  H3 k6 |9 D1 z1 k# p#include
* L; h% ]9 p) F2 r) q#include. p9 n& u& a4 F. X! d* _
#define CRC 5
/ d+ e: P, q1 ]char data[5]={'1','1','0','0','1'};
) c. L+ T: n5 gclass Checkout
& [# I+ s6 `/ l; |% [" ^" k{
1 @" g* N& ?( o7 I  oprivate:) T4 J' U+ K* W8 S3 c
char ax[50];
, [' b) k6 [& o+ a+ \# Z/ n1 ] char bx[4];3 F$ e" ]# T1 K
int x;! T( |. |! j$ {4 P) o8 n* m$ o
public:
* k7 O' y  c" {+ C' i int length;: n: l* t+ H% N6 l) Z
Checkout()' X. x: g2 Z/ G* j+ l* x
{  5 G- a) h4 V; h
  cin>>ax;" s+ `7 r6 I5 Q. `
  length=strlen(ax);8 n5 X1 y! c0 ^4 n
}
/ ]' `5 `9 x1 G7 N* Q0 ? void cxc();
8 c. y5 Z/ z/ }: r9 g( ]6 j bool qyu();
1 V8 ?, o; ^1 s0 {5 ~) c8 u! e void add();. |1 K* A( s7 f" f8 g9 R
};
: N# Q; V) U7 jvoid Checkout::cxc()" U; ?, @) W3 x8 a
{
* S1 F3 n8 G# }4 }2 l for(int i=0;i<4;i++){1 V5 b( O/ u0 p3 i! E; W% M, _- j
  ax[length+i]='0';
( C7 r, o0 F. `2 e* G6 c# I }
5 s+ b; [9 g6 |- f8 V! {6 G, |# b}//将输入序列后加4个0
' p4 Q& @4 F/ U+ e" Mbool Checkout::qyu()
  @" l5 U' `% n$ J" T+ b  ?# d{& O) F7 b% @% F' c7 P  l2 f! X
char c[5];
! e+ G( p: k. O6 T5 s int i,j,n;
6 Z/ B$ R/ ?5 `* b, t/ C1 b2 G1 ? int m=5;
- `* p" [: Z- B$ |. I( Y+ ]5 E for(i=0;ax<i>=='0';i++);
  o( q8 E! L1 A) k6 R, |7 q9 D  if(i==length)
9 S4 W! B% T. E9 z. [6 q1 D1 P  {cout<<"余式是0"<<endl;
; a  @) X. [% K7 i5 [   cout<<"发送成功"<<endl;
8 o4 t( \1 q. O+ k0 j   exit(0);/ S% X: |5 v% q) K
  }
' N/ s: V7 H/ o, ?. W" B+ Felse{
5 z% o. g2 ~7 V5 J" D2 {! y! t# S for(i=0;i<5;i++)
  L9 {3 y3 }% S1 @/ V2 J* ^  c<i>=ax<i>;2 r! ]- w2 j4 i0 l/ x. B0 Y
while(m==CRC)
0 R' J9 n) s* m5 r { for(j=0;j<CRC;j++)
6 `- r4 r" |, G1 }8 B1 u   { , B6 s1 h3 Y/ N; K& n. x
                if(c[j]==data[j])
3 W+ r. M/ y# |4 T6 N; F% `4 f     c[j]='0';5 U$ B1 o" c* b# Y! P
    else
9 Y  Z5 V  m. E4 g3 w+ g8 A- g$ i     c[j]='1';
7 B! z: z8 P$ ^4 f' ]& K3 A) Z0 Y1 y   }
( Y3 e  |$ I1 s+ h" f* |1 s     for(j=0;c[j]=='0';j++);1 u3 |, L/ g% A4 s" N7 P" A# k0 U/ R
       n=j;
0 J+ g, c# v# K3 R9 B/ X     for(m=0;m<CRC-n;m++)
5 Q* [) F& \. o  c  v! q     {
/ _, y8 P+ z1 e1 N% }: [    c[m]=c[j];  h3 V! D& }5 L" n. k  ^
    j++;
* y( x7 G6 \8 W3 r# Z/ E7 b$ F: ?   }
7 M$ q! M# v" _" |$ d" ^5 z           while(i<length&&m<5)$ b  I. p( c& ~* A/ Z
   {
- s  O. Q# s5 q. ?, }9 A3 ^7 `        c[m]=ax[i++]; 7 ?( I7 k# d. p: f! }4 M
     m++;       7 e7 {( [4 i1 ?1 a
   }7 q8 I8 w* D( Y2 f
}
" k  e' v: x+ v}
2 y2 k* Q( ]3 ^0 k4 ~0 o5 P6 B int k;
( c( `1 |9 |/ K' M for(k=0;k<m;k++)
: w6 [# W: s+ U  bx[k]=c[k];
5 W% a- j$ z2 {# ]- u2 Z7 v$ ~! E$ E for(j=0;bx[j]=='0';j++);
  v! F; O. O6 B/ L2 I+ r3 ^3 g* {; ^, w  if(j==m)
; N$ x# \. Z4 U$ g, ]* m+ ^  {cout<<'0'<<endl;
* C2 ^0 j1 {1 N% O3 t. R. I   x=0;
( ?2 _; \! m8 f4 a2 ]% S  return true;$ V& ]# u- {1 s; A
  }# A* q, a! Q- F) W4 l
  else; Z1 q6 p0 G3 y1 D1 j0 v- l- v
  {for(n=j;n<m;n++)
+ T1 R$ c4 m& ?" v, w     cout<<bx[n];$ e; o* u0 y% ~0 `9 C* [/ l
  x=m-j;
1 s3 M0 {5 r6 d; o4 f2 r  cout<<endl;
9 X) s( B: p: T- X  return false;8 M, u, q4 B: s: ?
  }
: t% A( ?6 L% }4 Y7 L3 E4 I6 }}: O8 m, }. x# D$ m* {$ ^
void Checkout::add()
' t$ {$ I( L7 e2 V{8 Z( M( S! R# d& ^
int j=0;
3 l  N* G. r  w' k  for(int i=length-x;i<length;i++)
' f! ]: |4 x) C8 X  |3 ~/ V    ax<i>=bx[j++];
5 ~7 F9 C8 x$ Y" F  cout<<"发送的序列加上余数后变成:";5 \0 ~/ E3 o; G1 }; K8 y5 ^
for(i=0;i<length;i++)
! @8 z5 m% \, R9 ?7 c  w  cout<<ax<i>;
$ \/ ?6 F- B  [& J9 G, c" p cout<<endl;6 L9 @' }6 m, E3 r. R! P) s8 x- W, t; }0 O
}1 G( a; Q. T: f7 k3 q+ u$ U
void main()2 i( n; I7 u/ D* e( ^7 p; v+ V
{  ; L3 g' v. h+ A9 D
cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; $ L$ y' V# I; Q6 L: t
    cout<<"请输入发送数据比特序列:"<<endl;) |& A" f3 I( q+ T2 _0 e2 }
Checkout test;0 B) `; d! g4 r- R/ T. P( q: H5 T
test.cxc();
8 R7 h8 V5 U( W, N- x& y. M  cout<<"余式比特序列是:";
/ X& o2 I3 v; O% j% p% g2 C% ?  test.qyu();/ A% L8 [1 I/ e- a, P5 ^/ _1 \
  test.add();5 C9 A9 X% N- Y) w
  cout<<"试试这次是否能被整除."<<endl;
) P% }; }# a' @ cout<<"新余数是:";
: ^! R6 w0 m! {/ X! i, R  if(test.qyu())
& M+ t! ]( I3 }5 v   cout<<"已发送成功!"<<endl;
2 J5 C" G7 s' b' M  else
3 [; d. W% L3 `4 H) a- T6 O   cout<<"未发送,失败!"<<endl;
* A- p' J" @9 w! c}
分享到:  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 | 只看该作者
    给点小费偶帮你搞定 HOHO7 a( \. O0 j/ G- o( v
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]
    # z% j0 N0 Z* D- m

    该用户从未签到

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

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