freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)開放性實(shí)驗(yàn)指導(dǎo)手冊(cè)-資料下載頁(yè)

2025-06-25 06:24本頁(yè)面
  

【正文】 任務(wù)1:確定進(jìn)程的數(shù)據(jù)類型和相關(guān)數(shù)據(jù)typedef struct node{ char name[10]。 /*進(jìn)程標(biāo)識(shí)符*/ int prio。 /*進(jìn)程優(yōu)先數(shù)*/ int round。 /*進(jìn)程時(shí)間輪轉(zhuǎn)時(shí)間片*/ int cputime。 /*進(jìn)程占用CPU時(shí)間*/ int needtime。 /*進(jìn)程到完成還要的時(shí)間*/ int count。 /*計(jì)數(shù)器*/ char state。 /*進(jìn)程的狀態(tài)*/ struct node *next。 /*鏈指針*/}PCB。PCB *finish,*ready,*tail,*run。 /*隊(duì)列指針*/int N。 /*進(jìn)程數(shù)*/任務(wù)2:優(yōu)先數(shù)法算法模塊的相關(guān)函數(shù)的設(shè)計(jì)insert1(PCB *q) /*優(yōu)先數(shù)的插入算法*/void create1(char alg) /*優(yōu)先數(shù)創(chuàng)建初始PCB信息*/priority(char alg) /*優(yōu)先數(shù)調(diào)度算法*/任務(wù)3:時(shí)間片輪轉(zhuǎn)法模塊的相關(guān)函數(shù)的設(shè)計(jì) insert2(PCB *p2) /*輪轉(zhuǎn)法插入函數(shù)*/void create2(char alg) /*輪轉(zhuǎn)法創(chuàng)建進(jìn)程PCB*/roundrun(char alg) /*時(shí)間片輪轉(zhuǎn)法運(yùn)行*/任務(wù)4:主函數(shù)及輔助函數(shù)的設(shè)計(jì) main()/*主函數(shù)*/firstin()/*將就緒隊(duì)列中的第一個(gè)進(jìn)程投入運(yùn)行*/void prt1(char a) /*標(biāo)題輸出函數(shù)*/void prt2(char a,PCB *q) /*進(jìn)程PCB輸出*/void prt(char algo) /*輸出函數(shù)*/訓(xùn)練的技能點(diǎn)這是一個(gè)模擬操作系統(tǒng)中進(jìn)程調(diào)度的程序。該系統(tǒng)要求學(xué)生能夠(1) 深刻理解進(jìn)程的概念和特點(diǎn);(2) 熟練掌握結(jié)構(gòu)體、指針、鏈隊(duì)列等基本程序設(shè)計(jì)知識(shí)和技能;(3) 積極鍛煉用理論解決實(shí)際問題的能力設(shè)計(jì)要求盡量將給出提示信息的設(shè)計(jì),使得系統(tǒng)具有良好的分層結(jié)構(gòu);編寫出完整的實(shí)現(xiàn)代碼,并考慮對(duì)異常的處理,利用集成開發(fā)環(huán)境調(diào)試程序。設(shè)計(jì)思路先設(shè)計(jì)進(jìn)程所需要的數(shù)據(jù)類型和隊(duì)列等相關(guān)數(shù)據(jù)所需要的指針變量。進(jìn)而,結(jié)合進(jìn)程調(diào)度算法的實(shí)際過程,借助鏈隊(duì)列的操作用C程序模擬調(diào)度的過程; 重點(diǎn)難點(diǎn)如何在鏈隊(duì)列的基礎(chǔ)上來完成入隊(duì)和出隊(duì)操作,以及進(jìn)程調(diào)度理論方面的知識(shí)如何采用具體的C程序來加以敘述,這是個(gè)難點(diǎn)。第二部分 上機(jī)任務(wù)分階段完成如下任務(wù)階段1:指導(dǎo)訓(xùn)練要點(diǎn)(1) 程序設(shè)計(jì)和書寫的規(guī)范性,包括變量命名,模塊的分解。需求說明(1)實(shí)現(xiàn)思路程序設(shè)計(jì)圖(1) 功能結(jié)構(gòu)圖(2) 程序流程圖評(píng)分標(biāo)準(zhǔn)評(píng)分重點(diǎn)放在面向過程程序設(shè)計(jì)方法和實(shí)際編寫代碼能力這兩個(gè)方面。凡是能夠基本完成程序設(shè)計(jì),畫出合理的設(shè)計(jì)框圖,建立基本的代碼框架,均視為及格。能夠以清晰的思路設(shè)計(jì)出較為詳細(xì)的程序流程圖,并編寫代碼實(shí)現(xiàn)大部分功能,沒有重大語(yǔ)法錯(cuò)誤的可以視為良好。如果程序功能完備,運(yùn)行無誤,并在設(shè)計(jì)上有一定的獨(dú)到之處,或者編寫的代碼具有良好的設(shè)計(jì)風(fēng)格,規(guī)范易讀,此類設(shè)計(jì)視為優(yōu)秀。參考代碼include include include typedef struct node{ char name[10]。 /*進(jìn)程標(biāo)識(shí)符*/ int prio。 /*進(jìn)程優(yōu)先數(shù)*/ int round。 /*進(jìn)程時(shí)間輪轉(zhuǎn)時(shí)間片*/ int cputime。 /*進(jìn)程占用CPU時(shí)間*/ int needtime。 /*進(jìn)程到完成還要的時(shí)間*/ int count。 /*計(jì)數(shù)器*/ char state。 /*進(jìn)程的狀態(tài)*/ struct node *next。 /*鏈指針*/}PCB。PCB *finish,*ready,*tail,*run。 /*隊(duì)列指針*/int N。 /*進(jìn)程數(shù)*//*將就緒隊(duì)列中的第一個(gè)進(jìn)程投入運(yùn)行*/firstin(){ run=ready。 /*就緒隊(duì)列頭指針賦值給運(yùn)行頭指針*/ runstate=39。R39。 /*進(jìn)程狀態(tài)變?yōu)檫\(yùn)行態(tài)*/ ready=readynext。 /*就緒對(duì)列頭指針后移到下一進(jìn)程*/}/*標(biāo)題輸出函數(shù)*/void prt1(char a){ if(toupper(a)==39。P39。) /*優(yōu)先數(shù)法*/ printf( name cputime needtime priority state\n)。 else printf( name cputime needtime count round state\n)。}/*進(jìn)程PCB輸出*/void prt2(char a,PCB *q){ if(toupper(a)==39。P39。) /*優(yōu)先數(shù)法的輸出*/ printf( %10s%10d%10d%10d %c\n,qname, qcputime,qneedtime,qprio,qstate)。 else/*輪轉(zhuǎn)法的輸出*/ printf( %10s%10d%10d%10d%10d %c\n,qname, qcputime,qneedtime,qcount,qround,qstate)。}/*輸出函數(shù)*/void prt(char algo){ PCB *p。 prt1(algo)。 /*輸出標(biāo)題*/ if(run!=NULL) /*如果運(yùn)行指針不空*/ prt2(algo,run)。 /*輸出當(dāng)前正在運(yùn)行的PCB*/ p=ready。 /*輸出就緒隊(duì)列PCB*/ while(p!=NULL) { prt2(algo,p)。 p=pnext。 } p=finish。 /*輸出完成隊(duì)列的PCB*/ while(p!=NULL) { prt2(algo,p)。 p=pnext。 } getch()。 /*壓任意鍵繼續(xù)*/}/*優(yōu)先數(shù)的插入算法*/insert1(PCB *q){ PCB *p1,*s,*r。 int b。 s=q。 /*待插入的PCB指針*/ p1=ready。 /*就緒隊(duì)列頭指針*/ r=p1。 /*r做p1的前驅(qū)指針*/ b=1。 while((p1!=NULL)amp。amp。b) /*根據(jù)優(yōu)先數(shù)確定插入位置*/ if(p1prio=sprio) { r=p1。 p1=p1next。 } else b=0。 if(r!=p1) /*如果條件成立說明插入在r與p1之間*/ { rnext=s。 snext=p1。 } else { snext=p1。 /*否則插入在就緒隊(duì)列的頭*/ ready=s。 }}/*輪轉(zhuǎn)法插入函數(shù)*/insert2(PCB *p2){ tailnext=p2。 /*將新的PCB插入在當(dāng)前就緒隊(duì)列的尾*/ tail=p2。 p2next=NULL。}/*優(yōu)先數(shù)創(chuàng)建初始PCB信息*/void create1(char alg){ PCB *p。 int i,time。 char na[10]。 ready=NULL。 /*就緒隊(duì)列頭指針*/ finish=NULL。 /*完成隊(duì)列頭指針*/ run=NULL。 /*運(yùn)行隊(duì)列指針*/ printf(Enter name and time of process\n)。 /*輸入進(jìn)程標(biāo)識(shí)和所需時(shí)間創(chuàng)建PCB*/ for(i=1。i=N。i++) { p=malloc(sizeof(PCB))。 scanf(%s,na)。 scanf(%d,amp。time)。 strcpy(pname,na)。 pcputime=0。 pneedtime=time。 pstate=39。w39。 pprio=50time。 if(ready!=NULL) /*就緒隊(duì)列不空調(diào)用插入函數(shù)插入*/ insert1(p)。 else { pnext=ready。 /*創(chuàng)建就緒隊(duì)列的第一個(gè)PCB*/ ready=p。 } } clrscr()。 printf( output of priority:\n)。 printf(************************************************\n)。 prt(alg)。 /*輸出進(jìn)程PCB信息*/ run=ready。 /*將就緒隊(duì)列的第一個(gè)進(jìn)程投入運(yùn)行*/ ready=readynext。 runstate=39。R39。}/*輪轉(zhuǎn)法創(chuàng)建進(jìn)程PCB*/void create2(char alg){ PCB *p。 int i,time。 char na[10]。 ready=NULL。 finish=NULL。 run=NULL。 printf(Enter name and time of round process\n)。 for(i=1。i=N。i++) { p=malloc(sizeof(PCB))。 scanf(%s,na)。 scanf(%d,amp。time)。 strcpy(pname,na)。 pcputime=0。 pneedtime=time。 pcount=0。 /*計(jì)數(shù)器*/ pstate=39。w39。 pround=2。 /*時(shí)間片*/ if(ready!=NULL) insert2(p)。 else { pnext=ready。 ready=p。 tail=p。 } } clrscr()。 printf( output of round\n)。 printf(************************************************\n)。 prt(alg)。 /*輸出進(jìn)程PCB信息*/ run=ready。 /*將就緒隊(duì)列的第一個(gè)進(jìn)程投入運(yùn)行*/ ready=readynext。 runstate=39。R39。}/*優(yōu)先數(shù)調(diào)度算法*/priority(char alg){ while(run!=NULL) /*當(dāng)運(yùn)行隊(duì)列不空時(shí),有進(jìn)程正在運(yùn)行*/ { runcputime=runcputime+1。 runneedtime=runneedtime1。 runprio=runprio3。 /*每運(yùn)行一次優(yōu)先數(shù)降低3個(gè)單位*/ if(runneedtime==0) /*如所需時(shí)間為0將其插入完成隊(duì)列*/ { runnext=finish。 finish=run。 runstate=39。F39。 /*置狀態(tài)為完成態(tài)*/ run=NULL。 /*運(yùn)行隊(duì)列頭指針為空*/ if(ready!=NULL) /*如就緒隊(duì)列不空*/ firstin()。 /*將就緒對(duì)列的第一個(gè)進(jìn)程投入運(yùn)行*/ } else /*沒有運(yùn)行完同時(shí)優(yōu)先數(shù)不是最大,則將其變?yōu)榫途w態(tài)插入到就緒隊(duì)列*/ if((ready!=NULL)amp。amp。(runprioreadyprio)) { runstate=39。W39。 insert1(run)。 firstin()。 /*將就緒隊(duì)列的第一個(gè)進(jìn)程投入運(yùn)行*/ } prt(alg)。 /*輸出進(jìn)程PCB信息*/ }}/*時(shí)間片輪轉(zhuǎn)法*/roundrun(char alg){ while(run!=NULL) { runcputime=runcputime+1。 runneedtime=runneedtime1。 runcount=runcount+1。 if(runneedtime==0)/*運(yùn)行完將其變?yōu)橥瓿蓱B(tài),插入完成隊(duì)列*/ { runnext=finish。 finish=run。 runstate=39。F39。 run=NULL。 if(ready!=NULL) firstin()。 /*就緒對(duì)列不空,將第一個(gè)進(jìn)程投入運(yùn)行*/ } else if(r
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1