




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
多功能計(jì)算器《軟件綜合設(shè)計(jì)》實(shí)驗(yàn)報(bào)告書(shū)項(xiàng)目名稱:多功能計(jì)算器同組人員1:袁偉強(qiáng)學(xué)號(hào)1:2012102073同組人員2:李浩偉學(xué)號(hào)2:2012102063同組人員3:張寶學(xué)號(hào)3:2012102095報(bào)告撰寫(xiě)日期:2015/4/14
目錄第1章可行性研究報(bào)告 31.1項(xiàng)目背景 31.2實(shí)用意義 31.3技術(shù)方案 3第2章需求規(guī)格說(shuō)明書(shū) 42.1軟件功能需求 42.2運(yùn)行需求 4第3章軟件概要設(shè)計(jì) 53.1任務(wù)概述 53.2總體設(shè)計(jì) 5第4章詳細(xì)設(shè)計(jì)說(shuō)明書(shū) 64.1功能說(shuō)明 64.2設(shè)計(jì)思路 64.3程序流程圖 74.4計(jì)算器軟件操作界面 104.5計(jì)算器重要代碼 104.6匯率轉(zhuǎn)化界面 11第5章多功能計(jì)算器代碼及算法 135.1計(jì)算器主要代碼及算法 135.2匯率轉(zhuǎn)換器主要代碼及算法 18第1章可行性研究報(bào)告1.1項(xiàng)目背景隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,人們的生活節(jié)奏也變得越來(lái)越快。面對(duì)如此高速的生活節(jié)奏,我們現(xiàn)代人必不可少的應(yīng)用計(jì)算機(jī)來(lái)幫我們解決一些問(wèn)題以提高做事情的效率,其中多功能計(jì)算器就是其中最好的一個(gè)代表。多功能計(jì)算器不僅能幫助人們快速計(jì)算,更能夠保證計(jì)算的正確率,從而幫助人們快速地解決一些使用的問(wèn)題。另一方面隨著國(guó)際化的到來(lái),人們對(duì)外的交流日益增多,這期間必不可少的就會(huì)牽扯到貨幣,所以擁有一個(gè)貨幣轉(zhuǎn)化器是一個(gè)最佳的選擇。多功能計(jì)算器集合了計(jì)算器和貨幣轉(zhuǎn)換器,由此可見(jiàn)它的需求還是很大的。1.2實(shí)用意義計(jì)算器因其高速準(zhǔn)確的特點(diǎn)在人們的生活中得到廣泛的應(yīng)用,但是隨著社會(huì)的發(fā)展,單純的計(jì)算器已經(jīng)不能適應(yīng)人們?nèi)粘I畹男枨?。所以多功能?jì)算器的產(chǎn)生給人們帶來(lái)了更大的便捷,也使傳統(tǒng)計(jì)算器得到了更好的拓展,更能適合現(xiàn)代人的生活方式以及特點(diǎn)。1.3技術(shù)方案本設(shè)計(jì)基于MFC進(jìn)行設(shè)計(jì),以C++語(yǔ)言為設(shè)計(jì)語(yǔ)言,實(shí)現(xiàn)了以下幾大功能:1、傳統(tǒng)計(jì)算功能2、時(shí)間顯示3、貨幣匯率轉(zhuǎn)換;需求規(guī)格說(shuō)明書(shū)軟件功能需求多功能計(jì)算器是日常小工具,所以良好的人機(jī)交互應(yīng)該做到要涉及到轉(zhuǎn)換頁(yè)面的操作,所以要學(xué)會(huì)對(duì)頁(yè)面轉(zhuǎn)換因?yàn)樯婕暗揭脤?duì)話框進(jìn)行人機(jī)交互,所以設(shè)計(jì)到對(duì)對(duì)話框的學(xué)習(xí)及使用在計(jì)算器界面有時(shí)間顯示功能,所以要掌握在示例編輯框內(nèi)顯示時(shí)間的操作2.2運(yùn)行需求軟件需要在visualstudio2010軟件下進(jìn)行運(yùn)行調(diào)試。軟件概要設(shè)計(jì)任務(wù)概述本軟件是簡(jiǎn)單計(jì)算器,同時(shí)附帶匯率轉(zhuǎn)換功能以及系統(tǒng)時(shí)間顯示功能。本設(shè)計(jì)按軟件工程的方法進(jìn)行,系統(tǒng)具有良好的界面、必要的交互信息和較好的健壯性;醒目美觀的軟件封面。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,匯率轉(zhuǎn)換以及系統(tǒng)時(shí)間。本軟件分為兩個(gè)模塊,下面對(duì)兩模塊進(jìn)行簡(jiǎn)單分析:1:計(jì)算機(jī)模塊能簡(jiǎn)單進(jìn)行加、減、乘、除四種運(yùn)算,同時(shí)還有相應(yīng)的返回與清零功能。同時(shí)在該模塊正上方顯示系統(tǒng)日期時(shí)間。2:匯率轉(zhuǎn)換模塊能將人民幣換算成美元、日元、韓元、英鎊、歐元等各種貨幣。3.2總體設(shè)計(jì)
基于MFC庫(kù)類進(jìn)行對(duì)對(duì)話框界面的設(shè)計(jì),通過(guò)創(chuàng)建類成員函數(shù)成員變量,編輯控件創(chuàng)建消息映射,調(diào)用消息函數(shù)完成數(shù)據(jù)的輸入輸出,實(shí)現(xiàn)計(jì)算功能和匯率轉(zhuǎn)換功能,生成應(yīng)用軟件。計(jì)算機(jī)模塊總體設(shè)計(jì):?jiǎn)螕舭粹o響應(yīng)函數(shù)功能,選擇操作數(shù)進(jìn)行相應(yīng)的運(yùn)算,計(jì)算出結(jié)果并在該模塊中顯示。匯率轉(zhuǎn)換模塊的總體設(shè)計(jì)思路是:輸入人民幣的數(shù)值,單擊按鈕響應(yīng)函數(shù)功能,計(jì)算出相應(yīng)結(jié)果并在匯率模塊中顯示出結(jié)果。詳細(xì)設(shè)計(jì)說(shuō)明書(shū)4.1功能說(shuō)明它的設(shè)計(jì)按軟件工程的方法進(jìn)行,系統(tǒng)具有良好的界面;必要的交互信息;簡(jiǎn)約美觀的效果。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即可單機(jī)按鈕進(jìn)行操作,也可直接通過(guò)鍵盤(pán)直接輸入。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,充分降低了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生活有一定的幫助。(1)包含的功能有:加、減、乘、除運(yùn)算,匯率轉(zhuǎn)換,時(shí)鐘顯示等功能。(2)計(jì)算器上數(shù)字0—9為一個(gè)控件數(shù)組,加、減、乘、除為一個(gè)控件數(shù)組,其余為單一的控件。(3)給對(duì)話框添加菜單。(4)計(jì)算功能基本上是用系統(tǒng)內(nèi)部函數(shù)。(5)程序可以能自動(dòng)判斷輸入數(shù)據(jù)的正確性,保證不出現(xiàn)多于一個(gè)小數(shù)點(diǎn)、以0開(kāi)頭等不正常現(xiàn)象。(6)“C”按鈕可以清除所有已輸入的數(shù)據(jù)從頭計(jì)算。(7)匯率轉(zhuǎn)換由計(jì)算器界面按鈕控制單獨(dú)條轉(zhuǎn)出頁(yè)面。(8)時(shí)鐘顯示分別在計(jì)算器界面與匯率轉(zhuǎn)換界面顯示,調(diào)用系統(tǒng)時(shí)間。4.2設(shè)計(jì)思路如圖是整個(gè)計(jì)算器的流程圖,打開(kāi)計(jì)算器程序,輸入數(shù)據(jù),調(diào)用輸入數(shù)據(jù)子程序。子程序開(kāi)始時(shí)m_dEditNo為零。按下數(shù)字按鈕后,判斷m_dEditNo,對(duì)其進(jìn)行相關(guān)處理,然后在判斷是否有小數(shù)點(diǎn),處理后輸出結(jié)果?;氐娇偭鞒虉D中,輸完第一個(gè)操作數(shù)后,若按下雙目運(yùn)算符,則把m_dEditNo存入oldNumber,按下輸入第二個(gè)操作數(shù)并算出結(jié)果。若按下的是單目運(yùn)算符,則直接對(duì)其處理得出結(jié)果。若按下清零,則m_dEditNo等于0.在運(yùn)算中還要判斷運(yùn)算是否合法,以及結(jié)果是否超出顯示范圍,以做出相關(guān)提示,按下清零。算出后把結(jié)果保存至oldNumber。若需用算出的結(jié)果繼續(xù)運(yùn)算則回到輸入完第一個(gè)操作數(shù)后,若不需要?jiǎng)t判斷試否需要開(kāi)始新一輪的運(yùn)算,不需要?jiǎng)t結(jié)束。4.3程序流程圖NNNY鍵入一個(gè)數(shù)是否為正數(shù)?m_dEditNo=m_dEditNo*10+nm_dEditNo=m_dEditNo*10-n是否為小數(shù)?用UpdateData(true)刷新顯示還原m_dEditNo根據(jù)小數(shù)點(diǎn)后位數(shù)將鍵入的數(shù)除以n次10累加到m_numYN繼續(xù)鍵入數(shù)字?Y編輯框關(guān)聯(lián)變量m_num=0圖4-1輸入數(shù)據(jù)子函數(shù)流程圖m_dEditNo清零開(kāi)始運(yùn)算是否合法把結(jié)果保存到oldNumber彈出對(duì)話框顯示ERRORNY是否用保存的結(jié)果繼續(xù)進(jìn)行運(yùn)算N是否開(kāi)始新一輪的計(jì)算YY結(jié)束jieN運(yùn)算符編輯框關(guān)聯(lián)的變量保存至oldNumber輸入數(shù)據(jù)子函數(shù)進(jìn)行運(yùn)算輸入數(shù)據(jù)子函數(shù)m_dEditNo清零開(kāi)始運(yùn)算是否合法把結(jié)果保存到oldNumber彈出對(duì)話框顯示ERRORNY是否用保存的結(jié)果繼續(xù)進(jìn)行運(yùn)算N是否開(kāi)始新一輪的計(jì)算YY結(jié)束jieN運(yùn)算符編輯框關(guān)聯(lián)的變量保存至oldNumber輸入數(shù)據(jù)子函數(shù)進(jìn)行運(yùn)算輸入數(shù)據(jù)子函數(shù)圖4-2簡(jiǎn)單計(jì)算器總流程圖結(jié)束jie結(jié)束jie選擇貨幣種類進(jìn)行數(shù)據(jù)轉(zhuǎn)化運(yùn)算判斷運(yùn)算結(jié)果數(shù)據(jù)顯示轉(zhuǎn)換后金額輸入人民幣金額輸入數(shù)據(jù)不對(duì)開(kāi)始Y圖4-3簡(jiǎn)單匯率轉(zhuǎn)換流程圖計(jì)算器軟件測(cè)試界面圖4-4計(jì)算器界面上圖為計(jì)算器界面,C為清零按鈕,CE為清除剛輸入的數(shù)據(jù),方便輸入數(shù)據(jù)錯(cuò)誤的時(shí)候改數(shù)據(jù)。BackSpace為數(shù)據(jù)退位按鈕,沒(méi)按一次數(shù)據(jù)縮小為前面的十倍,相當(dāng)于小數(shù)點(diǎn)往后退一位。加減乘除分別對(duì)應(yīng)各自的運(yùn)算符,數(shù)字0—9為一個(gè)控件數(shù)組,匯率轉(zhuǎn)換按鈕跳轉(zhuǎn)到匯率轉(zhuǎn)換界面。4.5計(jì)算器重要代碼圖4-5數(shù)據(jù)輸入代碼圖4-6數(shù)據(jù)計(jì)算代碼4.6匯率轉(zhuǎn)換界面圖4-7匯率轉(zhuǎn)換界面上面為匯率轉(zhuǎn)換界面,當(dāng)輸入一定的人民幣金額時(shí),選擇對(duì)應(yīng)的轉(zhuǎn)換金額種類,下面的示例編輯框就會(huì)顯示出轉(zhuǎn)換出來(lái)的數(shù)據(jù)金額。圖4-8匯率轉(zhuǎn)換有關(guān)的部分代碼圖4-9時(shí)鐘顯示代碼時(shí)鐘顯示調(diào)用的為系統(tǒng)的時(shí)間。第5章關(guān)鍵代碼及算法5.1計(jì)算器主要代碼及算法voidCCalculaterDlg::OnPaint(){ if(IsIconic()) { CPaintDCdc(this);//用??于?¨2繪?制?的ì?設(shè)|¨¨備à?上|?下?文? SendMessage(WM_ICONERASEBKGND,reinterpret_cast<WPARAM>(dc.GetSafeHdc()),0); //使o1圖a?標(biāo)à¨o在¨2工?è作á??區(qū)?矩?形?中D居¨?中D intcxIcon=GetSystemMetrics(SM_CXICON); intcyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); intx=(rect.Width()-cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; //繪?制?圖a?標(biāo)à¨o dc.DrawIcon(x,y,m_hIcon); } else { CDialog::OnPaint(); }}//當(dāng)ì?à用??戶?ì拖a?動(dòng)?¥最á?小?化?¥窗???口¨2時(shí)o?à系|ì統(tǒng)a3調(diào)ì??用??此??函?¥數(shù)oy取¨?得ì?光a標(biāo)à¨o//顯?示o?。?êHCURSORCCalculaterDlg::OnQueryDragIcon(){ returnstatic_cast<HCURSOR>(m_hIcon);}voidCCalculaterDlg::OnBnClickedBtn0(){ OnNoBtn(0);}voidCCalculaterDlg::OnBnClickedBtn1(){ OnNoBtn(1);}voidCCalculaterDlg::OnBnClickedBtn2(){ OnNoBtn(2);}voidCCalculaterDlg::OnBnClickedBtn3(){ OnNoBtn(3);}voidCCalculaterDlg::OnBnClickedBtn4(){ OnNoBtn(4);}voidCCalculaterDlg::OnBnClickedBtn5(){ OnNoBtn(5);}voidCCalculaterDlg::OnBnClickedBtn6(){ OnNoBtn(6);}voidCCalculaterDlg::OnBnClickedBtn7(){ OnNoBtn(7);}voidCCalculaterDlg::OnBnClickedBtn8(){ OnNoBtn(8);}voidCCalculaterDlg::OnBnClickedBtn9(){ OnNoBtn(9);}voidCCalculaterDlg::OnNoBtn(intn)//OnNoBtn(intn)函?¥數(shù)oy定?§義°?{ UpdateData(true); if(flag){ m_dEditNo=n; flag=false; } else m_dEditNo=m_dEditNo*10+n; UpdateData(false);}voidCCalculaterDlg::OnBnClickedBtnC(){ UpdateData(true); oldNumber=0; m_dEditNo=0; UpdateData(false);}voidCCalculaterDlg::OnBnClickedBtnCe(){ UpdateData(true); m_dEditNo=0; UpdateData(false);}voidCCalculaterDlg::OnBnClickedBtnBackspace(){ UpdateData(true); m_dEditNo=m_dEditNo/10; UpdateData(false);}voidCCalculaterDlg::OnBnClickedBtnAdd(){ Calculate(); type=ADD;}voidCCalculaterDlg::OnBnClickedBtnSubtract(){ Calculate(); type=SUBTRACT;}voidCCalculaterDlg::OnBnClickedBtnMultiply(){ Calculate(); type=MULTIPLY;}voidCCalculaterDlg::OnBnClickedBtnDivide(){ Calculate(); type=DIVIDE;}voidCCalculaterDlg::OnBnClickedBtnResult(){ Calculate(); type=NULL;}voidCCalculaterDlg::Calculate(){ UpdateData(true); switch(type){ caseADD: m_dEditNo+=oldNumber;break; caseSUBTRACT: m_dEditNo=oldNumber-m_dEditNo;break; caseMULTIPLY: m_dEditNo*=oldNumber;break; caseDIVIDE: m_dEditNo=oldNumber/m_dEditNo;break; default:break; } oldNumber=m_dEditNo; UpdateData(false); flag=true;}voidCCalculaterDlg::OnBnClickedButton2(){ Chuilvhuilv; huilv.DoModal(); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidCCalculaterDlg::OnEnChangeEditShow(){ //TODO:IfthisisaRICHEDITcontrol,thecontrolwillnot //sendthisnotificationunlessyouoverridetheCDialog::OnInitDialog() //functionandcallCRichEditCtrl().SetEventMask() //withtheENM_CHANGEflagORedintothemask. //TODO:Addyourcontrolnotificationhandlercodehere}//voidCCalculaterDlg::OnTimeChange()//{// CDialog::OnTimeChange();//// CTimetmSCan=CTime::GetCurrentTime();// m_time=tmSCan.Format("'%Y-%m-%d%H:%M:%S'");;// UpdateData(false);// //TODO:在¨2此??處?|添?¨a加¨?消?息?é處?|理¤¨a程¨?序¨°代?¨2碼?//}voidCCalculaterDlg::OnTimer(UINT_PTRnIDEvent){ //TODO:在¨2此??添?¨a加¨?消?息?é處?|理¤¨a程¨?序¨°代?¨2碼?和¨a/或¨°調(diào)ì??用??默?認(rèn)¨?值|ì CDialog::OnTimer(nIDEvent);//設(shè)|¨¨置?一°?個(gè)?定?§時(shí)o?à器??,ê?如¨?果?毀¨′掉ì?函?¥數(shù)oy是o?NULL的ì?話??,ê?就¨a會(huì)¨¢每?隔?一°?段?時(shí)o?à間?往a¨′hWnd標(biāo)à¨o至¨¢的ì?窗???口¨2發(fā)¤?é送¨aWM_TIMER消?息?é,ê?而?OnTimer(nIDEvent)//就¨a是o?用??來(lái)¤??處?|理¤¨a這a個(gè)?消?息?é的ì?函?¥數(shù)oy CTimetmSCan=CTime::GetCurrentTime(); m_time=tmSCan.Format("%Y-%m-%d%H:%M:%S");//y表à¨a示o?年¨om表à¨a示o?月?d表à¨a示o?日¨?H表à¨a示o?時(shí)o?àM表à¨a示o?分¤?S表à¨a示o?秒? UpdateData(false);}voidCCalculaterDlg::OnEnChangeEdit1(){ //TODO:如¨?果?該?控?件t是o?RICHEDIT控?件t,ê?它¨1將?不? //發(fā)¤?é送¨a此??通a?§知a,ê?除y非¤?重?寫(xiě)??CDialog::OnInitDialog() //函?¥數(shù)oy并?é調(diào)ì??用??CRichEditCtrl().SetEventMask(),ê? //同a?時(shí)o?à將?ENM_CHANGE標(biāo)à¨o志?“??或¨°”?à運(yùn)?算?到ì?掩¨2碼?中D。?ê //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}5.2匯率轉(zhuǎn)換器主要代碼及算法voidChuilv::OnBnClickedRadio1(){ UpdateData(true); result=text*0.1614; UpdateData(false); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidChuilv::OnBnClickedRadio2(){ UpdateData(true); result=text*19.3003; UpdateData(false); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidChuilv::OnBnClickedRadio3(){ UpdateData(true); result=text*177.8710; UpdateData(false); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidChuilv::OnBnClickedRadio4(){ UpdateData(true); result=text*0.1086; UpdateData(false); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidChuilv::OnBnClickedRadio5(){ UpdateData(true); result=text*0.1497; UpdateData(false); //TODO:在¨2此??添?¨a加¨?控?件t通a?§知a處?|理¤¨a程¨?序¨°代?¨2碼?}voidChuilv::OnBnClickedButton1(){ OnOK(); //TODO:Addyourcontrolnotificationhandlercodehere}voidChuilv::OnEnChangeEdit2(){ //TODO:IfthisisaRICHEDITcontrol,thecontrolwillnot //sendthisnotificationunlessyouoverridetheCDialogEx::OnInitDialog() //functionandcallCRichEditCtrl().SetEventMask
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 東陽(yáng)光筆試題目及答案
- 小學(xué)六年級(jí)語(yǔ)文調(diào)研題目及答案
- 統(tǒng)計(jì)學(xué)中的評(píng)分標(biāo)準(zhǔn)與評(píng)估試題及答案
- 汽車維修工考試知識(shí)點(diǎn)解析試題及答案
- 企業(yè)中高層管理培訓(xùn)
- 2024年食品質(zhì)檢員考試策略與準(zhǔn)備
- 2024年美容體驗(yàn)顧客分析試題及答案
- 統(tǒng)計(jì)學(xué)考試?yán)斫獬S媚P驮囶}及答案
- 2024年二手車評(píng)估師考試學(xué)習(xí)資源與答案
- 找刺猬閱讀測(cè)試題及答案
- 在職攻讀碩士博士學(xué)位研究生審批表
- 人教版高二語(yǔ)文下冊(cè)《雷雨》原文
- 加工棚驗(yàn)收表
- 某道路運(yùn)輸安全生產(chǎn)業(yè)務(wù)操作規(guī)程
- GB/T 42997-2023家具中揮發(fā)性有機(jī)化合物釋放量標(biāo)識(shí)
- 預(yù)制方樁打樁記錄
- 生態(tài)學(xué)第6章生活史對(duì)策
- Moldflow模流分析基礎(chǔ)教程 課件全套 第1-11章 注塑成型CAE技術(shù)概述-綜合模流分析實(shí)例
- 市政道路工程工序表格清單
- 肉制品中亞硝酸鹽的測(cè)定-分光光度法
- 關(guān)聯(lián)業(yè)務(wù)往來(lái)報(bào)告表填寫(xiě)要求講解課件
評(píng)論
0/150
提交評(píng)論