![Java GUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view7/M00/33/2A/wKhkGWbDDa-AfSXuAACkbjeCamE546.jpg)
![Java GUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view7/M00/33/2A/wKhkGWbDDa-AfSXuAACkbjeCamE5462.jpg)
![Java GUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view7/M00/33/2A/wKhkGWbDDa-AfSXuAACkbjeCamE5463.jpg)
![Java GUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view7/M00/33/2A/wKhkGWbDDa-AfSXuAACkbjeCamE5464.jpg)
![Java GUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view7/M00/33/2A/wKhkGWbDDa-AfSXuAACkbjeCamE5465.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JavaGUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)JavaGUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)/JavaGUI程序設(shè)計(jì)Mathematica的前端實(shí)現(xiàn)面向?qū)ο笳Z(yǔ)言程序設(shè)計(jì)報(bào)告題目:JavaGUI程序設(shè)計(jì)姓名:班級(jí):學(xué)號(hào):指導(dǎo)教師:2016年12月摘要Java是一門功能強(qiáng)大和簡(jiǎn)單易的面向?qū)ο缶幊陶Z(yǔ)言,Mathematica是一款科學(xué)計(jì)算軟件,很好地結(jié)合了數(shù)值和符號(hào)計(jì)算引擎、圖形系統(tǒng)、編程語(yǔ)言、文本系統(tǒng)、和及其他應(yīng)用程序的高級(jí)連接。通過學(xué)習(xí)Mathematica中提供的Java接口JLink,將利用在Java的圖形界面窗口中輸入Mathematica語(yǔ)句并在Java的圖形窗口中顯示輸出結(jié)果。對(duì)于大多數(shù)第四代語(yǔ)言的集成開發(fā)環(huán)境都有命令窗(CommandWindow),而由于Mathematica的特殊性,它的集成開發(fā)環(huán)境中并沒有命令窗,本設(shè)計(jì)也類結(jié)果似于命令窗,可以幫助習(xí)慣于其他第四代語(yǔ)言的用戶繼續(xù)使用命令窗。關(guān)鍵詞:Java;Mathematica;JLink;GUI目錄面向?qū)ο笳Z(yǔ)言程序設(shè)計(jì)報(bào)告 1摘要 2目錄 2第一章引言 1第二章設(shè)計(jì)思路 2§2.1框架設(shè)計(jì) 2§2.2詳細(xì)設(shè)計(jì) 22.2.1JLink 2第三章結(jié)果 3第四章不足與展望 4參考文獻(xiàn) 5附錄 5GraphicsApp 5welcome 9openurl 11第一章引言Java是一門面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程[1]
。Java具有簡(jiǎn)單性、面向?qū)ο蟆⒎植际?、健壯性、安全性、平臺(tái)獨(dú)立及可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)[2]
。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等[3]
。圖形用戶界面(GUI,GraphicalUserInterface)是指以圖形化方式及用戶進(jìn)行交互的程序運(yùn)行界面,它的引入會(huì)使程序更友好、更豐富,且提供靈活、強(qiáng)大的人機(jī)交互功能,它已成為當(dāng)前應(yīng)用程序設(shè)計(jì)的主流。在GUI程序設(shè)計(jì)中,組件(Component)是GUI的基本組成元素,凡是能夠以圖形化方式顯示在屏幕上并能及用戶交互的對(duì)象均為組件。事件是指組件觸發(fā)的動(dòng)作事件,java中不同的事件由不同的監(jiān)聽器處理,組件是事件源對(duì)象,而監(jiān)聽器主要用來(lái)接收來(lái)自事件源對(duì)象產(chǎn)生的動(dòng)作事件,然后對(duì)其處理。Wolfram語(yǔ)言(通常指代Mathematica或者縮寫為MMA),是Mathematica和WolframProgrammingCloud所使用的語(yǔ)言。這是一種由沃爾夫勒姆研究公司開發(fā)的多模態(tài)編程語(yǔ)言。它是一種被期望將顛覆編程甚至顛覆世界的全新計(jì)算模式。它具有廣泛和普遍的適用性,主要特點(diǎn)是符號(hào)計(jì)算、函數(shù)式編程和基于規(guī)則的編程。它可以用來(lái)創(chuàng)建和表示任何結(jié)構(gòu)和數(shù)據(jù)。這種語(yǔ)言覆蓋面非常全面和廣泛,并且可以用于解決大量專業(yè)領(lǐng)域的問題。例如,它內(nèi)置了用于生成和運(yùn)行圖靈機(jī)、創(chuàng)建圖形和音頻、分析三維模型、矩陣操作、求解微分方程的內(nèi)置函數(shù)。為了方便用戶使用,還提供了豐富的文檔資料。Mathematica的底層解釋器大部分由C語(yǔ)言寫成,此外一些極端要求速度的基礎(chǔ)計(jì)算函數(shù)也由C語(yǔ)言支持,而其他大量的實(shí)用函數(shù)以及包由則是由Mathematica編程語(yǔ)言來(lái)實(shí)現(xiàn)的。解釋器和這些函數(shù)構(gòu)成了所謂的MathematicaKernel。Mathematica這個(gè)生態(tài)系統(tǒng)的另外一個(gè)重要組成部分是前端(FrontEnd),大量美輪美奐的數(shù)學(xué)公式顯示,圖形繪制,文檔排版功能都極大程度地依賴前端,而前端和Kernel之間通過MathLink進(jìn)行交互。FrontEnd和Kernel被設(shè)計(jì)得相當(dāng)獨(dú)立,盡管并不普遍,但是FrontEnd實(shí)際上是可以被當(dāng)做獨(dú)立的軟件來(lái)使用的,用戶可以在上面編輯文字公式,生成漂亮的文檔、演示文稿,繪制圖形等等。雖然Mathematica提供了JLink包,但是關(guān)于這部分的幫助卻不是中文的,對(duì)于Java初學(xué)者來(lái)說(shuō)理解起來(lái)會(huì)有著較大的困難。在網(wǎng)絡(luò)上搜索,發(fā)現(xiàn)有關(guān)這方面的中文資料也是寥寥無(wú)幾。每一種計(jì)算機(jī)語(yǔ)言都有著它的優(yōu)點(diǎn)和不足,Mathematica雖然簡(jiǎn)單強(qiáng)大,但是也有它不擅長(zhǎng)的方面,例如在進(jìn)行二進(jìn)制文件操作方面,讀取速度相當(dāng)慢,而且提供的對(duì)二進(jìn)制文件的操作也極為匱乏,對(duì)于較大的二進(jìn)制文件,除非內(nèi)存至少有文件大小的兩倍大小,否則無(wú)法操作。而Java語(yǔ)言相比于Mathematica在對(duì)于某些相對(duì)原始的文件操作上有著較大的優(yōu)勢(shì)可以彌補(bǔ)其不足。本次進(jìn)行的學(xué)習(xí),為以后的實(shí)際需要提供了幫助也可以幫助習(xí)慣于其他第四代語(yǔ)言的用戶在過渡期暫時(shí)使用“Mathematica”下的命令窗。第二章設(shè)計(jì)思路§2.1框架設(shè)計(jì)經(jīng)過仔細(xì)的考慮及多次的嘗試得出了一個(gè)程序框架,如圖2-1所示。歡迎窗口圖2-1程序框架§2.2詳細(xì)設(shè)計(jì)程序的核心在于利用Java調(diào)用Mathematica,歡迎窗口和界面的搭建及事件處理十分簡(jiǎn)單,在任何一本有關(guān)Java的書中都可以查到。下面將重點(diǎn)介紹JLink。2.2.1JLink在Mathematica中提供了許多接口及外部程序交流信息,其中JLink就是專門針對(duì)Java而做的一個(gè)接口。通過JLink,你可以完成在Java中調(diào)用Mathematica的功能,也可以完成在Mathematica中調(diào)用Java的功能。由于Java并不自帶JLink包,首先要將JLink包加入classpath中。如果使用eclipse進(jìn)行編程,可以在Javaproject下新建一個(gè)“l(fā)ib”文件夾,將JLink.jar(如果使用默認(rèn)安裝路徑則在:C:\ProgramFiles\WolframResearch\Mathematica\11.0\SystemFiles\Links\JLink\JLink.jar)拖入該文件夾下。在JLink中,有兩個(gè)最重要的interface分別為MathLink和KernelLink。KernelLink繼承自MathLink。一般只需要使用KernelLink這個(gè)接口。為了完成交互過程,需要獲得一個(gè)KernelLink的對(duì)象。這里獲得的方法采用工廠模式:MathLinkFactory.createKernelLink(argv).在這里argv中包含了安裝的Mathematica的目錄地址。對(duì)于采用默認(rèn)安裝路徑的Mathematica11.0.x版本為:"-linkmodelaunch-linkname'c:\\programfiles\\wolframresearch\\mathematica\\11.0\\mathkernel.exe'"(在Mathematica中不用“\”作為路徑的分割符,而是用“\\”或“/”)。修改好后放到argv所在的位置中即可完成獲得KernelLink對(duì)象的過程。Mathematica在Java環(huán)境中是以類的形式組織起來(lái)的:在包中定義了一個(gè)Expr類來(lái)表示Mathematica的表達(dá)式(Mathematica中一切都是Expression)。所以在Java中,可以將得到的信息和要傳遞的信息都封裝為Expr類的一個(gè)對(duì)象。從KernelLink中讀取信息,可以調(diào)用getExpr()方法得到Expr對(duì)象,然后可以調(diào)用這個(gè)Expr類提供的多個(gè)方法進(jìn)行想要的操作。這些方法和你在Mathematica中遇到的基本相同,都是那里面的函數(shù)名,只不過改為以小寫字母開頭的方法而已。像KernelLink中寫東西也很簡(jiǎn)單,構(gòu)建Expr對(duì)象,然后將它作為參數(shù)傳遞給相應(yīng)的方法。在包中定義了一個(gè)MathLinkException,用來(lái)表示交互過程中出現(xiàn)的所有異常。一般Link的方法都會(huì)拋出異常,所以最好要將這些語(yǔ)句用try,catch結(jié)構(gòu)圍起來(lái)。程序中其他一些不好理解的部分也已經(jīng)用注釋來(lái)標(biāo)注,如果還想想看到關(guān)于這方面更詳細(xì)的說(shuō)明可以查看WritingJavaProgramsThatUsetheWolframLanguage,它的地址為:。第三章結(jié)果啟動(dòng)界面:(a)(b)(c)圖3-1啟動(dòng)界面每張圖顯示時(shí)間為1s,Alpha通道為0的地方顯示為灰色打開菜單中的幫助:(a)(b)圖3-2幫助(a)在線幫助(b)在線資源部分運(yùn)行結(jié)果(a)(b)(c)(d)(e)(f)圖3-3測(cè)試結(jié)果曼德博集(b)按人口加權(quán)的詞云(c)氫原子的電子云(使用排版輸出)(d)Juno探測(cè)器的飛行軌道(e)咖啡因的三維空間填充分子圖形(f)圖靈機(jī)的演變第四章不足及展望由于個(gè)人水平有限,時(shí)間不是特別充裕,程序中有著諸多的不足,例如:為歡迎界面制作的PNG圖片都加入了Alpha通道,Alpha為0的地方應(yīng)該是透明的,但是實(shí)際上是灰色的,如圖3-1所示。前端不具有交互性,在Mathematica中可以受控制的動(dòng)態(tài)無(wú)法實(shí)現(xiàn)動(dòng)態(tài)顯示,不過發(fā)現(xiàn)列表(List,類似于Java中的數(shù)組)卻是動(dòng)態(tài)顯示的,可以用列表的方式實(shí)現(xiàn)動(dòng)態(tài)效果,但速度不受控制。字符過多時(shí),似乎無(wú)法完成運(yùn)算。例如圖3-1詞云中的代碼中有600多個(gè)漢字,無(wú)法得到結(jié)果。還沒有將復(fù)制加入彈出菜單中,想保留結(jié)果只能截圖。參考文獻(xiàn)李剛.瘋狂Java講義.第2版[M].電子工業(yè)出版社,2012.趙景暉.Java程序設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2005.明日科技.Java從入門到精通.第3版[M].清華大學(xué)出版社,2012.附錄GraphicsApppackagesy;importcom.wolfram.jlink.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassGraphicsAppextendsJFrame{ staticGraphicsAppapp; staticKernelLinkml; MathCanvasmathCanvas; TextAreainputTextArea; ButtonevalButton; CheckboxuseFEButton; CheckboxgraphicsButton; CheckboxtypesetButton; JMenuBarjmb=newJMenuBar(); JMenujm1=newJMenu("幫助"); JMenuItemjmi1=newJMenuItem("在線幫助"); JMenuItemjmi2=newJMenuItem("在線資源"); //歡迎界面 publicstaticvoidmain(String[]argv){ JFrameframe=newJFrame("歡迎屏幕"); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); welcomesplash=newwelcome("C:/Users/siyuan/Desktop/滑稽.png",frame,3000); welcomesplash2=newwelcome("C:/Users/siyuan/Desktop/我愛學(xué)習(xí).png",frame,2000); welcomesplash3=newwelcome("C:/Users/siyuan/Desktop/mma2.png",frame,1000); frame.pack(); //frame.setVisible(true); try{ //獲得KernelLink的對(duì)象 ml=MathLinkFactory.createKernelLink( "-linkmodelaunch-linkname'C:\\ProgramFiles\\WolframResearch\\Mathematica\\11.0\\mathkernel.exe'"); ml.discardAnswer(); }catch(MathLinkExceptione){ System.out.println("連接kernel時(shí)出現(xiàn)問題"); return; } app=newGraphicsApp(); } //界面構(gòu)建 publicGraphicsApp(){ setLayout(null); setTitle("繪圖+"); mathCanvas=newMathCanvas(ml); add(mathCanvas); mathCanvas.setBackground(Color.white); inputTextArea=newTextArea("",2,40,TextArea.SCROLLBARS_VERTICAL_ONLY); add(inputTextArea); evalButton=newButton("運(yùn)行"); add(evalButton); evalButton.addActionListener(newBnAdptr()); useFEButton=newCheckbox("使用前端",true); CheckboxGroupcg=newCheckboxGroup(); graphicsButton=newCheckbox("以圖像方式輸出(推薦)",true,cg); typesetButton=newCheckbox("排版輸出(圖像輸出結(jié)果不正常顯示時(shí)使用)",false,cg); add(useFEButton); add(graphicsButton); add(typesetButton); //位置和大小 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); setSize(410,470); setLocation(screenSize.width/2-(410/2),screenSize.height/2-(470/2)); //setLocation(700,300); mathCanvas.setBounds(10,15,380,240); inputTextArea.setBounds(10,270,310,60); evalButton.setBounds(330,290,60,30); graphicsButton.setBounds(20,340,200,20); typesetButton.setBounds(20,365,300,20); useFEButton.setBounds(250,340,100,20); jm1.add(jmi1); jm1.add(jmi2); jmb.add(jm1); setJMenuBar(jmb); //打開網(wǎng)頁(yè) jmi1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringurl=""; try{ openurl.poenBrowser(url); }catch(Exceptionf){ f.printStackTrace(); } } }); jmi2.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringurl=""; try{ openurl.poenBrowser(url); }catch(Exceptiong){ g.printStackTrace(); } } }); addWindowListener(newWnAdptr()); setBackground(Color.lightGray); setResizable(false); /* *雖然此代碼將自動(dòng)在evaluateToImage或evaluateToTypeset中調(diào)用,但它可能導(dǎo)致前端窗口進(jìn)入此Java窗口的前面。 *因此,最好在開始時(shí)讓它脫離,并調(diào)用toFront將此窗口放回到前面。 *KernelLink.PACKAGE_CONTEXT只是“JLink`”,但最好使用這個(gè)符號(hào)常量,而不是修改packagecontext。 */ ml.evaluateToInputForm("Needs[\""+KernelLink.PACKAGE_CONTEXT+"\"]",0); ml.evaluateToInputForm("ConnectToFrontEnd[]",0); setVisible(true); toFront(); } classBnAdptrimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ mathCanvas.setImageType(graphicsButton.getState()?MathCanvas.GRAPHICS:MathCanvas.TYPESET); mathCanvas.setUsesFE(useFEButton.getState());//是否使用前端,在mathematica6.0版本以上都需要使用前端,所以無(wú)論是false還是true都統(tǒng)統(tǒng)變?yōu)閠rue mathCanvas.setMathCommand(inputTextArea.getText());//將輸入傳入MMA } } classWnAdptrextendsWindowAdapter{ publicvoidwindowClosing(WindowEventevent){ if(ml!=null){ /* *因?yàn)槲覀兪褂们岸耍栽陉P(guān)閉link之前調(diào)用CloseFrontEnd[]很重要。 *這不是因?yàn)橄霃?qiáng)制退出前端,而是因?yàn)槿绻脩粢呀?jīng)開始在我們創(chuàng)建的前端會(huì)話中工作,我們不想這樣做。 *用CloseFrontEnd可以在必要時(shí)從前端脫離。 */ ml.evaluateToInputForm("CloseFrontEnd[]",0); ml.close(); } dispose(); System.exit(0); } }}welcomepackagesy;importjava.awt.*;importjavax.swing.*;publicclasswelcomeextendsJWindow{ /* *構(gòu)造函數(shù) *@param歡迎屏幕所用的圖片 *@paramframe歡迎屏幕所屬的窗體 *@paramwaitTime歡迎屏幕顯示的事件 */ publicwelcome(String,JFrameframe,intwaitTime){ super(frame); //setDefaultCloseOperation(EXIT_ON_CLOSE); //建立一個(gè)標(biāo)簽,標(biāo)簽中顯示圖片。 JLabellabel=newJLabel(newImageIcon()); //將標(biāo)簽放在歡迎屏幕中間 getContentPane().add(label,BorderLayout.CENTER); pack(); //獲取屏幕的分辨率大小 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); //獲取標(biāo)簽大小 DimensionlabelSize=label.getPreferredSize(); //將歡迎屏幕放在屏幕中間 setLocation(screenSize.width/2-(labelSize.width/2),screenSize.height/2-(labelSize.height/2)); //增加一個(gè)鼠標(biāo)事件處理器,如果用戶用鼠標(biāo)點(diǎn)擊了歡迎屏幕,則關(guān)閉。 addMouseListener(newMouseAdapter(){ publicvoidmousePressed(MouseEvente){ setVisible(false); dispose(); } }); finalintpause=waitTime; /* *Swing線程在同一時(shí)刻僅能被一個(gè)線程所訪問。一般來(lái)說(shuō),這個(gè)線程是事件派發(fā)線程(event-dispatchingthread)。 *如果需要從事件處理(event-handling)或繪制代碼以外的地方訪問UI, *那么可以使用SwingUtilities類的invokeLater()或invokeAndWait()方法。 */ //關(guān)閉歡迎屏幕的線程 finalRunnablecloserRunner=newRunnable(){ publicvoidrun(){ setVisible(false); dispose(); } }; //等待關(guān)閉歡迎屏幕的線程 RunnablewaitRunner=newRunnable(){ publicvoidrun(){ try{ //當(dāng)顯示了waitTime后,嘗試關(guān)閉歡迎屏幕 Thread.sleep(pause); SwingUtilities.invokeAndWait(closerRunner); //SwingUtilities.invokeLater(closerRunner); }catch(Exceptione){ e.printStackTrace(); } } }; setVisible(true); //啟動(dòng)等待關(guān)閉歡迎屏幕的線程 ThreadsplashThread=newThread(waitRunner,"SplashThread"); splashThread.start(); }}openurlpackagesy;importjava.lang.reflect.Method
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)英語(yǔ)上冊(cè) Module 1 Getting to know you Unit 3 Are you Kitty說(shuō)課稿 牛津滬教版(三起)
- 21《古詩(shī)三首》說(shuō)課稿-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版001
- 6《摸一摸》說(shuō)課稿-2024-2025學(xué)年科學(xué)一年級(jí)上冊(cè)青島版
- 2024-2025學(xué)年高中生物 第3章 植物的激素調(diào)節(jié) 第1節(jié) 植物生長(zhǎng)素的發(fā)現(xiàn)說(shuō)課稿 新人教版必修3001
- 2024年五年級(jí)英語(yǔ)下冊(cè) Module 7 Unit 2 I will be home at seven oclock說(shuō)課稿 外研版(三起)
- 2025住宅裝修物業(yè)管理合同(合同范本)
- 8《池子與河流》(說(shuō)課稿)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文三年級(jí)下冊(cè)
- 2025鍋爐拆除安全施工合同
- 2025有關(guān)電梯廣告的合同范本
- Unit 6 Disaster and Hope Understanding ideas 說(shuō)課稿-2023-2024學(xué)年外研版高中英語(yǔ)(2019)必修第三冊(cè)
- 玻璃反應(yīng)釜安全操作及保養(yǎng)規(guī)程
- 高中英語(yǔ)新課標(biāo)詞匯表(附詞組)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識(shí)考試題庫(kù)附完整答案【有一套】
- 證券公司信用風(fēng)險(xiǎn)和操作風(fēng)險(xiǎn)管理理論和實(shí)踐中金公司
- 一級(jí)建造師繼續(xù)教育最全題庫(kù)及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項(xiàng)施工方案
- 儲(chǔ)能設(shè)備項(xiàng)目采購(gòu)供應(yīng)質(zhì)量管理方案
評(píng)論
0/150
提交評(píng)論