專業(yè)課程設(shè)計(jì)java計(jì)時(shí)器和操作系統(tǒng)頁面置換.doc_第1頁
專業(yè)課程設(shè)計(jì)java計(jì)時(shí)器和操作系統(tǒng)頁面置換.doc_第2頁
專業(yè)課程設(shè)計(jì)java計(jì)時(shí)器和操作系統(tǒng)頁面置換.doc_第3頁
專業(yè)課程設(shè)計(jì)java計(jì)時(shí)器和操作系統(tǒng)頁面置換.doc_第4頁
專業(yè)課程設(shè)計(jì)java計(jì)時(shí)器和操作系統(tǒng)頁面置換.doc_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

通達(dá)學(xué)院專業(yè)課程設(shè)計(jì)I題 目:Java語言課程設(shè)計(jì)和操作系統(tǒng)課程設(shè)計(jì) 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 生 姓 名 班 級 學(xué) 號 指 導(dǎo) 教 師 指 導(dǎo) 單 位 日 期 2013/06/27 教師評語同學(xué)出勤率(滿勤、較高、一般,較低),學(xué)習(xí)態(tài)度(端正、較端正、一般、較差),程序設(shè)計(jì)基礎(chǔ)(好、較好、一般、較差),演示程序(已經(jīng)、沒有)達(dá)到了基本要求,算法設(shè)計(jì)(好、較好、一般),界面友好程度(好、較好、一般),答辯過程中回答問題(準(zhǔn)確、較準(zhǔn)確、錯(cuò)誤率較高),撰寫報(bào)告格式(規(guī)范、一般)、內(nèi)容(豐滿、簡單)、表述(清晰、一般、不清楚),(圓滿、較好、基本)完成了課題任務(wù)。 教師簽名: 年 月 日成績評定備 注題目1數(shù)字式定時(shí)器一、 課題內(nèi)容和要求 計(jì)時(shí)器操作是周期性像實(shí)際生活中的秒表。創(chuàng)建一個(gè)計(jì)時(shí)器,確定計(jì)時(shí)器每隔幾毫秒“震鈴”一次,創(chuàng)建一個(gè)監(jiān)視器,計(jì)時(shí)器發(fā)生的震鈴事件是actionEvent類型的事件。當(dāng)震鈴事件發(fā)生時(shí),監(jiān)視器就會監(jiān)視到這個(gè)事件,就會執(zhí)行ActionListner中的方法actionPerformed。計(jì)時(shí)器創(chuàng)建后,但觸發(fā)事件時(shí)調(diào)用到觸發(fā)事件的函數(shù),然后調(diào)用thread線程中的start()方法后,一旦輪到它共享cpu資源,目標(biāo)對象就會自動調(diào)用run()方法就是接口回調(diào)。需要用SWING設(shè)計(jì)簡單界面用于設(shè)定定時(shí)時(shí)間、開始、結(jié)束和暫停功能。單擊“開始”按鈕啟動計(jì)時(shí)器,時(shí)間開始計(jì)時(shí)。單擊“暫?!卑粹o計(jì)時(shí)器停止計(jì)時(shí),單擊“繼續(xù)”按鈕繼續(xù)計(jì)時(shí)。單擊“重設(shè)”按鈕時(shí)間清零。首先要完成程序外觀界面的設(shè)計(jì),其中包括創(chuàng)建窗體,在窗體中添加菜單、工具欄及多種GUI組件,設(shè)置各類組件的大小、位置、顏色等屬性。這個(gè)層次的工作可以認(rèn)為是對程序靜態(tài)特征的設(shè)置。其次要為各種組件對象提供響應(yīng)與處理不同事件的功能支持,從而使程序具備與用戶或外界事物交互的能力,使得程序“活”了起來。這個(gè)層次的工作可以認(rèn)為是對程序動態(tài)特征的處理。二、 概要設(shè)計(jì) 1.程序設(shè)計(jì)的基本思想單擊“開始”按鈕啟動計(jì)時(shí)器,時(shí)間開始計(jì)時(shí)。單擊“暫?!卑粹o計(jì)時(shí)器停止計(jì)時(shí),單擊“繼續(xù)”按鈕繼續(xù)計(jì)時(shí)。單擊“重設(shè)”按鈕時(shí)間清零。圖表 12. 應(yīng)為用SWING設(shè)計(jì)簡單界面用于設(shè)定定時(shí)時(shí)間、開始、結(jié)束和暫停功能。Swing 的三個(gè)基本構(gòu)造塊:標(biāo)簽、按鈕和文本字段;但是現(xiàn)在需要個(gè)地方安放它們,并希望用戶知道如何處理它們。所以JFrame 類就是解決這個(gè)問題的它是一個(gè)容器,允許 把其他組件添加到它里面,把它們組織起來,并把它們呈現(xiàn)給用戶。在此實(shí)驗(yàn)中用到Jframe用到的主件有Button是按鈕,Label是標(biāo)簽,用setLayout來設(shè)置標(biāo)題,用setBounds()來設(shè)定按鈕的位置。圖表 2代碼段實(shí)現(xiàn):start=new Button(開始);stop=new Button(停止);reset=new Button(重置);jixu=new Button(繼續(xù));desplay=new Label();this.setLayout(null);/默認(rèn)布局this.setTitle(計(jì)時(shí)器);/設(shè)置標(biāo)題desplay.setBounds(0,30,200,50);start.setBounds(0,80,50,50);stop.setBounds(60,80,50,50);jixu.setBounds(120,80,50,50);reset.setBounds(180,80,50,50);refresh();/刷新add(desplay);/條件主件按鈕add(start);add(stop); add(reset); add(jixu); setSize(300,200);/設(shè)置窗口的大小 setVisible(true); /窗口可見 3.實(shí)驗(yàn)中運(yùn)用到線程,有時(shí)被稱為輕量級進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。每一個(gè)程序都至少有一個(gè)線程,若程序只有一個(gè)線程,那就是程序本身。下面是狀態(tài)的關(guān)系:圖表 34.事件的監(jiān)聽事件表達(dá)了系統(tǒng)、應(yīng)用程序及用戶之間的動作和響應(yīng)。利用事件機(jī)制實(shí)現(xiàn)用戶與程序之間的交互。java.awt.event包中定義了11個(gè)監(jiān)聽者接口,每個(gè)接口內(nèi)部包含了若干處理相關(guān)事件的抽象方法。一般說來,每個(gè)事件類都有一個(gè)監(jiān)聽者接口與之相對應(yīng),而事件類中的每個(gè)具體事件類型都有一個(gè)具體的抽象方法與之相對應(yīng),當(dāng)具體事件發(fā)生時(shí),這個(gè)事件將被封裝成一個(gè)事件類的對象作為實(shí)際參數(shù)傳遞給與之對應(yīng)的具體方法,由這個(gè)具體方法負(fù)責(zé)響應(yīng)并處理發(fā)生的事件。ActionEvent類事件對應(yīng)的接口是ActionListener。處理ActionEvent事件的類都必須實(shí)現(xiàn)ActionListener接口,實(shí)現(xiàn)ActionListener接口就必須重載上述的actionPerformed()方法,在重載的方法體中,通常需要調(diào)用參數(shù)e的有關(guān)方法。代碼段:public class d extends JFrame implements Runnable,ActionListenerstart.addActionListener(this); stop.addActionListener(this); reset.addActionListener(this); jixu.addActionListener(this);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););事件產(chǎn)生和處理的流程如下:圖表 4三、 詳細(xì)設(shè)計(jì) public class d extends JFrame implements Runnable,ActionListener/實(shí)現(xiàn)Runnable,acitonListenr接口private int minutes;private static double seconds;private Thread mb;private boolean isRun;private Button start,stop,reset,jixu;private Label desplay; /成員變量的定義d()start=new Button(開始);stop=new Button(停止);reset=new Button(重置); jixu=new Button(繼續(xù)); desplay=new Label(); /創(chuàng)建主件按鈕和標(biāo)簽this.setLayout(null);desplay.setBounds(0,30,200,50);start.setBounds(0,80,50,50);stop.setBounds(60,80,50,50);jixu.setBounds(120,80,50,50);reset.setBounds(180,80,50,50);refresh();add(desplay);add(start);start.addActionListener(this); stop.addActionListener(this); reset.addActionListener(this); jixu.addActionListener(this); / 實(shí)現(xiàn)觸發(fā)事件的 add(stop); add(reset); add(jixu); setSize(300,200); setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0);); public static void main(String args) new d(); public void run() while(isRun) try seconds+=0.001; Thread.sleep(50); /睡眠50msif(seconds59) seconds=0; minutes=minutes+1; /改變秒針System.out.print(minutes); refresh(); catch(Exception e) public void actionPerformed(ActionEvent e) /事件的執(zhí)行if(e.getActionCommand().equals(開始) startCount(); /調(diào)用此函數(shù) else if(e.getActionCommand().equals(停止) stopCount(); /調(diào)用此函數(shù)else if(e.getActionCommand().equals(繼續(xù)) startCount(); / /調(diào)用此函數(shù) else reset(); /調(diào)用此函數(shù) public void refresh() desplay.setText(toString(); public void startCount() if(!isRun) isRun=true; mb=new Thread(this); mb.start(); /開始進(jìn)程 public void stopCount() if(isRun) isRun=false; public void reset() isRun=false; minutes=0; seconds=0; refresh(); public int getMinute() return minutes; public double getSecond() return seconds; public int getTotalTime() return minutes+(int)(seconds*100); public String toString() return +minutes+:+(int)seconds+:+(int)(seconds-(int)seconds)*100); /顯示四、 測試數(shù)據(jù)及其結(jié)果分析1.點(diǎn)擊開始按鈕開始計(jì)時(shí)圖表 5點(diǎn)擊開始按鈕2.點(diǎn)擊停止,暫停計(jì)時(shí)圖表 6點(diǎn)擊停止按鈕3.點(diǎn)擊繼續(xù),繼續(xù)計(jì)時(shí)圖表 7點(diǎn)擊繼續(xù)按鈕4.點(diǎn)擊重置,清零圖表 8點(diǎn)擊重置按鈕五、課程設(shè)計(jì)總結(jié)總結(jié)內(nèi)容包括: 1)設(shè)計(jì)過程中的問題關(guān)于計(jì)時(shí)器像秒表一樣增加,一開始是獲得的本機(jī)的時(shí)間來計(jì)時(shí)的,但是不符合條件。所以運(yùn)用本機(jī)時(shí)間來計(jì)算,所以時(shí)分秒之間的轉(zhuǎn)換倍數(shù)要十分的清昕。不懂監(jiān)聽事件時(shí)怎么點(diǎn)擊按鈕也不會運(yùn)行,每隔按鈕都要實(shí)現(xiàn)監(jiān)聽事件中的addActionListener事件。老師問線程和進(jìn)程的概念和區(qū)別沒回答出來,現(xiàn)在回答一下:進(jìn)程是表示資源分配的基本單位,又是調(diào)度運(yùn)行的基本單位。進(jìn)程調(diào)度程序選中它,為它分配CPU以及其它有關(guān)資源,該進(jìn)程才真正運(yùn)行。所以,進(jìn)程是系統(tǒng)中的并發(fā)執(zhí)行的單位。線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,亦即執(zhí)行處理機(jī)調(diào)度的基本單位。如果把進(jìn)程理解為在邏輯上操作系統(tǒng)所完成的任務(wù),那么線程表示完成該任務(wù)的許多可能的子任務(wù)之一。線程可以在處理器上獨(dú)立調(diào)度執(zhí)行,這樣,在多處理器環(huán)境下就允許幾個(gè)線程各自在單獨(dú)處理器上進(jìn)行。操作系統(tǒng)提供線程就是為了方便而有效地實(shí)現(xiàn)這種并發(fā)性 引入線程的好處 (1)易于調(diào)度。 (2)提高并發(fā)性。 (3)開銷少。 (4)利于充分發(fā)揮多處理器的功能。 它們的主要區(qū)別是:(1)一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。 (2)資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。 (3)處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。 (4)線程在執(zhí)行過程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。(2)課程設(shè)計(jì)過程的收獲和感受。課程設(shè)計(jì)經(jīng)過了兩個(gè)星期的不懈努力,終于交出了一份程序和文檔,在這里要深深的感謝老師。雖然最后交上的程序不是很完美的,但是在這個(gè)過程中我通過用心的去學(xué)和去做,能夠把事件、事件源和事件監(jiān)聽器三者的關(guān)系形象的理解為某條娛樂新聞、明星與記者之間的關(guān)系,還明白了線程該如何創(chuàng)建、Java中一些常用類的使用方法等基礎(chǔ)內(nèi)容和一些難點(diǎn)。但是我最后答辯被老師批的很慘,我想說的是java是我自己一個(gè)一個(gè)字母敲上去的。我覺得這次java課程設(shè)計(jì)學(xué)的東西還是蠻多的。再次謝謝老師的教訓(xùn),在此后我會銘記的。題目2虛擬存儲中頁面調(diào)度算法LRU的模擬實(shí)現(xiàn)五、 課題內(nèi)容和要求學(xué)習(xí)虛擬存儲機(jī)制中頁面調(diào)度算法,通過編程模擬實(shí)現(xiàn)頁面調(diào)度的LRU算法(最近最久未使用置換算法)。頁面置換算法是指在需要調(diào)入頁面且內(nèi)存已滿時(shí),確定將要換出頁面的算法。置換算法的好壞直接影響系統(tǒng)的性能,不適當(dāng)?shù)盟惴赡軐?dǎo)致進(jìn)程發(fā)生“抖動”,又稱“顛簸”。LRU算法就是過去一段時(shí)間內(nèi)不曾訪問過的頁面,在最近的將來也不會再訪問。該算法中必須記錄頁面使用時(shí)間的情況,所以算法賦予每個(gè)頁面一個(gè)訪問的字段,用來記錄頁面自上次被訪問以來經(jīng)歷的時(shí)間,實(shí)際使用中常采用移位寄存器或棧來幫助實(shí)現(xiàn)。如果采用移位寄存器,進(jìn)程訪問頁面時(shí),該頁面上的移位寄存器左邊最高位置1,定期右移并在最高位補(bǔ)0,寄存器最小的頁面先淘汰。若采用棧來保存當(dāng)前使用的各個(gè)頁面的頁號,則被訪問的頁面從棧頂往下移動,棧底的頁面就是下一個(gè)將要淘汰的頁面。LRU置換算法雖然是一種比較好的算法,但要求系統(tǒng)有較多的支持硬件。為了了解一個(gè)進(jìn)程在內(nèi)存中的各個(gè)頁面各有多少時(shí)間未被進(jìn)程訪問,以及如何快速地知道哪一頁是最近最久未使用的頁面,須有以下兩類硬件之一的支持:寄存器和棧。 二、概要設(shè)計(jì) 1、調(diào)頁策略 1)何時(shí)調(diào)入頁面 如果進(jìn)程的許多頁是存放在外存的一個(gè)連續(xù)區(qū)域中,則一次調(diào)入若干個(gè)相鄰的頁,會比一次調(diào)入一頁的效率更高效一些。但如果調(diào)入的一批頁面中的大多數(shù)都未被訪問,則又是低效的。可采用一種以預(yù)測為基礎(chǔ)的預(yù)調(diào)頁策略,將那些預(yù)計(jì)在不久之后便會被訪問的頁面,預(yù)先調(diào)入內(nèi)存。如果預(yù)測較準(zhǔn)確,那么,這種策略顯然是很有吸引力的。2)請求調(diào)頁策略 當(dāng)進(jìn)程在運(yùn)行中需要訪問某部分程序和數(shù)據(jù)時(shí),若發(fā)現(xiàn)其所在的頁面不在內(nèi)存,便即提出請求,由OS將其所需頁面調(diào)入內(nèi)存。由請示調(diào)頁策略所確定調(diào)入的頁,是一定會被訪問的,再加之請求調(diào)頁策略比較易于實(shí)現(xiàn),故在目前的虛擬存儲器中,大多采用此策略。2、從何處調(diào)入頁面 在請求分頁系統(tǒng)中的外存分為兩部分:用于存放文件的文件區(qū)和用于存放對換頁面的對換區(qū)。通常,由于對換區(qū)是采用連續(xù)分配方式,而事件是采用離散分配方式,故對換區(qū)的磁盤I/O速度比文件區(qū)的高。 3頁面調(diào)入過程每當(dāng)程序所要訪問的頁面未在內(nèi)存時(shí), 便向CPU發(fā)出一缺頁中斷,中斷處理程序首先保留CPU環(huán)境,分析中斷原因后,轉(zhuǎn)入缺頁中斷處理程序。該程序通過查找頁表,得到該頁在外在原物理 塊后,如果此時(shí)內(nèi)存能容納新頁,則啟動磁盤I/O將所缺之頁調(diào)入內(nèi)存,然后修改頁表。如果內(nèi)存已滿,則須先按照某種置換算法從內(nèi)存中選出一頁準(zhǔn)備換出;如果該頁未被修改過,可不必將該頁寫回磁盤;但如果此頁已被修改,則必須將它寫回磁盤,然后再把所缺的頁調(diào)入內(nèi)存,并修改頁表中的相應(yīng)表項(xiàng),置其存在位“1”,并將此頁表項(xiàng)寫入快表中。在缺頁調(diào)入內(nèi)存后,利用修改后的頁表,去形成所要訪問數(shù)據(jù)的物理地址,再去訪問內(nèi)存數(shù)據(jù)。整個(gè)頁面的調(diào)入過程對用戶是透明的。 2流程圖1)LRU置換算法處理的流程圖圖表 92)LRU置換內(nèi)部流程圖圖表 103. 最近久未使用(LRU)置換算法的思路最近久未使用置換算法的替換規(guī)則,是根據(jù)頁面調(diào)入內(nèi)存后的使用情況來進(jìn)行決策的。該算法賦予每個(gè)頁面一個(gè)訪問字段,用來記錄一個(gè)頁面自上次被訪問以來所經(jīng)歷的時(shí)間,當(dāng)需淘汰一個(gè)頁面的時(shí)候選擇現(xiàn)有頁面中其時(shí)間值最大的進(jìn)行淘汰。1)算法的事例:頁面走向232152453252缺頁置換*3124M =322222222333333355555555111444222圖表 112)代碼的實(shí)現(xiàn)是:if(memoryn=4) for(i=3;ipagen;i+) if(pagememory0!=pagenumberi)&(pagememory1!=pagenumberi)&(pagememory2!=pagenumberi) pagememory3=pagenumberi; now=i+1; want=4; break; 通過memoryn數(shù)來對物理塊來賦值,用if語句來看數(shù)據(jù)是否重復(fù)。通過want來計(jì)算缺頁數(shù),now 來計(jì)算中斷。 for(j=now;jpagen;j+) if(pagenumberj!=pagememory0)&(pagenumberj!=pagememory1)&(pagenumberj!=pagememory2) &(pagenumberj!=pagememory3)&(pagenumberj!=pagememory4) if(times0=times1) max=times1; else max=times0; if(max=times2) max=times2; if(max=times3) max=times3; if(max=times4) max=times4; If語句中來判斷數(shù)是否是最近最近未置換time來計(jì)算數(shù)有多長時(shí)間沒有使用,把最大的值置換掉。三、詳細(xì)設(shè)計(jì) 實(shí)現(xiàn)課題主要功能的源程序:#include /頭文件#include /#include /產(chǎn)生隨機(jī)數(shù)所需要的頭文件main() int pagen; int memoryn; /可用內(nèi)存塊數(shù)為memoryn,頁面長度為pagen, short times5=0,0,0,0,0; /時(shí)間軸數(shù)組 short pagenumber20=0; /控制頁面走向數(shù)組 short pagememory5=0,0,0,0,0; /物理塊數(shù)組 int i; /控制變量為i int want=0; /want為缺頁數(shù) int now; /中斷數(shù) printf(nn請輸入您要求的內(nèi)存塊數(shù)量(范圍為3至5):); scanf(%d,&memoryn); if(memoryn5) printf(nn對不起,您的輸入有誤,請重新輸入:); scanf(%d,&memoryn); printf(nn請輸入您要求的頁面長度(范圍為10至20):); scanf(%d,&pagen); if(pagen20) printf(nn對不起,您的輸入有誤,請重新輸入:); scanf(%d,&pagen); srand(time(NULL); for(i=0;ipagen;i+) pagenumberi=rand()%9+1; printf(%2d ,pagenumberi); printf(n); pagememory0=pagenumber0;/對第一個(gè)物理塊進(jìn)行賦值 printf(第 %2d 步: ,i=1); for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); for(i=1;ipagen;i+) if(pagememory0!=pagenumberi) pagememory1=pagenumberi; now=i+1; break; /對第二個(gè)物理塊進(jìn)行賦值 printf(第 %2d 步: ,now); for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); for(i=2;ipagen;i+) if(pagememory0!=pagenumberi)&(pagememory1!=pagenumberi) pagememory2=pagenumberi; now=i+1; break; /對第三個(gè)物理塊進(jìn)行賦值 want=3; /此時(shí)可以將缺頁值暫定為3 printf(第 %2d 步: ,now); for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); if(memoryn=4) for(i=3;ipagen;i+) if(pagememory0!=pagenumberi)&(pagememory1!=pagenumberi)&(pagememory2!=pagenumberi) pagememory3=pagenumberi; now=i+1; want=4; break; printf(第 %2d 步: ,now); for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); /如果為四個(gè)物理塊,則為第四個(gè)物理塊賦值 if(memoryn=5) for(i=3;ipagen;i+) if(pagememory0!=pagenumberi)&(pagememory1!=pagenumberi)&(pagememory2!=pagenumberi) pagememory3=pagenumberi; now=i+1; want=4; break; printf(第 %2d 步: ,now); for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); for(i=4;ipagen;i+) if(pagememory0!=pagenumberi)&(pagememory1!=pagenumberi)&(pagememory2!=pagenumberi)&(pagememory3!=pagenumberi) pagememory4=pagenumberi; now=i+1; want=5; break; /如果為五個(gè)物理塊,則為第四個(gè)物理塊賦值 printf(第 %2d 步: ,now);for(i=0;imemoryn;i+) printf( %2d,pagememoryi); printf(n); int needchange; /頁面置換發(fā)生時(shí)要進(jìn)行置換的物理塊塊號 int mn=memoryn; /為時(shí)間軸賦初值所用到的物理塊數(shù)int max; /最大的時(shí)間值int j; /控制變量i.j for(i=0;imemoryn;i+) mn-; timesi=mn; /給時(shí)間軸數(shù)組設(shè)定初值 for(j=now;jpagen;j+) if(pagenumberj!=pagememory0)&(pagenumberj!=pagememory1)&(pagenumberj!=pagememory2) &(pagenumberj!=pagememory3)&(pagenumberj!=pagememory4) if(times0=times1) max=times1; else max=times0; if(max=

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論