版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)操作系統(tǒng)》課程設(shè)計目:13采用高響應(yīng)比算法的進(jìn)程調(diào)度程序班級: 小組成員: 指導(dǎo)教師: 時間: 2013624—2013?7?30 地點: 7b312 2013年6月目錄TOC\o"1-5"\h\z\o"CurrentDocument"工作進(jìn)度表 2\o"CurrentDocument"組員分工 2\o"CurrentDocument"1.目的及意義 3\o"CurrentDocument"課程設(shè)計任務(wù)及要求 42.1設(shè)計任務(wù) 42.2設(shè)計要求 4\o"CurrentDocument"3.算法及數(shù)據(jù)結(jié)構(gòu) 5\o"CurrentDocument"3.1算法總體設(shè)計思想 5\o"CurrentDocument"3.2動態(tài)優(yōu)先級算法 5\o"CurrentDocument"4.程序設(shè)計與實現(xiàn) 10\o"CurrentDocument"4.1系統(tǒng)流程圖 10\o"CurrentDocument"4.2程序代碼 104.3實驗結(jié)果 18\o"CurrentDocument"5.結(jié)論 20\o"CurrentDocument"6.收獲、體會和建議 21\o"CurrentDocument"參考文獻(xiàn) 21工作進(jìn)度表時間完成工作完成人周一完成課程設(shè)計的需求分析周二編寫代碼測試代碼周三編寫代碼測試代碼周四編寫代碼測試代碼周五完善程序周六完成設(shè)計報告組員分工(組長)2011XXXX1、 設(shè)計并編寫界面部分代碼;2、 將代碼運行并調(diào)試;3、 編寫課程設(shè)計報告和心得體會;1、 畫算法的程序流程圖;2、 編寫課程設(shè)計報告和心得體會;1.目的及意義本課程設(shè)計主要任務(wù)就是在多用戶操作系統(tǒng)支持下建立多用戶多級文件系統(tǒng)的設(shè)計。具體說來,主要是為了達(dá)到下述實驗?zāi)康模海?)了解并掌握文件系統(tǒng)中用于管理所必須的數(shù)據(jù)結(jié)構(gòu)。(2)了解并掌握主要的文件操作命令的實現(xiàn)方法。(3)通過課程實踐掌握課程設(shè)計的方法和流程,并總結(jié)設(shè)計經(jīng)驗,提出更好的改進(jìn)方法。2.課程設(shè)計任務(wù)及要求2.1設(shè)計任務(wù)在多道程序和多任務(wù)系統(tǒng)中,系統(tǒng)內(nèi)同時處于就緒狀態(tài)的進(jìn)程可能有若干個,且進(jìn)程之間也存在著同步與互斥的關(guān)系,要求采用指定的調(diào)度策略,使系統(tǒng)中的進(jìn)程有條不紊地工作通過觀察諸進(jìn)程的運行過程,以鞏固和加深處理機(jī)調(diào)度的概念2.2設(shè)計要求每一個進(jìn)程有一個PCB,其內(nèi)容可以根據(jù)具體情況設(shè)定??梢栽诮缑嬖O(shè)定的互斥資源(包括兩種:輸入設(shè)備與輸出設(shè)備)的數(shù)目進(jìn)程數(shù)、進(jìn)入內(nèi)存時間、要求服務(wù)時間可以在界面上進(jìn)行設(shè)定進(jìn)程之間存在一定的同步與互斥關(guān)系,可以通過界面進(jìn)行設(shè)定,其表示方法如下:進(jìn)程的服務(wù)時間由三段組成:I2C10O5(表示進(jìn)程的服務(wù)時間由2個時間片的輸入,10個時間片的計算,5個時間片的輸出)進(jìn)程間的同步關(guān)系用一個段表示:W2,表示該進(jìn)程先要等待P2進(jìn)程執(zhí)行結(jié)束后才可以運行因此,進(jìn)程間的同步與互斥關(guān)系、服務(wù)時間可以統(tǒng)一用四段表示為:I2C10O5W2可以在運行中顯示各進(jìn)程的狀態(tài):就緒、阻塞、執(zhí)行采用可視化界面,可在進(jìn)程調(diào)度過程中隨時暫停調(diào)度,查看當(dāng)前進(jìn)程的狀態(tài)以及相應(yīng)的阻塞隊列具有一定的數(shù)據(jù)容錯性算法及數(shù)據(jù)結(jié)構(gòu)3.1算法總體設(shè)計思想動態(tài)優(yōu)先權(quán)是指在創(chuàng)建進(jìn)程時所賦予的優(yōu)先權(quán),是可以隨進(jìn)程的推進(jìn)或隨其等待時間的增加而改變,以便獲得更好的調(diào)度性能。例如,我們可以規(guī)定,在就緒隊列中的進(jìn)程,隨其等待時間的增長,其優(yōu)先權(quán)以速率a提高。若所有的進(jìn)程都有相同的優(yōu)先權(quán)初始值則顯然是最先進(jìn)入就緒隊列的進(jìn)程將因其動態(tài)優(yōu)先權(quán)變得最高而優(yōu)先獲得處理機(jī),此即FCFS算法。若所有的就緒隊列進(jìn)程具有各不相同的優(yōu)先權(quán)初始值,那么,對于優(yōu)先權(quán)初始值低的進(jìn)程,在等待足夠的時間后,其優(yōu)先權(quán)便可能升為最高從而獲得處理機(jī)。而采用搶占式調(diào)度算法時,如果再規(guī)定當(dāng)前進(jìn)程的優(yōu)先權(quán)以速率b下降,則可防止一個長作業(yè)長期地壟斷處理機(jī)。3.2動態(tài)優(yōu)先級算法3.2.1功能最高響應(yīng)比優(yōu)先法(HRRN)是對FCFS方式和SJF方式的一種綜合平衡。HRRN調(diào)度策略同時考慮每個作業(yè)的等待時間長短和估計需要的執(zhí)行時間長短,從中選出響應(yīng)比最高的作業(yè)投入執(zhí)行。響應(yīng)比R定義如下:R=(W+T)/T=1+W/T其中T為該作業(yè)估計需要的執(zhí)行時間,W為作業(yè)在后備狀態(tài)隊列中的等待時間。每當(dāng)要進(jìn)行作業(yè)調(diào)度時,系統(tǒng)計算每個作業(yè)的響應(yīng)比,選擇其中R最大者投入執(zhí)行。這樣,即使是長作業(yè),隨著它等待時間的增加,W/T也就隨著增加,也就有機(jī)會獲得調(diào)度執(zhí)行。這種算法是介于FCFS和SJF之間的一種折中算法。由于長作業(yè)也有機(jī)會投入運行,在同一時間內(nèi)處理的作業(yè)數(shù)顯然要少于SJF法,從而采用HRRN方式時其吞吐量將小于采用SJF法時的吞吐量。另外,由于每次調(diào)度前要計算響應(yīng)比,系統(tǒng)開銷也要相應(yīng)增加。3.2.2數(shù)據(jù)結(jié)構(gòu)floatarrtime[];//作業(yè)到達(dá)時間floatinputtime[];////輸入時間floatcputime[];//CPU運行時間floatoutputtime[];//輸出時間floatwaittime[];//等待時間floatinstatime[];//開始運行時間floatcpustatime[];//CPU開始時間floatoutstatime[];//輸出開始時間floatfintime[];//結(jié)束運行時間floatprio[];//優(yōu)先權(quán)Stringstate[];//是否已經(jīng)完成intarrival[];//是否到達(dá)intinputdone[];//是否輸入完成intinputown[];//是否分配輸入設(shè)備intcpudone[];//是否運行完成intcpuown[];//是否分配內(nèi)存intoutputdone[];//是否輸出完成intoutputown[];//是否分配輸出設(shè)備intwaitpro[];//等待的進(jìn)程號3.2.3算法流程圖
開始N被等待進(jìn)程結(jié)束?輸入設(shè)YN是否有空閑輸輸出完成?進(jìn)程到達(dá)輸入設(shè)備未占有無等待等待進(jìn)程輸入完成,CPU二、CPU未分配分配輸出設(shè)備,輸出設(shè)備數(shù)量-1>CPU開始N被等待進(jìn)程結(jié)束?輸入設(shè)YN是否有空閑輸輸出完成?進(jìn)程到達(dá)輸入設(shè)備未占有無等待等待進(jìn)程輸入完成,CPU二、CPU未分配分配輸出設(shè)備,輸出設(shè)備數(shù)量-1>CPU釋放,優(yōu)先級置0等待進(jìn)程狀態(tài):沒有等待進(jìn)程輸入設(shè)備-1,進(jìn)程狀態(tài):運行進(jìn)程狀態(tài):等待輸出設(shè)備+1,進(jìn)程狀態(tài):結(jié)束CPU忙碌,進(jìn)程等待時間增加圖3.4CSCAN算法流程圖程序設(shè)計與實現(xiàn)4.1系統(tǒng)流程圖輸入進(jìn)程數(shù),輸入、輸出設(shè)備數(shù)量開始運行輸入等待、被等待進(jìn)程圖4.1系統(tǒng)流程圖4.2程序代碼importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;importjavax.swing.table.JTableHeader;publicclassStopWatchimplementsActionListener{floatarrtime[];//作業(yè)到達(dá)時間floatinputtime[];〃//輸入時間floatcputime[];//CPU運行時間floatoutputtime[];//輸出時間floatwaittime[];//等待時間floatinstatime[];//開始運行時間floatcpustatime[];//CPU開始時間floatoutstatime[];//輸出開始時間floatfintime[];//結(jié)束運行時間floatprio[];//優(yōu)先權(quán)Stringstate[];//是否已經(jīng)完成intarrival]];//是否到達(dá)intinputdone]];//是否輸入完成intinputown]];//是否分配輸入設(shè)備intcpudone]];//是否運行完成intcpuown]];//是否分配內(nèi)存intoutputdone]];//是否輸出完成intoutputown]];//是否分配輸出設(shè)備intwaitpro]];//等待的進(jìn)程號/**秒表線程啟動控制*/publicbooleanisRun=false;/**記錄開始時間*/privatelongstarTime;/**記錄暫停時間*/privatelongstopTime;/**記錄暫停到繼續(xù)的總時間*/privatelongwasteTime;/**基于Frame的窗口*/privateJFramestopWatchFrame;privateJButtonstarButton;privateJButtonstopButton;privateJButtoncontinueButton;JLabelTIME=newJLabel("");JLabelWAIT=newJLabel('等待的進(jìn)程)");JLabelBEIW=newJLabel("被等的進(jìn)程J");JLabelidl=newJLabel("輸入設(shè)備)");JLabelodl=newJLabel("輸出設(shè)備)");JLabelpl=newJLabel("進(jìn)程數(shù)J");JPanelp1=newJPanel();intMAXPRO;//最大數(shù)量的進(jìn)程數(shù)intIDMAX,ODMAX;//輸入、輸出設(shè)備JTabletable;TextFieldbeideng=newTextField();〃TextFielddeng=newTextField();//TextFieldID=newTextField();//TextFieldOD=newTextField();//TextFieldMAXP=newTextField();//JButtonEnter=newJButton("確定");/**創(chuàng)建一個基于Frame的窗口?其中顯示一個秒表(時:分:秒:毫秒),還有“開始”“暫?!袄^續(xù)“停止”新建秒表”按鈕*/publicStopWatch(inti,intidmax,intodmax){MAXPRO=i;IDMAX=idmax;ODMAX=odmax;arrtime=newfloat[i];inputtime=newfloat[i];cputime=newfloat[i];outputtime=newfloat[i];fintime=newfloat[i];prio=newfloat[i];waittime=newfloat[i];instatime=newfloat[i];cpustatime=newfloat[i];outstatime=newfloat[i];state=newString[i];arrival=newint[i];inputdone=newint[i];inputown=newint[i];cpudone=newint[i];cpuown=newint[i];outputdone=newint[i];outputown=newint[i];waitpro=newint[i];Randomrnd=newRandom();for(intj=0;j<i;j++){//初始化數(shù)量arrtime[j]=rnd.nextFloat()*5;inputtime[j]=rnd.nextFloat()*5;cputime[j]=rnd.nextFloat()*5;outputtime[j]=rnd.nextFloat()*5;fintime[j]=0;prio[j]=rnd.nextFloat()*5;waitpro[j]=0;instatime[j]=0;cpustatime[j]=0;cpustatime[j]=0;outstatime[j]=0;state[j]="READY";arrival[j]=0;inputdone[j]=0;inputown[j]=0;cpudone[j]=0;cpuown[j]=0;outputdone[j]=0;outputown[j]=0;}ID.setText(IDMAX+"");OD.setText(ODMAX+"");MAXP.setText(MAXPRO+"");ID.setEditable(false);OD.setEditable(false);MAXP.setEditable(false);TIME.setBounds(80,0,70,70);pl.setLayout(null);stopWatchFrame=newJFrame("StopWatch");starButton=newJButton("開始");stopButton=newJButton("暫停");continueButton=newJButton("繼續(xù)");stopWatchFrame.addWindowListener(newWindowAdapter()〃關(guān)閉窗口程序{publicvoidwindowClosing(WindowEvente){System.exit(0);}});TIME.setBounds(80,0,200,70);//設(shè)置位置大小BEIW.setBounds(80,0,200,70);WAIT.setBounds(80,0,200,70);starButton.setBounds(0,80,75,25);stopButton.setBounds(80,80,75,25);beideng.setBounds(600,80,75,25);deng.setBounds(680,80,75,25);WAIT.setBounds(680,40,200,25);BEIW.setBounds(600,40,100,25);Enter.setBounds(760,80,75,25);ID.setBounds(240,80,75,25);OD.setBounds(320,80,75,25);MAXP.setBounds(400,80,75,25);odl.setBounds(320,40,75,25);idl.setBounds(240,40,75,25);pl.setBounds(400,40,75,25);continueButton.setBounds(160,80,75,25);starButton.addActionListener(this);//按鈕添加監(jiān)聽器stopButton.addActionListener(this);continueButton.addActionListener(this);p1.setBounds(0,0,1000,700);pl.add(idl);p1.add(odl);p1.add(pl);p1.add(ID);p1.add(OD);p1.add(MAXP);p1.add(BEIW);p1.add(WAIT);p1.add(TIME);p1.add(beideng);p1.add(deng);p1.add(Enter);p1.add(starButton);〃將按鈕加進(jìn)面板中p1.add(stopButton);p1.add(continueButton);stopWatchFrame.setLayout(null);stopWatchFrame.add(p1);〃將面板加進(jìn)窗口stopWatchFrame.setVisible(true);//顯示窗口stopWatchFrame.setSize(1000-600);Enter.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){{Integer.parseInt(deng.getText());Integer.parseInt(beideng.getText());waitpro[Integer.parseInt(deng.getText())-1]=Integer.parseInt(beideng.getText());JOptionPane.showMessageDialog(null,"添加成功","請確認(rèn)",JOptionPane.INFORMATION_MESSAGE);}}});}/**按鈕響應(yīng),當(dāng)按下“開始”按鈕時,秒表開始計時,按下暫停時暫停及時,按下繼續(xù)時接著計時,只至按下“停止”按鈕*/publicvoidactionPerformed(ActionEvente){watchRunwatch=newwatchRun();ThreadwatchThread=newThread(watch);//產(chǎn)生一個秒表線程Objectobj=e.getSource();//返回:最初發(fā)生Event的對象Enter.setEnabled(false);if(obj==starButton)//對象為開始按鈕時{if(!isRun){isRun=true;starTime=System.currentTimeMillis();watchThread.start();}}elseif(obj==stopButton)//對象為暫停按鈕時{if(isRun){isRun=false;stopTime=System.currentTimeMillis();}}elseif(obj==continueButton)//對象為繼續(xù)按鈕時{if(!isRun){isRun=true;wasteTime=wasteTime+System.currentTimeMillis()-stopTime;watchThread.start();}}}*實現(xiàn)表格**//**秒表線程類實現(xiàn)Runnable接口*/publicclasswatchRunimplementsRunnable{publicvoidrun(){intmsec=0;intsecond=0;intminute=0;inthour=0;Stringbiaotou[]={"進(jìn)程號","輸入開始",”輸入結(jié)束","cpu開始","CPU結(jié)束","輸出開始","輸出結(jié)束","優(yōu)先級","狀態(tài)"};Object[][]playerinfo=newObject[MAXPRO][9];for(int訂=0;訂<MAXPRO;訂++)playerInfo[i1][0]=訂+1;table=newJTable(playerInfo,biaotou);table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);table.getTableHeader().setReorderingAllowed(false);table.setBounds(20,150,400,250);table.setEnabled(false);table.setBackground(newColor(250,250,250));table.getTableHeader().setResizingAllowed(false);JScrollPanescroll=newJScrollPane(table);scroll.setBounds(20,150,800,500);table.setPreferredScrollableViewportSize(newDimension(550,100));stopWatchFrame.add(scroll);while(isRun)//線程執(zhí)行{table.repaint();for(intyanyu=0;yanyu<MAXPRO;yanyu++)playerInfo[yanyu][7]=prio[yanyu];intcount;Stringstr="":count=(int)(System.currentTimeMillis()-starTime-wasteTime);second=(int)((count-hour*3600000-minute*60000)/1000);str=second+"":intquantity;//進(jìn)程數(shù)量intquantity2;//進(jìn)程數(shù)量intid=IDMAX;//輸入進(jìn)程的數(shù)量floatm0,ml;//時間intnum;//等待進(jìn)程intcurrentcpu=0;//CPU是否忙碌intk;//進(jìn)程數(shù)量intc=1;//默認(rèn)CPU當(dāng)前可用floatn;〃時間intod=ODMAX;//輸出設(shè)備intl;//進(jìn)程數(shù)量floatp;〃時間for(quantity=0;quantity<MAXPRO;quantity++){if(arrtime[quantity]<=second)//輸入設(shè)備{arrival[quantity]=1;//到達(dá)}}for(quantity2=0;quantity2<MAXPRO;quantity2++){//System.out.print("代號998");if(arrival[quantity2]==1&&inputdone[quantity2]==0&&waitpro[quantity2]==0)//已經(jīng)到達(dá),還沒完成而且等待進(jìn)程等于{一if(inputown[quantity2]==0)//未進(jìn)行輸入{if(id>0)//{//還留有輸入設(shè)備id=id-1;//設(shè)備減一一inputown[quantity2]=1;m0=second;//初始時間instatime[quantity2]=m0;〃此進(jìn)程的開始時間playerlnfo[quantity2][l]=m0;}elseif(id<=0)//如果設(shè)備小于等于了零{waittime[quantity2]++:〃進(jìn)程等待時間力口114程大于0個程大于0個current值唯一進(jìn)程state[quantity2]="BLOCK";//進(jìn)程控制塊狀態(tài)轉(zhuǎn)變?yōu)樽枞鹥layerlnfo[quantity2][8]="阻塞";}}elseif(inputown[quantity2]==1)//已經(jīng)占有輸入設(shè)備{_ml=second-instatime[quantity2];//運行時間-開始時間if(inputtime[quantity2]<=m1)//當(dāng)前時間是否輸入完成{inputdone[quantity2]=1;//進(jìn)程r輸入結(jié)束playerlnfo[quantity2][2]=second;inputown[quantity2]=0;//進(jìn)程未輸入id=id+1;//輸入設(shè)備增加1}}}if(arrival[quantity2]==1&&inputdone[quantity2]==0&&waitpro[quantity2]>0)//如果進(jìn)程已經(jīng)到達(dá),輸入未完成且等待進(jìn){num=waitpro[quantity2]-1;//等待進(jìn)程數(shù)減1state[quantity2]="WAIT";//進(jìn)程狀態(tài)為等待playerInfo[quantity2][8]="等待";if(outputdone[num]==1)//第num進(jìn)程輸出完成{waitpro[quantity2]=0;//第r個進(jìn)程的等待進(jìn)程為0}}}intj;for(j=0;j<MAXPRO;j++)〃第一次檢查:選出等待隊列中優(yōu)先級最大的{if(inputdone[j]==1&&cpudone[j]==0)//輸入完成而未進(jìn)入cpu,即在等待{prio[j]=(waittime[j]+cputime[j])/cputime[j];//計算進(jìn)程J優(yōu)先級if(prio[j]>prio[currentcpu])//如進(jìn)程J的優(yōu)先級大于當(dāng)前進(jìn)程的優(yōu)先級{currentcpu=j;//將優(yōu)先權(quán)最大的賦給PCB[current],在某一時刻,}}}for(k=0;k<MAXPRO;k++)//第二次檢查:對內(nèi)存試分配{if(inputdone[k]==1&&cpudone[k]==0)//是否在等待中{state[k]="READY";playerlnfo[k]⑻="就緒";if(cpuown[k]==0)//未完成的{if(c==0){waittime[k]++;//cpu使用中,等待時間加1state[k]="READY";playerInfo[k][8]="CPU被占用";}elseif(c==1){if(k==currentcpu){//cpu空閑,而且當(dāng)前進(jìn)程是優(yōu)先權(quán)最大的c--;cpuown[k]=1;playerInfo[k][3]=second;n=second;cpustatime[k]=n;
值給n備沒有運行完成輸出值給n備沒有運行完成輸出}}elseif(cpuown[k]==1){state[k]="RUN";playerlnfo[k][8]="運行中";n=second-cpustatime[k];//將當(dāng)前時間減去CUP開始的時間的值賦if(cputime[k]<=n)〃如果該進(jìn)程達(dá)到運行時間{playerInfo[k][4]=second;state[k]="OUTCPU";//該進(jìn)程離開CPuplayerlnfo[k][8]="運行完成";cpudone[k]=1;//該進(jìn)程cpu運行完成cpuown[k]=0;//不對該進(jìn)程分配內(nèi)存prio[k]=0;//將優(yōu)先權(quán)置0C++;}}}}for(l=0;l<MAXPRO;l++){if(cpudone[l]==1&&outputdone[l]==0)//如該進(jìn)程已經(jīng)運行完成但是輸出設(shè){if(outputown[l]==0)//如果該進(jìn)程沒有分配輸出設(shè)備{if(od>0)//如果有空閑的輸出設(shè)備,分配輸出設(shè)備{od--;//輸出設(shè)備減一outputown[l]=1;//該進(jìn)程獲得輸出設(shè)備playerInfo[l][8]="輸出開始";p=second;//將現(xiàn)在的時間賦值于pplayerInfo[l][5]=second;outstatime[l]=p;//該進(jìn)程獲取輸出設(shè)備的時間}elseif(od<=0){//如果沒有空閑的輸出設(shè)備waittime[l]++;//該進(jìn)程等待}}elseif(outputown[l]==1)//如果該進(jìn)程已經(jīng)獲取輸出設(shè)備{p=second-outstatime[l];//計算運行輸出設(shè)備的時間if(outputtime[l]<=p)//判斷該進(jìn)程是否完成輸出,如果已經(jīng)完成{playerInfo[l][6]=second;outputdone[l]=1;//該進(jìn)程輸出完成outputown[l]=0;//不分配輸出設(shè)備od++;//輸出設(shè)備增加1}}}elseif(cpudone[l]==1&&outputdone[l]==1)//如果該進(jìn)程已經(jīng)使用完cpu且{state[l]="DONE";//該進(jìn)程狀態(tài)修改為完成playerInfo[l][8]="進(jìn)程結(jié)束";}}TIME.setText(”系統(tǒng)運行時間:”+str);try{Thread.sleep(1000);}catch(Exceptione){e.printStackTrace();}}}}/**主程序初始化一個秒表*/publicstaticvoidmain(Stringargs[]){newtt();}}classttextendsJFrame{JFramef=newJFrame();JLabelpt=newJLabel("進(jìn)程數(shù)");JLabelit=newJLabel("輸入設(shè)備數(shù)量”);JLabelot=newJLabel("輸出設(shè)備數(shù)量”);TextFieldpp=newTextField();TextFieldii=newTextField();TextFieldoo=newTextField();JButtonEnter=newJButton("確定");JPanelpl=newJPanel();tt(){pt.setBounds(0,40,75,25);it.setBounds(00,80,150,25);ot.setBounds(00,120,150,25);pp.setBounds(250,40,75,25);ii.setBounds(250,80,75,25);oo.setBounds(250,120,75,25);Enter.setBou
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年建筑電工考試題庫及答案(各地真題)
- 2026年商丘學(xué)院單招職業(yè)傾向性考試題庫及答案1套
- 2026安徽黃山學(xué)院師資博士后招聘11人筆試備考題庫及答案解析
- 2026福建廈門市集美區(qū)海怡實驗幼兒園招聘2人筆試備考試題及答案解析
- 2026年四川工商職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及答案1套
- 2026年浙江省寧波市單招職業(yè)適應(yīng)性考試模擬測試卷及答案1套
- 2026年榆林市第九中學(xué)教師招聘筆試備考題庫及答案解析
- 2025年甘肅省武威市古浪縣古浪鎮(zhèn)招聘大學(xué)生村文書備考題庫附答案
- 2026中聞印務(wù)投資集團(tuán)有限公司財務(wù)經(jīng)理招聘1人筆試備考題庫及答案解析
- 2025廣東云浮市云安區(qū)第四招聘見習(xí)崗位89人(公共基礎(chǔ)知識)綜合能力測試題附答案
- 《尋找時傳祥》課件
- 安全質(zhì)量組織機(jī)構(gòu)及各崗位職責(zé)
- 2025年度商鋪裝修工程總包與施工合同
- 弘歷指標(biāo)源碼6個(僅提供源碼)
- 門窗維修協(xié)議合同范本
- 子宮肌瘤課件超聲
- DBJT15-206-2020 廣東省農(nóng)村生活污水處理設(shè)施建設(shè)技術(shù)規(guī)程
- 軟件產(chǎn)品用戶體驗評估報告
- 2025年異丙醇行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 科室緊急情況下護(hù)理人力資源調(diào)配方案
- 企業(yè)社會責(zé)任實踐與品牌建設(shè)策略
評論
0/150
提交評論