用MFC繪制各種數(shù)學圖形,如sin,cos等_第1頁
用MFC繪制各種數(shù)學圖形,如sin,cos等_第2頁
用MFC繪制各種數(shù)學圖形,如sin,cos等_第3頁
用MFC繪制各種數(shù)學圖形,如sin,cos等_第4頁
用MFC繪制各種數(shù)學圖形,如sin,cos等_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、*理工大學C+面向?qū)ο笳n程設計報告院(系): 計算機工程學院 專業(yè): 計算機科學與技術 學生姓名: * 班級 計算111 學號: 2011070* 題目: 設計繪制各種數(shù)學圖形程序 起迄日期: 2013.6.232013.7.5 設計地點: 計算機學院機房 指 導 教 師: * 完成日期: 2013 年7月 5 日目錄一、需求分析1 選做此課題的目的.32 程序所實現(xiàn)的功能.3二、 設計內(nèi)容1 模塊圖.32 主程序及其主要模塊的流程圖.33 類圖.4 3.1表達式.4 3.2 儲存運算符的棧.5 3.3儲存運算數(shù)的棧.5 3.4 圓.5 3.5 橢圓.6 3.6 三葉玫瑰線.6 3.7 四葉玫

2、瑰線.7 3.8 阿基米德螺線.7 3.9 心形線.74 函數(shù)關系圖.85 編寫程序代碼.9三、 調(diào)試分析1 實際完成的情況說明.122 程序的性能分析.123 上機過程中出現(xiàn)的問題及其解決方案.124 程序中可以改進的地方說明.13四、 用戶手冊.13五、 設計總結(jié).15六、 參考文獻.15七、 附錄.151、 需求分析1. 選作此課題的目的在日常生活中我們常常需要解決一些復雜的數(shù)學問題,而這些數(shù)學問題的解答往往可以從它的函數(shù)圖形上很直觀、明了的表現(xiàn)出來,這時快捷方便的繪制出該數(shù)學函數(shù)的圖形就顯得尤為重要。所以我們使用Microsoft提供的MFC類庫來實現(xiàn)數(shù)學函數(shù)圖形的繪制。2 .程序所實

3、現(xiàn)的功能本程序支持用戶輸入一般表達式,然后輸出其對應的函數(shù)圖形,例如:一次(二次)函數(shù),三角函數(shù),雙曲余弦,雙曲正弦,雙曲正切,冪函數(shù),指數(shù)函數(shù)(以10為底,以e為底)。另外,還支持一些供選擇的數(shù)學圖形,例如:圓,橢圓,三葉玫瑰線,四葉玫瑰線,阿基米德螺線,心形線。2、 設計內(nèi)容1. 模塊圖主界面表達式特殊數(shù)學圖形阿基米德螺線三葉玫瑰線圓心形線四葉玫瑰線橢圓2. 主程序及主要模塊的流程圖開始選擇圖形類型No確定Yes輸入表達式或參數(shù)圖形結(jié)束3.類圖3.1 表達式CGraphDlgpublic:double Pow(double ,double ); /冪函數(shù)求值double Operate(d

4、ouble ,char ,double ); /表達式求值char Precede(char ,char); /判斷操作符優(yōu)先級int In(char ); /判斷運算數(shù)和運算符void Coordinate(); /求點的集合double Calculate(CString ,double);CGraphDlg(CWnd* pParent = NULL);enum IDD = IDD_GRAPH_DIALOG ;protected:Virtual void DoDataExchange(CDataExchange* pDX);private: ICON m_hIcon;UINT m_num;

5、 /點的數(shù)量char *m_stop;CPtrArray m_ptrarray; /點的集合變量CComboBoxm_type; /圖形類型CString m_expression; /表達式3.2存儲運算符的棧OPTRpublic:OPTR(); /缺省構(gòu)造函數(shù)int InitOPTR(); /構(gòu)造一個空棧char GetTop(); /返回棧頂元素int Push(char e); /進棧char Pop(); /出棧virtual OPTR(); /析構(gòu)函數(shù)Public: char *base; /棧底指針char *top; /棧頂指針int size; /當前已分配的存儲空間3.3存

