基于GUI的科學(xué)計算器設(shè)計(共44頁)_第1頁
基于GUI的科學(xué)計算器設(shè)計(共44頁)_第2頁
基于GUI的科學(xué)計算器設(shè)計(共44頁)_第3頁
基于GUI的科學(xué)計算器設(shè)計(共44頁)_第4頁
基于GUI的科學(xué)計算器設(shè)計(共44頁)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課 程 論 文論文題目: 基于GUI的科學(xué)計算器設(shè)計 學(xué) 院: 學(xué)生姓名: 張00 學(xué) 號: 專業(yè)年級: 0 課程名稱: 工具軟件 完成時間: 成 績: 教師簽字: 專心-專注-專業(yè)基于GUI的科學(xué)計算器設(shè)計摘要:隨著信息技術(shù)的發(fā)展,數(shù)據(jù)變得越來越繁雜,所以計算器在我們?nèi)粘I顚W(xué)習(xí)中扮演越來越重要角色。本文基于MATLAB設(shè)計的GUI科學(xué)計算器,改進了以前功能較少的計算器,添加了平方求和、方差、均值、反三角函數(shù)、等常用數(shù)學(xué)運算。此科學(xué)計算器具有實用性強、功能強大、易操作、移植性好、占用資源少、執(zhí)行效率高等優(yōu)點。關(guān)鍵字:MTALAB; GUI; 科學(xué)計算器1.引言隨著計

2、算機科學(xué)和技術(shù)的發(fā)展,“計算的可視化”已成為科學(xué)計算的重要組成部分。與此同時數(shù)值計算軟件的發(fā)展與成熟, 在強調(diào)數(shù)值計算方法的原理、思想和基本理論的同時, 適當(dāng)?shù)怂惴ǖ募毠?jié)和繁雜的理論證明,并在一個通用的軟件平臺上開展。MATLAB 以強大的科學(xué)計算與可視化功能、簡單易用、開放式可擴展環(huán)境,成為計算機輔助設(shè)計和分析、算法研究和應(yīng)用開發(fā)的基本工具和首選平臺。MATLAB 的附帶功能圖形用戶界面(GUI)更具有友好性、直觀性、易懂性的優(yōu)點而被廣泛應(yīng)用。本文根據(jù)人們需要方便快捷,通俗易懂的原則,設(shè)計了一個科學(xué)計算器的圖像用戶界面,在GUI上實現(xiàn)了加減乘除、三角函數(shù)、反三角函數(shù)、進制轉(zhuǎn)化、邏輯與或非

3、運算、求和運算、求解方差和均值等常見基本數(shù)學(xué)運算功能。2.設(shè)計過程Matlab的程序設(shè)計較為簡便,首先建立一個GUI工程,然后用可視化界面,設(shè)計出科學(xué)計算器的大致外觀,為每一個按鍵設(shè)置預(yù)計的功能,然后就是將對應(yīng)的函數(shù)寫到框架生成的程序中,然后每個按鍵就可以實現(xiàn)對應(yīng)的功能。GUI設(shè)計的概括流程圖:建立邊框和顯示文本輸入的編輯框(設(shè)定默認(rèn)值)建立輸出窗口建立響應(yīng)按鈕建立退出按鈕建立GUI窗口(用句柄語言控制) 設(shè)計的GUI界面如下圖所示:.總結(jié)及心得體會本文是借助Matlab設(shè)計的GUI來實現(xiàn)科學(xué)計算器的眾多功能,實現(xiàn)過程較為簡單。首先建立一個GUI工程,然后用可視化界面,設(shè)計出計算器的大致外觀,

4、為每一個按鍵設(shè)置預(yù)計的功能,然后就是將對應(yīng)的函數(shù)寫到框架生成的程序中,然后每個按鍵就可以實現(xiàn)對應(yīng)的功能。在設(shè)計的過程中還是遇到很多的困難的,首先就是程序的問題,搭建出計算器的外觀以后,生成的框架程序是一個看似非常雜亂的程序,每個按鍵對應(yīng)什么功能根本看不出來,于是我在原來的工程中修改了每一個按鍵的名稱。編程的過程中,主要就是對全局變量和句柄的控制,對相應(yīng)的值賦值以后,要返回給主程序,然后就可以在static text中顯示出來的。句柄是一個很重要的概念,基本所有的操作都是通過句柄實現(xiàn)的,MATLAB在創(chuàng)建每一個圖形對象時,都為該對象分配唯一的一個值,稱其為圖形對象句柄(Handle)。句柄是圖形

