下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-6-15 20:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能帮我CRC算法编程实现换个算法啊??帮忙啊, C, t" |9 E0 W0 y. ]9 n0 w* F9 X4 U
#include
; U7 q, _, l! ?. @5 V9 X( a  h9 q#include
* Z: V: M! [9 e3 k# F/ h" i#include2 G* Z6 Z3 y6 G8 {7 c) Z
#define CRC 5
7 \) b& E  l& D0 T7 a2 ochar data[5]={'1','1','0','0','1'};2 v" h, n% q! v2 ^
class Checkout2 S$ ?, J: U0 C
{( ^% z9 h7 C- c% B
private:1 U: x/ z9 @# ^- a2 L  |
char ax[50];
; V3 U  y" E. R& s char bx[4];
3 a$ e* H/ }- @5 T' @; q int x;1 z8 h9 @4 d+ d1 d
public:
. q1 a1 L$ ^- z6 p1 A5 t int length;
" _: Z- L1 t9 R' t Checkout()) ~" V8 w+ b, M6 H8 a
{  
9 H9 u6 v* X( ~2 S  cin>>ax;3 v. r" _' ?6 v2 S. @
  length=strlen(ax);  u5 ?  r5 F3 b* s* o
}
9 U" a4 i5 [4 q  o$ Y void cxc();
0 k1 L: b# W. O6 i" A+ j# V6 _ bool qyu();# [( Y6 J/ [% b# R+ W6 s4 \& ]# d
void add();  {3 r& d) j1 m# M
};0 `$ q' N3 ~2 b! [- w# a
void Checkout::cxc()1 `# r6 L& s  \# e7 f- `
{
  M, d6 |" @1 \, W, q for(int i=0;i<4;i++){8 G  F* h- C* n7 e  m8 }
  ax[length+i]='0';
4 F$ T! x2 Q6 B* z' d. o: g! b! a }
; k: D6 N; W8 u' }7 M3 b+ d}//将输入序列后加4个0
( P7 H, q* t6 X, tbool Checkout::qyu()' D: K8 r- n- i
{
; T, e, b% p2 q: X char c[5];, }; }- L. x+ f
int i,j,n;/ g: V' U: V! Y# B5 t0 `
int m=5;$ {9 _; E' q/ l% z' _
for(i=0;ax<i>=='0';i++);) }$ b- J( b, Q! s2 `
  if(i==length)
7 _. o9 H3 }& x  {cout<<"余式是0"<<endl;
, }$ I! t6 Q0 J# m4 v   cout<<"发送成功"<<endl;
2 R6 Y0 K5 R0 t+ \2 c   exit(0);
$ M! H: |" Q5 {- o  }
- p# S! x9 K+ ^4 Z& a& @' Selse{
/ V* u- ^" Y. k; n$ v: s; o/ _ for(i=0;i<5;i++)
; v* p& A4 E( X) _8 Y9 u  c<i>=ax<i>;/ H/ g1 I- W, D# Q
while(m==CRC)) R' d9 O# F% q( M) J1 P# u
{ for(j=0;j<CRC;j++)9 e# o7 L  K: ~4 y
   { . h# @  H- B: a4 v
                if(c[j]==data[j])  a6 t( R4 g' r& ?) w# t% N# h5 [
     c[j]='0';
$ j, d8 h) a' ?. f; Z    else, F; H9 l' W2 V- e  @6 D( b
     c[j]='1';
' U4 C. ~* T" J! }   }* N! ~8 _7 g' o8 {& y% A1 @
     for(j=0;c[j]=='0';j++);
) p' v6 [+ z' @6 X4 v       n=j;
& U( u5 ^/ D+ I     for(m=0;m<CRC-n;m++)
4 Z/ A0 r% k4 M) y1 v     {9 A7 ]5 m- R+ m* T, `- p. g  ^! u
    c[m]=c[j];
, V0 ]7 Z/ b; \2 H0 b$ g  C- A    j++;8 u, n, ^+ f9 V. }
   }- M$ @0 z; V0 i& Z
           while(i<length&&m<5)5 B- V+ [; {, F* f& f. X
   {
& c* X8 w# L' z" P; S" f0 @        c[m]=ax[i++];
. F, N' }9 ?3 x  H* p5 O" d     m++;       % i9 q5 `( k  J! `4 }
   }
0 z2 ?4 k! R# G) U }' [9 K7 }- ^( M: A- K/ @
}
& t8 {' K. L# B+ {, b int k;3 p9 ?( u4 T6 e9 p9 v4 ^( u
for(k=0;k<m;k++)* w+ C# Y  r! q2 \6 F6 w
  bx[k]=c[k];* \  n! |3 F) F! |" [; ]
for(j=0;bx[j]=='0';j++);% L* M7 W* b4 w" r& M: _+ l
  if(j==m)
& e; U$ w! a. `, J+ o  {cout<<'0'<<endl;7 d. a5 L0 b0 x, H! F2 `, U. |/ |
   x=0;
  p6 l  y" q& f0 H& Y1 l  return true;3 ^# c/ _* H- Y
  }/ q# V/ |, r1 T# z; F
  else- R4 _+ h! N) M
  {for(n=j;n<m;n++)
, T1 d/ P5 M1 X& }     cout<<bx[n];: |5 e: v9 r- _- j3 v
  x=m-j;# @. K9 z2 Z# S' w. [5 _  w
  cout<<endl;