6、儲運算數(shù)的棧OPNDpublic:OPND(); /缺省構(gòu)造函數(shù)int InitOPND(); /構(gòu)造一個空棧double GetTop(); /返回棧頂元素int Push(double e); /進棧double Pop(); /出棧virtual OPND(); /析構(gòu)函數(shù)Public: double *base; /棧底指針double *top; /棧頂指針int size; /當前已分配的存儲空間3.4 圓circlepublic: afx_msg void OnChangeEdit1();afx_msg void OnChangeEdit2();afx_msg void OnCh

7、angeEdit3();afx_msg void OnButton1();circle(CWnd* pParent = NULL); enum IDD = IDD_DIALOG1 ;Public: doublem_x; /圓心橫坐標doublem_y; /圓心縱坐標doublem_r; /半徑 3.5橢圓ellipsepublic: afx_msg void OnChangeEdit1();afx_msg void OnChangeEdit2();afx_msg void OnChangeEdit3();afx_msg void OnChangeEdit4();afx_msg void OnB

8、utton1();ellipse(CWnd* pParent = NULL); enum IDD = IDD_DIALOG2 ;Public: doublem_x; /橢圓中心橫坐標doublem_y; /橢圓中心縱坐標doublem_lr; /長軸doublem_sr; /短軸3.6 三葉玫瑰線sanyiepublic: afx_msg void OnChangeEdit1();afx_msg void OnChangeEdit2();afx_msg void OnButton1();sanyie(CWnd* pParent = NULL); enum IDD = IDD_DIALOG3 ;

9、Public: doublem_a; /系數(shù)adoublem_b; /角度3.7 四葉玫瑰線siyepublic: afx_msg void OnChangeEdit1();afx_msg void OnChangeEdit2();afx_msg void OnButton1();siye(CWnd* pParent = NULL);enum IDD = IDD_DIALOG4 ;Public: doublem_a; /系數(shù)adoublem_b; /角度3.8 阿基米德螺線ajimidepublic: afx_msg void OnChangeEdit1();afx_msg void OnBu

10、tton1();ajimide(CWnd* pParent = NULL);enum IDD = IDD_DIALOG5 ;Public: doublem_a; /系數(shù)adoublem_b; /角度3.9 心形線xinxingxianpublic: afx_msg void OnChangeEdit1();afx_msg void OnButton1();xinxingxian(CWnd* pParent = NULL);enum IDD = IDD_DIALOG6 ;Public: doublem_a; /系數(shù)a(箭頭代表調(diào)用)CGraphDlg:OnButton1()4. 函數(shù)關系圖 CG

11、raphDlg:OnDrawing()類ajimide類sanyie類circle類siye類xinxingxian類ellipseCGraphDlg:Coordinate()circle:OnButton1() sanyie:OnButton1() CGraphDlg:Calculate(CString m_expression,double x)ellipse:OnButton1() xinxingxian:OnButton1() siye:OnButton1() ajimide:OnButton1()OPND:Push(double e)OPND:GetTop()OPND:InitOPN

12、D()OPTR:GetTop()OPTR:InitOPTR()OPND:Pop()OPTR:GetTop()OPTR:Push(char )CGraphDlg:In(char ch)CGraphDlg:Precede(char s,char c)CGraphDlg:Operate(double,char,double )CGraphDlg:Pow(double, double )5. 編寫程序代碼 1畫坐標軸CClientDC dc(this);CRect rect; GetClientRect(&rect) ; dc.SetMapMode(MM_LOMETRIC) ; /設置映射模式

