操作系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

圖3.2創(chuàng)建作業(yè)流程圖3.3.2先來(lái)先服務(wù)調(diào)度算法流程圖開(kāi)始從文件中讀取作業(yè)信息開(kāi)始從文件中讀取作業(yè)信息依次處理每個(gè)作業(yè)結(jié)束輸入平均周轉(zhuǎn)時(shí)間圖3.3先來(lái)先服務(wù)調(diào)度算法流程圖3.3.3短作業(yè)優(yōu)先調(diào)度算法流程圖短作業(yè)優(yōu)先算法是將第一個(gè)提交的作業(yè)先進(jìn)行處理,并將后來(lái)的作業(yè)對(duì)其處理時(shí)間由短到長(zhǎng)重新排序,最后算出處理所有作業(yè)的周轉(zhuǎn)時(shí)間。其流程圖如圖3.4所示。從文件中讀取作業(yè)信息從文件中讀取作業(yè)信息處理第一個(gè)作業(yè)將其他作業(yè)按照運(yùn)行時(shí)間排序依次處理每個(gè)作業(yè)求出平均周轉(zhuǎn)時(shí)間結(jié)束開(kāi)始輸出平均周轉(zhuǎn)時(shí)間圖3.4先來(lái)先服務(wù)調(diào)度算法流程圖3.3.4響應(yīng)比優(yōu)先調(diào)度算法流程圖響應(yīng)比優(yōu)先調(diào)度算法先將第一個(gè)進(jìn)入序列的作業(yè)進(jìn)行處理,然后計(jì)算后來(lái)進(jìn)入序列的作業(yè)的響應(yīng)比,按照響應(yīng)比由高到低的順序進(jìn)行排序,并依次處理,最后計(jì)算出所有作業(yè)的周轉(zhuǎn)時(shí)間。其流程圖如圖3.5所示。開(kāi)始開(kāi)始從文件中讀取作業(yè)信息求出每個(gè)作業(yè)的響應(yīng)比將作業(yè)按照響應(yīng)比從高到低排序處理第一個(gè)進(jìn)入序列的作業(yè)依次處理序列中的每個(gè)作業(yè)計(jì)算出處理所有作業(yè)的平均周轉(zhuǎn)時(shí)間結(jié)束輸出處理所有作業(yè)的周轉(zhuǎn)時(shí)間圖3.5響應(yīng)比優(yōu)先調(diào)度算法流程圖3.3.5總結(jié)最優(yōu)調(diào)度算法流程圖總結(jié)最優(yōu)調(diào)度功能主要是通過(guò)比較先來(lái)先服務(wù)調(diào)度算法,短作業(yè)優(yōu)先調(diào)度算法以及響應(yīng)比優(yōu)先調(diào)度算法得出的平均周轉(zhuǎn)時(shí)間,得出最短的周轉(zhuǎn)時(shí)間和最優(yōu)化的算法,但是如果想執(zhí)行此功能,首先要確定其他三個(gè)算法已經(jīng)運(yùn)行完成,才可以執(zhí)行,其功能流程圖如圖3.6所示。開(kāi)始開(kāi)始執(zhí)行完其他三種算法?輸出錯(cuò)誤信息比較三種算法的平均周轉(zhuǎn)時(shí)間,取最小值得到最短周轉(zhuǎn)時(shí)間的算法名稱(chēng)輸出結(jié)果結(jié)束NY 圖3.6總結(jié)最優(yōu)調(diào)度算法4程序的實(shí)現(xiàn)4.1主函數(shù)程序?qū)崿F(xiàn)4.1.1主程序?qū)崿F(xiàn)功能主函數(shù)中主要運(yùn)用了printf()函數(shù)。printf()函數(shù)用于將程序的主界面在屏幕上打印輸出,提示用戶(hù)進(jìn)行選擇來(lái)調(diào)度相應(yīng)的作業(yè)調(diào)度算法實(shí)現(xiàn)不同的作業(yè)調(diào)度算法。主程序主要實(shí)現(xiàn)的是作業(yè)管理的主界面菜單的顯示,利用switch語(yǔ)句實(shí)現(xiàn)主菜單的調(diào)用。switch()函數(shù)正是用來(lái)接收用戶(hù)從鍵盤(pán)上輸入的選擇信息,根據(jù)用戶(hù)輸入的選擇來(lái)調(diào)度相應(yīng)的調(diào)度算法進(jìn)而使函數(shù)運(yùn)行實(shí)現(xiàn)相應(yīng)的調(diào)度算法功能。本程序設(shè)置數(shù)字鍵選項(xiàng)1~6,分別實(shí)現(xiàn)調(diào)用先來(lái)先服務(wù)算法(fcfs)、調(diào)用短作業(yè)優(yōu)先算法(sjf)、調(diào)用高響應(yīng)者優(yōu)先算法(xyb)、作業(yè)的創(chuàng)建(creat)、調(diào)用總結(jié)函數(shù)(zj)和退出程序功能。在運(yùn)行菜單中,用戶(hù)輸入1~6的任意鍵,即進(jìn)入對(duì)應(yīng)的文件操作,完成操作后,可繼續(xù)重復(fù)執(zhí)行菜單選項(xiàng)以實(shí)現(xiàn)其他的文件操作功能。4.1.2主程序?qū)崿F(xiàn)代碼主程序代碼如下:#include<stdio.h>#defineSIZE4structjcb{intname;floattjtime;floatruntime;floatstarttime;floatfinishtime;floatturntime;floatxyb;structjcb*next;}sr[SIZE],sw[SIZE],sq[SIZE];floatpj[3]={0};intmain(){intx;printf("\n\n\n\n");printf("Pleasechoosethenumber:\n");printf("|choose[1]:FCFS\n");printf("|choose[2]:SJF\n");printf("|choose[3]:XYB \n");printf("|choose[4]:CREAT\n");printf("|choose[5]:ZJ\n");printf("|choose[6]:EXIT\n");printf("\n");scanf("%d",&x);switch(x){case1:fcfs();break;case2:sjf();break;case3:xyyb();break;case4:creat();break;case5:zj();break;case6:exit(0);}}4.2創(chuàng)建作業(yè)函數(shù)的實(shí)現(xiàn)4.2.1函數(shù)說(shuō)明根據(jù)宏定義中定義的SIZE的大小,本次課程設(shè)計(jì)的程序中為作業(yè)設(shè)定了四個(gè)作業(yè)的調(diào)度情況,在具體的運(yùn)行過(guò)程中,首先界面提示輸入文件名,輸入文件名“1”后界面提示分別輸入作業(yè)的名稱(chēng)、提交時(shí)間和運(yùn)行時(shí)間,整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)均可,中間用空格隔開(kāi)。4.2.2創(chuàng)建函數(shù)實(shí)現(xiàn)代碼creat()創(chuàng)建函數(shù)用于創(chuàng)建文件并把作業(yè)的相關(guān)信息如:作業(yè)的名稱(chēng)(name)、作業(yè)的提交時(shí)間(tjtime)和作業(yè)的運(yùn)行時(shí)間(runtime)這些基本信息寫(xiě)入文本文件中,使程序運(yùn)行時(shí)當(dāng)調(diào)用不同的調(diào)度算法時(shí)作業(yè)的基本信息不被破壞。同時(shí)為以后運(yùn)行時(shí)對(duì)選用不同算法而算出的平均周轉(zhuǎn)時(shí)間進(jìn)行比較。創(chuàng)建函數(shù)程序代碼如下:creat(){FILE*fp;inti,j;chara[20];pj[0]=0;pj[1]=0;pj[2]=0;printf("\t\t\twelcometoCREAT\n");printf("qingshuruwenjianming\n");scanf("%s",a);if((fp=fopen(a,"wb"))==NULL)/*以二進(jìn)制文件寫(xiě)入*/{printf("cannotopenfile\n");}for(i=0;i<SIZE;i++) {printf("inputnumber%drecord'sname,tjtime,runtime:\n",i+1); scanf("%d%f%f",&sr[i].name,&sr[i].tjtime,&sr[i].runtime); if(fwrite(&sr[i],sizeof(structjcb),1,fp)!=1) printf("filewriteerror\n"); } fclose(fp);printf("pleasepressanykeyreturnmain()\n");getchar();getchar();main();}4.3先來(lái)先服務(wù)函數(shù)4.3.1函數(shù)說(shuō)明先來(lái)先服務(wù)算法,每次調(diào)度是從后備作業(yè)隊(duì)列中,選擇一個(gè)最先進(jìn)入該隊(duì)列的作業(yè),把處理機(jī)分配給它,使之投入運(yùn)行。通過(guò)一系列運(yùn)算求出其作業(yè)的開(kāi)始時(shí)間、完成時(shí)間、周轉(zhuǎn)時(shí)間。最后求出此調(diào)度算法下的平均周轉(zhuǎn)時(shí)間,并將所求出的數(shù)據(jù)信息輸出在屏幕上。該算法補(bǔ)角有利于長(zhǎng)作業(yè),而不利短作業(yè)。4.3.2先來(lái)先服務(wù)代碼先來(lái)先服務(wù)代碼如下:fcfs(){FILE*fp;intj;charb[20];structjcb*t,*p,*q,*head;p=q=(structjcb*)malloc(sizeof(structjcb));head=NULL;pj[0]=0;printf("\t\t\twelcometofcfs\n");printf("qingshuruwenjianming\n");scanf("%s",b);if((fp=fopen(b,"rb"))==NULL){printf("cannotopenfile\n");printf("pleasepressanykeyreturn:\n");getchar();getchar();main();}printf("welcomecometofcfo:\n");for(j=0;j<SIZE;j++){fread(&sr[j],sizeof(structjcb),1,fp);if((j+1)==1)head=p;elseq->next=p;t=q;q=p;p=(structjcb*)malloc(sizeof(structjcb));q->name=sr[j].name;q->tjtime=sr[j].tjtime;q->runtime=sr[j].runtime;if(j==0)q->starttime=q->tjtime;elseq->starttime=t->finishtime;q->finishtime=(q->starttime+q->runtime);q->turntime=(q->finishtime-q->tjtime);}q->next=p;p->next=NULL;p=head;printf("nametjtimeruntimestarttimefinishtimeturntime\n");while(p->next!=NULL){printf("%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",p->name,p->tjtime,p->runtime,p->starttime,p->finishtime,p->turntime);pj[0]=pj[0]+p->turntime;p=p->next;}pj[0]=pj[0]/SIZE;printf("fcfo'saverageturntime:%f\n",pj[0]);printf("pleasepressanykeyreturnmain()\n");getchar();getchar();main();}4.4短作業(yè)優(yōu)先函數(shù)4.4.1函數(shù)說(shuō)明短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法SJ(P)F,是對(duì)短作業(yè)或短進(jìn)程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和作業(yè)進(jìn)程。短作業(yè)優(yōu)先(SJF)的調(diào)度算法時(shí)從后備隊(duì)列中選擇的一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),將它們調(diào)入內(nèi)存運(yùn)行。SJP調(diào)度算法能有效地降低作業(yè)的平均等待時(shí)間,提高系統(tǒng)吞吐量。4.4.2短作業(yè)優(yōu)先代碼短作業(yè)優(yōu)先代碼如下:sjf(){FILE*fp;inti,j,name;floatt1,t2,t3,t4,t5,t6;structjcb*t,*p,*q,*head;charb[20];p=q=(structjcb*)malloc(sizeof(structjcb));head=NULL;pj[1]=0;printf("\t\t\twelcometosjf\n");printf("qingshuruwenjianming\n");scanf("%s",b);if((fp=fopen(b,"rb"))==NULL){printf("cannotopenfile\n");printf("pleasepressanykeyreturn:\n");getchar();getchar();main();}printf("welcomecometosjf:\n");fread(&sw[0],sizeof(structjcb),1,fp);for(i=1;i<SIZE-1;i++){fread(&sw[i],sizeof(structjcb),1,fp);for(j=i+1;j<SIZE;j++){fread(&sw[j],sizeof(structjcb),1,fp);if(sw[j].runtime<sw[i].runtime){name=sw[i].name;sw[i].name=sw[j].name;sw[j].name=name;t1=sw[i].tjtime;sw[i].tjtime=sw[j].tjtime;sw[j].tjtime=t1;t2=sw[i].runtime;sw[i].runtime=sw[j].runtime;sw[j].runtime=t2;}}for(j=0;j<SIZE;j++){/*fread(&sw[j],sizeof(structjcb),1,fp);*/if((j+1)==1)head=p;elseq->next=p;t=q;q=p;p=(structjcb*)malloc(sizeof(structjcb));q->name=sw[j].name;q->tjtime=sw[j].tjtime;q->runtime=sw[j].runtime;if(j==0)q->starttime=q->tjtime;elseq->starttime=t->finishtime;q->finishtime=(q->starttime+q->runtime);q->turntime=(q->finishtime-q->tjtime);}q->next=p;p->next=NULL;p=head;}printf("nametjtimeruntimestarttimefinishtimeturntime\n");while(p->next!=NULL){printf("%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",p->name,p->tjtime,p->runtime,p->starttime,p->finishtime,p->turntime);pj[1]=pj[1]+p->turntime;p=p->next;}pj[1]=pj[1]/SIZE;printf("sjf'saverageturntime:%f\n",pj[1]);printf("pleasepressanykeyreturnmain()\n");getchar();getchar();main();}4.5響應(yīng)比高者優(yōu)先函數(shù)響應(yīng)比高者優(yōu)先函數(shù)是將最先進(jìn)入就緒隊(duì)列的作業(yè)放入處理機(jī)開(kāi)始運(yùn)行,再將隊(duì)列后面的作業(yè)通過(guò)響應(yīng)比運(yùn)算得出其響應(yīng)比,并重新排序,得出每個(gè)作業(yè)的開(kāi)始時(shí)間和運(yùn)行時(shí)間,并且得出總的周轉(zhuǎn)時(shí)間。4.5.1函數(shù)說(shuō)明此函數(shù)主要利用鏈表和數(shù)組和for循環(huán)以及if判斷重新對(duì)作業(yè)進(jìn)行排列,開(kāi)始將作業(yè)依次進(jìn)入處理機(jī)運(yùn)算,最后得出總的周轉(zhuǎn)時(shí)間。4.5.2響應(yīng)比高者優(yōu)先代碼響應(yīng)比高者優(yōu)先代碼如下:xyyb(){FILE*fp;inti,j,xb,m;floatw;charb[20];structjcb*p,*q,*head,*t,*u;pj[2]=0;printf("\t\t\twelcometoxyb\n");printf("qingshuruwenjianming\n");scanf("%s",b);if((fp=fopen(b,"rb"))==NULL){printf("cannotopenfile\n");printf("pleasepressanykeyreturn:\n");getchar();getchar();main();}for(m=0;m<SIZE;m++)fread(&sq[m],sizeof(structjcb),1,fp);for(j=1;j<SIZE;j++)sq[j].xyb=1;fclose(fp);p=q=(structjcb*)malloc(sizeof(structjcb));head=p;q->name=sq[0].name;q->tjtime=sq[0].tjtime;q->runtime=sq[0].runtime;q->starttime=sq[0].tjtime;q->finishtime=q->starttime+q->runtime;q->turntime=q->finishtime-q->tjtime;/*printf("%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",p->name,p->tjtime,p->runtime,p->starttime,p->finishtime,p->turntime);*/for(i=1;i<=SIZE;i++){p=(structjcb*)malloc(sizeof(structjcb));q->next=p;t=q;q=p;w=0;for(j=1;j<SIZE;j++){if(sq[j].xyb!=0){ sq[j].xyb=((t->finishtime-sq[j].tjtime)+sq[j].runtime)/sq[j].runtime;if(sq[j].xyb>w){w=sq[j].xyb;xb=j;} }}q->name=sq[xb].name;q->tjtime=sq[xb].tjtime;q->runtime=sq[xb].runtime;q->starttime=t->finishtime;q->finishtime=q->starttime+q->runtime;q->turntime=q->finishtime-q->tjtime;sq[xb].xyb=0.0;}q->next=p;p->next=NULL;p=head;printf("nametjtimeruntimestarttimefinishtimeturntime\n");while(p->next!=NULL){printf("%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",p->name,p->tjtime,p->runtime,p->starttime,p->finishtime,p->turntime);pj[2]=pj[2]+p->turntime;p=p->next;}pj[2]=pj[2]/SIZE;printf("xyb'saverageturntime:%f\n",pj[2]);printf("pleasepressanykeyreturnmain()\n");getchar();getchar();main();}4.6總結(jié)函數(shù)此函數(shù)的主要功能為是判斷先來(lái)先服務(wù)優(yōu)先調(diào)度算法、短作業(yè)優(yōu)先調(diào)度算法、響應(yīng)比高者優(yōu)先調(diào)度算法哪種算法為最佳算法,具體方法是通過(guò)計(jì)算平均周轉(zhuǎn)時(shí)間,哪種算法的平均周轉(zhuǎn)時(shí)間最短,這種調(diào)度算法就是此次作業(yè)調(diào)度過(guò)程中最佳的算法。4.6.1函數(shù)說(shuō)明此函數(shù)主要利用for循環(huán)語(yǔ)句結(jié)合if條件判斷語(yǔ)句求出三種算法下的平均周轉(zhuǎn)時(shí)間并輸出比較結(jié)果。4.6.2總結(jié)函數(shù)實(shí)現(xiàn)代碼總結(jié)函數(shù)程序代碼如下:zj(){inti,ma=0;for(i=0;i<SIZE-1;i++)if(pj[i]==0){printf("error,pleasechooseothersuanfa,enteranykeycontinue:\n");getchar();getchar();main();}printf("fcfs'saverageturntime:%f\n",pj[0]);printf("sjf'saverageturntime:%f\n",pj[1]);printf("xyb'saverageturntime:%f\n",pj[2]);ma=0;for(i=0;i<SIZE-1;i++)if(pj[ma]>pj[i])ma=i;if(ma==0)printf("thefcfsaverage'sturntimeisbest\n");elseif(ma==1)printf("thesjfaverage'sturntimeisbest\n");elseprintf("thexybaverage'sturntimeisbest\n");pj[0]=0;pj[1]=0;pj[2]=0;printf("pleasepressanykeyreturnmain()\n");getchar();getchar();main();}5系統(tǒng)運(yùn)行結(jié)果5.1主函數(shù)運(yùn)行界面設(shè)置數(shù)字鍵選項(xiàng)1~6,分別實(shí)現(xiàn)調(diào)用先來(lái)先服務(wù)算法(fcfs)、調(diào)用短作業(yè)優(yōu)先算法(sjf)、調(diào)用高響應(yīng)者優(yōu)先算法(xyb)、作業(yè)的創(chuàng)建(creat)、調(diào)用總結(jié)函數(shù)(zj)和退出程序的功能。主程序運(yùn)行界面如圖5.1所示。圖5.1主程序運(yùn)行界面5.2創(chuàng)建函數(shù)運(yùn)行界面依次輸入作業(yè)的名稱(chēng)(name)、作業(yè)的提交時(shí)間(tjtime)和作業(yè)的運(yùn)行時(shí)間(runtime),中間用空格隔開(kāi)。創(chuàng)建函數(shù)運(yùn)行界面如下圖5.2所示。圖5.2創(chuàng)建函數(shù)運(yùn)行界面5.3先來(lái)先服務(wù)調(diào)度算法運(yùn)行界面在主函數(shù)運(yùn)行界面下按“1”并按回車(chē)鍵進(jìn)入先來(lái)先服務(wù)調(diào)度算法運(yùn)行界面。然后創(chuàng)建函數(shù)運(yùn)行,對(duì)各個(gè)作業(yè)進(jìn)行開(kāi)始時(shí)間、運(yùn)行時(shí)間、等待時(shí)間周轉(zhuǎn)時(shí)間的設(shè)定。如圖5.3所示。圖5.3創(chuàng)建函數(shù)運(yùn)行界面輸入文件名并回車(chē),屏幕輸出由先來(lái)先服務(wù)調(diào)度算法執(zhí)行后各作業(yè)的執(zhí)行情況。若輸入錯(cuò)誤的文件名,則輸出“cannotopenfile”。按任意鍵返回主界面重新輸入。先來(lái)先服務(wù)運(yùn)行界面如下圖5.4所示。圖5.4先來(lái)先服務(wù)運(yùn)行5.4短作業(yè)優(yōu)先函數(shù)運(yùn)行界面短作業(yè)優(yōu)先函數(shù)運(yùn)行界面如下圖5.5所示。圖5.5短作業(yè)優(yōu)先運(yùn)行5.5響應(yīng)比高者優(yōu)函數(shù)運(yùn)行結(jié)果在主函數(shù)運(yùn)行界面下按“3”并按回車(chē)鍵進(jìn)入響應(yīng)比高者優(yōu)先算法運(yùn)行界面。運(yùn)行界面。然后創(chuàng)建函數(shù)運(yùn)行,對(duì)各個(gè)作業(yè)進(jìn)行開(kāi)始時(shí)間、運(yùn)行時(shí)間、等待時(shí)間周轉(zhuǎn)時(shí)間的設(shè)定。如圖5.6所示。圖5.6響應(yīng)比高者優(yōu)先結(jié)果5.6總結(jié)函數(shù)運(yùn)行界面程序運(yùn)行時(shí),在主函數(shù)運(yùn)行界面輸入“5”并按回車(chē)鍵,進(jìn)入總結(jié)函數(shù)運(yùn)行界面,屏幕上自動(dòng)輸出排列信息。平均周轉(zhuǎn)時(shí)間最短的為最佳的算法。其運(yùn)行界面如圖5.7所示。圖5.7總結(jié)函數(shù)運(yùn)行界面總結(jié) 本次課程設(shè)計(jì)大體的流程是運(yùn)用已學(xué)的知識(shí),先對(duì)整個(gè)開(kāi)發(fā)項(xiàng)目進(jìn)行系統(tǒng)需求分析;然后對(duì)數(shù)據(jù)庫(kù)的關(guān)系模型實(shí)體進(jìn)行設(shè)計(jì);在創(chuàng)建好數(shù)據(jù)庫(kù)之后,構(gòu)建以VC++對(duì)話(huà)框?yàn)榛A(chǔ)的系統(tǒng)框架,用ADO數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)連接并對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作;在基本完成系統(tǒng)所有必須的功能后,進(jìn)行數(shù)據(jù)測(cè)試,校正差錯(cuò);最后就是對(duì)系統(tǒng)程序進(jìn)行大概的漏洞和錯(cuò)誤檢測(cè)。 在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)整個(gè)系統(tǒng)原理比最初想象的都要復(fù)雜,不過(guò)也沒(méi)有太大的技術(shù)難點(diǎn),經(jīng)過(guò)不斷的試驗(yàn)研究,參考了不少資料,花了差不多兩個(gè)星期才把系統(tǒng)完成。設(shè)計(jì)出的系統(tǒng)基本具備需要的所有功能,實(shí)現(xiàn)證明數(shù)據(jù)也沒(méi)有出錯(cuò)。 由于時(shí)間倉(cāng)促,并沒(méi)有對(duì)系統(tǒng)做進(jìn)一步的完善,還存在不少欠缺和需要改善的地方,例如系統(tǒng)的用戶(hù)等級(jí)登陸模塊、數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論