5、對象的唯一標(biāo)識符,不同對象的句柄不可能重復(fù)和混淆。例如:set(句柄,屬性名1,屬性值1,屬性名2,屬性值2,),基本所有關(guān)聯(lián)到圖形操作的函數(shù)語句都是這樣的格式:函數(shù)名(句柄,進行的操作),因此句柄是一個圖形的名稱,是對圖形進行操作的媒介。本文設(shè)計的科學(xué)計算器具有實用性強、功能強大、易操作、移植性好、占用資源少、執(zhí)行效率高等優(yōu)點。但是,也存在不足的方面;(1)可視化界面沒有達到最佳效果;(2)對于方差的求解只能求解數(shù)組類,不具連續(xù)性。以后還需要進一步完善和改進。通過這次Matlab的GUI實驗設(shè)計,使我對matlab的操作與GUI界面設(shè)計有了更深一步的理解和認(rèn)識,學(xué)習(xí)到了以前未曾了解的知識,使

6、我受益良多,收獲頗豐。最后,感謝馮老師這學(xué)期的授課,在此說聲:謝謝!.參考文獻【1】 常巍,謝光軍,黃朝峰.MATLABR2007基礎(chǔ)與提高.北京:電子工業(yè)出版社 2007.9【2】 劉衛(wèi)國.MATLAB程序設(shè)計與應(yīng)用第2版.北京:高等教育出版社,2006.7【3】 張德喜等.MATLAB程序設(shè)計與教程.北京:中國鐵道出版社,2006.6【4】 韓旭里,萬中,劉金山.數(shù)值分析與實驗.北京:科學(xué)出版社,2006【5】 董氏虹,高志,余嘯海. Matlab,工具箱原理與應(yīng)用.北京:國防工業(yè)出版社,2004.【6】 秦襄培.matlab圖像處理與界而編程寶典M.北京:電子工業(yè)出版社,2009.【7】