13、;dc.SetWindowOrg(0,0) ; /設置屏幕窗口原點;dc.SetViewportOrg(CPoint(rect.right/2,rect.bottom/2) ; /設置視口原點CPen pen1(PS_DOT,1,RGB(100,100,100); /創(chuàng)建筆,并調(diào)整坐標顏色CPen *pOldPen = dc.SelectObject(&pen1); /更改筆并保存舊的筆for(int i=-900;i<=900;i+=50) dc.MoveTo (i,500); dc.LineTo (i,-500); for(int j=-500;j<=500;j+=50

14、)dc.MoveTo (-900,j); dc.LineTo (900,j); dc.TextOut (10,500,'y'); /標記y軸dc.TextOut (870,0,'x'); /標記x軸dc.TextOut (0,0,'0'); /標記坐標原點dc.TextOut (-8,510,'');dc.TextOut (900,25,'>');CPen pen(PS_SOLID,1,RGB(0,0,0);/創(chuàng)建筆,并調(diào)整坐標顏色pOldPen = dc.SelectObject(&pen);/更改

15、筆并保存舊的筆dc.MoveTo (-900,0); /橫坐標dc.LineTo (900,0); dc.MoveTo (0,-500); /縱坐標dc.LineTo (0,500);2. 選擇圖形類型 /默認是表達式 RedrawWindow();m_expression=""UpdateData(FALSE);CString text;m_type.GetWindowText(text);if(text="圓")circle d_circle; d_circle.DoModal(); /顯示畫圓的對話框else if(text="橢圓&qu

16、ot;)ellipse d_ellipse;d_ellipse.DoModal(); /顯示畫橢圓的對話框else if(text="三葉玫瑰線")sanyie d_sanyie;d_sanyie.DoModal(); /顯示畫三葉玫瑰線的對話框else if(text="四葉玫瑰線")siye d_siye;d_siye.DoModal(); /顯示畫四葉玫瑰線的對話框else if(text="阿基米德螺線")ajimide d_ajimide;d_ajimide.DoModal(); /顯示畫阿基米德螺線的對話框else if(

17、text="心形線")xinxingxian d_xinxingxian;d_xinxingxian.DoModal(); /顯示畫心形線的對話框3. 根據(jù)表達式畫出圖形for(m_num-=1;m_num>0;m_num-) /從點集合中依次取出點并且相連dc.MoveTo (CPoint *)m_ptrarray.GetAt(m_num)->x, (CPoint *)m_ptrarray.GetAt(m_num)->y);dc.LineTo (CPoint *)m_ptrarray.GetAt(m_num-1)->x, (CPoint *)m_p

18、trarray.GetAt(m_num-1)->y);4. 畫圓dc.Ellipse(m_x-m_r)*50,(m_y+m_r)*50,(m_x+m_r)*50,(m_y-m_r)*50); /調(diào)用Ellipse函數(shù)5. 畫橢圓dc.Ellipse(m_x-m_lr)*50,(m_y+m_sr)*50,(m_x+m_lr)*50,(m_y-m_sr)*50); /調(diào)用Ellipse函數(shù)6. 畫三葉玫瑰線double x=0,y=0;dc.MoveTo (0,0); /從原點開始畫for(double p=-3.14;p<=3.14;p+=0.01) /計算點的同時畫線x=m_a*c

