科學(xué)計算器課程設(shè)計_第1頁
科學(xué)計算器課程設(shè)計_第2頁
科學(xué)計算器課程設(shè)計_第3頁
科學(xué)計算器課程設(shè)計_第4頁
科學(xué)計算器課程設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

36/42徐州師范大學(xué)物電學(xué)院課程設(shè)計報告課程名稱:計算機(jī)程序設(shè)計實(shí)訓(xùn)題目:科學(xué)計算器專業(yè)班級:電子科學(xué)與技術(shù)?說明:1、報告中的第一、二、三項(xiàng)由學(xué)生在課程設(shè)計開始前填寫,由指導(dǎo)教師指導(dǎo)并確認(rèn)簽字。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計情況給出各項(xiàng)分值及總評成績,并填寫成績評定表。3、所有學(xué)生必須參加課程設(shè)計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。答辯后學(xué)生根據(jù)答辯情況填寫答辯記錄表.4、報告正文字?jǐn)?shù)一般應(yīng)不少于3000字,也可由指導(dǎo)教師根據(jù)本門課程設(shè)計的情況另行規(guī)定。5、平時表現(xiàn)成績低于6分的學(xué)生,取消答辯資格,其該課程設(shè)計成績按不及格處理。6、課程設(shè)計完成后,由指導(dǎo)教師根據(jù)完成情況寫出總結(jié)。7、此表格式為徐州師范大學(xué)物理與電子工程學(xué)院提供的基本格式,指導(dǎo)教師可根據(jù)本門課程設(shè)計的特點(diǎn)及內(nèi)容做適當(dāng)?shù)恼{(diào)整。一、課程設(shè)計目的、任務(wù)和內(nèi)容要求:《計算機(jī)語言程序設(shè)計》是一門以編程實(shí)踐為主的專業(yè)課,目的在于培養(yǎng)學(xué)生利用計算機(jī)語言進(jìn)行軟件開發(fā)所必需的基本思想和基本技能,進(jìn)一步提高綜合應(yīng)用計算機(jī)語言的各種編程知識和技巧進(jìn)行程序設(shè)計的能力,通過本次課程設(shè)計,學(xué)生應(yīng)能達(dá)到具備設(shè)計功能較為復(fù)雜的應(yīng)用程序的能力,同時培養(yǎng)學(xué)生自主學(xué)習(xí)和獨(dú)立創(chuàng)新的精神。任務(wù)如下:1.進(jìn)行需求分析和概要設(shè)計,給出流程圖.2.寫出詳細(xì)設(shè)計,熟悉其中采用的關(guān)鍵技術(shù)。3。給出具體的編碼實(shí)現(xiàn)并調(diào)試。4.寫課程設(shè)計報告提交源程序。內(nèi)容要求:設(shè)計并完成軟件系統(tǒng).要求:1。應(yīng)具有簡潔友好的用戶界面。2.要求軟件系統(tǒng)的功能完整。3。要求程序具備正確性,可讀性和運(yùn)行的高效性。

二、進(jìn)度安排:第1~3天:查找資料,進(jìn)行需求分析和概要設(shè)計;第4~6天:各模塊的詳細(xì)設(shè)計;第7~12天:軟件實(shí)現(xiàn)與調(diào)試;第13~14天:寫課程設(shè)計報告并提交源程序.三、主要參考文獻(xiàn):王敬棟VisualC++課程設(shè)計案例精編(M)北京:中國水利水電出版社2006夏崇鐠任海軍VsiualC++課程設(shè)計案例精編(M)北京:清華大學(xué)出版社2008鄭阿奇VisualC++實(shí)用教程(M)北京:電子工業(yè)出版社2010陳清華。VisualC++課程設(shè)計案例精選與編程指導(dǎo)(M)南京.東南大學(xué)出版社,2004夏崇鐠任海軍VsiualC++課程設(shè)計案例精編(M)北京:清華大學(xué)出版社2002指導(dǎo)教師簽字:年月日目錄摘要………………………IIAbstract…………………。.。II1緒論……?!?1。1背景、目的…………11。2簡易計算器的功能……………………。.……………12設(shè)計方案簡述………….………………22.1輸入流程分析……………………..…22。2計算流程分析……………………。.…23詳細(xì)設(shè)計……………..……………..43。1起始設(shè)計步驟……………………。?!?3.1界面設(shè)計…………………….?!?4設(shè)計結(jié)果及分析……………….?!?。104。1測試設(shè)計結(jié)果……………。…………104.2設(shè)計分析….…………………..……105總結(jié)……。。…………………。.…………。12參考文獻(xiàn)….………………..………………..…………?!?3附錄程序代碼……。.?!?。………….………14摘要隨著計算機(jī)網(wǎng)絡(luò)通信技術(shù)、微電子技術(shù)的快速發(fā)展,作為21世紀(jì)的接班人,跟上時代的前進(jìn)步伐,這就需要適應(yīng)能夠適應(yīng)現(xiàn)實(shí)生活的節(jié)奏,現(xiàn)實(shí)生活中,很多時候要經(jīng)行計算來處理一些事務(wù),設(shè)計計算器可以幫助人們避免繁瑣的計算,也可以加快人們辦事效率,設(shè)計中運(yùn)用MFC設(shè)計的是簡單計算器,包括雙目運(yùn)算和單目運(yùn)算功能.雙目運(yùn)算符包含基本的四則運(yùn)算及乘冪功能,單目運(yùn)算符包含三角函數(shù),反三角函數(shù),階乘,對數(shù),開方,倒數(shù)等方面的運(yùn)算.可對輸入任意的操作數(shù),包括小數(shù)和整數(shù)及正數(shù)和負(fù)數(shù)進(jìn)行以上的所有運(yùn)算并能連續(xù)運(yùn)算.當(dāng)出現(xiàn)錯誤會給出相應(yīng)提示。關(guān)鍵詞:簡單計算器;MFC;計算AbstractWiththecomputernetworkcommunicationtechnology,therapiddevelopmentofmicroelectronicstechnology,asthesuccessortothe21stcentury,keepupthepaceofthetimes,whichneedtoadapttoadapttotherhythmofreallife,reallife,manytimestobecalculatedbythelinedealwithsomematters,thedesigncalculat(yī)orcanhelppeopleavoidcomplicatedcalculations,youcanalsoexpediteRenmenefficiency,thedesignofMFCdesignistheuseofsimplecalculator,includingtheeyesandtheunaryoperatorfunction。Binocularoperatorsincludebasicarithmetic,andpowerfunctions,unaryincludetrigonometricfunctions,inversetrigonometricfunctions,factorial,logarithm,squareroot,reciprocalandotheraspectsofoperations.Theoperat(yī)ioncanenteranynumber,includingdecimalsandintegers,andpositiveandnegativeforalloftheaboveoperationsandtocontinuousoperation.Whenanerrorwillgiveaprompt。Keywords:SimpleCalculator;MFC;Calculation1緒論1。1背景、目的21世紀(jì),隨著科技的發(fā)展,人們生活節(jié)奏的加快,要想跟上時代的前進(jìn)步伐,這需要我們適應(yīng)能夠適應(yīng)現(xiàn)實(shí)生活的節(jié)奏,而生活中有很多方面需要進(jìn)行計算,如統(tǒng)計,測量,等等各方面需要處理大量的計算任務(wù),如果只靠人腦通過筆來計算,那效率低下,還煩瑣。而且容易出錯,這就需要處理事件快捷的工具——計算器。目前所有計算機(jī)帶自帶計算器,大大的方便人們的計算,處理事務(wù),本設(shè)計中,運(yùn)用MFC實(shí)現(xiàn)計算器的功能。同樣可以方便生活中處理計算類的事件,避免煩瑣的計算,提高人們的處理計算事件的辦事效率,而且計算不會出錯。當(dāng)輸入有錯時候,可以自動提示錯誤.計算器的發(fā)展已經(jīng)經(jīng)過幾十年的過程,現(xiàn)在的計算器種類繁多,運(yùn)算功能強(qiáng)大,在各行各業(yè)中均有應(yīng)用,它的發(fā)展讓人們節(jié)省了很多時間精力,計算器的發(fā)展正在向各個方向延伸,每個行業(yè)所需要的計算有差別,這就發(fā)展了各種類型單獨(dú)的計算器,計算的運(yùn)算速度,計算數(shù)字的龐大也在不斷向前發(fā)展,本設(shè)計中的簡易計算器,可以實(shí)現(xiàn)簡單的單目和雙目運(yùn)算,方便一些簡單事務(wù)的處理。1。2簡易計算器的功能計算器的功能多少決定了計算器的實(shí)用價值,本設(shè)計中的簡易計算器實(shí)現(xiàn)的主要功能有:1)簡單的四則運(yùn)算:加、減、乘、除以及取百分?jǐn)?shù)2)開方、冪運(yùn)算、倒數(shù)、對數(shù)、階乘、平方3)正弦、余弦、正切這些功能都是很常見的需要計算器功能,它可以幫助人們完成很多需要計算處理的功能。所以次簡易計算器很有實(shí)用價值,可以很好的幫助使用者,讓計算變的簡單化,不必去進(jìn)行復(fù)雜的筆算,很大程度上的減輕了使用者的精神上的損耗,也很大程度上提高了使用者的辦事效率.2設(shè)計方案簡述2。1輸入流程分析如圖2-1是整個計算器的流程圖,打開計算器程序,輸入數(shù)據(jù),調(diào)用輸入數(shù)據(jù)子程序。子程序開始時m_show為零。按下數(shù)字按鈕后,判斷m_show的正負(fù)號,對其進(jìn)行相關(guān)處理,然后在判斷是否有小數(shù)點(diǎn),處理后輸出結(jié)果。NNNY鍵入一個數(shù)是否為正數(shù)?m_show=10*m_show+im_show=10*m_show-i是否為小數(shù)?用UpdateData(FALSE)刷新顯示還原m_show根據(jù)小數(shù)點(diǎn)后位數(shù)將鍵入的數(shù)除以n次10累加到m_showYN繼續(xù)鍵入數(shù)字?Y輸入數(shù)據(jù)子函數(shù)編輯框關(guān)聯(lián)變量m_show=0圖2—1輸入數(shù)據(jù)子函數(shù)流程圖2.2計算流程分析回到總流程圖中,輸完第一個操作數(shù)后,若按下雙目運(yùn)算符,則把m_show存入dat(yī)a1,按下輸入第二個操作數(shù)并算出結(jié)果。若按下的是單目運(yùn)算符,則直接對其處理得出結(jié)果。若按下清零,則m_show等于0。在運(yùn)算中還要判斷運(yùn)算是否合法,以及結(jié)果是否超出顯示范圍,以做出相關(guān)提示,按下清零。算出后把結(jié)果保存至m_show中。若需用算出的結(jié)果繼續(xù)運(yùn)算則當(dāng)按下運(yùn)算符號時,將自動先將m_show的數(shù)字保存到data1中再進(jìn)行運(yùn)算??茖W(xué)計算器總流程圖如圖2—2所示YY開始輸入數(shù)據(jù)子函數(shù)編輯框關(guān)聯(lián)的變量保存至data1輸入數(shù)據(jù)子函數(shù)進(jìn)行運(yùn)算運(yùn)算是否合法把結(jié)果保存到data1m_show清零彈出對話框顯示錯誤NY是否用保存的結(jié)果繼續(xù)進(jìn)行運(yùn)算N結(jié)束jie雙目運(yùn)算符單目運(yùn)算符是否開始新一輪的計算YN圖2-2科學(xué)計算器總流程圖3詳細(xì)設(shè)計過程3.1起始設(shè)計步驟1.打開MicrosoftVisualC++6.0,在文件中點(diǎn)擊新建,在彈出框內(nèi)選擇MFCAppWizard[exe]工程,輸入工程名jianyijisuanqi及其所在位置,點(diǎn)擊確定。2.將彈出MFCAppWizard—step1對話框,選擇基本對話框,點(diǎn)擊完成.新建工程信息如圖3-1圖3-1這樣,MFCAppWizard就建立了一個基于對話窗口的程序框架,如圖3-2所示圖3-23.2界面設(shè)計3.2.1.創(chuàng)建控件在圖2所示的ResoureView選項(xiàng)卡中打開Dialog資源組,雙擊IDD_JIANYIJISUANQI_DIALOG,在右邊的窗口中顯示出待編輯的對話框。開始擺放控件,包括編輯框和按鈕的創(chuàng)建.其中按鈕的創(chuàng)建以“1”為例進(jìn)行介紹,其他按鈕的創(chuàng)建可參照它進(jìn)行操作。1)在圖3-2中Controls的“編輯框"按鈕上單擊鼠標(biāo)左鍵,在對話框編輯窗口上合適的位置按下鼠標(biāo)左鍵并拖動鼠標(biāo)畫出一個大小合適的編輯框。在編輯框上單擊鼠標(biāo)右鍵,在彈出的快捷萊單中選擇屬性選項(xiàng),此時彈出Edit屬性對話框,如圖3-3所示,在該對話框中輸入ID屬性,再選擇styles中將Aligntest中選擇Right.圖3-32)在圖3—2中Controls的“Button”按鈕上單擊鼠標(biāo)左鍵,在對話框上的合適的位置上按下鼠標(biāo)左鍵并拖動鼠標(biāo)畫出一個大小合適的下壓式按鈕.在按鈕上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇屬性選項(xiàng),此時也彈出PushButton屬性對話框,如圖3—4所示,在該對話框中輸入控件的ID值和標(biāo)題屬性。圖3-4按照“1”的操作過程編輯完成其他按鈕和編輯框等對象的屬性。各按鈕與編輯框等對象的屬性如表3-1、3—2、3-3、3-4所示表3-1數(shù)字按鈕和編輯框等對象的屬性控件類型ID屬性設(shè)計EditBOXIDC_SHOW_EDITButtonIDC_NUM1_BUTTON1ButtonIDC_NUM2_BUTTON2ButtonIDC_NUM3_BUTTON3ButtonIDC_NUM4_BUTTON4ButtonIDC_NUM5_BUTTO(shè)N5ButtonIDC_NUM6_BUTTON6ButtonI(lǐng)DC_NUM7_BUTTON7ButtonIDC_NUM8_BUTTON8ButtonIDC_NUM9_BUTTON9ButtonIDC_NUM0_BUTTON0表3—2.四則運(yùn)算的按鈕對象屬性ButtonIDC_FU1_BUTTON+ButtonIDC_FU2_BUTTON-ButtonIDC_FU3_BUTTON×ButtonIDC_FU4_BUTTO(shè)N÷表3-3三角函數(shù)集反三角函數(shù)的屬性ButtonIDC_SIN_BUTTONsinButtonIDC_COS_BUTTONcosButtonIDC_TAN_BUTTONtan表3-4其他按鈕的屬性ButtonIDC_LOG_BUTTONlogButtonIDC_MOD_BUTTONmodButtonIDC_KE2_BUTTONx^2ButtonIDC_KE4_BUTTON10^xButtonIDC_FU7_BUTTON.ButtonIDC_EQUAL_BUTTON=ButtonI(lǐng)DC_FU5_BUTTON%ButtonI(lǐng)DC_FU6_BUTTON+/-ButtonIDC_BACKSPACE_BUTTON回刪ButtonIDC_C_BUTTON清零ButtonI(lǐng)DC_KE1_BUTTON1/xButtonI(lǐng)DC_LN(yùn)_BUTTO(shè)NlnButtonIDC_CE_BUTTON√完成后界面如圖3—5所示圖3-53.2.2程序運(yùn)行時初始化1)jianyijisuanqiDlg.cpp里加上頭文件#include"math。h"以及定義#definepi3.1492)”jianyijisuanqiDlg.h"中變量的定義booldecimal=0;//判斷是否小數(shù)doubledata2=0;doubledata1=0;doubledat(yī)a_dec=0;doubledata_int=0;//輸入數(shù)據(jù)整數(shù)與小數(shù)部分doublevalue=0;doublecount=10;inttype;//存放運(yùn)算類型3.2.3.連接變量和代碼1)給編輯框連接變量.在編輯框上單擊鼠標(biāo)右鍵,在彈出菜單中選擇“建立類向?qū)А辈藛雾?xiàng),彈出MFCClassWizard對話框,選擇MemberVariables選項(xiàng)卡,再將Classname中選擇CjianyijisuanqiDlg.雙擊IDC_SHOW_EDIT,彈出AddMenberVariable,連接變量為m_show,變量類型設(shè)定為cstring型。如圖3—6所示。圖3-62)給“1”按鈕連接代碼。在“1”按鈕上單擊鼠標(biāo)右鍵,選擇“建立類向?qū)?菜單項(xiàng),在彈出的對話框中選擇MessagesMaps選項(xiàng)卡,然后在ObjectIDs列表框中雙擊選擇IDC_NUM1_BUTTON,在Messages列表框中選擇雙擊BN_CLICKED項(xiàng),即給“1”按鈕選擇單擊按鈕事件,如圖3-7所示圖3—7“1”按鈕鏈接代碼對話框即對應(yīng)的添加按鈕“1”的代碼voidCJSQDlg::OnNum1Button(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_Flag==1) { ?m_Flag=0; m_Show="";? m_Show+='1';?} else {??if(m_Show=="0") {? ?m_Show=””; ?}??m_Show+=’1';?}?Updat(yī)eData(false); }其他按鈕如參照按鈕“1"來連接代碼,詳細(xì)代碼見附錄。4設(shè)計結(jié)果及分析4.1測試設(shè)計結(jié)果1).輸入“100”,“—”,“28。5”,“=”,得到結(jié)果如圖4-1所示圖4-12)。輸入"60”,”cos"運(yùn)行結(jié)果如圖4-2所示圖4—24.2設(shè)計分析4。2編輯框所關(guān)聯(lián)的變量為m_show,程序開始時為0。每按下一個數(shù)字鍵按鈕,就把它累加到m_show里并刷新顯示。BOOL型變量用docimal來判斷是否有小數(shù)點(diǎn)和一個整型數(shù)data_int來表示小數(shù)點(diǎn)后的數(shù)據(jù)的位數(shù).當(dāng)docimal=1時,表示有小數(shù)點(diǎn),否則則表示無小數(shù)點(diǎn)。按下小數(shù)點(diǎn)按鈕后執(zhí)行docimal=1。當(dāng)按下一個數(shù)字鍵時,首先根據(jù)decimal判斷是否按下小數(shù)點(diǎn),若有即運(yùn)行count=count*10,則為此次鍵入的數(shù)所處的位數(shù),將鍵入的數(shù)除以count然后累加到編輯框所關(guān)聯(lián)的變量m_show上,若沒有則把m_show乘以10,然后累加到編輯框所關(guān)聯(lián)的變量m_show上。4.2由于單目運(yùn)算符中必須有執(zhí)行運(yùn)算的函數(shù),因而頭文件中要加入math.h,如m_show=sqrt(m_show)。按下按鈕即可實(shí)現(xiàn)其功能。4.2。3雙目運(yùn)算符功能的實(shí)現(xiàn)雙目運(yùn)算符需要兩個操作數(shù)才能運(yùn)算,所以在執(zhí)行雙目運(yùn)算符按鈕的函數(shù)代碼中,要把m_show中的值保存到變量data1中,然后把m_show清零。這樣即可保存第一個操作數(shù)。運(yùn)算在實(shí)現(xiàn)部分在“=”中實(shí)現(xiàn),過程4.2.4中闡述的。4。2.4等于按鈕的功能實(shí)現(xiàn)我們在每個函數(shù)中運(yùn)用了type來定義運(yùn)算類型,每個函數(shù)的type不同(如加法type=0;減法type=1);在等于號按鈕的實(shí)現(xiàn)時候,我們用switch(type)來實(shí)現(xiàn),當(dāng)case0時候,實(shí)現(xiàn)加法運(yùn)算 value=data1+dat(yī)a2;break;當(dāng)case1時候,同樣實(shí)現(xiàn)減法運(yùn)算value=data1-data2;break;用break來跳出函數(shù),結(jié)束運(yùn)算,現(xiàn)實(shí)結(jié)果。5總結(jié)在此我要感謝趙紀(jì)平老師,她嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、追求卓越的生活精神,特別是她教課時候的激情深深地感染著我.我還要感謝所有關(guān)心幫助過我的同學(xué)?;赩C++下的設(shè)計,可以看出VC++它的多態(tài)性,繼承性,封裝性的優(yōu)越特點(diǎn),這讓編譯設(shè)計更加的簡單方便,特別是它的繼承性.使用MFC減少了大量建立Windows程序時必須編寫的代碼,由于VC++的繼承和封裝,正是由于MFC編程方法充分利用了面向?qū)ο蠹夹g(shù)優(yōu)點(diǎn),使的設(shè)計程序編程時極少需要關(guān)心對象方法的實(shí)現(xiàn)細(xì)節(jié),而只需要簡單的調(diào)用自己已有對象的方法就可以了。簡單的說,MFC的優(yōu)點(diǎn)可以歸結(jié)為以下幾點(diǎn):MFC是C++的MicrosoftWindows應(yīng)用程序的編程接口。MFC開發(fā)的應(yīng)用程序使用了標(biāo)準(zhǔn)化的結(jié)構(gòu)。使用MFC開發(fā)的應(yīng)用程序不僅小,而且運(yùn)行快.VisualC++工具降低了編碼的復(fù)雜性。MFC庫功能豐富經(jīng)過長達(dá)2個星期的VC++課程設(shè)計和多番測試,終于將設(shè)計的簡易計算器能夠完成功能描述內(nèi)容中的全部功能.在本學(xué)期中我們開設(shè)了《VisualC++實(shí)用教程》課的MFC部分皆為需要實(shí)踐內(nèi)容,在開始著手程序設(shè)計時,有些功能感覺無從下手,都不知道要干什么。正所謂“紙上談兵終覺淺,覺知此事要躬行?!彼栽诒緦W(xué)期末的課程設(shè)計是很及時、很必要的.這樣不僅能夠加深我們對MFC程序設(shè)計的掌握,而且還及時、真正的做到了學(xué)以致用。讓我感受到了:學(xué)完VC++后做課程設(shè)計得基本功過硬,設(shè)計過程中不得有半點(diǎn)馬虎。同時在實(shí)踐過程中提高自己找錯糾錯能力,通常錯誤就那幾種,多練習(xí)就熟練了.同時在設(shè)計過程中多思考,能否更好的完成實(shí)現(xiàn)。設(shè)計過程中我們要善于查找資料提高自己的信息搜索查詢能力,要善于利用并能更哈的利用網(wǎng)絡(luò)來獲得知識,獲得幫助。在面臨無從下手等這些問題只要找到相關(guān)的資料就會得到提示從而理解所要解決問題的大致方向。當(dāng)我們有了明確的目的,就可以發(fā)揮自己的頭腦來完成實(shí)現(xiàn)它了。在設(shè)計過程中我們要善于思考.在程序設(shè)計過程中總會有些實(shí)現(xiàn)難點(diǎn)和最初完成程序時免不了的有許多不足,這就需要自己根據(jù)代碼及實(shí)現(xiàn)的功能去認(rèn)真思考并解決遇到的難點(diǎn).只有這樣不斷糾正不斷思考,才能完成程序設(shè)計功能目的,才能在實(shí)踐中不斷提升自己。通過本次的課程設(shè)計讓我學(xué)到了并收獲了很多,不僅僅鞏固了先前學(xué)的MFC程序設(shè)計知識,讓我認(rèn)識到了自己很多的不足,而且此次課程設(shè)計還培養(yǎng)了我的動手實(shí)踐能力,讓我的創(chuàng)造性思維得到拓展。它還讓我感受到了實(shí)踐的重要性。參考文獻(xiàn)鄭阿奇VisualC++實(shí)用教程(M)北京:電子工業(yè)出版社2010王敬棟VisualC++課程設(shè)計案例精編(M)北京:中國水利水電出版社2006夏崇鐠任海軍VsiualC++課程設(shè)計案例精編(M)北京:清華大學(xué)出版社2008陳清華。VisualC++課程設(shè)計案例精選與編程指導(dǎo)(M)南京.東南大學(xué)出版社,2004夏崇鐠任海軍VsiualC++課程設(shè)計案例精編(M)北京:清華大學(xué)出版社2002附錄程序代碼//JSQDlg.cpp:implementationfile//#include”stdafx.h"#include”JSQ.h"#include"JSQDlg。h"#include"math.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstat(yī)iccharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public:?CAboutDlg();//DialogData //{{AFX_DATA(CAboutDlg) enum{IDD=IDD_ABOUTBOX};?//}}AFX_DATA?//ClassWizardgeneratedvirtualfunctionoverrides?//{{AFX_VIRTUAL(CAboutDlg)?protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport?//}}AFX_VIRTUAL//Implementationprotected: //{{AFX_M(jìn)SG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){?//{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_M(jìn)AP(CAboutDlg)?//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)?//{{AFX_MSG_MAP(CAboutDlg)??//Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CJSQDlgdialogCJSQDlg::CJSQDlg(CWnd*pParent/*=NULL*/) :CDialog(CJSQDlg::IDD,pParent){ //{{AFX_DATA_INIT(CJSQDlg) m_M(jìn)=_T(""); m_Show=_T("0");?//}}AFX_DATA_INIT?//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()-〉LoadIcon(IDR_MAINFRAME);}voidCJSQDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX);?//{{AFX_DATA_M(jìn)AP(CJSQDlg)?DDX_Text(pDX,IDC_M_EDIT,m_M); DDX_Text(pDX,IDC_SHOW_EDIT,m_Show);?//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CJSQDlg,CDialog) //{{AFX_MSG_MAP(CJSQDlg)?ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON()?ON_BN_CLICKED(IDC_NUM0_BUTTON,OnNum0Button) ON_BN_CLICKED(IDC_NUM1_BUTTON,OnNum1Button)?ON_BN_CLICKED(IDC_NUM2_BUTTON,OnNum2Button) ON_BN_CLICKED(IDC_NUM3_BUTTON,OnNum3Button) ON_BN_CLICKED(IDC_NUM4_BUTTON,OnNum4Button) ON_BN_CLICKED(IDC_NUM5_BUTTON,OnNum5Button) ON_BN_CLICKED(IDC_NUM6_BUTTON,OnNum6Button)?ON_BN_CLICKED(IDC_NUM7_BUTTON,OnNum7Button) ON_BN_CLICKED(IDC_NUM8_BUTTON,OnNum8Button)?ON_BN_CLICKED(IDC_NUM9_BUTTON,OnNum9Button) ON_BN_CLICKED(IDC_FU7_BUTTON,OnFu7Button) ON_BN_CLICKED(IDC_BACKSPACE_BUTTO(shè)N,OnBackspaceButton)?ON_BN_CLICKED(IDC_CE_BUTTON,OnCeButton) ON_BN_CLICKED(IDC_FU6_BUTTO(shè)N,OnFu6Button) ON_BN_CLICKED(IDC_C_BUTTON,Onclear)?ON_BN_CLICKED(IDC_FU1_BUTTON,OnFu1Button) ON_BN_CLICKED(IDC_FU2_BUTTON,OnFu2Button) ON_BN_CLICKED(IDC_FU3_BUTTON,OnFu3Button) ON_BN_CLICKED(IDC_FU4_BUTTO(shè)N,OnFu4Button) ON_BN_CLICKED(IDC_EQUAL_BUTTON,OnEqualButton)?ON_BN_CLICKED(IDC_KE1_BUTTO(shè)N,OnKe1Button)?ON_BN_CLICKED(IDC_SIN_BUTTON,OnSinButton)?ON_BN_CLICKED(IDC_COS_BUTTO(shè)N,OnCosButton) ON_BN_CLICKED(IDC_TAN_BUTTON,OnTanButton)?ON_BN_CLICKED(IDC_KE2_BUTTON,OnKe2Button) ON_BN_CLICKED(IDC_LN_BUTTON,OnLnButton) ON_BN_CLICKED(IDC_LOG_BUTTON,OnLogButton) ON_BN_CLICKED(IDC_KE3_BUTTON,OnKe3Button) ON_BN_CLICKED(IDC_KE4_BUTTON,OnKe4Button)?ON_BN_CLICKED(IDC_MOD_BUTTON,OnModButton)?ON_BN_CLICKED(IDC_FU5_BUTTON,OnFu5Button)?ON_BN_CLICKED(IDC_M1_BUTTON,OnM1Button) ON_BN_CLICKED(IDC_M2_BUTTON,OnM2Button) ON_BN_CLICKED(IDC_M(jìn)R_BUTTON,OnMrButton)?ON_BN_CLICKED(IDC_MC_BUTTON,OnMcButton) ON_WM_CTLCOLOR()?//}}AFX_MSG_MAPEND_MESSAGE_M(jìn)AP()///////////////////////////////////////////////////////////////////////////////CJSQDlgmessagehandlersBOOLCJSQDlg::OnInitDialog(){ CDialog::OnI(lǐng)nitDialog(); //Add”About.。."menuitemtosystemmenu。 //IDM_ABOUTBOXmustbeinthesystemcommandrange.?ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);?ASSERT(IDM_ABOUTBOX〈0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL)?{ ?CStringstrAboutMenu;? strAboutMenu.LoadString(IDS_ABOUTBOX);??if(!strAboutMenu.IsEmpty()) {?? pSysMenu—>AppendMenu(MF_SEPARATO(shè)R); ? pSysMenu—〉A(chǔ)ppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);??} } //Settheiconforthisdialog。Theframeworkdoesthisautomatically?//whentheapplicat(yī)ion'smainwindowisnotadialog?SetIcon(m_h(yuǎn)Icon,TRUE); ? //Setbigicon SetIcon(m_hIcon,F(xiàn)ALSE); ?//Setsmallicon? //TODO:Addextrainitializationhere returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCJSQDlg::OnSysCommand(UINTnI(lǐng)D,LPARAMlParam){ if((nID&0xFFF0)==IDM_ABOUTBOX) {??CAboutDlgdlgAbout; dlgAbout。DoModal();?}?else?{??CDialog::OnSysCommand(nID,lParam);?}}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework。voidCJSQDlg::OnPaint(){ m=0;?if(IsIconic()) {??CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); //Centericoninclientrectangle? intcxIcon=GetSystemMetrics(SM_CXICON);??intcyIcon=GetSystemMetrics(SM_CYICON);? CRectrect;??GetClientRect(&rect);??intx=(rect.Width()-cxIcon+1)/2;? inty=(rect。Height()-cyIcon+1)/2; ?//Drawtheicon??dc.DrawIcon(x,y,m_hIcon); }?else?{ CDialog::OnPaint(); }}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow。HCURSORCJSQDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;}voidCJSQDlg::Operation(){ doublef1,f2,f3;switch(choose)?{ case1: ?UpdateData();??string2=m_Show;? if(string1。Left(1)!=’—’) ? f1=atof(string1);? if(string1.Left(1)=='-')? { ? string1=string1.Right(string1.GetLength()-1); ??f1=(-1)*(atof(string1));??}? ? ??f2=at(yī)of(string2); ?f3=f1+f2;? string1.Format(”%f”,f3); ?while(string1.Right(1)==”0") {string1=string1.Left(string1。GetLength()-1);? } if(string1。Right(1)==”.") {???string1=string1.Left(string1.GetLength()-1); }? m_Show=string1; UpdateData(false); ?break;?case2: Updat(yī)eDat(yī)a(); string2=m_Show;? f1=atof(string1);??f2=atof(string2); ?f3=f1—f2;??string1。Format("%f",f3); while(string1.Right(1)=="0”)??{?? string1=string1.Left(string1。GetLength()—1); ?} ?if(string1.Right(1)==".") ?{ ? string1=string1.Left(string1。GetLength()—1);? } ?m_Show=string1; ?Updat(yī)eData(false); ?break; case3: ?UpdateData(); string2=m_Show; f1=atof(string1);??f2=atof(string2); f3=f1*f2;??string1。Format("%f”,f3);? while(string1.Right(1)=="0")??{ ??string1=string1.Left(string1.GetLength()—1);? } ?if(string1。Right(1)==”.”)??{ ??string1=string1.Left(string1.GetLength()-1);??}??m_Show=string1;? UpdateData(false); ?break;?case4:??Updat(yī)eData(); ?string2=m_Show; ?f1=atof(string1); ?f2=atof(string2); if(f2==0) MessageBox("被除數(shù)不能為零?。ⅲ? ?else? { f3=f1/f2;? ?string1.Format("%f",f3); while(string1.Right(1)=="0”)???{? ??string1=string1.Left(string1。GetLength()-1); ?}? ?if(string1.Right(1)=="。") ?{ ? string1=string1.Left(string1.GetLength()-1); ? } m_Show=string1; ?}??? UpdateData(false);??break; case5: ?UpdateData(); intff1,ff2,ff3;? string2=m_Show; ff1=atoi(string1);? ff2=atoi(string2);? ff3=ff1%ff2;? string1.Format("%d”,ff3);??while(string1.Right(1)=="0”)??{ ? string1=string1.Left(string1.GetLength()—1); ?}? if(string1.Right(1)=="。") ?{?? string1=string1。Left(string1。GetLength()—1);? }? m_Show=string1;? UpdateData(false); break;?} m_Count=0;?m_Flag=1;}voidCJSQDlg::OnNum0Button(){?//TODO:Addyourcontrolnotificat(yī)ionhandlercodehere Updat(yī)eData(); if(m_Flag==1) {??m_Flag=0; m_Show=””; m_Show+='0'; } else?{??if(m_Show=="0") ?{???m_Show="";? } ?m_Show+='0'; }?UpdateData(false);}voidCJSQDlg::OnNum1Button(){ //TO(shè)DO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_Flag==1)?{ m_Flag=0;? m_Show=”";? m_Show+='1';?}?else { ?if(m_Show=="0”)??{ ??m_Show=”"; ?}??m_Show+=’1’; }?UpdateData(false); }voidCJSQDlg::OnNum2Button(){?//TODO:Addyourcontrolnotificationhandlercodehere ?UpdateData(); if(m_Flag==1)?{??m_Flag=0;??m_Show=""; ?m_Show+='2';?} else { ?if(m_Show==”0”) {? ?m_Show=""; }??m_Show+='2';?} UpdateData(false); }voidCJSQDlg::OnNum3Button(){ //TODO:Addyourcontrolnotificationhandlercodehere??UpdateData(); if(m_Flag==1) { ?m_Flag=0;? m_Show=""; ?m_Show+=’3';?} else?{? if(m_Show=="0”) { m_Show="”;??}??m_Show+='3'; }?UpdateData(false); }voidCJSQDlg::OnNum4Button(){?//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_Flag==1)?{? m_Flag=0;? m_Show="”; ?m_Show+=’4'; } else?{ if(m_Show==”0")? { m_Show=”";? }??m_Show+='4’;?} UpdateData(false); }voidCJSQDlg::OnNum5Button(){?//TODO:Addyourcontrolnotificationhandlercodehere ?UpdateData(); if(m_Flag==1) { ?m_Flag=0;??m_Show="";??m_Show+=’5';?}?else?{? if(m_Show==”0”) ?{ ??m_Show=""; ?} m_Show+='5’;?}?Updat(yī)eData(false); }voidCJSQDlg::OnNum6Button(){?//TODO:Addyourcontrolnotificationhandlercodehere ?Updat(yī)eDat(yī)a();?if(m_Flag==1)?{? m_Flag=0; m_Show=”"; ?m_Show+='6';?} else {??if(m_Show==”0") {???m_Show=”";??} m_Show+=’6'; }?UpdateData(false); }voidCJSQDlg::OnNum7Button(){?//TO(shè)DO:Addyourcontrolnotificat(yī)ionhandlercodehere ?UpdateData();?if(m_Flag==1) { m_Flag=0;? m_Show=””; ?m_Show+='7';?}?else?{? if(m_Show=="0”) {? m_Show=””; ?} m_Show+=’7';?} UpdateData(false); }voidCJSQDlg::OnNum8Button(){?//TODO:Addyourcontrolnotificationhandlercodehere UpdateData();?if(m_Flag==1)?{ m_Flag=0;? m_Show="";? m_Show+='8’;?} else {??if(m_Show=="0")??{ ? m_Show="”;??}? m_Show+='8'; } UpdateData(false); }voidCJSQDlg::OnNum9Button(){?//TODO:Addyourcontrolnotificationhandlercodehere? UpdateData(); if(m_Flag==1) {? m_Flag=0;? m_Show=””;??m_Show+='9’; }?else?{ if(m_Show==”0”) {? ?m_Show="”;??}? m_Show+=’9';?} UpdateData(false);?}voidCJSQDlg::OnFu7Button(){?//TODO:Addyourcontrolnotificationhandlercodehere?UpdateDat(yī)a();?if(m_Point==1) m_Show+=”";?else?if(m_Flag==1)? {? m_Flag=0; ?m_Show="”; m_Show+='0'; ?m_Show+='.’; } else { if(m_Show==”0")? ?{ ?m_Show+=".”; ?}? ?elseif(m_Show=="")???{? ?m_Show+=”0"; ? ?m_Show+=".”; ? }??else ? {?m_Show+='。'; ? } ?} m_Point=1;UpdateDat(yī)a(false);}voidCJSQDlg::OnBackspaceButton(){?//TODO:Addyourcontrolnotificationhandlercodehere?UpdateData();?m_Show=m_Show.Left(m_Show。GetLength()—1); UpdateData(false);}voidCJSQDlg::OnCeButton(){?//TODO:Addyourcontrolnotificationhandlercodehere Onclear();}voidCJSQDlg::OnFu6Button(){?//TODO:Addyourcontrolnotificationhandlercodehere if(m_Show.Left(1)==’-') ?m_Show=m_Show。Right(m_Show。GetLength()-1);else m_Show=’—'+m_Show;Updat(yī)eData(false);}voidCJSQDlg::Onclear(){?//TODO:Addyourcontrolnotificationhandlercodehere Updat(yī)eDat(yī)a();?m_Show="0"; m_Count=0;?m_Point=0; UpdateData(false);}voidCJSQDlg::OnFu1Button()//加法運(yùn)算{ //TODO:Addyourcontrolnotificationhandlercodehere?UpdateData();?if(m_Count==0) { ?string1=m_Show;??m_Flag=1;??choose=1;?m_Point=0;??m_Count+=1;?} else?{ ?Operation(); m_Flag=1;? choose=1;?m_Point=0;??m_Count+=1; }?string1=m_Show; //m_edit1=”0.";?m_Flag=1; choose=1;?m_Point=0;UpdateData(false);}voidCJSQDlg::OnFu2Button()//減法運(yùn)算{ //TODO:Addyourcontrolnotificat(yī)ionhandlercodehere?UpdateData();?if(m_Count==0)?{ string1=m_Show; m_Flag=1;??choose=2; ?m_Point=0;? m_Count+=1;?} else?{ ?Operation();? m_Flag=1;? choose=2; m_Point=0; ?m_Count+=1; }UpdateData(false);}voidCJSQDlg::OnFu3Button()//乘法運(yùn)算{ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData();?if(m_Count==0)?{? string1=m_Show;? m_Flag=1;? choose=3;??m_Point=0;??m_Count+=1; }?else?{ ?Operation(); m_Flag=1;??choose=3;? m_Point=0; ?m_Count+=1; }UpdateData(false);}voidCJSQDlg::OnFu4Button()//除法運(yùn)算{?//TODO:Addyourcontrolnotificat(yī)ionhandlercodehere UpdateData();?if(m_Count==0) {? string1=m_Show; ?m_Flag=1; choose=4; ?m_Point=0; m_Count+=1; }?else?{? Operation(); ?m_Flag=1; choose=4; ?m_Point=0; ?m_Count+=1; }Updat(yī)eData(false);}voidCJSQDlg::OnEqualButton()//等號,運(yùn)算結(jié)果{ //TO(shè)DO:Addyourcontrolnotificat(yī)ionhandlercodehere?Operation();}voidCJSQDlg::OnKe1Button()//求倒數(shù){ //TODO:Addyourcontrolnotificat(yī)ionhandlercodehere UpdateData();doublef1,f3;?string1=m_Show;?f1=atof(string1); if(f1==0)? MessageBox("被除數(shù)不能為零!",”科學(xué)計算器(徐金富)”); else?{ f3=1/f1;?string1。Format("%f”,f3); while(string1.Right(1)=="0”)??{ string1=string1.Left(string1.GetLength()—1);??} if(string1。Right(1)==".") {? string1=string1.Left(string1.GetLength()-1);??}?m_Show=string1;? m_Flag=1;?} UpdateDat(yī)a(false);}voidCJSQDlg::OnSinButton(){ //TODO:Addyourcontrolnotificationhandlercodehere string1.Format("%f”,sin(at(yī)of(m_Show)*3。14159265/180)); while(string1。Right(1)=="0")?{ string1=string1.Left(string1。GetLength()—1);?}?if(string1。Right(1)==”?!? {??string1=string1。Left(string1.GetLength()-1);?} m_Show=string1; m_Flag=1;?Updat(yī)eData(false);}voidCJSQDlg::OnCosButton(){?//TODO:Addyourcontrolnotificationhandlercodehere?string1.Format("%f",cos(atof(m_Show)*3.14159265/180));?while(string1.Right(1)=="0”) { string1=string1。Left(string1。GetLength()-1);?}?if(string1.Right(1)==”.") { string1=string1。Left(string1.GetLength()-1);?} m_Show=string1;?m_Flag=1;?UpdateData(false);}voidCJSQDlg::OnTanButton(){?//TODO:Addyourcontrolnotificationhandlercodehere if((at(yī)oi(m_Show)-90)%180==0)?{??MessageBox(”輸入的角度無效,請重新輸入!”,"科學(xué)計算器(徐金富)");?}?else { ?string1。Format("%f",tan(atof(m_Show)*3.14159265/180)); ?while(string1.Right(1)==”0”)??{ string1=string1.Left(string1.GetLength()-1); } if(string1。Right(1)==".”)??{ ??string1=string1。Left(string1.GetLength()-1); ?}??m_Show=string1;? m_Flag=1;? UpdateData(false);?}}voidCJSQDlg::OnKe2Button(){ //TODO:Addyourcontrolnotificationhandlercodehere string1.Format(”%f”,atof(m_Show)*atof(m_Show));?while(string1.Right(1)==”0")?{ ?string1=string1.Left(string1.GetLength()—1);?} if(string1.Right(1)==".")?{??string1=string1.Left(string1。GetLength()—1);?}?m_Show=string1; m_Flag=1; UpdateData(false); }voidCJSQDlg::OnLnButton(){ //TODO:Addyourcontrolnotificat(yī)ionhandlercodehere if(m_Show==’0'||m_Show.GetLength()==0)?{? MessageBox("輸入的數(shù)據(jù)錯誤,請重新輸入!”,"科學(xué)計算器(徐金富)");?} elseif(m_Show。Find(”-")!=-1)?{MessageBox("輸入的數(shù)據(jù)錯誤,請重新輸入!",”標(biāo)準(zhǔn)計算器");} else {??string1.Format(yī)(”%f”,log(atof(m_Show)));? while(string1.Right(1)=="0") { ? string1=string1。Left(string1.GetLength()-1); ?}? if(string1.Right(1)=="?!保? { ??string1=string1。Left(string1.GetLength()-1);??}? m_Show=string1; m_Flag=1; ?UpdateData(false);? }}voidCJSQDlg::OnLogButton(){?//TO(shè)DO:Addyourcontrolnotificationhandlercodehere?if(m_Show==’0’||m_Show.GetLength()==0) { MessageBox("輸入的數(shù)據(jù)錯誤,請重新輸入!","科學(xué)計算器(徐金富)"); } elseif(m_Show。Find("-")!=-1)?{MessageBox("輸入的數(shù)據(jù)錯誤,請重新輸入!”,”科學(xué)計算器(徐金富)");} else { string1.Format(yī)("%f”,log10(atof(m_Show)));? while(string1.Right(1)=="0")??{ ? string1=string1。Left(string1.GetLength()-1);? }??if(string1。Right(1)==”.”)??{? ?string1=string1.Left(string1.GetLength()—1); ?} ?m_Show=string1;??m_Flag=1; UpdateData(false);? }}voidCJSQDlg::OnKe3Button(){?//TODO:Addyourcontrolnotificat(yī)ionhandlercodehere?floatn=atof(m_Show);?float(yī)res=1; if(m_Show。Find(”.")!=-1&&m_Show.Find(".")!=m_Show.GetLength()—1) {MessageBox(”無法計算小數(shù)的n!,n必須為正整數(shù)!",”科學(xué)計算器(徐金富)”);}?elseif(m_Show。Find("—")!=—1)?{MessageBox("無法計算負(fù)數(shù)的n!,n必須為正整數(shù)?。ⅲ笨茖W(xué)計算器(徐金富)");} elseif(atof(m_Show)>30) {MessageBox("超出計算范圍,要求的階層數(shù)過大無法表示","科學(xué)計算器(徐金富)");return;} else {? for(inti=1;i〈=n;i++) ?{ ? res=res*i; }??if(res==0) {?? res=1; }? string1。Format(”%f",res); ?while(string1。Right(1)=="0")? {???string1=string1.Left(string1.GetLength()-1);??}??if(string1。Right(1)==”.")??{ ?string1=string1。Left(string1.GetLength()-1); ?} ?m_Show=string1; m_Flag=1; Updat(yī)eData(false); }}voidCJSQDlg::OnKe4Button(){?float(yī)res=1; //TODO:Addyourcontrolnotificationhandlercodehere if(m_Show.Find(".")!=—1&&m_Show.Find("。")!=m_Show。GetLength()—1) {MessageBox(”n必須為正整數(shù)!","科學(xué)計算器(徐金富)");}?elseif(m_Show.Find("-”)?。?1)?{MessageBox(”n必須為正整數(shù)!",”科學(xué)計算器(徐金富)”);} else { ?for(inti=1;i<=at(yī)of(m_Show);i++) {? ?res=res*10; ?} s

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論