漢明碼實(shí)驗(yàn)報(bào)告(內(nèi)附C源碼)_第1頁
漢明碼實(shí)驗(yàn)報(bào)告(內(nèi)附C源碼)_第2頁
漢明碼實(shí)驗(yàn)報(bào)告(內(nèi)附C源碼)_第3頁
漢明碼實(shí)驗(yàn)報(bào)告(內(nèi)附C源碼)_第4頁
漢明碼實(shí)驗(yàn)報(bào)告(內(nèi)附C源碼)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、實(shí)驗(yàn)名稱:漢明碼二、實(shí)驗(yàn)環(huán)境軟件環(huán)境:windows 2000, microsoft visual c+6.0硬件環(huán)境:p4, 2.4ghz, 256內(nèi)存,ibm-pc及兼容機(jī)三、實(shí)驗(yàn)?zāi)康牧私鉂h明碼的編碼原理,糾錯(cuò)原理,譯碼原理;給定漢明碼的監(jiān)督矩陣,能夠?qū)憣缟?矩陣,能夠通過監(jiān)督矩陣或生成矩陣進(jìn)行編碼,能夠通過監(jiān)督矩陣進(jìn)行校碼與譯碼,會計(jì)算 漢明碼的錯(cuò)誤概率以及導(dǎo)出增余漢明碼等相關(guān)知識。四、實(shí)驗(yàn)內(nèi)容在microsoft visual c+ 6.0軟件壞境下,編寫一個(gè)程序,使之實(shí)現(xiàn)漢明碼以及增余漢 明碼的編碼、檢碼、譯碼過程。1、通過對書本的學(xué)習(xí),以及對課堂知識的學(xué)握,了解漢明碼的糾錯(cuò)原

2、理,編寫出漢明 碼的糾錯(cuò)程序。2、基于漢明碼的編寫,進(jìn)一步完成對檢碼譯碼及增余漢明碼的實(shí)現(xiàn)。3、實(shí)驗(yàn)驗(yàn)證程序的合理性,結(jié)果的正確性,和結(jié)構(gòu)的完善性。五、實(shí)驗(yàn)過程與實(shí)驗(yàn)結(jié)果源程序:# include<iostream># include<string>using namespace std;#define pe 0.0001class hmcodingprivate:int n,k,r;/漢明碼參數(shù)int i,j;用于指示循壞次數(shù)int *h,*x,*g,*check_code;string *h_column,*h_column_z,code_str;int code_

3、n um ,code_n um_z;public:void initializing(int,int);void show_h(int,int);void get_g();void show_g(int,int);void hm_efficiency_analysing();/*對漢明碼進(jìn)行編碼效率分析*/ int binary_str_check(string);void encodingo;/漢明碼編碼void encoding_z();/增余漢明碼編碼void decoding。;/漢明碼譯碼void decoding_z();/增余漢明碼譯碼void get_h_column();/獲

4、取漢明碼監(jiān)督矩陣的每一列void get_h_column_z();/獲取增余漢明碼監(jiān)督矩陣的每一列void get_judge_resu11();/獲取漢明碼校碼結(jié)果void get_judge_result_z();/獲取增余漢明碼校碼結(jié)果void checkingo;/漢明碼校碼void checking_z();/增余漢明碼校碼 void goto_hmcding_z();;hmcoding hmcoding;/全局變量始 化 模 塊void hmcoding:initializing(int _n,int _k)n=_n;k=_k;r=_n-_k;cout«n請給定(h&#

5、171;n«n , h«k«n )漢明碼的監(jiān)督矩陣h”vvkv“ <<n«,:,«endl;h=new int *r+l;初始化(n,k)漢明碼監(jiān)督矩陣for(i=0;i<r+1 ;i+)hi=new intn+l;for(i=o;i<r;i+)for(j=0;j<n;j+)cin»hij;初始化增余項(xiàng)for(j=0;jvn+l;j+)hrjl=l;for(i=0;i<r;i+)hin=0;為x分配存儲單元x=new intn+l;for(j=0;j<n+l;j+)xj=o;get_h_col