19、os(3*(m_b+p)*cos(p);y=m_a*cos(3*(m_b+p)*sin(p);dc.LineTo(50*x,50*y);dc.MoveTo(50*x,50*y); dc.SelectObject(&pen);7. 畫四葉玫瑰線double x=0,y=0;dc.MoveTo (0,0); /從原點開始畫for(double p=-3.14;p<=3.14;p+=0.01) /計算點的同時畫線x=m_a*sin(2*(m_b+p)*cos(p);y=m_a*sin(2*(m_b+p)*sin(p);dc.LineTo(50*x,50*y);dc.MoveTo(50*

20、x,50*y); dc.SelectObject(&pen);8. 畫阿基米德螺線double p=-10;double x=0,y=0;x=m_a*p*cos(p);y=m_a*p*sin(p);dc.MoveTo (x*20,20*y);for( p=-10;p<=10;p+=0.01) /計算點的同時畫線x=m_a*p*cos(p);y=m_a*p*sin(p);dc.LineTo(20*x,20*y);dc.MoveTo(20*x,20*y); dc.SelectObject(&pen);9. 畫心形線double x=0,y=0;dc.MoveTo (0,0);

21、 /從原點開始畫for(double p=-3.14;p<=3.14;p+=0.01) /計算點的同時畫線x=m_a*(1-cos(p)*cos(p);y=m_a*(1-cos(p)*sin(p);dc.LineTo(50*x,50*y);dc.MoveTo(50*x,50*y); dc.SelectObject(&pen);3、 調(diào)試分析1. 實際完成的情況說明(完成的功能、支持的數(shù)據(jù)類型等) 本程序支持用戶選擇數(shù)學圖形類型并輸入相應的參數(shù),然后輸出其對應的函數(shù)圖形。當選擇表達式時,用戶輸入表達式,例如:一次(二次)函數(shù),三角函數(shù),雙曲余弦,雙曲正弦,雙曲正切,冪函數(shù),指數(shù)函數(shù)

22、(以10為底,以e為底),點擊圖形按鈕輸出圖形。當選擇的數(shù)學圖形時,例如:圓,橢圓,三葉玫瑰線,四葉玫瑰線,阿基米德螺線,心形線,彈出其對應的對話框,用戶輸入?yún)?shù),點擊畫圖按鈕輸出圖形。此程序輸入的參數(shù)可以是int類型,也可以是double類型。2. 程序的性能分析本程序中為不同的數(shù)學圖形定義了相應的對話框,運行程序時選擇不同的圖形對應不同的對話框,使程序更加清晰明了。本程序根據(jù)不同的圖形建立了不同的類,這樣保證程序的封裝性。而且,這樣使程序便于閱讀。3. 上機過程中出現(xiàn)的問題及其解決方案在類CGraphaelDlg中調(diào)用類OPTR和類OPNE中的函數(shù)時編譯出錯。解決方案:在類CGraphDl

23、g的添加OPTR和OPND的頭文件。在coordinate()定義Cpoint point2000并將其地址保存到變量m_ptrarray中,點擊畫圖按鈕調(diào)用Ondrawing()函數(shù),結(jié)果沒有圖形輸出。解決方案:coordinate()定義Cpoint point2000,在函數(shù)coordinate()結(jié)束前point的內(nèi)存被釋放,所以數(shù)組沒有被保存。應該采用new進行如下定義Cpoint *point;point=new CPoint2000;使用sin,cos等數(shù)學函數(shù)時,提示未定義。解決方案:將頭文件“math.h”包含到程序中。在調(diào)用OPTR和OPND的pop()函數(shù),push()函

24、數(shù),gettop()函數(shù)時,程序中止運行。解決方案:在使用棧之前應按分解先調(diào)用InitOPTR()函數(shù)和InitOPND()函數(shù)定義兩個空棧。使用頭文件“math.h”中的pow(double a,double b)函數(shù)時,輸出有誤。解決方案:當b為負數(shù)時,pow(double a,double b)的計算結(jié)果是一個復數(shù),所以輸出有誤。自己定義一個Pow(double a,double b)函數(shù),對b進行判斷,當b是負數(shù)時取pow(a,-b)的倒數(shù)。4. 程序中可以改進的地方說明以及可以擴充的功能本程序不支持自加自減運算,所以可以增加此項功能。本程序在畫指數(shù)圖形時,僅僅支持以e為底和以10為底

25、的指數(shù)函數(shù)??梢詳U展一下指數(shù)函數(shù)的功能。本程序的運行界面太單調(diào),可以改變一下背景圖片,增加用戶使用時的舒適度。本程序不支持用戶改變線條類型,線條顏色。為了適應不同的用戶,這方面需要改進。4、 用戶手冊第一步:選擇所要繪制圖形的類型,點擊“確定”按鈕,如圖選擇“表達式”第二步:如果第一步選擇表達式,則在右邊的編輯框中輸入表達式,然后點擊“畫圖”按鈕即可。如果第一步選擇其他類型,例如“心形線”,則會彈出相應的對話框,輸入相應的參數(shù),然后點擊“圖形”按鈕即可,如下圖:第三步:點擊“退出”按鈕,回到初始界面,然后點擊”X”號退出程序。5、 設計總結(jié) 通過兩周對C+面向?qū)ο蟪绦蛟O計的課程設計(繪制各種數(shù)

26、學圖形)的研究主要有以下幾點感受:首先,C+面向?qū)ο蟪绦蛟O計課程設計很好的反映了自己這一學期對C+面向?qū)ο蟪绦蛟O計基礎知識的掌握情況,讓自己清醒的認識到自己的真實水平。不動手不知道,自己親自動手設計程序時才感覺到知識的不扎實。有的知識雖然已經(jīng)學過,但是用起來還是感覺有點模糊,這也算是給自己的一個警醒吧。另外,剛開始學習MFC感覺很難,通過對在網(wǎng)上查找的視頻以及在學校圖書館借閱的有關圖書的學習漸漸地對MFC有了一個初步的認識,隨著課設的一點點深入,自己對MFC的掌握也越來越好,最后完成課設要求。這個過程不僅會拓寬自己的知識面,還會提高自己的自學能力。同時,宿舍里的同學集體討論如何去實現(xiàn)各種功能,

27、各自發(fā)表看法彼此交流也是一種學習的過程。最深刻的感受就是編寫程序過程中的酸甜苦辣。剛開始構(gòu)思時漏洞百出,程序出錯。但是令人高興的是通過不斷的調(diào)試程序,不斷的出錯,然后不斷的修改,從這過程中學到了一些調(diào)試程序的技巧。雖然有些語句沒有語法錯誤,但是如果語句順序不對也會提示錯誤 。經(jīng)過痛苦又快樂的調(diào)試過程之后,當自己自如的運行著程序時成就感十足?。☆D時感覺之前付出的一切值了,實在是值了??傊腋杏XC+面向?qū)ο蟪绦蛟O計課程設計在鍛煉我們查閱資料以及提高編程技巧方面很有用。課程設計提高了我們的動手能力,我們能將課本上的死知識靈活地應用到生活當中,還有就是能夠感受到十足的成就感,增加學習專業(yè)課的興趣。6

