




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1. 摘要12. 概述22.1課程設(shè)計目的22.2課程設(shè)計內(nèi)容和要求33. 系統(tǒng)需求分析33.1 系統(tǒng)目標(biāo)33.2 主體功能34.系統(tǒng)總體設(shè)計34.1 系統(tǒng)的功能模塊劃分35.主要工作原理和關(guān)鍵技術(shù)介紹45.1 魔方旋轉(zhuǎn)原理技術(shù)介紹45.2關(guān)鍵問題解決思路55.2.1 三維魔方的描述問題的解決方法55.2.2 魔方整體旋轉(zhuǎn)問題的解決辦法56 .代碼調(diào)試67總結(jié)18參考文獻(xiàn)19塔里木大學(xué)課程設(shè)計網(wǎng)頁魔方塊游戲1. 摘要隨著科技發(fā)展和社會進(jìn)步,尤其是計算機(jī)大范圍的普及,計算機(jī)應(yīng)用逐漸由大規(guī)模計算的海量數(shù)據(jù)處理轉(zhuǎn)向大規(guī)模的事物處理和對工作流的管理,這就產(chǎn)生一臺式計算機(jī)為核心的管理系統(tǒng)。在80年
2、代成為一種流行的游戲,在中國把這游戲叫魔方塊游戲。真正的魔方塊總是讓人不停地鉆研,人們通過旋轉(zhuǎn)魔方,開發(fā)自己的思想,可是有時候買一個魔方還是一件很麻煩的事情,很多人有自己的電腦,他們有時候也想能否在電腦上就能體驗(yàn)一下玩魔方的感覺。很多人都有自己的電腦,他們有時候也想能否在電腦上就能體驗(yàn)一下玩魔方的感覺。Java高級程序設(shè)計課程設(shè)計是計算機(jī)科學(xué)與技術(shù)專業(yè)的主要時實(shí)踐性教學(xué)環(huán)節(jié)。解決具有一定規(guī)模的,具有實(shí)際意義的應(yīng)用題,實(shí)現(xiàn)理論課所要求掌握的java解決實(shí)際問題。提高進(jìn)行工程設(shè)計的基本技能及分析,解決實(shí)際問題的能力,為畢業(yè)設(shè)計和以后的工程實(shí)踐打下良好的基礎(chǔ)。解決具有一定規(guī)模的,具有實(shí)際意義的應(yīng)用題
3、,實(shí)現(xiàn)理論課所要求掌握的java解決實(shí)際問題。2. 概述2.1課程設(shè)計目的1.真實(shí)的魔方總是讓人不停地鉆研,人們通過旋轉(zhuǎn)魔方,開發(fā)自己的思維,可是有時候買一個魔方還是一件很麻煩的事情,很多人都有自己的電腦,他們有時候也想能否在電腦上就能體驗(yàn)一下玩魔方的感覺。2知道魔方的發(fā)明和流行歷史。3知道魔方的流行玩法。4知道三階魔方的結(jié)構(gòu)。 5提高學(xué)生科技論文寫作能力,規(guī)范完成課程設(shè)計報告。2.2課程設(shè)計內(nèi)容和要求魔方,Rubliks Cube又叫魔術(shù)方塊,也稱魯比克方塊。是匈牙利布達(dá)佩斯建筑學(xué)院厄爾諾.魯比克教授在1974年發(fā)明的。1.三階魔方核心是一個軸,并由26個小正方體組成。包括中心方塊6個,固定
4、不動,只一面有顏色。邊角方塊8個(3面有色)(角塊)可移動 。邊緣方塊12個(2面有色)(棱塊)亦可轉(zhuǎn)動。2對魔方的應(yīng)用也樂此不疲,數(shù)學(xué)與計算機(jī)方面,研究工作者以魔方為原型和工具,研究代數(shù)學(xué),計算機(jī)圖形圖像,加密算法理論等等。3.在電腦上最好能都簡單的通過鼠標(biāo)控制魔方游戲使其操作更簡單。4.當(dāng)用戶按要求排列好方塊后,程序彈出對話框,提示用戶成功的消息。5.繪制三維仿真魔方:繪制一個六面體,是一個3*3*3形式的魔方。6. 通過引進(jìn)開發(fā)包DirectX基于C#,來實(shí)現(xiàn)繪制三維的仿真實(shí)的九宮格虛擬魔方,并且通過鼠標(biāo)控制其整體的旋轉(zhuǎn),和各個層的旋轉(zhuǎn)。3.系統(tǒng)需求分析3.1 系統(tǒng)目標(biāo)使用所學(xué)知識制作一
5、個基于java的魔方游戲。3.2 主體功能這個程序定義了一些組件,工具欄按鈕,文本區(qū)和菜單。魔板游戲程序設(shè)計通過繪制三維仿真魔方 等類來實(shí)現(xiàn)魔方游戲的整體功能。4.系統(tǒng)總體設(shè)計4.1 系統(tǒng)的功能模塊劃分魔方游戲所用到的一些重要的類以及之間的組合關(guān)系如下圖。 5主要工作原理和關(guān)鍵技術(shù)介紹5.1 魔方旋轉(zhuǎn)原理技術(shù)介紹魔方的旋轉(zhuǎn)主要是通過算法記錄旋轉(zhuǎn)前各個小塊的顏色,旋轉(zhuǎn)后重新對其著色。對圖形不停地進(jìn)行渲染。 圖 1-1 魔方塊外面圖魔方6面正方體。核心是一個軸,并由26小正方體組成包括中心方塊有6個,固定不動只有一面有顏色。邊角方塊8個可轉(zhuǎn)動。5.2關(guān)鍵問題解決思路5.2.1 三維魔方的描述問題的
6、解決方法定義了一個Block類,用來表示一個小的六面體,以及它所在的位置的世界坐標(biāo),和給它的每個面著色的實(shí)現(xiàn)。5.2.2 魔方整體旋轉(zhuǎn)問題的解決辦法通過鼠標(biāo)點(diǎn)擊拖動,控制魔方的整體旋轉(zhuǎn)。定義了一個鼠標(biāo)監(jiān)聽函數(shù),鼠標(biāo)移動后,坐標(biāo)的改變將引起視圖顯示的角度的變化,然后視覺上給人以不同的效果。5.2.3魔方每一層旋轉(zhuǎn)和打亂問題的解決方法每一層的旋轉(zhuǎn),定義了一個旋轉(zhuǎn)函數(shù),每次指定旋轉(zhuǎn)層,根據(jù)其中心塊的表面顏色,來執(zhí)行函數(shù)。旋轉(zhuǎn)函數(shù)通過改變塊的顏色,視覺上給人以旋轉(zhuǎn)后的效果,即重新對魔方的部分要求被改變的小塊進(jìn)行著色。5.3 魔方的打亂 魔方的打亂只是多次隨機(jī)調(diào)用魔方的層旋轉(zhuǎn)函數(shù)。系統(tǒng)實(shí)現(xiàn) 6.代碼調(diào)試
7、import java.applet.*;import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.awt.geom.*;import static java.awt.RenderingHints.*;import javax.swing.Timer;public class m extends Applet implements ActionListener,MouseListener,MouseMotionListenerprivate int xyz; /4個坐標(biāo)構(gòu)成的面private do
8、uble x,y,z; /原始點(diǎn)private double x1,y1,z1; / 旋轉(zhuǎn)后的點(diǎn)private double mxy=1,0,0,0,1,0,0,0,1; /旋轉(zhuǎn)矩陣private int time=0;private int colors=0x70e33e,0x65f0e4,0xf20f2f,0xffff00,0x454545,0xaaaaaa; /六面色privateint 數(shù)量=4; /在此設(shè)置是(4*4)的魔方private int 視距=800; /越大越遠(yuǎn)private int 鼠標(biāo)點(diǎn)=-1; /裝的是點(diǎn)擊后得到的方塊在xyz里的索引private int 鼠標(biāo)點(diǎn)擊
9、=-1,-1; /點(diǎn)擊時的鼠標(biāo)坐標(biāo)private int 鼠標(biāo)移動=-1,-1;private double nou;/旋轉(zhuǎn)矩陣private double 段號;private int 取軸;private BufferedImage bi;private Graphics2D big;/定時器public void actionPerformed(ActionEvent e)if(time>0)for(int i=0;i<數(shù)量*數(shù)量*6;i+)if(get軸(i)for(int u=0;u<4;u+)double hh=xxyziu,yxyziu,zxyziu;doubl
10、e hjh=setMxy(hh,nou);xxyziu=hjh0;yxyziu=hjh1;zxyziu=hjh2;time-;repaint();/Download by /初始化數(shù)據(jù)public void init()double 臨時點(diǎn)=new double3;int i1,i2,i3,i4;int 直徑=100;int 邊距=8;int 中心點(diǎn)=(直徑+邊距)*數(shù)量-邊距)/2;x=new double數(shù)量*數(shù)量*數(shù)量<<3;y=new double數(shù)量*數(shù)量*數(shù)量<<3;z=new double數(shù)量*數(shù)量*數(shù)量<<3;x1=new double數(shù)量*
11、數(shù)量*數(shù)量<<3;y1=new double數(shù)量*數(shù)量*數(shù)量<<3;z1=new double數(shù)量*數(shù)量*數(shù)量<<3;xyz=new int數(shù)量*數(shù)量*數(shù)量<<14;double X軸矩陣=1,0,0,0,0,1,0,-1,0;double Y軸矩陣=0,0,1,0,1,0,-1,0,0;for(i1=0;i1<數(shù)量;i1+)i4=i1<<2;xi4+3=xi4=i1*(直徑+邊距)-中心點(diǎn);xi4+1=xi4+2=xi4+直徑;yi4+1=yi4=中心點(diǎn);yi4+2=yi4+3=yi4-直徑;zi4=zi4+1=zi4+2=z
12、i4+3=中心點(diǎn);for(i2=1;i2<數(shù)量;i2+)for(i1=0;i1<數(shù)量*4;i1+)xi2*數(shù)量*4+i1=xi1;zi2*數(shù)量*4+i1=zi1;yi2*數(shù)量*4+i1=yi1-i2*(直徑+邊距);for(i2=0;i2<3;i2+)for(i1=0;i1<數(shù)量*數(shù)量*4;i1+)臨時點(diǎn)0=xi2*數(shù)量*數(shù)量*4+i1;臨時點(diǎn)1=yi2*數(shù)量*數(shù)量*4+i1;臨時點(diǎn)2=zi2*數(shù)量*數(shù)量*4+i1;臨時點(diǎn)=setMxy(臨時點(diǎn),X軸矩陣);x(i2+1)*數(shù)量*數(shù)量*4+i1=臨時點(diǎn)0;y(i2+1)*數(shù)量*數(shù)量*4+i1=臨時點(diǎn)1;z(i2+1)*數(shù)
13、量*數(shù)量*4+i1=臨時點(diǎn)2;for(i1=0;i1<數(shù)量*數(shù)量*4;i1+)臨時點(diǎn)0=xi1;臨時點(diǎn)1=yi1;臨時點(diǎn)2=zi1;double sy=setMxy(臨時點(diǎn),Y軸矩陣);x數(shù)量*數(shù)量*16+i1=sy0;y數(shù)量*數(shù)量*16+i1=sy1;z數(shù)量*數(shù)量*16+i1=sy2;double kj=getMxy(getMxy(Y軸矩陣,Y軸矩陣),Y軸矩陣);sy=setMxy(臨時點(diǎn),kj);x數(shù)量*數(shù)量*20+i1=sy0;y數(shù)量*數(shù)量*20+i1=sy1;z數(shù)量*數(shù)量*20+i1=sy2;for(i1=0;i1<數(shù)量*數(shù)量*6;i1+)for(i2=0;i2<4
14、;i2+)xyzi1i2=i1*4+i2;addMouseMotionListener(this);addMouseListener(this);Timer t=new Timer(40,this);setBackground(new Color(0x00ff00);bi= new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);big = bi.createGraphics();t.start();/生成圖像public void paint(Graphics g)int i,u,o;Graphics2D g2=(Graphics2D)
15、g;big.setColor(new Color(0x000000);big.fillRect(0,0,800,600);double xx1=new double3;for(i=0;i<數(shù)量*數(shù)量*24;i+)xx10=xi;xx11=yi;xx12=zi;xx1=setMxy(xx1,mxy);x1i=xx10;y1i=xx11;z1i=xx12;for(i=0;i<數(shù)量*數(shù)量*6;i+)int lx1=new int4;int ly1=new int4;int lz1=new int4;for(u=0;u<4;u+)lz1u=(int)(z1xyziu)-視距;lx1u
16、=(int)(x1xyziu)*400/-lz1u+400;ly1u=(int)(y1xyziu)*400/-lz1u+300;big.setColor(new Color(colorsi/數(shù)量/數(shù)量);if(getabc(lx10,ly10,lx11,ly11,lx13,ly13)big.fillPolygon(lx1,ly1,4);g2.drawImage(bi,0,0,null);public boolean get軸(int i)if(取軸=0)return (xxyzi0>段號-2 && xxyzi0<段號+2)|(xxyzi1>段號-2 &
17、& xxyzi1<段號+2) | (xxyzi2>段號-2 && xxyzi2<段號+2);else if(取軸=1)return (yxyzi0>段號-2 && yxyzi0<段號+2) | (yxyzi1>段號-2 && yxyzi1<段號+2) | (yxyzi2>段號-2 && yxyzi2<段號+2);elsereturn (zxyzi0>段號-2 && zxyzi0<段號+2) | (zxyzi1>段號-2 &&am
18、p; zxyzi1<段號+2) | (zxyzi2>段號-2 && zxyzi2<段號+2);/坐標(biāo)旋轉(zhuǎn)public double setMxy(double l,double m)double xx2=0,0,0;for(int u=0;u<3;u+)for(int o=0;o<3;o+)xx2u+=lo*mou;return xx2;/矩陣乘法public double getMxy(double xx,double yy) int i=0,u=0,o=0;double xx1=0,0,0,0,0,0,0,0,0;for(i=0;i<3;
19、i+)for(u=0;u<3;u+)for(o=0;o<3;o+)xx1iu+=xxio*yyou;return xx1;/判斷是否是順時針方向排列public boolean getabc(double ax,double ay,double bx,double by,double cx,double cy) double cax=cx-ax;double cay=cy-ay;double bcx=bx-cx;double bcy=by-cy;return cax*bcy>cay*bcx;public void mouseClicked(MouseEvent e)publi
20、c void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)/鼠標(biāo)按下時的動作public void mousePressed(MouseEvent e)if(e.getButton()=1)鼠標(biāo)點(diǎn)=getf(e.getX(),e.getY();鼠標(biāo)點(diǎn)擊0=e.getX();鼠標(biāo)點(diǎn)擊1=e.getY();else if(e.getButton()=3)鼠標(biāo)移動0=e.getX();鼠標(biāo)移動1=e.getY();public double 取點(diǎn)(int n,double o)double li=oxyzn0;if(l
21、i>0)for(int i=1;i<4;i+)li=(li>oxyzni)?li:oxyzni;elsefor(int i=1;i<4;i+)li=(li<oxyzni)?li:oxyzni;return li;/鼠標(biāo)放開時的動作public void mouseReleased(MouseEvent e)if(e.getButton()=1 && time=0 && 鼠標(biāo)點(diǎn)!=-1)double 點(diǎn)=new double2;鼠標(biāo)點(diǎn)擊0=e.getX()-鼠標(biāo)點(diǎn)擊0;鼠標(biāo)點(diǎn)擊1=e.getY()-鼠標(biāo)點(diǎn)擊1;if(Math.abs(
22、鼠標(biāo)點(diǎn)擊0)>Math.abs(鼠標(biāo)點(diǎn)擊1)鼠標(biāo)點(diǎn)擊1=0;else鼠標(biāo)點(diǎn)擊0=0;double cos1=Math.cos(2*Math.PI/180);double sin1=Math.sin(2*Math.PI/180);if( (zxyz鼠標(biāo)點(diǎn)0>zxyz鼠標(biāo)點(diǎn)2-10 &&zxyz鼠標(biāo)點(diǎn)0<zxyz鼠標(biāo)點(diǎn)1+10) && (zxyz鼠標(biāo)點(diǎn)1>zxyz鼠標(biāo)點(diǎn)2-10 &&zxyz鼠標(biāo)點(diǎn)1<zxyz鼠標(biāo)點(diǎn)2+10) )double hu=Math.atan2(mxy01,mxy00);點(diǎn)0=鼠標(biāo)點(diǎn)擊0*Math
23、.cos(hu)+鼠標(biāo)點(diǎn)擊1*Math.sin(hu);點(diǎn)1=鼠標(biāo)點(diǎn)擊1*Math.cos(hu)-鼠標(biāo)點(diǎn)擊0*Math.sin(hu);if(Math.abs(點(diǎn)0)>Math.abs(點(diǎn)1)int l=(點(diǎn)0>0)?-1:1;if(zxyz鼠標(biāo)點(diǎn)0<0)l*=-1;double anou=cos1,0,sin1*l,0,1,0,-sin1*l,0,cos1;nou=anou;段號=取點(diǎn)(鼠標(biāo)點(diǎn),y);取軸=1;elseint l=(點(diǎn)1>0)?-1:1;double anou=1,0,0,0,cos1,sin1*l,0,-sin1*l,cos1;nou=anou;段
24、號=取點(diǎn)(鼠標(biāo)點(diǎn),x);取軸=0;else if( (xxyz鼠標(biāo)點(diǎn)0>xxyz鼠標(biāo)點(diǎn)2-10 &&xxyz鼠標(biāo)點(diǎn)0<xxyz鼠標(biāo)點(diǎn)1+10) && (xxyz鼠標(biāo)點(diǎn)1>xxyz鼠標(biāo)點(diǎn)2-10 &&xxyz鼠標(biāo)點(diǎn)1<xxyz鼠標(biāo)點(diǎn)2+10) )double hu=Math.atan2(mxy21,mxy20);點(diǎn)0=鼠標(biāo)點(diǎn)擊0*Math.cos(hu)+鼠標(biāo)點(diǎn)擊1*Math.sin(hu);點(diǎn)1=鼠標(biāo)點(diǎn)擊1*Math.cos(hu)-鼠標(biāo)點(diǎn)擊0*Math.sin(hu);if(Math.abs(點(diǎn)0)>Math.ab
25、s(點(diǎn)1)int l=(點(diǎn)0>0)?-1:1;if(xxyz鼠標(biāo)點(diǎn)0>0)l*=-1;double anou=cos1,0,sin1*l,0,1,0,-sin1*l,0,cos1;nou=anou;段號=取點(diǎn)(鼠標(biāo)點(diǎn),y);取軸=1;elseint l=(點(diǎn)1>0)?-1:1;double anou=cos1,sin1*l,0,-sin1*l,cos1,0,0,0,1;nou=anou;段號=取點(diǎn)(鼠標(biāo)點(diǎn),z);取軸=2;elsedouble hu=Math.atan2(mxy01,mxy00);點(diǎn)0=鼠標(biāo)點(diǎn)擊0*Math.cos(hu)+鼠標(biāo)點(diǎn)擊1*Math.sin(hu)
26、;點(diǎn)1=鼠標(biāo)點(diǎn)擊1*Math.cos(hu)-鼠標(biāo)點(diǎn)擊0*Math.sin(hu);if(Math.abs(點(diǎn)0)>Math.abs(點(diǎn)1)int l=(點(diǎn)1>0)?-1:1;System.out.println(yxyz鼠標(biāo)點(diǎn)0);if(yxyz鼠標(biāo)點(diǎn)0<0)l*=-1;double anou=cos1,sin1*l,0,-sin1*l,cos1,0,0,0,1;nou=anou;段號=取點(diǎn)(鼠標(biāo)點(diǎn),z);取軸=2;Elseint l=(點(diǎn)1>0)?-1:1;double anou=1,0,0,0,cos1,sin1*l,0,-sin1*l,cos1;nou=anou
27、;段號=取點(diǎn)(鼠標(biāo)點(diǎn),x);取軸=0;time=45;/System.out.println(hu*180/Math.PI);鼠標(biāo)點(diǎn)=-1;鼠標(biāo)移動0=鼠標(biāo)移動1=-1;/鼠標(biāo)按下移動時的動作public void mouseDragged(MouseEvent e)if(鼠標(biāo)移動0!=-1&&鼠標(biāo)移動1!=-1)double oix=(鼠標(biāo)移動0-e.getX()*Math.PI/720;double oiy=(鼠標(biāo)移動1-e.getY()*Math.PI/720;double fff=1,0,0,0,1,0,0,0,1;fff00=fff22=Math.cos(oix);f
28、ff02=Math.sin(oix);fff20=-fff02;double fff1=1,0,0,0,1,0,0,0,1;fff111=fff122=Math.cos(oiy);fff112=Math.sin(oiy);fff121=-fff112;mxy=getMxy(mxy,fff);mxy=getMxy(mxy,fff1);鼠標(biāo)移動0=e.getX();鼠標(biāo)移動1=e.getY();public void mouseMoved(MouseEvent e)/判斷鼠標(biāo)點(diǎn)是在哪個方塊上public int getf(int xx,int yy)boolean t1=new boolean4;
29、double x4,y4,z4,x5,y5,z5;for(int i=0;i<數(shù)量*數(shù)量*6;i+)for(int j=0;j<4;j+)int l=(j=3)?0:j+1;z4=z1xyzij-視距;x4=x1xyzij*400/-z4+400;y4=y1xyzij*400/-z4+300;z5=z1xyzil-視距;x5=x1xyzil*400/-z5+400;y5=y1xyzil*400/-z5+300;t1j=getabc(x4,y4,x5,y5,xx,yy);if(t10&&t11&&t12&&t13)return i;return -1; 圖 1-2 魔方塊后面旋轉(zhuǎn)運(yùn)行旋轉(zhuǎn)的方塊是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒教育專業(yè)資格考試題及答案
- 2025年自然科學(xué)基礎(chǔ)知識考試試卷及答案詳解
- 2025年水利工程師考試試題及答案
- 2025年保險專業(yè)資格考試試題及答案
- 2025年大學(xué)英語四級試題及答案
- 房產(chǎn)養(yǎng)老收益評估與老年生活支持服務(wù)管理協(xié)議
- 軟件開發(fā)項(xiàng)目功能完善技術(shù)補(bǔ)充協(xié)議
- 技術(shù)培訓(xùn)與專業(yè)素質(zhì)提升補(bǔ)充合同
- 電商平臺用戶增長戰(zhàn)略規(guī)劃與實(shí)施協(xié)議
- 針對跨國企業(yè)物流風(fēng)險的國際貨運(yùn)保險責(zé)任合同
- 供應(yīng)商改善計劃表
- DLT 5285-2018 輸變電工程架空導(dǎo)線(800mm以下)及地線液壓壓接工藝規(guī)程
- 10以上20以內(nèi)加減法
- 五年級家長會數(shù)學(xué)老師講話課件
- 急產(chǎn)分娩應(yīng)急演練方案
- 2024中國充電基礎(chǔ)設(shè)施服務(wù)質(zhì)量發(fā)展報告-車百智庫+小桔充電
- 消防維修期間無水應(yīng)急預(yù)案
- DNA鑒定技術(shù)在刑事偵查中的運(yùn)用
- (完整word版)體檢報告單模版
- 警示片制作策劃方案
- 掌握認(rèn)知重構(gòu)的基本技巧
評論
0/150
提交評論