7、 鄭斌祥,席裕庚,杜秀花.Matlab曲線繪制J.自動化學(xué)報,2004, 41(1):41-43.【8】 范明,孟小峰.Matlabd的GUI設(shè)計M.北京:機械工業(yè)出版社,2001.【9】 史東輝,蔡慶牛,倪志偉等.基于GUI的圖像繪制方法J.計算機研究與發(fā)展,2000,37(9) : 1094-1100.附 錄科學(xué)計算器GUI設(shè)計的源代碼:function varargout = jisuanqi4(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton

8、', gui_Singleton, . 'gui_OpeningFcn', jisuanqi4_OpeningFcn, . 'gui_OutputFcn', jisuanqi4_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_

9、mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before jisuanqi4 is made visible.function jisuanqi4_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;javaFrame = get(hObject,'JavaFrame');

10、javaFrame.setFigureIcon(javax.swing.ImageIcon('icon1.jpg');global opop=zeros(1,7);handles.exp=' 'guidata(hObject, handles);function varargout = jisuanqi4_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;% - Executes on button press in num7.function num7_Callback(hOb

11、ject, eventdata, handles)global opm='7'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于

12、20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num8_Callback(hObject, eventdata, handles)global opm='8'n=m '.&#

13、39;a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m)

14、else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 %計算狀態(tài)、其他進制、長度小于20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num9_Callback(hObject, eventdata, handles)global opm='9'n=m '.'a=op;str=get(handles.xianshi,'stri

15、ng');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string&

16、#39;,str(1:end-1) n) end endelseif length(str)<20 %計算狀態(tài)、其他進制、長度小于20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num4_Callback(hObject, eventdata, handles)global opm='4'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(

17、a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length

18、(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num5_Callback(hObject, eventdata, handles)global opm='5'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handl

19、es.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m)enda

20、(3 5)=0 1;op=a;function num6_Callback(hObject, eventdata, handles)global opm='6'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(

21、2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num2_Callback(hObject, eventdata, h

22、andles)global opm='2'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set

23、(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num3_Callback(hObject, eventdata, handles)global opm='3'n=m '.'a=op;str=get(ha

24、ndles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handl

25、es.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num0_Callback(hObject, eventdata, handles)global opm='0'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&

26、amp;(a(2) set(handles.xianshi,'string',n) else set(handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif l

27、ength(str)<20 set(handles.xianshi,'string',str m)enda(3 5)=0 1;op=a;function num1_Callback(hObject, eventdata, handles)global opm='1'n=m '.'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) if (a(1)&&(a(2) set(handles.xianshi,'string',n) else set(

28、handles.xianshi,'string',m) endelseif (a(1)&&(a(2) %計算狀態(tài)%十進制 if length(str)<20 %數(shù)的長度小于20 if a(6) %小數(shù) set(handles.xianshi,'string',str m) else %整數(shù) set(handles.xianshi,'string',str(1:end-1) n) end endelseif length(str)<20 set(handles.xianshi,'string',str m

29、)enda(3 5)=0 1;op=a;function num_fuhao_Callback(hObject, eventdata, handles)global opstr=get(handles.xianshi,'string');if strcmp(str(1),'-') set(handles.xianshi,'string',str(2:end)elseif (op(1)&&(op(2) set(handles.xianshi,'string','-' str)endop(3)=0;fu

30、nction dot_Callback(hObject, eventdata, handles)global opif isequal(op(1 2 6),0 0 0) %十進制整數(shù) op(6)=1;endop(5)=1;function numb_Callback(hObject, eventdata, handles)global opm='B'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) set(handles.xianshi,'string',m) a(5)=1;elseif le

31、ngth(str)<20 set(handles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function add_Callback(hObject, eventdata, handles)global opa=op;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(3) exp(end)='+'else exp=exp num2str(num) '+'enda(3 5 7)=1 0 0;op

32、=a;handles.exp=exp;guidata(hObject,handles);function equal_Callback(hObject, eventdata, handles)global opa=op;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(7) if a(3) exp(end)='' else exp=exp sprintf('(%g)',num); endelse exp=exp sprintf('%g)',f

33、loor(num); a(7)=0;endtry res=eval(exp);catch if isequal(a(1 2),0 0) set(handles.xianshi,'string','0.') else set(handles.xianshi,'string','0') end a(5)=0; handles.exp=' ' guidata(hObject,handles) returnendc=val2str(res,a);a(5)=0;op=a;handles.exp=' 'set(

34、handles.xianshi,'string',c)guidata(hObject,handles) function num=str2val(b,a)if isequal(a(1 2),0 1) num=bin2dec(b);elseif isequal(a(1 2),1 1) num=hex2dec(b);elseif isequal(a(1 2),1 0) num=oct2dec(eval(b);else num=str2num(b);endfunction c=val2str(b,a)if isequal(a(1 2),0 0) c=sprintf('%g&#

35、39;,b); if isempty(find(c='.') c=c '.' endelseif isequal(a(1 2),0 1) c=dec2bin(abs(b);elseif isequal(a(1 2),1 1) c=dec2hex(abs(b);else i=1; while res>7 d(i)=rem(abs(b),8); i=i+1; res=floor(abs(b)/8); end d(i)=res; c=sprintf('%d',fliplr(d);endfunction xy_Callback(hObject, e

36、ventdata, handles)global opa=op;if isequal(a(1 2),0 0) returnenda(5 6)=0 1;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(4) if a(3) exp(end)='' else a(3)=1; exp=exp num2str(num) '' endelse a(4)=0; set(handles.secndf,'visible','off') set

37、(handles.radiobutton1,'enable','on') set(handles.radiobutton2,'enable','on') set(handles.radiobutton3,'enable','on') if a(3) exp(end)='(-1)' else a(3)=1; exp=exp num2str(num) '(-1)' endenda(5)=0;op=a;handles.exp=exp;guidata(hObject,hand

38、les) function minus_Callback(hObject, eventdata, handles)global opa=op;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(3) exp(end)='-'else a(3)=1; exp=exp num2str(num) '-'enda(3 5 7)=1 0 0;op=a;handles.exp=exp;guidata(hObject,handles);function multiply_C

39、allback(hObject, eventdata, handles)global opa=op;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(3) exp(end)='*'else exp=exp num2str(num) '*'enda(3 5 7)=1 0 0;op=a;handles.exp=exp;guidata(hObject,handles);function divide_Callback(hObject, eventdata, han

40、dles)global opa=op;b=get(handles.xianshi,'string');num=str2val(b,a);exp=handles.exp;if a(3) exp(end)='/'else exp=exp num2str(num) '/'enda(3 5 7)=1 0 0;op=a;handles.exp=exp;guidata(hObject,handles);function numa_Callback(hObject, eventdata, handles)global opm='A'a=op;s

41、tr=get(handles.xianshi,'string');if a(5)%初始狀態(tài) set(handles.xianshi,'string',m) a(5)=1;elseif length(str)<20 set(handles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function numc_Callback(hObject, eventdata, handles)global opm='C'a=op;str=get(handles.xianshi,'strin

42、g');if a(5)%初始狀態(tài) set(handles.xianshi,'string',m) a(5)=1;elseif length(str)<20 set(handles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function numd_Callback(hObject, eventdata, handles)global opm='D'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) set(handles.

43、xianshi,'string',m) a(5)=1;elseif length(str)<20 set(handles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function nume_Callback(hObject, eventdata, handles)global opm='E'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) set(handles.xianshi,'string',m) a(5)=

44、1;elseif length(str)<20 set(handles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function numf_Callback(hObject, eventdata, handles)global opm='F'a=op;str=get(handles.xianshi,'string');if a(5)%初始狀態(tài) set(handles.xianshi,'string',m) a(5)=1;elseif length(str)<20 set(ha

45、ndles.xianshi,'string',str m)enda(3,6)=0 0;op=a;function pi_val_Callback(hObject, eventdata, handles)set(handles.xianshi,'string','3.')% - Executes on button press in lgx.function lgx_Callback(hObject, eventdata, handles)global opa=op;if isequal(a(1 2),0 0) returnenda(5 6)=0

46、1;handles.exp=' 'str=get(handles.xianshi,'string');if a(4) try format short res=eval(sprintf('log10(%s)',str); set(handles.xianshi,'string',num2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,'string','運算錯誤!') endelse a(4)=0; set(handles.sec

47、ndf,'visible','off') set(handles.radiobutton1,'enable','on') set(handles.radiobutton2,'enable','on') set(handles.radiobutton3,'enable','on') try format short res=eval(sprintf('10(%s)',str); set(handles.xianshi,'string',n

48、um2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,'string','運算錯誤!') endendop=a;guidata(hObject,handles) function lnx_Callback(hObject, eventdata, handles)global opa=op;if isequal(a(1 2),0 0) returnenda(5 6)=0 1;handles.exp=' 'str=get(handles.xianshi,'string

49、9;);if a(4) try format short res=eval(sprintf('log(%s)',str); set(handles.xianshi,'string',num2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,'string','運算錯誤!') endelse a(4)=0; set(handles.secndf,'visible','off') set(handles.radiobutton1,

50、9;enable','on') set(handles.radiobutton2,'enable','on') set(handles.radiobutton3,'enable','on') try format short res=eval(sprintf('exp(%s)',str); set(handles.xianshi,'string',num2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,&#

51、39;string','運算錯誤!') endendop=a;guidata(hObject,handles) function log2x_Callback(hObject, eventdata, handles)global opa=op;if isequal(a(1 2),0 0) returnenda(5 6)=0 1;handles.exp=' 'str=get(handles.xianshi,'string');if a(4) try format short res=eval(sprintf('log2(%s)

52、9;,str); set(handles.xianshi,'string',num2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,'string','運算錯誤!') endelse a(4)=0; set(handles.secndf,'visible','off') set(handles.radiobutton1,'enable','on') set(handles.radiobutton2,'ena

53、ble','on') set(handles.radiobutton3,'enable','on') try format short res=eval(sprintf('2(%s)(%s)',str); set(handles.xianshi,'string',num2str(res,'%7.3f') catch a(5)=0; set(handles.xianshi,'string','運算錯誤!') endendop=a;guidata(hObject,

54、handles) function onc_Callback(hObject, eventdata, handles)global op set(handles.secndf,'visible','off','string','2ndF')set(handles.radiobutton1,'enable','on')set(handles.radiobutton2,'enable','on')set(handles.radiobutton3,'enable','on')if isequal(op(1 2),0 0) set(handles.xianshi,'string','0.')else set(handles.xianshi,'string','0')endop(3:7)=0;set(handles.secndf,'visible','off','st

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論