28、、 參考文獻李蘭、任鳳華C+面向?qū)ο蟪绦蛟O計西安電子科技大學出版社姚領田、高守傳MFC窗口程序設計中國水利水電出版社吳乃玲、李海文C+程序設計實踐教程(第二版)高等教育出版社孫鑫 孫鑫C+教程7、 附錄1. 判斷運算符和運算數(shù)int CGraphDlg:In(char ch)if(ch='+'|ch='-'|ch='*'|ch='/'|ch='('|ch='#'|ch=')'|ch='s'|ch='c'| ch='t'|ch='

29、l'|ch='h'|ch='H'|ch='T'|ch='') /操作符return 1; else if(ch='0'|ch='1'|ch='2'|ch='3'|ch='4'|ch='5'| ch='6'|ch='7'|ch='8'|ch='9'|ch='x') /操作數(shù)return 2; else /非法操作符flag=3;return 3;2.

30、判斷運算符優(yōu)先級char CGraphDlg:Precede(char s,char c)switch(s) case '+': case '-': if(c='+'|c='-') return '>' /先出現(xiàn)的+-優(yōu)先級大于相繼出現(xiàn)的+- else if(c='*'|c='/') return '<' /先出現(xiàn)的+-優(yōu)先級小于相繼出現(xiàn)的*/ else if(c='(') return '<' /先出現(xiàn)的+-優(yōu)先級小

31、于相繼出現(xiàn)的( else if(c=')') return '>' /先出現(xiàn)的+-優(yōu)先級大于相繼出現(xiàn)的) else if(c='s'|c='c'|c='t'|c='C'|c='l'|c='L'|c='h'|c='H'|c='T'|c='') return '<' /先出現(xiàn)的+-優(yōu)先級小于相繼出現(xiàn)的三角函數(shù) /指數(shù)、冪函數(shù)運算符 else if(c='#') /表

32、達式結(jié)束標志 return '>' case '*': case '/': if(c='+'|c='-') return '>' else if(c='*'|c='/') return '>' else if(c='(') return '<' else if(c=')') return '>' else if(c='s'|c='c&#

33、39;|c='t'|c='C'|c='l'|c='L'|c='h'|c='H'|c='T'|c='') return '<' else if(c='#') return '>' case '(': if(c='+'|c='-') return '<' else if(c='*'|c='/') return &

34、#39;<' else if(c='(') return '<' else if(c=')') return '=' else if(c='s'|c='c'|c='t'|c='C'|c='l'|c='L'|c='h'|c='H'|c='T'|c='') return '<' else if(c='#') return

35、 'E' case ')': if(c='+'|c='-') return '>' else if(c='*'|c='/') return '>' else if(c='(') return 'E' else if(c=')') return '>' else if(c='s'|c='c'|c='t'|c='C'|c=

36、9;l'|c='L'|c='h'|c='H'|c='T'|c='') return 'E' else if(c='#') return '>' case '#': /運算符棧底元素,即表達式開始標志 if(c='+'|c='-') return '<' else if(c='*'|c='/') return '<' else if(

37、c='(') return '<' else if(c=')') return 'E' else if(c='s'|c='c'|c='t'|c='C'|c='l'|c='L'|c='h'|c='H'|c='T'|c='') return '<' else if(c='#') return '='case '

38、s':case 'c':case 't':case 'C':case 'l':case 'L':case 'h':case 'H':case 'T': if(c='+'|c='-') return '>' else if(c='*'|c='/') return '>' else if(c='(') return '<'

39、; else if(c=')') return '>' else if(c='s'|c='c'|c='t'|c='C'|c='l'|c='L'|c='h'|c='H'|c='T') return 'E' else if(c='') return '<' else if(c='#') return '>'case '&

40、#39;: if(c='+'|c='-') return '>' else if(c='*'|c='/') return '>' else if(c='(') return '<' else if(c=')') return '>' else if(c='s'|c='c'|c='t'|c='C'|c='l'|c='L'

41、|c='h'|c='H'|c='T') return 'E' else if(c='') return '<' else if(c='#') return '>' default: break;return 'E' /錯誤提示3. 根據(jù)運算符優(yōu)先級進行運算符和運算數(shù)進棧、出棧、計算操作double CGraphDlg:Calculate(CString m_expression,double x)double a=0,b=0;char *p

42、,e;OPTR s; /定義OPND對象存放運算符OPND q; /定義OPND對象存放運算數(shù)s.InitOPTR (); /定義一個空棧q.InitOPND (); /定義一個空棧p=m_expression.GetBuffer (100); /將CString類型的表達式轉(zhuǎn)換成char *類型s.Push('#'); /將#進棧作為表達式開始的標志while(*p!='#'|s.GetTop()!='#') /當棧底的#碰到棧頂?shù)?表示結(jié)束if(In(*p)=3) /非法操作符return 0;else if(In(*p)=2&&am

43、p;flag=0) /運算數(shù)double A;if(*p='x')q.Push (x);p+;elseA=strtod(p,&m_stop); /提取表達式中的操作數(shù)q.Push (A);p=m_stop;elseswitch(Precede(s.GetTop(),*p) /判斷運算符優(yōu)先級case '<': /當前運算符的優(yōu)先級低前一個運算符,進棧if(*p='s'&&*(p+1)='h') /運算符雙曲正弦shs.Push ('h');p+;p+;break;else if(*p=

44、'c'&&*(p+1)='h') /運算符雙曲余弦chs.Push ('H');p+;p+;break;else if(*p='t'&&*(p+1)='h') /運算符雙曲正切ths.Push ('T');p+;p+;break;else if(*p='l'&&*(p+1)='n') /運算符lns.Push ('l');p+;p+;break;else if(*p='l'&&am

45、p;*(p+1)='g') /運算符lgs.Push ('L');p+;p+;break;else if(*p='c'&&*(p+1)='o'&&*(p+2)='t') /運算符cots.Push ('C');p+;p+;p+;break;else if(*p='s'&&*(p+1)='i'&&*(p+2)='n'|*p='c'&&*(p+1)='o'&&*(p+2)='s'|*p='t'&&*(p+1)='a'&&*(p+2)='n') /運算符sin,cos,tans.Push (*p);p+;p+;p+;break;else if(*p='('&&(*(p+1)='#'|*(p+1)='+'|*(p+1)='-'|*(p+1)='*'|*(p+1)='/'|*(p+1)=''|*(p

溫馨提示

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

評論

0/150

提交評論