6、umn();/獲取監(jiān)督矩陣的每一列g(shù)et_h_column_z();/進(jìn)一步獲取增余監(jiān)督矩陣的每一列獲取監(jiān)督矩陣的每一列,用于漢明碼校碼void hmcoding:get_h_column()string temp;h_column=new stringn+l;for(i=0;i<n;i+)temp=”;for(j=0;jvr;j 卄)if(!hji)temp+=,0,;elsetemp+二t;h_columni=temp;h_columnn=”000”;獲取增余監(jiān)督矩陣的每一列,用于增余漢明碼校碼 void hmcoding:get_h_column_z()h_column_z=new

7、 stringn+2; for(i=0;ivn+l ;i+)h_column_zfi=h_columni+'r;h_column_zn+ l=n0000h;void hmcoding:show_h(int x,int y) for(i=0;i<x;i+)for(j=0;j<y;j+) cout«hij«n n;cout«endl;void hmcoding:get_g()g=new int *k;for(i=0;i<k;i+)gi=new intn;for(i=0;i<k;i+)for(j=0;j<k;j+)elsegiu=0

8、;for(i=0;i<r;i+) for(j=0;j<k;j+)gui+k=hiu;void hmcoding:show_g(int x,int y)get_g(); for(i=0;ivx;i+)for(j=0;j<y;j+) cout«gilj«n n;cout«endl;void hmcoding:hm_efficiency_analysing()cout«n對(',«n«", n«k«n)漢明碼的評價(jià)如下:n«endl;cout«n ( h«

9、n«n ,” vvkvv”)漢明碼的效率e=vn*100%=u«k*1.0/n *100«m%u«endl;cout«n ( ,«n«m , n«k«n )漢明碼的錯(cuò)誤概率p=n*(n-l)*pe*pe="«n*(n-l)*pe*pe«endl;/<i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <i* <