$ B7 x2 Z( }3 t  return false;
8 y+ T; P( C1 V9 L% l& E" u2 M  }
( ]+ {+ Z9 D: L3 k) Y}8 D$ g/ A& k8 Y  ?5 `
void Checkout::add()
7 M$ G7 ~/ v9 W' U, x: Y{
- ?4 v- U+ P# w  C/ i' R1 Y. f) ]( Cint j=0;
6 J( @8 ]$ {4 f. c  for(int i=length-x;i<length;i++)3 ~! V$ F+ F  |/ j) j
    ax<i>=bx[j++];6 r3 F  S- s6 s  f  b, q0 Y
  cout<<"发送的序列加上余数后变成:";
5 s. V; n+ ~" x; ^* h/ n for(i=0;i<length;i++)
8 k1 c, v+ N, Y; W# W  cout<<ax<i>;
% o5 y% }3 E  } cout<<endl;
7 X: {" g0 {! D+ I& {}
- d# A$ ?5 G6 {, L3 y9 {void main()' z2 d5 r: g  z0 a# P1 z" \
{  
3 v, S3 R: `8 N* ]; _ cout<<"本次实验模拟CRC校验,其生成多项式的比特序列是11001"<<endl; * K- S" @1 T2 u/ E
    cout<<"请输入发送数据比特序列:"<<endl;
! C. l/ I" S: V; \6 u% j Checkout test;5 K9 f6 Z; ~: u- I/ S  O
test.cxc();' p+ X. s  h) G  [4 W9 E, P( E& {
  cout<<"余式比特序列是:";
" i! X3 E* u; x* k  test.qyu();
% e# d1 r: B# ^0 L! q; E5 @  test.add();* D5 S6 T# b, g1 `) b& a/ }* L
  cout<<"试试这次是否能被整除."<<endl;
7 P' K# G7 N% b cout<<"新余数是:";
4 }. `0 f$ R9 W9 s, H7 M/ I  if(test.qyu())
0 N4 x7 x3 ]7 y7 T' H' j   cout<<"已发送成功!"<<endl;
4 N0 P: F4 ?7 n* t  else2 C! E) |& _* {4 ]  L/ U7 P0 Y7 S  r
   cout<<"未发送,失败!"<<endl;" V- S. B' \/ V% 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 | 只看该作者
    给点小费偶帮你搞定 HOHO9 L3 I2 Q7 k8 \1 u6 |$ l- l* R( g
    [此贴子已经被作者于2005-6-16 22:49:36编辑过]

    8 i# Q, a5 o+ t% N% V2 k

    该用户从未签到

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

    本版积分规则

    关闭

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

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