下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊
% ?9 A6 P3 u& z( D& N#include# C  Z7 g0 j1 P  V0 Z5 p
#include
" {' m  O- H  }6 D) R#include$ Q0 x7 N/ I- M( y
#define CRC 58 Z& @3 x" D" [5 O4 P! a
char data[5]={'1','1','0','0','1'};+ p2 J3 U2 y. o- C) j+ w
class Checkout! X8 _' S& U5 ^* F: i5 z1 s
{* |! |9 z* ?/ V3 G/ h/ I
private:
& J# g6 y1 F$ A: k2 V% C char ax[50];
% f9 ~; v7 I% d; q' ^: h char bx[4];4 z9 R% Q/ `4 ?' W6 S
int x;$ o3 o" b, R% k8 l8 P
public:9 g& ^; ~4 v0 Z+ A* \
int length;0 J. k5 }4 d" h4 _- E
Checkout()5 c' d& g) s, C' e
{  
% e- j! d" a) G# |  cin>>ax;9 t; y" \* O# I, B
  length=strlen(ax);
  K# o) }/ S7 O1 |- g }6 M+ ]# I' E) Q% @( ?( s
void cxc();! u3 P% h0 e) r" j# Q/ v( o& B
bool qyu();1 P0 a+ W% ~5 \- y! d7 V* T% y0 G9 J
void add();/ j( f& T3 I2 S# `* E
};
- e! S- q  y6 Q9 Qvoid Checkout::cxc()' b( r! s) M& p) p- o# w2 R
{
2 l" H* i* i6 V" p for(int i=0;i<4;i++){& g, k+ |$ S0 c$ F+ [' ^, S
  ax[length+i]='0';
7 F" M; g& _( L# A6 x9 L! @ }
, x) s/ p- i8 {$ L1 h- I}//将输入序列后加4个0- P6 p: S& H* Z% _( d/ _, g* e3 q
bool Checkout::qyu()6 L0 x2 m2 U1 A
{
) Z, {( C4 \' Y7 Q) Y& K char c[5];
! P( |& ~$ x9 l; T2 F+ B int i,j,n;
" o6 @1 `) q7 }8 G) v int m=5;
  i8 w$ U9 W5 O7 Z& X for(i=0;ax<i>=='0';i++);! E! t) S0 \* |5 Y
  if(i==length)
, ^& ~+ t' I3 @' N) ?  {cout<<"余式是0"<<endl;
  w' W; C: b* p& P   cout<<"发送成功"<<endl;
3 h# Z, f9 r* V# m4 _   exit(0);; W7 k) p, X5 n3 t/ @
  }8 C6 T/ c; z2 m* c. S; _4 R+ ]
else{
5 H, L2 u. B" U3 n for(i=0;i<5;i++)9 |& w8 z- W# A( F! i# n! d
  c<i>=ax<i>;$ Z0 E' Y! i) ^$ y, j
while(m==CRC)
, B4 ^, H' z% w/ U1 p! q { for(j=0;j<CRC;j++)9 f7 K1 ?# s1 A" [
   { 3 i) w7 b: D2 P
                if(c[j]==data[j])
7 S8 q( x# i: p: Q; K. ]) s     c[j]='0';2 m: I4 D9 G* i) M. R* a
    else
" @# d" M8 [. g' Z     c[j]='1';8 U, ]1 E) k6 i' t# A1 Z! q
   }6 ^6 r* G& W( C3 w+ y- ?
     for(j=0;c[j]=='0';j++);
( E  R, {4 Q+ R# e& Y' e5 N       n=j;
  u$ U7 ^7 C* k+ E9 C     for(m=0;m<CRC-n;m++)
5 ^7 F* n8 `  c! F" M     {
* o( x2 F7 O7 f9 Y$ q; D    c[m]=c[j];1 o  I0 x2 d) H* h* A
    j++;" N2 P: J9 g) o# o2 I$ \+ O
   }
6 l/ Y* A$ n2 |9 e           while(i<length&&m<5)4 a6 H$ x7 @! C+ A
   {3 }4 C, t) x2 L5 `. `8 }7 W8 j' k
        c[m]=ax[i++];
8 E8 g3 S/ c3 f$ b  Q" F5 _. T     m++;       ( |- p' v0 D1 ]
   }* ~+ n8 t. g5 q/ ^; {! L: Q
}
( g  r1 P5 S2 A$ _% q}
8 M, `5 l7 ^- f int k;8 H8 f; ^3 M- ~3 O: u( a
for(k=0;k<m;k++)% `9 K. r/ e/ z3 E  `+ O8 l
  bx[k]=c[k];
0 `/ h( o+ X% e for(j=0;bx[j]=='0';j++);( {+ Y0 I3 y+ L/ A
  if(j==m)
2 E: b, q. J9 N2 C  {cout<<'0'<<endl;
+ A; a/ M* @5 u0 ~( ^) S. ^   x=0;' L' g8 K4 `, n& N% J) Y
  return true;
  Q# Z) a2 f% y$ D6 G  \9 T& v8 k' z  }0 J$ Z+ E' ~5 F- ]- m% Z
  else
: q  q1 y1 y) y/ y( H1 z9 ]  {for(n=j;n<m;n++)
5 H& c2 E& L& L. N: @% W     cout<<bx[n];4 r' L9 O5 ^2 [: c2 x
  x=m-j;
! B9 V, n* h$ o' o: D, B  cout<<endl;5 V1 U% S& H# P* N0 f9 [
  return false;# G* W) Z" ?2 |. E: j9 T
  }) `& @" J: ~( k; R# E0 z" m
}
6 I2 \8 i9 S) t3 C& O. ]" _- |void Checkout::add()6 G( a& A! l# H9 S3 P$ C" z* Y
{
2 p0 O* l" x& _/ y* ^6 t# x4 Aint j=0;
" {1 b& k9 V1 O" R  F1 S  for(int i=length-x;i<length;i++)4 Y& r; m3 q4 b& t* n9 g+ h
    ax<i>=bx[j++];, q0 u( F, O# _  ~7 U8 U8 K' M
  cout<<"发送的序列加上余数后变成:";, u* u; d) M" v* d. D2 E, z7 u$ E  [
for(i=0;i<length;i++)1 u/ f% ~% _- x3 t* Q3 F4 H
  cout<<ax<i>;0 [' W' f: ^( I  Q) j
cout<<endl;
/ U: n/ D" p% P: A}" U2 p9 g; x2 C6 s% d- `
void main()! `: o3 L: t/ k- s; z
{  
. D2 Z4 W* k1 @8 U cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; # `, P) b6 o: {% ~. i7 C
    cout<<"请输入发送数据比特序列:"<<endl;: y) I( K( g7 ^" J6 y
Checkout test;* D! S+ a/ @4 p' i) m4 ~% R
test.cxc();
2 ?7 g: Z  m+ V) z- U  cout<<"余式比特序列是:";
2 y+ r$ }$ a! F1 o. C  test.qyu();' F: L; W) B  o; p$ V. ]) o3 P/ E
  test.add();5 W# b6 ?# B( [4 D& W9 Y
  cout<<"试试这次是否能被整除."<<endl;
7 a, q$ ~; m8 v cout<<"新余数是:";
( ?" K" j) J8 ~% L5 l5 V  if(test.qyu())
* s( f, I# N9 V" E* d" F   cout<<"已发送成功!"<<endl;7 Y1 L7 Y' L$ F, C- _9 G
  else
( ]9 ]& T  c% N7 y  B3 H! W   cout<<"未发送,失败!"<<endl;4 k1 d, x' Y1 u5 u
}
分享到:  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
    , s- U' t: i5 r/ n7 a1 m
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    % K8 o. o4 `& d; V, x$ o

    该用户从未签到

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

    本版积分规则

    关闭

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

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