10、i* <i* <i* <i* <i* <i*/ /二進(jìn)制序列合理性檢測int hmcoding: b inary_str_check(string temp)編碼模塊intflagl;/先假設(shè)輸入的消息串不含除0、1外的字符 for(int i=0;tempi !=*0,;i+)if(!(tempi=,o'|tempi=,r)flag=0;break;return flag;漢明碼編碼void hmcoding:encoding()a: string binary_str;int flag;int binary_num=0;cout«n請輸入待編

11、碼的二進(jìn)制序列:h«endl;cin»binary_str;flag=binary_str_check(binary_str);while(binary_strbinary_num!=,o')binary_num+;/*統(tǒng)計(jì)輸入的二進(jìn)制序列所含碼元個(gè)數(shù)*/ if(binary_num%k!=o&&flag)/*序列所含碼元個(gè)數(shù)不是k的整數(shù)倍,無法全部編碼*/coutvv”您輸入的二進(jìn)制序列存在冗余,請重新輸入!n”; goto a;if(binary_num%k! =0&& !flag)coutvv”您輸入的二進(jìn)制序列存在冗余且含除0

12、、1外的字符,請重新 輸入!n”;goto a;if(binary_num%k=o&&!flag)cout«h您輸入的二進(jìn)制序列含除0、1外的字符,請重新輸入!n”; goto a;code_str=,n'for(i=0;i<binary_num;i=i+k) for(j=0;jvk;j+)/*獲取 k 位信息元*/ if(binary_stri+j=,o,)xj=0;elsexu>1;int temp;string partial_str=h"for(int t=o;t<n;t+)/*用k位信息元組成的向量與生成矩陣作矩陣乘法,得

13、到對應(yīng)n元 碼組*/temp=0;for(j=0;j<k;j+)temp+=xj*gjt;if(temp%2=0)partial_str+=,o,;elsepartial_str4-=,r; code_str+=partial_str;cout«n進(jìn)行(h«n«n, u«k«n )漢明碼編碼后的二進(jìn)制序列為: n n«code_str«endl;增余漢明碼編碼void hmcoding:encoding_z()code_str=,'"a_z:string binary_str;int flag;int

14、 binary_num=0;cout«n請輸入待編碼的二進(jìn)制序列:” vvendl;cin»binary_str;flag=binary_str_check(binary_str);while(binary_strbinary_num!=,o,)binary_num+;/*統(tǒng)計(jì)輸入的二進(jìn)制序列所含碼元個(gè)數(shù)*/ if(binary_num%k!=o&&flag)/*序列所含碼元個(gè)數(shù)不是k的整數(shù)倍,無法 全部編碼*/cout«h您輸入的二進(jìn)制序列存在冗余,請重新輸入!;goto a_z;if(binary_num%k!二0&&! fla

15、g)cout«"您輸入的二進(jìn)制序列存在冗余且含除0、1外的字符,請重新 輸入!n”;goto a_z;if(binary_num%k=o&&! flag)cout«n您輸入的二進(jìn)制序列含除0、1外的字符,請重新輸入!n”;goto a_z;for(i=0;i<binary_num;i=i+k)for(j=0;jvk;j+)/*獲取 k 位信息元*/if(binary_stri+j=,o,)xu>o;elsexoi=i;int temp;string partial_str=h"for(int t=o;t<n;t+)/*用

16、k位信息元組成的向量與生成矩陣作矩陣乘法,得到對應(yīng)n元碼組*/temp=0;for(j=0;j<k;j 卄) temp+=xj*gju;if(temp%2=0) partial_str+='o,; xj+k=o;elsepartial_str+=,r; xj+k二 1;生成增余漢明碼最后一位監(jiān)督規(guī)則:對原漢明碼所有n個(gè)碼元取模2和 int sum=o;for(j=0;j<n;j+)sum+=xj;if(sum%2=0)partial_str+='o'elsepartial_str+=,r;code_str+=partial_str;cout«n進(jìn)行

17、(h«n+1«% «k«n)增余漢明碼編碼后的二進(jìn)制序列為:nn«code_str«endl;/*i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i* *i*利用漢明碼校碼void hmcoding:checking()b: string binary_str;int flag;int binary _num=0;cout«"請輸入待譯的二進(jìn)制序列:h«endl;cin»binary_

18、str;flag=binary_str_check(binary_str);while(binary_strbinary_num!='0°)binary_num+;/*統(tǒng)計(jì)輸入的二進(jìn)制序列所含碼元個(gè)數(shù)*/ if(binary_num%n!=o&&flag)/*序列所含碼元個(gè)數(shù)不是n的整數(shù)倍,無法 全部譯碼*/cout«"您輸入的二進(jìn)制序列存在冗余,請重新輸入!n”; goto b;if(binary_num%n! =0&& !flag)cout«h您輸入的二進(jìn)制序列存在冗余口含除0、1外的字符,請重新 輸入!n”;

19、goto b;if(binary_num%n=二 0&&!flag)cout«m您輸入的二進(jìn)制序列含除0、1外的字符,請重新輸入!n”; goto b;code_num=binary_num/n;/統(tǒng)計(jì) n 元碼組的個(gè)數(shù) check_code=new int* code_num;for(i=0;i<code_num;i+) check_codei=new intn;for(i=0;i<code_num;i+)/*每次取n個(gè)碼元進(jìn)行校正*/for(j=0;j<n;j+) check_codeij=binary_stri*n+j-,0'get_j

20、udge_result();利用增余漢明碼校碼void hmcoding:checking_z()b_z:string binary_str;int flag;int binary_num=0;cout«h請輸入待譯的二進(jìn)制序列:h«endl;cin»binary_str;flag=binary_str_check(binary_str);while(binary_strbinary_num!=,0*)binary_num+;/*統(tǒng)計(jì)輸入的二進(jìn)制序列所含碼元個(gè)數(shù)*/ if(binary_num%(n+l)!=o&&flag)/*序列所含碼元個(gè)數(shù)不是

21、n+1的整數(shù)倍, 無法全部譯碼*/cout«n您輸入的二進(jìn)制序列存在冗余,請重新輸入!n”; goto b_z;if(binary_num%(n+1 )!=0&&!flag)cout«"您輸入的二進(jìn)制序列存在冗余口含除0、1外的字符,請重新 輸入!n”;goto b_z;if(binary_num%(n+1 )=0&&!flag)cout«h您輸入的二進(jìn)制序列含除0、1外的字符,請重新輸入!n”; goto b_z; _ code_num_z=binary_num/(n+1);/統(tǒng)計(jì) n+1 元碼組的個(gè)數(shù) check_co

22、de=new int* code_num_z;for(i=0;i<code_ num _z;i+) check_codei=new intn+2;for(i=0;i<code_num_z;i+)/*每次取n+1個(gè)碼元進(jìn)行校正*/for(j=0;j<n+l;j+) check_codei j=binary_stri*(n+1 )+j-*0'get_judge_result_z();1獲取漢明碼校碼結(jié)果void hmcoding:get_judge_result()int temp;int flag;string partial_str;cout«"

23、("«n«", n«k«n)漢明碼校碼結(jié)果如下:u«endl;cout«n碼組狀態(tài)校正后"«endl;for(int t=0;t<code_num;t+)flag=0;partial_str=n"for(i=0;i<r;i+)temp=0;for(j=0;j<n;j+) temp+=hil j *check_codetl j;if(temp%2=0) partial_str+=,o,;elsepartialstr+'l'對partial_str進(jìn)行判斷

24、for(i=0;i<n+l;i+)if(h_columni=partial_str)flag 二 1 ;break; if(flag&&i<n)m示第i個(gè)碼元出錯(cuò),將其改正 for(j=0;j<n;j+)cout«check_codet j ; cout«h第"«i+l«"位錯(cuò),可糾正”;check_codeti=(check_codeti+1 )%2;/l 變 0, 0 變 1 for(j=0;j<n;j+)cout«check_codet j ;if(flag&&i

25、=n) 表示全對- for(j=0;j<n;j+)cout«check_codet j ;cout«m全對for(j=0;j<n;j+)cout«check_codeft fj ;cout«endl;獲取增余漢明碼校碼結(jié)果void hmcoding:get_judge_result_z()int temp;int flag;string partial_str;cout«n (n«n+l«n, ”vvkvv”)增余漢明碼校碼結(jié)果如下(注:*表示 無法識別的碼元):"«endl;cout

26、1;n碼組狀態(tài)校正后"«endl;for(int t=0;t<code_num_z;t+)flag=0;partial_sti-,n,;for(i=0;i<r+l ;i+)temp=0;for(j=o;j<n+l ;j+)temp+=hi j *check_codet j;if(temp%2=0)partial_str+=fo,;elsepartial_str+=fr;對partial_str進(jìn)行判斷 for(i=0;i<n+2;i+)if(h_column_zi=partial_str)flag=l;break; if(flag&&

27、i<n+l)/表示第i個(gè)碼元出錯(cuò),將其改正 一check_code t n+1 二 1;表示正確接收 for(j=0;j<n+l;j4-+)cout«check_codet j ;cout«n第"«i+l«u位錯(cuò),可糾正check_codeti=(check_codeti+1 )%2;/l 變 0, 0 變 1 for(j=0;j<n+l;j+)cout«check_codet fj ; 一if(flag&&i=n+1)表示全對 一check_code t n+1 二 1;表示正確接收 for(j=0

28、;j<n+l;j+)cout«check_codet j ;cout«m全對for(j=0;j vn+1 ;j+)cout«check_codeftfj ;if(!flag)check_codetn+1 =0;表示兩位岀錯(cuò)并無法糾正 for(j=0;j<n+l;j+)cout«check_codet fj ;cout«"某兩位出錯(cuò),無法糾正*;for(j=0;j<n+l;j+)coutvv*;/*表示無法正確識別的碼元cout«endl;k£>k£ k£ k£

29、k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£ k£> /*.、,、,、,、 t利用漢明碼譯碼模void hmcoding:decoding()cout«n ("«n«", n«k«h)漢明碼譯碼結(jié)果為:”vvendl; for(i=0;i<code_

30、num;i+)forq=0;j<k;j+)cout«check_codei j ;cout«endl;利用增余漢明碼譯碼void hmcoding:decoding_z()表示無cout«" (n«n+l«n, h«k«n)增余漢明碼譯碼結(jié)果為(注: 法識別的碼元):"«endl;fbr(i=0;i<code_ num _z;i+)if(check_codei n+1=1)fot(j=0;jvk;j+)cout«check_code i j ;elseforg=0;j<

31、;k;j+)cout«,*;cout«endl;void hmcoding:goto_hmcding_z()char choice 1-'cout«"n *歡迎進(jìn)入(”vvn+lvv”,”vvkvv”)增余漢明 碼編碼/校碼/譯碼系統(tǒng)*5”;cout«n由漢明監(jiān)督矩陣導(dǎo)出的增余監(jiān)督矩陣h”r+lvv”vvn+l«” 為:"«endl;hmcoding.show_h(r4-1 ,n+1);z: cout«"n »»»»»»

32、7;»»»> ("<<n+l«,n«k«n)增余漢明 碼編碼/校碼/譯碼系統(tǒng)««««««<<«««n ”;cout«nh«he.增余漢明碼編碼” vv”h«hd.增余漢明碼校碼/ 譯碼” vv”h«"r.返冋” vv”退出 n«endl;cout«m請輸入您要操作的步驟:”; cin»choicel;if(choice 1 =,

33、e,|choice 1 ='e,)/ 進(jìn)行編碼 hmcoding.encoding_z();goto z;else if(choicel=d|choice 1 =*d,)hmcoding.checking_z(); hmcoding.decoding_z();goto z;else if(choice 1 ='r'|choice 1 ='r')return;else if(choice 1 ='q'|choice 1 ='q')/退出exit(o);else/如果選了選項(xiàng)之外的就讓用戶重新選擇cout«m您沒有輸

34、入止確的步驟,請重新輸入! ”vvendl;goto z;cout«endl;void main()char choice='用于記錄初始化情況int flag=0;int n,k;cout«hn09計(jì)科二班信息論第二實(shí)驗(yàn)小組小組成員:學(xué)號一一姓名"«endl;cout«n20091883cout«"20091888cout«h20091908cout«h20091909cout«h20091911cout«"n潘柳燕”endl; 李文超h«endl; 周發(fā)

35、洪"«endl; 吳針朋h«endl;張丹(組長)n«endl;*漢明碼編碼/校碼/譯碼系統(tǒng)cout«"請輸入漢明碼的碼長n=”;cin»n;cout«n請輸入漢明碼的信息元個(gè)數(shù)k=”;cin»k;while(choice!=q&&choice!二q)當(dāng) choice 的值不為 q 且不為 q 時(shí)循環(huán)c: cout«hn »»»»»»»»»»»> (u«n

36、«u,n«k«")漢明 碼編碼/校碼/譯碼系統(tǒng) ««««««<<««n,;cout«nn«hl輸入建立” vv”漢明碼編碼” vv”h«nd.漢明碼校碼/譯碼n”;cout«nn«nz.進(jìn)入相應(yīng)的增余漢明碼系統(tǒng)h«u” vv”q退出;cout«n請輸入您要操作的步驟:”;cin»choice;if(choice=,i,|choice=,i,)/ 初始化if(!flag)/初次執(zhí)行初始化

37、操作flag 二 1 ;1hmcoding.initializing(n,k);cout«n您輸入的監(jiān)督矩陣 h«n-k«nm«n«"為:”vvendl; hmcoding.show_h (n k,n);cout«n該監(jiān)督矩陣對應(yīng)的生成矩陣g«k«nn«n«n 為:n«endl;hmcoding.show_g(k,n); hmcoding.hm_efficiency_analysing();else if(choice='e,|choice=*e,)/進(jìn)行編碼if(!

38、flag)coutvv”操作錯(cuò)誤!請執(zhí)行輸入建立操作后再進(jìn)行木操作!n«endl;goto c;hmcoding.encodingo;else if(choice='d'|choice='d,)/校碼、譯碼coutvv“操作錯(cuò)誤!請執(zhí)行輸入建立操作后再進(jìn)行木操作!n«endl;goto c;hmcoding.checkingo;hmcoding.decodingo;)else if(choice='z,|choice=,z,)if(!flag)coihvv“操作錯(cuò)誤!請執(zhí)行輸入建立操作后再進(jìn)行本操 作!”vvendl;goto c;進(jìn)入增余漢

39、明碼系統(tǒng) hmcoding.goto_hmcding_z();else if(choice='q,|choice=,q,)/退岀exit(o);else/如果選了選項(xiàng)之外的就讓用戶重新選擇cout«h您沒有輸入正確的步驟,請重新輸入! “vvendl;goto c;cout«endl;運(yùn)行結(jié)果:1、首先需輸入建立(n, k)漢明碼f:tod腳g結(jié)構(gòu)丁0毎程信息論漢明碼debughmcoding.exe*即計(jì)科二班信息論第二實(shí)驗(yàn)小組小組成員:學(xué)號一 一姓名200918832009188820091908張丹(組長)2009190920091911x x x xxxx

40、x xx x x x xx x x x xx x x x興,漢明旳勺編彳馬/榜彳馬/譯不系幺充xx x xx興x x xxmx x xxx x x xxx x x x x 請拋漢明碼的租巷n豈丄、一請輸入漢明碼的信息元個(gè)數(shù)k=4»»»»»»»»»»»>(7,4)漢明碼編碼/校碼/譯碼系統(tǒng)<<<<<<<<<<<<<<<<<<<<i趨建皇入e.漢餌獨(dú)編碼d.漢日護(hù)馬

41、校碼/譯碼z-iaffi應(yīng)的增余漢明碼累統(tǒng)q.逍岀醸離鬻猷轟操作后再進(jìn)行本操作?2、給定監(jiān)督矩陣,導(dǎo)出相應(yīng)的生成矩陣,顯示出錯(cuò)誤概率及編碼效率3、漢明碼編碼注:輸入的信息序列應(yīng)為k的整數(shù)倍,否則會報(bào)錯(cuò)。»»»»»»»»»»»>(7,4)漢明碼編碼/校碼/譯碼系統(tǒng)<<<<<<<<<<<<<<<<<<<< i 皺入建莖人e漢囪獨(dú)編碼d漢日護(hù)%校碼丿譯碼+、亠丄挖謹(jǐn)?shù)?/p>

42、應(yīng)的增余漢明碼累統(tǒng)q趙出1001010請董新輸入正確編碼:»»»»»»»»»»»>(7.4)漢明碼編碼/校碼/譯碼系統(tǒng)<<<<<<<<<<<<<<<<<<<<d遛校矽譯碼l上歎蠶的增余漢謡髒編碼鶉籍鬻勰蠱制甌100001000011進(jìn)行(入4)漢明碼編碼后的二進(jìn)制序列為,1000011010010100110014、漢明碼校碼、譯碼注:待譯的二進(jìn)制序列應(yīng)為n的整倍數(shù),否則報(bào)錯(cuò)。»»»»»»»»»»»>(7,4)漢明碼編碼/校碼/譯碼系統(tǒng)<<<<«<<<<<<<<<<<<<< i邇建莖心人e漢囪獨(dú)編碼d漢呼?校碼/譯碼請皺入賽請淪入祥10000010

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論