第一篇:BME計(jì)算機(jī)課程設(shè)計(jì)項(xiàng)目報(bào)告2014秋
計(jì)算機(jī)綜合課程設(shè)計(jì)
項(xiàng)目報(bào)告
題目:
負(fù)責(zé)人:學(xué)號(hào): 團(tuán)隊(duì)成員:學(xué)號(hào):
學(xué)號(hào):
2014-09
東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院
說(shuō)明:(以下不需打?。?/p>
1.本項(xiàng)目課題結(jié)束后上交,同時(shí)上交一份項(xiàng)目代碼;
2.軟件需求分析與設(shè)計(jì)部分(詳細(xì)): 除必要的文字說(shuō)明外,如果需要,可借助UML表示法繪制用例圖(use-case diagram)對(duì)需求進(jìn)行描述;程序設(shè)計(jì)部分需要包括對(duì)類(lèi)-對(duì)象關(guān)系圖(object model), 概念模型(domain model, 程序總體結(jié)構(gòu)設(shè)計(jì)圖), 同時(shí)建議采用系統(tǒng)序列圖(sequence diagram)描述系統(tǒng)消息傳遞的動(dòng)態(tài)行為.3.成員分工情況指:經(jīng)小組討論, 由組長(zhǎng)協(xié)調(diào)并安排每個(gè)成員所應(yīng)承擔(dān)任務(wù)大小, 明確具體需要完成的內(nèi)容,占總工作量的百分比。需要說(shuō)明的是:即使項(xiàng)目總體完成情況為優(yōu),每位組員的成績(jī)可能為良或以下,根據(jù)每個(gè)人工作量情況評(píng)定等級(jí)。
4.本課程設(shè)計(jì)任務(wù)要求同學(xué)們基本掌握在特定集成開(kāi)發(fā)環(huán)境下利用 GUI相關(guān)的類(lèi)庫(kù)和有關(guān)應(yīng)用程序框架初步學(xué)會(huì)窗口應(yīng)用程序的設(shè)計(jì)與開(kāi)發(fā), 掌握基本程序調(diào)試工具的使用;同時(shí)任務(wù)以小組軟件開(kāi)發(fā)的形式初步實(shí)踐面向?qū)ο筌浖O(shè)計(jì)與開(kāi)發(fā)的思想和方法, 體會(huì)對(duì)象設(shè)計(jì)方法和傳統(tǒng)結(jié)構(gòu)過(guò)程式方法的區(qū)別.5.選題應(yīng)切實(shí)考慮題目難度,程序?qū)崿F(xiàn)部分應(yīng)能充分體現(xiàn)每個(gè)組員的工作量;如果選擇項(xiàng)目難度偏低, 若想達(dá)到優(yōu)的要求, 各小組可在原題目基礎(chǔ)上適當(dāng)添加一定的功能。
6.工作小結(jié)部分包括項(xiàng)目實(shí)施整個(gè)過(guò)程的體會(huì),總結(jié)經(jīng)驗(yàn),指出軟件設(shè)計(jì)和實(shí)現(xiàn)本身存在的不足或待改進(jìn)的地方
7.最后成績(jī)等級(jí)的評(píng)定含5部分:
a)答辯時(shí)項(xiàng)目工作的陳述;
b)東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院計(jì)算機(jī)綜合課程設(shè)計(jì)任務(wù)
書(shū);
c)需求文檔包括:任務(wù)需求分析、程序設(shè)計(jì)說(shuō)明、軟件結(jié)構(gòu)設(shè)計(jì)
圖(對(duì)象模型設(shè)計(jì),接口設(shè)計(jì)(相關(guān)成員函數(shù))和界面設(shè)計(jì)、程序源代碼清單(可作為附錄)、提供驗(yàn)收的測(cè)試數(shù)據(jù)、軟件測(cè)試(系統(tǒng))運(yùn)行記錄與分析、參考資料;
d)程序源代碼質(zhì)量: 包括代碼是否具有良好的可讀性(需要參考
一些好的編程規(guī)范和風(fēng)格),代碼執(zhí)行效率(作為對(duì) C++編程部分的更高要求)。
e)程序現(xiàn)場(chǎng)演示驗(yàn)收結(jié)果。
第二篇:計(jì)算機(jī)網(wǎng)絡(luò)安全課程設(shè)計(jì)報(bào)告
大學(xué)
計(jì)算機(jī)網(wǎng)絡(luò)安全 課 程 設(shè) 計(jì) 報(bào) 告
學(xué)院:信息工程學(xué)院 專(zhuān)業(yè):信息安全 班級(jí): 學(xué)生: 學(xué)號(hào): 指導(dǎo)教師:
目錄
第一章 Windows服務(wù)器的安裝...............................4 1.1需求分析:.............................................4 1.2設(shè)計(jì)實(shí)現(xiàn):.............................................4 1.3安裝檢測(cè):.............................................6 第二章IIS的安裝與配置....................................7
2.1需求分析:.............................................7 2.1.1 IIS簡(jiǎn)介............................................7 2.2設(shè)計(jì)實(shí)現(xiàn):.............................................7 2.2.1 IIS安裝............................................7 2.2.2 004km.cn
圖4.2.3-2 設(shè)定新建主機(jī)中區(qū)域名稱(chēng)yangbo.com
步驟三:點(diǎn)擊下一步,設(shè)置動(dòng)態(tài)更新為“允許非安全和安全動(dòng)態(tài)更新”,完成新建區(qū)域向?qū)?,正向查找區(qū)域新建并配置完成。
圖4.2.3-3 正向查找區(qū)域新建并配置完成
步驟四:在新建區(qū)域中添加主機(jī),完整名稱(chēng)為004km.cn里面的主機(jī)名為dns的記錄,選擇它并確定。
圖4.2.4-5新建指針配置
步驟六:完成后 再按 【確定】(這是建立反向解析,172.16.102.221指向域名dns.yangbo.org),并在網(wǎng)絡(luò)中的其他主機(jī)中設(shè)置DNS服務(wù)器地址為172.16.102.221其他主機(jī)能夠順利上網(wǎng)。
第五章DHCP服務(wù)器的安裝與配置
5.1需求分析:
DHCP 服務(wù)器本身必須采用固定的IP地址 為DHCP服務(wù)器的規(guī)劃可用IP地址
5.2設(shè)計(jì)實(shí)現(xiàn): 5.2.1安裝DHCP服務(wù)器
步驟一:在windows server 2003 的“開(kāi)始”>“管理工具”菜單中點(diǎn)擊“配置你的服務(wù)器向?qū)А泵?。如下圖
圖5.2.1-1 配置服務(wù)器向?qū)А陆―HCP服務(wù)器
步驟二:在“服務(wù)器角色”列表單擊“DHCP服務(wù)器”選項(xiàng),再單擊“下一步”按鈕,打開(kāi)“新建作用域?qū)颉睂?dǎo)向頁(yè)。
圖5.2.1-2 配置服務(wù)器向?qū)А陆ㄗ饔糜?/p>
步驟三:新建DHCP作用域。填入作用域名。
圖5.2.1-3設(shè)定作用域名稱(chēng)及描述
步驟四:址·范圍”始IP地址、和掩碼。
在“IP地中,輸入起結(jié)束IP地址
圖5.2.1-4設(shè)定作用域IP地址范圍
步驟五:根據(jù)實(shí)際需要,則在“添加排除”頁(yè)中,配置起始IP地址和結(jié)束IP地址。如果要排除單個(gè)IP地址,只需在“起始IP地址”輸入地址。
圖5.2.1-5添加排除作用域IP地址范圍
步驟六:在“租約期限”窗口中,設(shè)置租約的期限,默認(rèn)為8天。
圖5.2.1-6設(shè)定作用域使用期限
步驟七:激活作用域。
圖5.2.1-7激活作用域
步驟八:指定作用域要分配的路由器或默認(rèn)網(wǎng)關(guān)。
圖5.2.1-8指定
路由器IP地址
步驟九:安裝和新建作
完成DHCP用域。
圖5.2.1-9DHCP服務(wù)器安裝完成及作用域新建完成
步驟十:安裝好“active directory”(active directory的安裝將在“安裝活動(dòng)目錄”實(shí)驗(yàn)中進(jìn)行詳細(xì)介紹),右鍵“yb-.......”選擇“授權(quán)”可對(duì)DHCP服務(wù)起進(jìn)行授權(quán),如圖。
圖5.2.1-10授權(quán)
5.2.2驗(yàn)步驟證查看
證檢測(cè):
一:完成驗(yàn)DHCP服務(wù)器
圖5.2.2-1驗(yàn)證查看DHCP 步驟二:release本地IP地址,看重連后是否連接“172.16.102.221”
圖5.2.2-2release 步驟三:renew重連后,重新連接的DHCP服務(wù)器還是“172.16.102.221”
圖5.2.2-2renew
第六章安裝活動(dòng)目錄AD 6.1需求分析:
在活動(dòng)目錄中創(chuàng)建域環(huán)境,同時(shí)將計(jì)算機(jī)加入域,并能使用域的管理員賬戶在客戶機(jī)上登陸。
6.2設(shè)計(jì)實(shí)現(xiàn):
6.2.1 活動(dòng)目錄AD安裝與配置
步驟一:在“開(kāi)始”>“管理工具”中選擇“配置你的服務(wù)器向?qū)А?。選擇“活動(dòng)目錄”,按下一步。
圖6.2.1-1安裝域控制器
步驟二:選擇:新域控制器,然后按“下一步”。
圖6.2.1-2設(shè)置新域控制器類(lèi)型
步驟三:選擇“在新林中的域”然后“下一步”。
圖6.2.1-3創(chuàng)建一個(gè)新域
步驟四:在“新的域名”對(duì)話框中輸入“DNS全名”為yb.local。步驟五:默認(rèn)的域NETBIOS,下一步。
步驟六:"數(shù)據(jù)庫(kù)和日志文件夾"放著默認(rèn)的指定文件夾下,然后繼續(xù)“下一步”。
圖6.2.1-4設(shè)置數(shù)據(jù)庫(kù)和日志文件夾
步驟七:默認(rèn)的配置,按下圖:
圖6.2.1-5設(shè)置共享系統(tǒng)卷
步驟八:選擇第二項(xiàng)。
圖6.2.1-6設(shè)置DNS注冊(cè)診斷
步驟九:按下圖:
圖6.2.1-7設(shè)置權(quán)限
步驟十:輸入管理員密碼。
圖6.2.1-8設(shè)置目錄服務(wù)還原模式的管理員密碼
步驟十一:點(diǎn)擊下一步,完成安裝。
圖6.2.1-9設(shè)置目錄服務(wù)還原模式的管理員密碼
6.2.2 創(chuàng)建用戶
步驟一:“開(kāi)始”>“管理工具”,點(diǎn)擊進(jìn)入“active directory用戶和計(jì)算機(jī)”。在“yb.local”中的用戶,右擊“新建”>“組”,設(shè)置組名“abc”,下一步。
圖6.2.2-1新建組abc
步驟二:在組“abc”中,新建用戶test1,并填寫(xiě)“姓”與“登錄名”,下一步
圖6.2.2-1新建對(duì)象—用戶
步驟三:填入密碼,并設(shè)置密碼永不過(guò)期。
圖6.2.2-2設(shè)置密碼
步驟四:完成創(chuàng)建并查看用戶屬性:
圖6.2.2-3用戶屬性
步驟五:在一臺(tái)客戶機(jī)上右鍵“我的電腦”>“屬性”>“計(jì)算機(jī)名”>“更改”,并
在里面修改內(nèi)容為yangbotest,選擇新加入域“yb.local”,修改完成后點(diǎn)擊“確定”。
圖6.2.2-4用戶屬性
步驟六:重啟客戶機(jī),用服務(wù)器中創(chuàng)建的用戶名登錄,同時(shí)AD目錄中Computer中顯示用戶test1。用戶添加成功。
6.2.3 設(shè)置共享文件
步驟一:完成上述步驟后,在C盤(pán)中創(chuàng)建文件夾share,并設(shè)置為文件夾共享,在文件夾中創(chuàng)建文件test1,并設(shè)置屬性共享,在屬性—>安全中設(shè)置用戶權(quán)限。
圖6.2.3-1設(shè)置共享文件夾并配置屬性
步驟二:在AD中用戶test1屬性中,配置文件路徑172.16.102.221test1$
圖6.2.3-2配置用戶共享文件路徑
6.3驗(yàn)證檢測(cè):
步驟三:在客戶機(jī)中點(diǎn)擊網(wǎng)上鄰居,雙擊“Microsoft Windows Network”進(jìn)入,找到服務(wù)器主機(jī),進(jìn)入即可看到所有該服務(wù)器主機(jī)分享的內(nèi)容。
第七章E-MAIL服務(wù)器的安裝與配置
7.1需求分析:
郵件服務(wù)器構(gòu)成了電子郵件系統(tǒng)的核心,沒(méi)有收信人都有一個(gè)位于某個(gè)郵件服務(wù)器上的郵箱(mailbox)。簡(jiǎn)單郵件傳送協(xié)議(SMTP)是因特網(wǎng)郵件系統(tǒng)首要的應(yīng)用層協(xié)議,它使用由TCP提供的可靠的數(shù)據(jù)傳輸服務(wù)把郵件消息從發(fā)信人的郵件服務(wù)器傳送到收信人的郵件服務(wù)器。跟大多數(shù)應(yīng)用層協(xié)議一樣,SMTP也存在兩個(gè)端:在發(fā)信人的郵件服務(wù)器上之星的客戶端和在收信人的郵件服務(wù)器上之星的服務(wù)器端。SMTP的客戶端和服務(wù)器端同時(shí)運(yùn)行在每個(gè)郵件服務(wù)器發(fā)送郵件消息時(shí),它是作為SMTP客戶在運(yùn)行。當(dāng)一個(gè)郵件服務(wù)器從其他郵件服務(wù)器接收郵件消息時(shí),它是作為SMTP服務(wù)器在運(yùn)行。
7.2設(shè)計(jì)實(shí)現(xiàn): 7.2.1安裝POP3和smtp 步驟一:在“開(kāi)始”>“控制面板”菜單中單擊“添加或刪除程序”命令。步驟二:繼續(xù)單擊“添加/刪除windows組件”按鈕,在“windows組件向?qū)А睂?duì)話框單擊“電子郵件服務(wù)”。單擊“詳細(xì)信息”??梢钥吹?,有:pop3服務(wù)和
pop3服務(wù)WEB管理,如下圖:
圖7.2.1-1添加電子郵件服務(wù)中POP3服務(wù)和POP3服務(wù)Web管理
步驟三:選中兩項(xiàng)后單擊“確定”退出。
步驟四:在“windows組件向?qū)А敝羞x擇“應(yīng)用程序服務(wù)器”,單擊“詳細(xì)信息”。步驟五:接著,在“internet組件向?qū)А睂?duì)話框選擇“應(yīng)用程序服務(wù)器”項(xiàng),單擊“詳細(xì)信息”,選中“smtp service”項(xiàng)。
步驟六:在完成以上設(shè)置后,在“windows組件向?qū)А睂?duì)話框中單擊“下一步”。系統(tǒng)完成安裝和配置POP3與SMTP服務(wù)。
圖7.2.1-2添加SMTPservice 7.2.2 創(chuàng)建郵件域
步驟一:在“開(kāi)始”>“管理工具”菜單中單擊“POP3服務(wù)”命令,打開(kāi)“POP3服務(wù)”的控制臺(tái)窗口。
圖7.2.2-1POP3服務(wù)控制臺(tái)
步驟二:在控制臺(tái)樹(shù)中,右鍵單擊“計(jì)算機(jī)名”節(jié)點(diǎn),在右鍵快捷菜單中的單擊“域”命令,彈出“添加域”對(duì)話框,在域名欄中輸入郵件服務(wù)器的域名。
圖7.2.2-2添加域
7.2.3創(chuàng)建用戶郵箱
選中剛剛新建的“yb.local”域,單擊“添加郵箱”,彈出添加郵箱對(duì)話框,在郵箱名欄中輸入郵件用戶名,然后設(shè)置用戶密碼,最后單擊“確定”按鈕,完成郵箱的創(chuàng)建。建議至少創(chuàng)建兩個(gè)。
圖7.2.3-1添加郵箱
7.2.4配置SMTP服務(wù)器
完成POP3服務(wù)器的配置后,就可以開(kāi)始配置SMTP了。
步驟一:在“開(kāi)始”>“管理工具”菜單中單擊“internet信息服務(wù)(IIS)管理器”命令,在“IIS管理器”窗口中右擊“默認(rèn)SMTP虛擬服務(wù)器”選項(xiàng),在彈出的菜單中選中“屬性”,進(jìn)入“默認(rèn)SMTP虛擬服務(wù)器”窗口。切換到常規(guī)標(biāo)簽欄,在“IP地址”下拉列表框中選中郵件服務(wù)啟動(dòng)IP地址就可以了。
圖7.2.4-1配置SMTP虛擬服務(wù)器
步驟二:?jiǎn)螕簟按_定”按鈕,這樣一個(gè)簡(jiǎn)單的郵件服務(wù)器就架設(shè)完成了。步驟三:完成以上設(shè)置后,用戶就可以使用郵件客服端軟件連接郵件服務(wù)器進(jìn)行郵件收發(fā)共合作了。在設(shè)置郵件客戶端軟件的SMTP和POP3服務(wù)器地址時(shí),輸入郵件服務(wù)器域名“yb.local"即可。
7.3 驗(yàn)證檢測(cè)
步驟一:打開(kāi)outlook,“工具”>“賬戶”>“郵箱”>“添加”
圖7.3-1設(shè)置Internet電子郵件地址
步驟二:在電子郵件服務(wù)器名處填寫(xiě)一下信息
圖7.3-2設(shè)置電子郵件服務(wù)器名
步驟三:郵件登錄處鍵入賬號(hào)和密碼
圖7.3-2設(shè)置Internet郵件登陸
步驟四:用“abc@yb.local”為發(fā)送方地址給收件方“yangbo@yb.local”發(fā)送主題為“asdgaga”,內(nèi)容為“asdfgaserygdfg”的郵件。
圖7.3-3發(fā)送郵件
步驟五:登錄“yangbo@yb.local”賬號(hào),查看收到一份郵件,發(fā)件人為“abc@yb.local”主題為“asdgaga”,內(nèi)容為“asdfgaserygdfg”。
圖7.3-4收件箱顯示
第八章視頻服務(wù)器的安裝與配置
8.1需求分析:
我們大家知道,Windows Media服務(wù)采用流媒體的方式來(lái)傳輸數(shù)據(jù)。WindowsMedia是一整套的流媒體制作、發(fā)布和播放工具,其服務(wù)器端的Windows Media Sever集成在Windows 2003 Sever中,Windows Media服務(wù)支持ASF和WMV格式的視頻文件,以及WMA和MP3格式的音頻文件。
在實(shí)驗(yàn)開(kāi)始之前,檢查Windows Media安裝條件,完整無(wú)誤后安裝Media play播放器及其組件;同時(shí)安裝使用Media編碼器,創(chuàng)建視頻點(diǎn)播發(fā)布點(diǎn),并在客戶機(jī)中設(shè)置與訪問(wèn)測(cè)試。
8.2設(shè)計(jì)實(shí)現(xiàn):
8.2.1 Windows Media服務(wù)的安裝
步驟一:打開(kāi)“配置您的服務(wù)器向?qū)А边x擇“流式媒體服務(wù)器”,點(diǎn)擊“下一步”。
圖8.2.1-1 選擇服務(wù)器角色
步驟二:安裝“流式媒體服務(wù)器”。
圖8.2.1-2配置組件
步驟三:安裝完成。
圖8.2.1-3完成安裝
步驟四:在Windows組件向?qū)Т翱谥羞x擇Windows media services點(diǎn)擊“下一步”。如下圖:
圖8.2.1-4添加Windows Media Service 步驟五:選擇“開(kāi)始”>“管理工具”>“Windows media services”進(jìn)入主窗口,右鍵“發(fā)布點(diǎn)”>“添加發(fā)布點(diǎn)(向?qū)В?/p>
圖8.2.1-5添加發(fā)布點(diǎn)
步驟六:設(shè)置發(fā)布點(diǎn)名稱(chēng)為“ybkc”,內(nèi)容類(lèi)型選擇第四個(gè),發(fā)布點(diǎn)類(lèi)型選擇點(diǎn)播
圖8.2.1-6設(shè)置發(fā)布點(diǎn)名稱(chēng)及內(nèi)容類(lèi)別
圖8.2.1-7設(shè)置發(fā)布點(diǎn)類(lèi)型為點(diǎn)播
步驟七:選擇視頻源的路徑
圖8.2.1-8設(shè)置目錄位置
步驟八:按照提示即可完成“發(fā)布點(diǎn)向?qū)А薄?/p>
圖8.2.1-9完成“添加發(fā)布點(diǎn)向?qū)А?/p>
8.2.2 單播公告向?qū)渲?/p>
步驟一:置后會(huì)彈出導(dǎo)”。
在完成上面配“單播公告向
圖8.2.2-1單播公告向?qū)?/p>
步驟二:“點(diǎn)播目錄”選擇“目錄中的一個(gè)文件”,即發(fā)布點(diǎn)向?qū)е械哪夸浳恢谩?/p>
圖8.2.2-2設(shè)置點(diǎn)播目錄
步驟三:選擇公告文件名和位置,及創(chuàng)建一個(gè)帶有嵌入的播放機(jī)和指向該內(nèi)容的鏈接的網(wǎng)頁(yè);如圖示選擇。
圖8.2.2-3設(shè)置公告選項(xiàng)
步驟四:完成向?qū)А?/p>
圖8.2.2-4編輯公告源數(shù)據(jù)
圖8.2.2-5完成向?qū)?/p>
8.3驗(yàn)證檢測(cè)
8.3.1 在文件目錄中播放
步驟一:在源處選擇測(cè)試的視頻,并按圖示點(diǎn)擊測(cè)試。
圖8.3.1-1源測(cè)試
步驟二:視頻源可以正常播放
圖8.3.1-2視頻源正常播放
步驟三:在“我的電腦”地址欄輸入“mms:/172.16.102.221/ybkc/1.wmv”,視頻能夠正常打開(kāi)播放。
圖8.3.1-3文件檢索視頻正常播放
8.3.2 在網(wǎng)頁(yè)中播放
步驟一:編輯名為“yangbo.html”的目錄網(wǎng)頁(yè)。
圖8.3.2-1目錄網(wǎng)頁(yè)yangbo.html
步驟二:編輯名為“video1.html”的子網(wǎng)頁(yè)。其它3個(gè)子網(wǎng)頁(yè)同理。
圖8.3.2-2子網(wǎng)頁(yè)video1.html
步驟三:將編輯好的“yangbo.html”,和其它4個(gè)子網(wǎng)頁(yè)放在“C:Inetpubwwwroot”
目錄下。
圖8.3.2-3五個(gè)網(wǎng)頁(yè)放到同一文件夾
步驟四:在IIS管理平臺(tái)“網(wǎng)站”“yangbo”>>”屬性”>“文檔”中添加“yangbo.html”,并將其上調(diào)到最高位置。
圖8.3.2-4添加屬性文檔
步驟五:在客戶機(jī)中設(shè)置服務(wù)器為“172.16.102.221”在IE中鍵入服務(wù)器地址,即可看到視頻目錄,選擇一個(gè)視頻,可以成功播放。
第三篇:計(jì)算機(jī)基礎(chǔ)課程設(shè)計(jì)報(bào)告
設(shè)計(jì)報(bào)告范文
一、任務(wù)內(nèi)容
通過(guò)對(duì)《大學(xué)計(jì)算機(jī)基礎(chǔ)》和《大學(xué)計(jì)算機(jī)基礎(chǔ)學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)》這兩本教材的學(xué)習(xí)后,我們應(yīng)綜合應(yīng)用計(jì)算機(jī)進(jìn)行一系列操作與使用,全面掌握并用所學(xué)的知識(shí)進(jìn)行綜合實(shí)踐。本論文的任務(wù)主要為學(xué)習(xí)運(yùn)用網(wǎng)頁(yè)制作軟件FrontPage2003制作自己的網(wǎng)頁(yè),了解制作過(guò)程,再者學(xué)習(xí)網(wǎng)站的發(fā)布和網(wǎng)頁(yè)的發(fā)布和學(xué)習(xí)運(yùn)用演示軟件PowerPoint2003制作幻燈片并設(shè)計(jì)和編輯文稿進(jìn)行綜合演示瀏覽,按要求結(jié)合相應(yīng)的圖文素材。這里將會(huì)報(bào)告指出制作的步驟與方法,以及根據(jù)自己的主題進(jìn)行網(wǎng)頁(yè)和幻燈片的頁(yè)面修飾的方法,如插入圖片,用Flash制作的動(dòng)畫(huà)(這里將會(huì)報(bào)告制作的方法)等等。
二、設(shè)計(jì)步驟 a)利用網(wǎng)頁(yè)制作軟件FrontPage2003制作一個(gè)關(guān)于“成都著名小吃”的網(wǎng)頁(yè),并用文本的編輯與格式化以及對(duì)象、表格、框架的插入與設(shè)置等操作進(jìn)行網(wǎng)頁(yè)的編輯。設(shè)置該網(wǎng)站的內(nèi)容主題和格式,并發(fā)布該網(wǎng)站。
首先設(shè)計(jì)主頁(yè),內(nèi)容為“成都著名小吃”,主要介紹成都著名小吃的歷史和獨(dú)特的風(fēng)味,并用表格的方式輸入各個(gè)將要介紹的小吃名“麻辣燙”、“麻婆豆腐”、“棒棒雞”、“擔(dān)擔(dān)面”、“夫妻肺片”、“毛血旺”、“傳統(tǒng)鍋魁”,像菜單形式呈現(xiàn)出來(lái)。
接下來(lái)設(shè)計(jì)各個(gè)分頁(yè)面,都用主標(biāo)題“美味吧”大字體標(biāo)記,下面再用各個(gè)美食的名字作為副標(biāo)題,接下來(lái)就用文字闡釋其特征或做法或風(fēng)味或歷史或吃法、、、再加上五彩的圖片將該小吃描述的淋漓盡致,形象而鮮活。
最后在最后一行輸入“返回主頁(yè)”的字樣,以便于每當(dāng)看完一項(xiàng)小吃的網(wǎng)頁(yè)后,可以及時(shí)返回主頁(yè)看另一項(xiàng)小吃的網(wǎng)頁(yè),既方便又美觀,用超鏈接的方式把各分頁(yè)面聯(lián)系在一起,自動(dòng)進(jìn)入對(duì)應(yīng)的網(wǎng)頁(yè)并完成網(wǎng)頁(yè)之間的轉(zhuǎn)換。
制作好網(wǎng)頁(yè)之后,需創(chuàng)建一個(gè)網(wǎng)站,主題已確定“成都著名小吃”,則要設(shè)計(jì)結(jié)構(gòu),設(shè)置各分網(wǎng)頁(yè)與主頁(yè)之間為樹(shù)形鏈接,主要鏈接都在主頁(yè)上,再分別展開(kāi),以高效完成操作??梢允褂镁W(wǎng)站模板修飾網(wǎng)站。
接下來(lái)就是將網(wǎng)站上傳到到網(wǎng)上,以便讓更多人能瀏覽到該頁(yè)面,可以 在網(wǎng)上申請(qǐng)一個(gè)存放網(wǎng)頁(yè)的空間,存放自己的網(wǎng)頁(yè),生成個(gè)人主頁(yè)。到此作業(yè)就完成了。
? 利用演示軟件PowerPoint2003制作一個(gè)關(guān)于“世界著名的成都名景”的幻燈片,包含若干個(gè)ppt頁(yè)面,并用幻燈片的編輯與格式化及對(duì)象的插入、版面設(shè)計(jì)、放映和切換效果與設(shè)置、演示文稿的超鏈接等操作進(jìn)行制作。
首先設(shè)計(jì)幻燈片的第一頁(yè),也就是主頁(yè),標(biāo)題為“世界著名的成都名景”,可以插入一些小圖片和小動(dòng)畫(huà),音樂(lè),視頻之類(lèi)的,或者可以插入背景圖片修飾頁(yè)面,讓主頁(yè)看起來(lái)很漂亮和吸引人,也可以設(shè)計(jì)藝術(shù)字寫(xiě)上自己的名字等。
下面設(shè)計(jì)各個(gè)分頁(yè)面,用風(fēng)景地名作為大標(biāo)題位于正文上方,用圖片在左邊,文字在右邊的的幻燈片版式,插入風(fēng)景照兩張,在右邊輸入文本介紹該景點(diǎn)的歷史背景或建造規(guī)模格式或相關(guān)人物或迷人風(fēng)景,可以插入一些小玩意等等,在適當(dāng)調(diào)一下版面排版,使看起來(lái)更美觀。設(shè)置自己喜歡的幻燈片動(dòng)畫(huà)效果和放映切換效果,使文本和標(biāo)題以不同的方式顯示出來(lái),有著極好的視覺(jué)效果。也可以選擇代表超鏈接起點(diǎn)的文本或其他對(duì)象,插入超鏈接,鏈接到其他文檔的幻燈片和網(wǎng)頁(yè)。
三、采取的方法與手段 a)使用FrontPage2003制作網(wǎng)頁(yè)的方法操作
①打開(kāi)網(wǎng)頁(yè)制作軟件 FrontPage2003,自動(dòng)創(chuàng)建一個(gè)空白網(wǎng)頁(yè)。②插入一幅事先制好的圖片,點(diǎn)擊工具欄上的“插入”“|圖片”|“來(lái)自文件”即選擇要插入的圖片插入,點(diǎn)圖片可以用鼠標(biāo)拖動(dòng)位置和改變大小。③在下面輸入文本,文本字體可以點(diǎn)擊“格式”|“字體”調(diào)整大小、字體、下劃線等。④文本下用表格來(lái)展示各小吃名,點(diǎn)擊工具欄上的“表格”|“插入”|“表格”,在出來(lái)的窗口中設(shè)置表格行數(shù)和列數(shù),即插入相應(yīng)表格。在各格輸入小吃名。⑤插入網(wǎng)頁(yè)背景,點(diǎn)擊“格式”|“背景”|“填充效果”|“圖 片”|“選擇圖片”,即在文件中選擇要作為背景的圖片并插入。⑥可以插入自己制作的Flash動(dòng)畫(huà),點(diǎn)擊工具欄上的“插入”|“Web組件”|“高級(jí)控件”|“Flash影片”即可插入。
以下幾張網(wǎng)頁(yè)也根據(jù)類(lèi)似方法做好就行。? 使用PowerPoint2003制作幻燈片的方法操作
①打開(kāi)演示軟件PowerPoint2003,自動(dòng)創(chuàng)建一個(gè)新的空白頁(yè)。②編輯第一頁(yè),點(diǎn)擊幻燈片上的文本框,輸入“成都略知”作為大標(biāo)題,在小標(biāo)題上輸入姓名班級(jí),字體、文本位置都可以自己作調(diào)整。③需插入另一文字,則需點(diǎn)擊工具欄上的“插入”|“文本框”,選擇“橫排”或“豎排”即可在文本框內(nèi)填字。④插入圖片,點(diǎn)擊工具欄上的““插入”|“圖片”|“來(lái)自文件”即選擇要插入的圖片插入,點(diǎn)圖片可以用鼠標(biāo)拖動(dòng)位置和改變大小。⑤設(shè)置頁(yè)面背景,點(diǎn)擊“格式”|“背景”|“填充效果”|“圖片”|“選擇圖片”,即在文件中選擇要作為背景的圖片并插入。插入背景后,以后的每張幻燈片都以這為背景。⑥要制作第二張幻燈片,只需點(diǎn)擊工具欄上的“插入”|“新幻燈片”即可。
⑦在第二張幻燈片上,先確定采用的幻燈片模板,點(diǎn)擊工具欄上的“格式”|“幻燈片版式”,即在右邊會(huì)出現(xiàn)豎型欄,里面包含幻燈片的各種版式,選擇左邊可插兩幅圖,右邊為文本框的版式。⑧在上面插入標(biāo)題,點(diǎn)擊左邊的圖文框里的“插入圖片”的圖標(biāo)即可在文件中選擇需要插入的圖片,在右邊插入文 3 字,如需在其他地方插入小圖片,也可。⑨如需插入音樂(lè)或視頻,則點(diǎn)擊工具欄上的“插入”|“影片和聲音”|“文件中的影片”或“文件中的聲音”,在文件中找到視頻文件或音頻文件并插入。不過(guò)需安裝相應(yīng)的播放器才能播放文件。⑩設(shè)置幻燈片放映效果,點(diǎn)擊工具欄上的“幻燈片放映”|“動(dòng)畫(huà)方案”,即在右邊會(huì)出現(xiàn)豎型欄,里面包含各種放映效果,每張幻燈片選擇一種效果。? 使用Flash制作動(dòng)畫(huà)
①打開(kāi)動(dòng)畫(huà)制作軟件Flash,點(diǎn)擊“開(kāi)始”頁(yè)面中“創(chuàng)建新項(xiàng)目”下面的“Flash文檔”即創(chuàng)建一個(gè)空白頁(yè)面。②我想做一個(gè)飄落的葉子,首先繪制葉子的圖形,點(diǎn)擊工具箱中的“鉛筆工具”,在工具欄底端“選項(xiàng)區(qū)”調(diào)顏色,并設(shè)置筆觸方式為“平滑”,畫(huà)出葉子圖形。點(diǎn)擊“顏料桶工具”,給葉子填充顏色。③點(diǎn)擊工具箱中的“選擇工具”,框中葉片,點(diǎn)擊工具欄上的“修改”|“轉(zhuǎn)換為元件”,打開(kāi)對(duì)話框,名稱(chēng)設(shè)為“樹(shù)葉”,行為選擇為“圖形”,注冊(cè)點(diǎn)選擇中心位置。④調(diào)整樹(shù)葉圖形的形狀、大小、方向,點(diǎn)擊“工具箱”中的“任意變形工具”,選中樹(shù)葉進(jìn)行調(diào)整。⑤插入末關(guān)鍵幀,選中第50幀,按F6則在此時(shí)間點(diǎn)插入一個(gè)關(guān)鍵幀。⑥為圖層1添加引導(dǎo)層,選中圖層1,點(diǎn)擊“時(shí)間軸”面板中的“添加引導(dǎo)層”,即為圖層1的引導(dǎo)層。⑦在引導(dǎo)層繪制路徑曲線,點(diǎn)擊“工具箱”中的“鉛筆工具”,畫(huà)一條曲線即為樹(shù)葉運(yùn)動(dòng)的路徑。⑧設(shè)置圖層1的屬性,選擇圖層1的第一幀,按Ctrl+F3打開(kāi)屬性面板,設(shè)置補(bǔ)間動(dòng)畫(huà)為“動(dòng)作”,并選中“調(diào)整到路徑”和“對(duì)齊”兩個(gè)框。⑨位置調(diào)整,點(diǎn)擊工具箱中的“選擇工具”,在單擊“對(duì)象”,選擇圖層1第一幀,將樹(shù)葉拖到路徑起點(diǎn),中心點(diǎn)對(duì)其,再選擇第50幀,將樹(shù)葉拖到路徑終點(diǎn)。⑩如要插入音樂(lè)文件,點(diǎn)擊“文件”|“導(dǎo)入”|“導(dǎo)入到庫(kù)”,在文件中選擇需要插入的mp3格式文件。
最后,按Ctrl+Enter測(cè)試影片。
四、遇到的問(wèn)題與解決的辦法
1、在制作網(wǎng)頁(yè)的時(shí)候,當(dāng)把每個(gè)網(wǎng)頁(yè)都鏈接好了之后,突然想修改其中一個(gè)頁(yè)面,改完后再用其他頁(yè)面的鏈接來(lái)觀看該網(wǎng)頁(yè),就出現(xiàn)了網(wǎng)頁(yè)錯(cuò)誤的頁(yè)面,最先不知道怎么回事,想了想,明白這個(gè)頁(yè)面已經(jīng)變了,就不能在鏈接了,只有重新設(shè)置鏈接,最后解決了這個(gè)問(wèn)題。
2、在制作網(wǎng)頁(yè)的時(shí)候,做好后,我移動(dòng)了一下圖片的位置,想歸類(lèi)整理一下,結(jié)果在網(wǎng)頁(yè)中就顯示不出該圖,通過(guò)這個(gè),我知道了在網(wǎng)頁(yè)中插入的圖片存放位置不能移動(dòng),只要存放位置變了,在網(wǎng)頁(yè)中就顯示不出該圖了。
3、在制作幻燈片的時(shí)候,我想插入一點(diǎn)音樂(lè),我就按照那個(gè)插入步驟做,結(jié)果放不出。最后搞明白了,沒(méi)有相應(yīng)的播放器。后來(lái)下了個(gè)“暴風(fēng)影音”,插入了視頻,使網(wǎng)頁(yè)更加豐富多彩了。
4、在制作Flash動(dòng)畫(huà)的時(shí)候,步驟全對(duì),樹(shù)葉就是不按照我定的軌跡跑,而是直接從起點(diǎn)直線到終點(diǎn),試了幾次還是不行,想了想應(yīng)該是對(duì)齊的時(shí)候沒(méi)對(duì)齊吧,就很仔細(xì)的對(duì)齊,結(jié)果就作出來(lái)了。
5、在插入Flash動(dòng)畫(huà)的時(shí)候,總是出現(xiàn)不能播放的情況,看書(shū)也搞不明白,最后通過(guò)問(wèn)同學(xué)知道了播放的方法和步驟,在打開(kāi)插有Flash動(dòng)畫(huà)的網(wǎng)頁(yè)后,上面會(huì)出現(xiàn)一個(gè)黃色的詢問(wèn)長(zhǎng)條,左擊,點(diǎn)擊“允許阻止的內(nèi)容”,即出現(xiàn)“安全警告”的對(duì)話框,點(diǎn)擊“是”,動(dòng)畫(huà)就放出來(lái)了。
五、總結(jié)
通過(guò)學(xué)習(xí)運(yùn)用網(wǎng)頁(yè)制作軟件FrontPage2003制作自己的網(wǎng)頁(yè)和學(xué)習(xí)運(yùn)用演示軟件PowerPoint2003制作幻燈片以及用動(dòng)畫(huà)制作軟件用Flash制作動(dòng)畫(huà),激發(fā)了制作的學(xué)習(xí)興趣,自己動(dòng)腦、動(dòng)手、動(dòng)口,運(yùn)用網(wǎng)絡(luò)資源,結(jié)合教材和老師大指導(dǎo),通過(guò)自身的實(shí)踐,摸索出自己的方法,也根據(jù)和同學(xué)交流分享自己的方法,結(jié)合運(yùn)用,創(chuàng)建自己個(gè)人風(fēng)格和個(gè)人特色的網(wǎng)頁(yè)、幻燈片和動(dòng)畫(huà)。培養(yǎng)了自己的能力,也學(xué)到很多關(guān)于計(jì)算機(jī)的知識(shí),積累了制作的相關(guān)經(jīng)驗(yàn)。
做好頁(yè)面,并不是一件容易的事情,它包括主題的選擇、網(wǎng)頁(yè)圖片的采集、圖片處理、頁(yè)面的排版、背景及色調(diào)、插入的各種內(nèi)容和格式等很多方面,更需要靈活掌握各方面的技術(shù)與技巧,這次制作提高了我設(shè)計(jì)的能力,更提高了我獨(dú) 立思考的能力和虛心學(xué)習(xí)和同學(xué)交流分享的能力。雖然還有很多不足的、需要提高的地方,但是這是一個(gè)積累和循序漸進(jìn)的過(guò)程,我相信通過(guò)這次的制作我所學(xué)到的,下次一定可以做的更好。
六、參考文獻(xiàn)
[1] 劉衛(wèi)國(guó),楊長(zhǎng)興.大學(xué)計(jì)算機(jī)基礎(chǔ)[M].2版.北京:高等教育出版社,2009.[2] 施榮華,王小玲.大學(xué)計(jì)算機(jī)基礎(chǔ)學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)[M].2版.北京:高等教育出版社,2009.[3] 葛敏敏.網(wǎng)頁(yè)制作[M].上海:上海交通大學(xué)出版社,2005.[4] 孫一軒,計(jì)算機(jī)實(shí)踐報(bào)告.http://wenku.baidu.com/view/58d27626a5e9856a561260eb.html.[5] 計(jì)算機(jī)實(shí)踐課程報(bào)告.http://wenku.baidu.com/view/4da5d81cc281e53a5802fff3.html?from=rec&pos=1&weight=41&lastweight=22&count=5 6
第四篇:計(jì)算機(jī)操作系統(tǒng) 課程設(shè)計(jì)報(bào)告(推薦)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告
時(shí)間:2010-12-20~2010-12-31 地點(diǎn):信息技術(shù)實(shí)驗(yàn)中心
計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè) 2008級(jí)2班15號(hào)
楊 燁
2010-12-31
信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班
目錄
一、課程設(shè)計(jì)的目的和意義...........................................................................................................2
二、進(jìn)程調(diào)度算法模擬...................................................................................................................2
1、設(shè)計(jì)目的.............................................................................................................................2
2、設(shè)計(jì)要求.............................................................................................................................2
3、時(shí)間片輪轉(zhuǎn)算法模擬.........................................................................................................3
實(shí)現(xiàn)思想:.......................................................................................................................3(1)流程圖.....................................................................................................................3(2)程序代碼.................................................................................................................3(3)運(yùn)行結(jié)果.................................................................................................................5
4、先來(lái)先服務(wù)算法模擬.........................................................................................................6 算法思想...................................................................................................................................6
(1)流程圖.....................................................................................................................7(2)程序代碼.................................................................................................................7(3)運(yùn)行結(jié)果...............................................................................................................11
三、主存空間的回收與分配.........................................................................................................11
1、設(shè)計(jì)目的...........................................................................................................................11
2、設(shè)計(jì)要求...........................................................................................................................12
3、模擬算法的實(shí)現(xiàn)...............................................................................................................13(1)流程圖...................................................................................................................13(2)程序代碼...............................................................................................................13(3)運(yùn)行結(jié)果...............................................................................................................28
四、模擬DOS文件的建立和使用...............................................................................................28 設(shè)計(jì)目的.............................................................................................................................28 2 設(shè)計(jì)要求.............................................................................................................................28
3、模擬算法實(shí)現(xiàn)...................................................................................................................31(1)流程圖...................................................................................................................31(2)程序代碼...............................................................................................................31(3)運(yùn)行結(jié)果...............................................................................................................36
五、磁盤(pán)調(diào)度算法模擬.................................................................................................................36
1.設(shè)計(jì)目的..............................................................................................................................36 2.實(shí)驗(yàn)原理..............................................................................................................................37 3.設(shè)計(jì)要求...........................................................................................................................37
4、模擬算法的實(shí)現(xiàn)...............................................................................................................38(1)各算法流程圖.......................................................................................................38(2)程序代碼...............................................................................................................39(3)運(yùn)行結(jié)果...............................................................................................................45
六、總結(jié).........................................................................................................................................45
信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班
一、課程設(shè)計(jì)的目的和意義
本次操作系統(tǒng)課程設(shè)計(jì)的主要任務(wù)是進(jìn)行系統(tǒng)級(jí)的程序設(shè)計(jì)。本課程設(shè)計(jì)是操作系統(tǒng)原理課程的延伸。通過(guò)該課程設(shè)計(jì),使學(xué)生更好地掌握操作系統(tǒng)各部分結(jié)構(gòu)、實(shí)現(xiàn)機(jī)理和各種典型算法,加深對(duì)操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)思路的理解,培養(yǎng)學(xué)生的系統(tǒng)設(shè)計(jì)和動(dòng)手能力,學(xué)會(huì)分析和編寫(xiě)程序。課程設(shè)計(jì)的實(shí)施將使學(xué)生在以下幾個(gè)方面有所收獲:
(1)加深對(duì)操作系統(tǒng)原理的理解,提高綜合運(yùn)用所學(xué)知識(shí)的能力;
(2)培養(yǎng)學(xué)生自主查閱參考資料的習(xí)慣,增強(qiáng)獨(dú)立思考和解決問(wèn)題的能力;(3)通過(guò)課程設(shè)計(jì),培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和協(xié)作精神。
二、進(jìn)程調(diào)度算法模擬
1、設(shè)計(jì)目的
(1)要求學(xué)生設(shè)計(jì)并實(shí)現(xiàn)模擬進(jìn)程調(diào)度的算法:時(shí)間片輪轉(zhuǎn)及先來(lái)先服務(wù)。(2)理解進(jìn)程控制塊的結(jié)構(gòu)。(3)理解進(jìn)程運(yùn)行的并發(fā)性。(4)掌握進(jìn)程調(diào)度算法。
2、設(shè)計(jì)要求
在多道程序運(yùn)行環(huán)境下,進(jìn)程數(shù)目一般多于處理機(jī)數(shù)目,使得進(jìn)程要通過(guò)競(jìng)爭(zhēng)來(lái)使用處理機(jī)。這就要求系統(tǒng)能按某種算法,動(dòng)態(tài)地把處理機(jī)分配給就緒隊(duì)列中的一個(gè)進(jìn)程,使之運(yùn)行,分配處理機(jī)的任務(wù)是由進(jìn)程調(diào)度程序完成的。一個(gè)進(jìn)程被創(chuàng)建后,系統(tǒng)為了便于對(duì)進(jìn)程進(jìn)行管理,將系統(tǒng)中的所有進(jìn)程按其狀態(tài),將其組織成不同的進(jìn)程隊(duì)列。于是系統(tǒng)中有運(yùn)行進(jìn)程隊(duì)列、就緒隊(duì)列和各種事件的進(jìn)程等待隊(duì)列。進(jìn)程調(diào)度的功能就是從就緒隊(duì)列中挑選一個(gè)進(jìn)程到處理機(jī)上運(yùn)行。進(jìn)程調(diào)度的算法有多種,常用的有優(yōu)先級(jí)調(diào)度算法、先來(lái)先服務(wù)算法、時(shí)間片輪轉(zhuǎn)算法。
進(jìn)程是程序在處理機(jī)上的執(zhí)行過(guò)程。進(jìn)程存在的標(biāo)識(shí)是進(jìn)程控制塊(PCB),進(jìn)程控制塊結(jié)構(gòu)如下:
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;系統(tǒng)創(chuàng)建一個(gè)進(jìn)程,就是由系統(tǒng)為某個(gè)程序設(shè)置一個(gè)PCB,用于對(duì)該進(jìn)程進(jìn)行控制和管
信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班
理,進(jìn)程任務(wù)完成,由系統(tǒng)收回其PCB,該進(jìn)程便消亡。每個(gè)進(jìn)程可以有三個(gè)狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)和完成狀態(tài)。
用C語(yǔ)言、C++或者Java語(yǔ)言編寫(xiě)一個(gè)程序?qū)崿F(xiàn)進(jìn)程調(diào)度的算法,模擬進(jìn)程調(diào)度的過(guò)程,加深對(duì)進(jìn)程控制塊概念和進(jìn)程調(diào)度算法的理解。
本任務(wù)要求完成時(shí)間片輪轉(zhuǎn)及先來(lái)先服務(wù)兩個(gè)算法。
3、時(shí)間片輪轉(zhuǎn)算法模擬
實(shí)現(xiàn)思想:
每次調(diào)度時(shí),系統(tǒng)吧處理機(jī)分配給隊(duì)列首進(jìn)程讓器執(zhí)行一個(gè)時(shí)間片,當(dāng)執(zhí)行的時(shí)間片用完時(shí),由一個(gè)計(jì)時(shí)器發(fā)出時(shí)鐘中斷請(qǐng)求,調(diào)度根據(jù)這個(gè)請(qǐng)求停止該進(jìn)程的運(yùn)行將其送到就緒隊(duì)列的末尾,再把處理機(jī)分給就緒隊(duì)列中新的隊(duì)首進(jìn)程,同時(shí)讓它執(zhí)行一個(gè)時(shí)間片。(1)流程圖
進(jìn)程調(diào)度—時(shí)間片輪轉(zhuǎn)開(kāi)始輸入進(jìn)程總數(shù)輸入各進(jìn)程信息更新在運(yùn)行的進(jìn)程的已運(yùn)行時(shí)間輸出為就緒狀態(tài)的進(jìn)程信息N輸出此時(shí)為就緒狀態(tài)的進(jìn)程信息當(dāng)前進(jìn)程是否運(yùn)行結(jié)束是否存在下個(gè)進(jìn)程Y指向下一個(gè)進(jìn)程YN結(jié)束跳過(guò)
(2)程序代碼
#include
// PCB
struct PNode *next;// 定義指向下一個(gè)節(jié)點(diǎn)的指針
char name[10];
// 定義進(jìn)程名,并分配空間
信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班
int All_Time;
// 定義總運(yùn)行時(shí)間
int Runed_Time;
// 定義已運(yùn)行時(shí)間
char state;
// 定義進(jìn)程狀態(tài) Ready / End } * Proc;// 指向該P(yáng)CB的指針 int ProcNum;// 總進(jìn)程個(gè)數(shù)
void InitPCB(Proc &H)// 初始化就緒隊(duì)列
{
cout<<“請(qǐng)輸入總進(jìn)程個(gè)數(shù): ”;
cin>>ProcNum;// 進(jìn)程總個(gè)數(shù)
int Num=ProcNum;
H=(Proc)malloc(sizeof(PNode));// 建立頭節(jié)點(diǎn)
H->next=NULL;
Proc p=H;//定義一個(gè)指針
cout<<“總進(jìn)程個(gè)數(shù)為 ”<
while(Num--){
p=p->next=(Proc)malloc(sizeof(PNode));
cout<<“進(jìn)程名 總運(yùn)行時(shí)間 已運(yùn)行時(shí)間 :”;
cin>>p->name>>p->All_Time>>p->Runed_Time;
p->state='R';
p->next=NULL;}
p->next=H->next;
} void DispInfo(Proc H)//輸出運(yùn)行中的進(jìn)程信息 {
Proc p=H->next;
do {
if(p->state!= 'E')
//如果該進(jìn)程的狀態(tài)不是End的話
{
cout<<“進(jìn)程名:”<
name<<“t總運(yùn)行時(shí)間:”<
All_Time
<<“t已運(yùn)行時(shí)間:”<
Runed_Time
<<“t狀態(tài):”<
state< p=p->next; } else p=p->next; } } void SJP_Simulator(Proc &H)// 時(shí)間片輪轉(zhuǎn)法 { while(p!= H->next);// 整個(gè)進(jìn)程鏈條始終完整,只是狀態(tài)位有差異 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 cout< int flag=ProcNum;// 記錄剩余進(jìn)程數(shù) int round=0;// 記錄輪轉(zhuǎn)數(shù) Proc p=H->next; while(p->All_Time > p->Runed_Time) { // 即未結(jié)束的進(jìn)程 round++; cout< p->Runed_Time++; // 更改正在運(yùn)行的進(jìn)程的已運(yùn)行時(shí)間 DispInfo(H); // 輸出此時(shí)為就緒狀態(tài)的進(jìn)程的信息 if(p->All_Time == p->Runed_Time){ // 并判斷該進(jìn)程是否結(jié)束 p->state='E'; flag--; cout< name<<“ 進(jìn)程已運(yùn)行結(jié)束,進(jìn)程被刪除!n”; } p=p->next; while(flag && p->All_Time == p->Runed_Time) p=p->next;// 跳過(guò)先前已結(jié)束的進(jìn)程 } cout< Proc H; InitPCB(H);// 數(shù)據(jù)初始化 DispInfo(H);// 輸出此刻的進(jìn)程狀態(tài) SJP_Simulator(H);// 時(shí)間片輪轉(zhuǎn)法 system(“pause”);}(3)運(yùn)行結(jié)果 輸入相關(guān)進(jìn)程信息: 輸出相關(guān)運(yùn)行結(jié)果: 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 4、先來(lái)先服務(wù)算法模擬 算法思想 按照進(jìn)程的某種順序進(jìn)行排序,然后按照這個(gè)順序進(jìn)行調(diào)度。例如:可以按照作業(yè)提交時(shí)間或進(jìn)程變?yōu)榫途w狀態(tài)的先后次序來(lái)分派處理器,讓排在后面的進(jìn)程占用處理器,知道該進(jìn)程執(zhí)行完或者由于某種原因被阻塞才讓出處理器。 在該調(diào)度策略中還規(guī)定,當(dāng)有一個(gè)事件發(fā)生(如一個(gè)I/O操作完成)時(shí),會(huì)有一些進(jìn)程被喚醒,這些被喚醒的進(jìn)程并不能立即恢復(fù)執(zhí)行,而是要等到當(dāng)前運(yùn)行的進(jìn)程出讓處理器后才可以被調(diào)度執(zhí)行。采用此算法存在以下幾個(gè)特點(diǎn): 周轉(zhuǎn)時(shí)間:對(duì)進(jìn)程i來(lái)說(shuō),假設(shè)Tei是進(jìn)程的完成時(shí)間,Tsi是進(jìn)程的提交時(shí)間,那么進(jìn)程i的周轉(zhuǎn)時(shí)間Ti=進(jìn)程完成時(shí)間-進(jìn)程提交時(shí)間; 進(jìn)程平均周轉(zhuǎn)時(shí)間:T=1/nETi; 進(jìn)程帶權(quán)周轉(zhuǎn)時(shí)間=進(jìn)程等待時(shí)間+進(jìn)程運(yùn)行時(shí)間。 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 (1)流程圖 Begin輸入當(dāng)前磁道號(hào)now磁頭移動(dòng)距離sum=abs(now-array[0])磁頭移動(dòng)總距離sum+=abs(array[j]-array[i])輸出磁盤(pán)調(diào)度序列array[j]目前位置編程當(dāng)前的位置i++j (2)程序代碼 #include “stdio.h” #include #define getpch(type)(type*)malloc(sizeof(type))#define NULL 0 struct pcb { /* 定義進(jìn)程控制塊PCB */ char name[10];char state;int super; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 int ntime;int rtime;struct pcb* link;}*ready=NULL,*p;typedef struct pcb PCB; void sort()/* 建立對(duì)進(jìn)程進(jìn)行優(yōu)先級(jí)排列函數(shù)*/ { PCB *first, *second;int insert=0; if((ready==NULL)||((p->super)>(ready->super)))/*優(yōu)先級(jí)最大者,插入隊(duì)首*/ { p->link=ready;ready=p;} else /* 進(jìn)程比較優(yōu)先級(jí),插入適當(dāng)?shù)奈恢弥?/ { first=ready;second=first->link;while(second!=NULL){ if((p->super)>(second->super))/*若插入進(jìn)程比當(dāng)前進(jìn)程優(yōu)先數(shù)大,*/ { /*插入到當(dāng)前進(jìn)程前面*/ p->link=second;first->link=p;second=NULL;insert=1;} else /* 插入進(jìn)程優(yōu)先數(shù)最低,則插入到隊(duì)尾*/ { first=first->link;second=second->link;} } if(insert==0)first->link=p;} } void input()/* 建立進(jìn)程控制塊函數(shù)*/ { int i,num; printf(“n 請(qǐng)輸入進(jìn)程數(shù):”);scanf(“%d”,&num);for(i=0;i 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 printf(“n 進(jìn)程號(hào)No.%d:n”,i+1);p=getpch(PCB);printf(“n 輸入進(jìn)程名:”);scanf(“%s”,p->name);printf(“n 輸入進(jìn)程優(yōu)先數(shù):”);scanf(“%d”,&p->super);printf(“n 輸入進(jìn)程運(yùn)行時(shí)間:”);scanf(“%d”,&p->ntime);printf(“n”); p->rtime=0;p->state='w';p->link=NULL; sort();/* 調(diào)用sort函數(shù)*/ } } int space(){ int l=0;PCB* pr=ready;while(pr!=NULL){ l++;pr=pr->link;} return(l);} void disp(PCB * pr)/*建立進(jìn)程顯示函數(shù),用于顯示當(dāng)前進(jìn)程*/ { printf(“n qname t state t super t ndtime t runtime n”);printf(“|%st”,pr->name);printf(“|%ct”,pr->state);printf(“|%dt”,pr->super);printf(“|%dt”,pr->ntime);printf(“|%dt”,pr->rtime);printf(“n”);} void check()/* 建立進(jìn)程查看函數(shù) */ { PCB* pr; printf(“n **** 當(dāng)前正在運(yùn)行的進(jìn)程是:%s”,p->name);/*顯示當(dāng)前運(yùn)行進(jìn)程*/ disp(p);pr=ready; printf(“n ****當(dāng)前就緒隊(duì)列狀態(tài)為:n”);/*顯示就緒隊(duì)列狀態(tài)*/ while(pr!=NULL){ 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 disp(pr);pr=pr->link;} } void destroy()/*建立進(jìn)程撤消函數(shù)(進(jìn)程運(yùn)行結(jié)束,撤消進(jìn)程)*/ { printf(“n 進(jìn)程 [%s] 已完成.n”,p->name);free(p);} void running()/* 建立進(jìn)程就緒函數(shù)(進(jìn)程運(yùn)行時(shí)間到,置就緒狀態(tài)*/ { (p->rtime)++; if(p->rtime==p->ntime) destroy();/* 調(diào)用destroy函數(shù)*/ else { (p->super)--;p->state='w'; sort();/*調(diào)用sort函數(shù)*/ } } int main()/*主函數(shù)*/ { int len,h=0;char ch;input();len=space(); while((len!=0)&&(ready!=NULL)){ ch=getchar();h++; printf(“n The execute number:%d n”,h);p=ready;ready=p->link;p->link=NULL;p->state='R';check();running(); printf(“n 按任一鍵繼續(xù)......”);ch=getchar();} printf(“nn 進(jìn)程已經(jīng)完成.n”); 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 ch=getchar();}(3)運(yùn)行結(jié)果 輸入相關(guān)進(jìn)程信息: 輸出相關(guān)運(yùn)行結(jié)果: 三、主存空間的回收與分配 1、設(shè)計(jì)目的 主存是中央處理器能直接存取指令和數(shù)據(jù)的存儲(chǔ)器,能否合理地利用主存,在很大程度 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 上將影響到整個(gè)計(jì)算機(jī)系統(tǒng)的性能。主存分配是指在多道作業(yè)和多進(jìn)程環(huán)境下,如何共享主存空間。主存回收是指當(dāng)作業(yè)執(zhí)行完畢或進(jìn)程運(yùn)行結(jié)束后將主存空間歸還給系統(tǒng)。主存分配與回收的實(shí)現(xiàn)是與主存儲(chǔ)器的管理方式有關(guān)。本次設(shè)計(jì)主要是為了幫助學(xué)生深入理解主存空間的分配與回收的幾種算法。 (1)掌握最先適應(yīng)分配算法(2)掌握最優(yōu)適應(yīng)分配算法(3)掌握最壞適應(yīng)分配算法 2、設(shè)計(jì)要求 用戶提出內(nèi)存空間請(qǐng)求,系統(tǒng)根據(jù)申請(qǐng)者要求,按照最先適應(yīng)分配算法的分配策略分析內(nèi)存空間的使用情況,找出能滿足請(qǐng)求的空閑區(qū),分給申請(qǐng)者,當(dāng)程序執(zhí)行完畢時(shí),系統(tǒng)要收回它所占用的內(nèi)存空間。建立空閑數(shù)據(jù)文件,空閑區(qū)數(shù)據(jù)文件包括若干行,每行有兩個(gè)字段:起始地址、內(nèi)存塊大?。ň鶠檎麛?shù)),各字段以逗號(hào)隔開(kāi)。下面是一個(gè)空閑區(qū)數(shù)據(jù)文件的示例: 0,10 10,08 18,10 28,06 34,10 44,09 讀取空閑區(qū)數(shù)據(jù)文件,建立空閑區(qū)表并在屏幕上顯示空閑內(nèi)存狀態(tài),空閑區(qū)表記錄了可供分配的空閑內(nèi)存的起始地址和大小,用標(biāo)志位指出該分區(qū)是否是未分配的空閑區(qū)。 接收用戶的內(nèi)存申請(qǐng),格式為:作業(yè)名、申請(qǐng)空間的大小。 按照內(nèi)存分配算法中的一種方法選擇一個(gè)空閑區(qū),分割并分配,修改空閑區(qū)表,填寫(xiě)內(nèi)存已分配區(qū)表(起始地址、長(zhǎng)度、標(biāo)志位),其中標(biāo)志位的一個(gè)作用是指出該區(qū)域分配給哪個(gè)作業(yè)。 進(jìn)程結(jié)束后回收內(nèi)存??臻e區(qū)表的結(jié)構(gòu)如下: typedef struct node{ int start;int length;char tag[20];}job;本次設(shè)計(jì)要求完成如下算法: (1)設(shè)計(jì)一個(gè)內(nèi)存分配回收的程序使用最先適應(yīng)分配算法(2)設(shè)計(jì)一個(gè)內(nèi)存分配回收的程序使用最優(yōu)適應(yīng)分配算法(3)設(shè)計(jì)一個(gè)內(nèi)存分配回收的程序使用最壞適應(yīng)分配算法 用戶提出內(nèi)存空間請(qǐng)求,系統(tǒng)根據(jù)申請(qǐng)者要求,選擇上述算法的一種分配策略分析內(nèi)存空間的使用情況,找出合適的空閑區(qū),分給申請(qǐng)者,當(dāng)進(jìn)程執(zhí)行完畢時(shí),系統(tǒng)收回它所占用的內(nèi)存空間。 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 3、模擬算法的實(shí)現(xiàn) (1)流程圖 內(nèi)存分配開(kāi)始劃定內(nèi)存總量輸入進(jìn)程信息所需內(nèi)存<剩余內(nèi)存?Y在剩余空間中劃分出所需空間N剩余空間分配給請(qǐng)求者,修改有關(guān)數(shù)據(jù)輸出進(jìn)程信息結(jié)束 (2)程序代碼 #include };//分區(qū)指針的鏈表 //當(dāng)把空閑分區(qū)鏈表和占用分區(qū)鏈表按照地址先后順序合并 //以顯示整個(gè)內(nèi)存情況的時(shí)候使用 struct AreaPointer_list{ struct area * data;struct AreaPointer_list * next;int start;//分區(qū)的其始地址 int length;//分區(qū)的長(zhǎng)度 int job;//若被作業(yè)占用值為作業(yè)號(hào),若空閑值為0 struct area * next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 };struct area * idle;struct area * used; //全局變量,空閑分區(qū)鏈表頭指針 //全局變量,占用分區(qū)鏈表頭指針 struct AreaPointer_list * whole = NULL;//全局變量,分區(qū)指針鏈表頭指針 //p(previcious)n(next)指出在鏈表中的何處插入新生成的元素 //p==NULL 在鏈表頭插入,返回頭指針 //p!=NULL 在鏈表中或鏈表尾插入,返回當(dāng)前插入的元素的指針 struct area * insert(int s,int l,int j,struct area * p,struct area * n){ } //此模塊居于次要地位,只被使用一次 //打印分區(qū)鏈表 void print(struct area * head){ if(head == NULL){ } else{ while(head!= NULL){ if(head->job == 0)else printf(“begin:%dKtlength:%dKtuse:Job%dt|n”,head->start,head->length,hea printf(“begin:%dKtlength:%dKt空閑tt|n”,head->start,head->length);printf(“Area list is null...n”);struct area * current =(struct area *)malloc(LEN);current->start = s;current->length = l;current->job = j;if(p == NULL){//在鏈表頭插入 } else{ } if(p->next == NULL){//在鏈表尾插入 } else{//在鏈表中插入 } return current;current->next = p->next;p->next = current;current->next = NULL;p->next = current;current->next = n;return current; d->job); 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void file_print(struct area * head,FILE * file){ if(head == NULL){ } else{ while(head!= NULL){ if(head->job == 0)else fprintf(file,“begin:%dKtlength:%dKtuse:Job%dt|n”,head->start,head->length,fprintf(file,“begin:%dKtlength:%dKt空閑tt|n”,head->start,head->length);fprintf(file,“Area list is null...n”); } } head = head->next; head->job); } //打印分區(qū)鏈表 } } head = head->next;//釋放分區(qū)鏈表空間 void free_AreaList(struct area * head){ } //釋放分區(qū)鏈表空間 //在分區(qū)鏈表中搜索插入位置 //flag==0 表明分區(qū)鏈表按起始地址從小到大排列 //flag==1 表明分區(qū)鏈表按分區(qū)長(zhǎng)度從小到大排列 //輸入?yún)?shù) element 不能為NULL struct area * search_pos(struct area * element,struct area * head,int flag){ struct area * p = NULL;while(head!= NULL){ if(flag == 0){ if(element->start < head->start)struct area * temp;while(head!= NULL){ } temp = head;head = head->next;free(temp); 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } //返回值p==NULL表明插入位置在鏈表頭 //返回值p!=NULL表明插入位置在p 之后 //進(jìn)行分區(qū)鏈表的實(shí)際插入工作 //flag==0 表明分區(qū)鏈表按起始地址從小到大排列 //flag==1 表明分區(qū)鏈表按分區(qū)長(zhǎng)度從小到大排列 //輸入?yún)?shù) element->next 要為NULL struct area * insert_list(struct area * element,struct area * list,int flag){ if(list == NULL)else{ } return list;struct area * pos = search_pos(element,list,flag);if(pos == NULL){ } else{ } element->next = pos->next;pos->next = element;element->next = list;list = element;list = element; } return p;} else { } p = head;head = head->next;if(element->length < head->length) break; break;}//返回插入元素之后新鏈表的頭指針 //進(jìn)行查詢空閑分區(qū)鏈表動(dòng)態(tài)分配分區(qū)的實(shí)際工作,算法步驟: //1。查詢空閑分區(qū)鏈表中是否有長(zhǎng)度大于或等于申請(qǐng)長(zhǎng)度的分區(qū),若沒(méi)有返回FALSE //2。若查找到符合條件的分區(qū),把它從空閑鏈表中取出 //3。根據(jù)請(qǐng)求把取出的空閑分區(qū)分塊,把新的占用分區(qū)和剩余空閑分區(qū)分別插入鏈表 //注意:插入占用分區(qū)鏈表按照固定的地址先后順序,插入空閑分區(qū)鏈表的方式要根據(jù)flag的值 int memory_alloc(int length,int job,int flag){ struct area * used_element; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 struct area * free_element;struct area * head = idle;struct area * head_temp = used;struct area * p = NULL;//檢測(cè)輸入的作業(yè)號(hào)是否存在 while(head_temp!= NULL){ } //在空閑分區(qū)鏈表中查找 while(head!= NULL){ } if(head!= NULL){ } else return 0;//生成新的占用區(qū)鏈表元素并插入占用區(qū)鏈表 used_element =(struct area *)malloc(LEN);used_element->start = head->start;used_element->length = length;used_element->job = job;used_element->next = NULL;used = insert_list(used_element,used,0);//若空閑分區(qū)分塊后有剩余,生成新的空閑區(qū)鏈表元素并插入空閑區(qū)鏈表 if(head->length > length){ free_element =(struct area *)malloc(LEN);//從空閑區(qū)鏈表中取出 if(p == NULL)//鏈表中的第一個(gè)分區(qū)符合條件 { } else { } head->next = NULL;p->next = head->next;idle = idle->next;if(head->length >= length)break;p = head;head = head->next;if(head_temp->job == job)return 2;head_temp = head_temp->next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } //進(jìn)行查詢占用分區(qū)鏈表動(dòng)態(tài)釋放分區(qū)的實(shí)際工作,算法步驟: //1。根據(jù)作業(yè)號(hào)查詢到占用分區(qū)鏈表中要釋放的分區(qū),若沒(méi)有返回FALSE //2。若查找到要釋放的分區(qū),把它從空閑鏈表中取出 //3。根據(jù)取出的分區(qū)的數(shù)據(jù)建立新的空閑分區(qū) //4。在空閑分區(qū)鏈表中查詢是否有和新空閑分區(qū)相鄰的空閑分區(qū),有則合并 //5。根據(jù)flag的取值按照特定方式插入空閑分區(qū)鏈表 int memory_free(int job,int flag){ struct area * used_element;struct area * free_element;struct area * head = used;struct area * p = NULL;struct area * previcious1 = NULL;struct area * current1 = NULL;struct area * previcious2 = NULL;struct area * current2 = NULL;//根據(jù)作業(yè)號(hào)在占用分區(qū)鏈表中查找 while(head!= NULL){ } if(head!= NULL){ //從占用區(qū)鏈表中取出 if(p == NULL)//鏈表中的第一個(gè)分區(qū)符合條件 { } else { used = used->next;if(head->job == job)break;p = head;head = head->next; } //釋放空間 free(head);return 1;free_element->start = head->start + length;free_element->length = head->length-length;free_element->job = 0;free_element->next = NULL;idle = insert_list(free_element,idle,flag); 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } else return 0;//建立新的空閑分區(qū) used_element = head;free_element =(struct area *)malloc(LEN);free_element->start = used_element->start;free_element->length = used_element->length;free_element->job = 0;free_element->next = NULL;//從空閑區(qū)鏈表查找和新的空閑分區(qū)相鄰分區(qū) head = idle;p = NULL;while(head!= NULL){ } //合并相鄰空閑分區(qū) if(current1!= NULL){ } //把和新分區(qū)相鄰的分區(qū)從空閑分區(qū)鏈表中取出 if(previcious1 == NULL)else previcious1->next = current1->next;current1->next = NULL;//修改新空閑分區(qū)的相關(guān)數(shù)據(jù) free_element->start = current1->start;free_element->length = free_element->length + current1->length;idle = idle->next;if(head->start + head->length == used_element->start){ } if(used_element->start + used_element->length == head->start){ } p = head;head = head->next;previcious2 = p;current2 = head;previcious1 = p;current1 = head;} head->next = NULL;p->next = head->next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } //和分區(qū)指針鏈表相關(guān)的操作,用來(lái)合并空閑分區(qū)鏈表和占用分區(qū)鏈表,保存鏈表元素的指針 struct AreaPointer_list * search_position(int s,struct AreaPointer_list * head){ } struct AreaPointer_list * emerge(struct area * idle_temp,struct area * used_temp){ struct AreaPointer_list * previcious;struct AreaPointer_list * temp; if(used_temp!= NULL){ whole =(struct AreaPointer_list *)malloc(LEN_POINTER_LIST);whole->data = used_temp;whole->next = NULL;previcious = whole;used_temp = used_temp->next;while(used_temp!= NULL){ temp =(struct AreaPointer_list *)malloc(LEN_POINTER_LIST);struct AreaPointer_list * p = NULL;while(head!= NULL){ } return p;if(s <(head->data)->start)break;p = head;head = head->next;if(current2!= NULL){ } //根據(jù)flag的取值按照特定方式插入空閑分區(qū)鏈表 idle = insert_list(free_element,idle,flag);//釋放空間 free(used_element);return 1;//把和新分區(qū)相鄰的分區(qū)從空閑分區(qū)鏈表中取出 if(previcious2 == NULL)else previcious2->next = current2->next;current2->next = NULL;//修改新空閑分區(qū)的相關(guān)數(shù)據(jù) free_element->length = free_element->length + current2->length;idle = idle->next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void printall(struct AreaPointer_list * head){ struct area * data_temp;if(head == NULL)else{ while(head!= NULL){ data_temp = head->data;if(data_temp->job == 0)else printf(“begin:%dKtlength:%dKt空閑tt|n”,data_temp->start,data_temp->lenprintf(“Area pointer list is null...n”); } while(idle_temp!= NULL){ } return whole;struct area * idle_next = idle_temp->next;struct AreaPointer_list * pos = search_position(idle_temp->start,whole);if(pos == NULL){ } else { } idle_temp = idle_next;temp =(struct AreaPointer_list *)malloc(LEN_POINTER_LIST);temp->data = idle_temp;temp->next = pos->next;pos->next = temp;temp =(struct AreaPointer_list *)malloc(LEN_POINTER_LIST);temp->data = idle_temp;temp->next = whole;whole = temp; } temp->data = used_temp;temp->next = NULL;previcious->next = temp;previcious = temp;used_temp = used_temp->next; gth); printf(“begin:%dKtlength:%dKtuse:Job%dt|n”,data_temp->start,data_temp->length,data_temp->job);head = head->next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void file_printall(struct AreaPointer_list * head,FILE * file){ struct area * data_temp;if(head == NULL)else{ while(head!= NULL){ data_temp = head->data;if(data_temp->job == 0)else fprintf(file,“begin:%dKtlength:%dKt空閑tt|n”,data_temp->start,data_tempfprintf(file,“Area pointer list is null...n”);} } ->length); fprintf(file,“begin:%dKtlength:%dKtuse:Job%dt|n”,data_temp->start,data_temp->length,data_temp->job); } void free_PointerList(struct AreaPointer_list * head){ } //和分區(qū)指針鏈表相關(guān)的操作,用來(lái)合并空閑分區(qū)鏈表和占用分區(qū)鏈表,保存鏈表元素的指針 void input_by_hand(){ int job;int is_alloc;//1 申請(qǐng)分區(qū) 0 釋放分區(qū) int length;int flag;printf(“請(qǐng)選擇分區(qū)分配算法:輸入0---最先適配 輸入1---最優(yōu)適配n”);scanf(“%d”,&flag);while(flag!= 0 && flag!= 1){ printf(“數(shù)據(jù)輸入錯(cuò)誤,請(qǐng)參照提示重新輸入n”);scanf(“%d”,&flag);struct AreaPointer_list * temp;while(head!= NULL){ } temp = head;head = head->next;free(temp); } } head = head->next; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } if(flag == 0)printf(“選擇最先適配算法--->請(qǐng)輸入請(qǐng)求隊(duì)列數(shù)據(jù):(輸入 0 0 0 結(jié)束)n”);printf(“選擇最優(yōu)適配算法--->請(qǐng)輸入請(qǐng)求隊(duì)列數(shù)據(jù):(輸入 0 0 0 結(jié)束)n”);if(flag == 1)printf(“輸入數(shù)據(jù)格式:作業(yè)號(hào)(int>0)[輸入1--申請(qǐng)|輸入0--釋放] 分區(qū)長(zhǎng)度(int>0)n”);printf(“例如輸入 5 1 130 表示 作業(yè)5申請(qǐng)130Kn”);printf(“例如輸入 3 0 200 表示 作業(yè)3釋放200Kn”);while(1)//輸入 0 0 0 結(jié)束 { scanf(“%d%d%d”,&job,&is_alloc,&length);if(job == 0 && is_alloc == 0 && length == 0){ } if(is_alloc == 1){ } if(is_alloc == 0){ int r = memory_free(job,flag);if(!r){ int r = memory_alloc(length,job,flag);if(!r){ } if(r == 2){ } printf(“n”); printf(“輸入作業(yè)號(hào)已存在于占用分區(qū)鏈表,請(qǐng)重新輸入...n”);printf(“n”);continue;printf(“n”); printf(“沒(méi)有符合條件的空閑分區(qū)可供分配,請(qǐng)等待釋放...n”);printf(“n”);continue;printf(“數(shù)據(jù)輸入錯(cuò)誤,請(qǐng)參照提示重新輸入n”);scanf(“%d%d%d”,&job,&is_alloc,&length);if(job == 0 && is_alloc == 0 && length == 0) return;break;while(job<=0 ||(is_alloc!= 0 && is_alloc!= 1)|| length<=0) 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } /*void input_by_file(int flag){ int job;int is_alloc;//1 申請(qǐng)分區(qū) 0 釋放分區(qū) int length;char* result;int r;FILE * file1;FILE * file2;if(flag == 0)else result = “result_data_2.txt”;result = “result_data_1.txt”; } //釋放空間 free_AreaList(idle);free_AreaList(used);idle = NULL;used = NULL; } emerge(idle,used);printf(“n”);printf(“------------------n”);printf(“空閑分區(qū)鏈表:ttttt|n”);print(idle);printf(“tttttt|n”);printf(“占用分區(qū)鏈表:ttttt|n”);print(used);printf(“tttttt|n”);printf(“整個(gè)內(nèi)存情況:ttttt|n”);printf(“低地址tttttt|n”);printall(whole);printf(“高地址tttttt|n”);printf(“------------------n”);printf(“n”);free_PointerList(whole);whole = NULL; } printf(“n”); printf(“沒(méi)有與指定作業(yè)號(hào)符合的占用分區(qū),請(qǐng)重新輸入...n”);printf(“n”);continue; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 if((file1 = fopen(“source_data.txt”,“r”))== NULL){ } if((file2 = fopen(result,“w”))== NULL){ } if(flag == 0){ } else { } while(!feof(file1)){ fscanf(file1,“%d%d%d”,&job,&is_alloc,&length);if(job<=0 ||(is_alloc!= 0 && is_alloc!= 1)|| length<=0){ } if(is_alloc == 1){ printf(“JOB %d申請(qǐng)%dKnn”,job,length);fprintf(file2,“JOB %d申請(qǐng)%dKnn”,job,length);r = memory_alloc(length,job,flag);if(!r){ } if(r == 2){ printf(“輸入作業(yè)號(hào)已存在于占用分區(qū)鏈表,不于處理nn”); printf(“沒(méi)有符合條件的空閑分區(qū)可供分配,不于處理nn”);fprintf(file2,“沒(méi)有符合條件的空閑分區(qū)可供分配,不于處理nn”);continue;printf(“文件中數(shù)據(jù)%d %d %d輸入的格式錯(cuò)誤,不于處理nn”,job,is_alloc,lengtfprintf(file2,“文件中數(shù)據(jù)%d %d %d輸入的格式錯(cuò)誤,不于處理nn”,job,is_alloc,continue;printf(“按照最優(yōu)分配算法得出的結(jié)果:nn”);fprintf(file2,“按照最優(yōu)分配算法得出的結(jié)果:nn”);printf(“按照最先分配算法得出的結(jié)果:nn”);fprintf(file2,“按照最先分配算法得出的結(jié)果:nn”);printf(“不能打開(kāi)source_data.txt文件...n”);exit(0);printf(“不能打開(kāi)source_data.txt文件...n”);exit(0); h); length); 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } else { } emerge(idle,used);printf(“------------------n”);fprintf(file2,“------------------n”);printf(“空閑分區(qū)鏈表:ttttt|n”);fprintf(file2,“空閑分區(qū)鏈表:ttttt|n”);print(idle);file_print(idle,file2);printf(“tttttt|n”);fprintf(file2,“tttttt|n”);printf(“占用分區(qū)鏈表:ttttt|n”);fprintf(file2,“占用分區(qū)鏈表:ttttt|n”);print(used);file_print(used,file2);printf(“tttttt|n”);fprintf(file2,“tttttt|n”);printf(“整個(gè)內(nèi)存情況:ttttt|n”);fprintf(file2,“整個(gè)內(nèi)存情況:ttttt|n”);printf(“低地址tttttt|n”);fprintf(file2,“低地址tttttt|n”);printall(whole);file_printall(whole,file2);printf(“高地址tttttt|n”);fprintf(file2,“高地址tttttt|n”);printf(“------------------n”);fprintf(file2,“------------------n”);printf(“n”);fprintf(file2,“n”);printf(“JOB %d釋放%dKnn”,job,length);fprintf(file2,“JOB %d釋放%dKnn”,job,length);r = memory_free(job,flag);if(!r){ } printf(“沒(méi)有與指定作業(yè)號(hào)符合的占用分區(qū),不于處理nn”);fprintf(file2,“沒(méi)有與指定作業(yè)號(hào)符合的占用分區(qū),不于處理nn”);continue; } fprintf(file2,“輸入作業(yè)號(hào)已存在于占用分區(qū)鏈表,不于處理nn”);continue; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 }*/ int main() } { idle = insert(0,640,0,NULL,NULL);used = NULL;input_by_hand(); } printf(“========================================nn”);fprintf(file2,“========================================nn”);//釋放空間 free_AreaList(idle);free_AreaList(used);idle = NULL;used = NULL;fclose(file1);fclose(file2);free_PointerList(whole);whole = NULL; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 (3)運(yùn)行結(jié)果 四、模擬DOS文件的建立和使用 設(shè)計(jì)目的 磁盤(pán)文件是磁盤(pán)上存儲(chǔ)的重要信息,通過(guò)本實(shí)驗(yàn)?zāi)MDOS文件的建立和使用情況,理解磁盤(pán)文件的物理結(jié)構(gòu)。文件管理是操作系統(tǒng)中重要的內(nèi)容之一,不同的文件系統(tǒng)提供了不同的物理結(jié)構(gòu),通過(guò)實(shí)驗(yàn),深入理解文件的物理結(jié)構(gòu)與存取方法之間的關(guān)系,以便更好的掌握文件系統(tǒng)的概念。設(shè)計(jì)要求 <1> 模擬設(shè)計(jì)DOS操作系統(tǒng)中磁盤(pán)文件的存儲(chǔ)結(jié)構(gòu) DOS操作系統(tǒng)對(duì)磁盤(pán)文件的管理采用鏈接結(jié)構(gòu),將所有的鏈接指針集中在一起,存放在文件分配表(FAT)中。連接文件的第一個(gè)物理塊號(hào)登記在文件目錄中。其設(shè)計(jì)思想是:假定磁盤(pán)上共有N個(gè)物理塊可供使用,當(dāng)要存放文件時(shí),從FAT表中尋找其值為0的項(xiàng),用其對(duì)應(yīng)的物理塊存放文件信息,并把文件占有的各物理塊用鏈接指針登記在FAT表中,再把文 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 件的第一個(gè)物理塊號(hào)登記在文件目錄中。 文件目錄及FAT表如圖所示: 在DOS中FAT表的前兩項(xiàng)用來(lái)記錄磁盤(pán)的類(lèi)型。而從第2項(xiàng)開(kāi)始記錄磁盤(pán)的分配情況和文件各物理塊的鏈接情況。在FAT表中第三項(xiàng)的值如果為0,表示對(duì)應(yīng)的第三塊空閑。由圖還知道文件A的各記錄依次存放在第2、第4、第15、第16、第50等六個(gè)物理塊中。第50塊中的指針為FFF,表示文件A的結(jié)束。文件B的各記錄依次存放在第7、第10、第20等三個(gè)物理塊中。第20塊中的指針為FFF。 假定磁盤(pán)存儲(chǔ)空間共有100個(gè)物理塊,設(shè)計(jì)一個(gè)文件分配表。為了簡(jiǎn)單,文件分配表可用一個(gè)數(shù)組定義,其中每一個(gè)元素與一個(gè)物理塊對(duì)應(yīng)。當(dāng)?shù)?i 個(gè)元素為 0 時(shí),表示第 i 塊空閑;當(dāng)?shù)?i 個(gè)元素既不為 0 也不為 FFF 時(shí),其值表示該文件的下一個(gè)物理塊號(hào)。另外,再設(shè)一個(gè)空閑塊總數(shù)變量記錄系統(tǒng)還有的空閑塊數(shù)。為了簡(jiǎn)單,假定一個(gè)物理塊指存放一個(gè)邏輯記錄,要求設(shè)計(jì)一個(gè)程序,把文件的邏輯記錄結(jié)構(gòu)轉(zhuǎn)換成 DOS 的鏈接結(jié)構(gòu)。當(dāng)用戶要求將已在主存的文件保存在磁盤(pán)上時(shí),給出文件名及文件的記錄個(gè)數(shù),系統(tǒng)應(yīng)能在磁盤(pán)上正確地保存文件。或當(dāng)用戶要求給指定文件增加記錄時(shí),也應(yīng)正確的實(shí)現(xiàn),并插在指定記錄之后。 為了正確地執(zhí)行模擬程序,可用鍵盤(pán)模擬輸入用戶的要求。輸入格式為: write(文件名,記錄個(gè)數(shù))或 insert(文件名,邏輯記錄號(hào))<2> 模擬設(shè)計(jì)便于直接存取的索引文件結(jié)構(gòu) 為了便于用戶直接存取文件的各個(gè)邏輯記錄,在 MS-DOS 中通過(guò)文件目錄,再沿著鏈查找FAT表,便可直接找到指定邏輯記錄對(duì)應(yīng)的物理塊。在小型機(jī)或更高級(jí)的文件系統(tǒng)中,直接存取文件的方法是為每個(gè)文件建立一個(gè)索引表,指出各邏輯記錄與物理塊的對(duì)應(yīng)關(guān)系。最簡(jiǎn)單的形式是一個(gè)邏輯記錄對(duì)應(yīng)一個(gè)物理塊。文件目錄與索引表的關(guān)系如圖所示。 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 通常索引表按照邏輯記錄順序建立,這樣既有利于順序存儲(chǔ),又有利于直接存儲(chǔ)。為了標(biāo)識(shí)哪些記錄已經(jīng)建立,哪些記錄還沒(méi)建立,故在索引表中增設(shè)一個(gè)標(biāo)志位。寫(xiě)文件或插入一個(gè)記錄的過(guò)程是尋找一個(gè)空閑物理塊,然后將其填入索引表對(duì)應(yīng)項(xiàng)中。其建立過(guò)程同第一題,即 write(文件名,記錄號(hào))和 insert(文件名,記錄號(hào))。 要求用位示圖描繪出磁盤(pán)的使用情況,并要求模擬程序執(zhí)行過(guò)程的每一步都能顯示文件目錄、位示圖、索引表。 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 3、模擬算法實(shí)現(xiàn) (1)流程圖 創(chuàng)建文件流程開(kāi)始讀取文件流程開(kāi)始查詢未打開(kāi)的文件表查詢已打開(kāi)文件表在未打開(kāi)表中?N是否在已打開(kāi)的文件表里?YY是否在已打開(kāi)表中查詢剩余未打開(kāi)的文件表NYY顯示無(wú)文件是否在剩余表中?N輸出無(wú)文件讀取文件記錄讀取文件記錄返回Read參數(shù)合法?Nwrite參數(shù)是否合法?Y返回寫(xiě)入磁盤(pán)顯示參數(shù)非法顯示成功Y顯示參數(shù)非法根據(jù)參數(shù)讀取記錄并顯示END (2)程序代碼 #include }; char filename[10];int filestart;int filelength; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 FILEINFO file[10];int FAT[N],blankspace;//FAT表和剩余空間 void printfmenu(){ int i;cout< 文件名 起始?jí)K號(hào) 文件長(zhǎng)度”< } void write(char *tmpname,int tmplength){ int last,i,j;//復(fù)制文件名和文件塊個(gè)數(shù) strcpy(file[fnum].filename,tmpname);file[fnum].filelength=tmplength;//存文件 for(i=2;i } for(i=1;i for(j=2;j FAT[last]=j; if(FAT[i]==0){ } file[fnum].filestart=i;//首個(gè)空閑塊為文件開(kāi)始?jí)K last=i;FAT[last]=FFF;break;int i;cout<<“空閑塊數(shù):”< } cout<<“ No.”< 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void insert(char *tmpname,int insertpoint){ int i;int last,brpoint;//尋找要執(zhí)行插入操作的文件,將其數(shù)組下標(biāo)存入last for(i=0;i } //brpoint記錄當(dāng)前文件掃描到的位置 brpoint=file[last].filestart; for(i=0;i } //改變空閑塊個(gè)數(shù)與文件長(zhǎng)度 if(FAT[i]==0){ } FAT[i]=FAT[brpoint];FAT[brpoint]=i;break;brpoint=FAT[brpoint];//掃描直到找到插入位置 if(strcmp(file[i].filename,tmpname)==0){ } else printf(“沒(méi)有指定文件!n”);last=i;break; } FAT[last]=FFF;//文件末存結(jié)束標(biāo)記 blankspace-=tmplength;//改變空閑塊個(gè)數(shù) fnum++;cout<<“name and size :”< } last=j;FAT[last]=FFF;break; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void itol(int i){ //LPCTSTR yy;char zz[10];file[last].filelength++;blankspace--;cout<<“name and size :”< //sprintf(zz, “%d”, i); //itoa(i,zz,10); //yy = LPCTSTR(zz); } void ctol(char *c){ } void Graph(){ int i,x=200,y=50;//initgraph(640, 480);//setfillstyle(SOLID_FILL,WHITE);//floodfill(5,5,WHITE);//setcolor(BLACK);for(i=0;i } //getch();//closegraph(); //moveto(x+(i/20)*60-25,y+(i%20)*20);itol(i);//rectangle(x+(i/20)*60,y+(i%20)*20,x+(i/20)*60+30,y+(i%20)*20+20);//moveto(x+(i/20)*60,y+(i%20)*20);if(FAT[i]==FFF)ctol(“FFF”);ctol(“FDF”);else if(FAT[i]==FDF)else itol(FAT[i]);//LPCTSTR yy;//yy = LPCTSTR(c);//moverel(3,2);//outtext(yy);//moveto(x+i*2,y+20);//moverel(5,3);//outtext(yy);//return yy; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } void main(){ } int i;char tmpname[10];int tmplength;//要寫(xiě)入文件長(zhǎng)度 int o;//命令 fnum=0;for(i=0;i } FAT[0]=FDF;FAT[1]=FFF;FAT[3]=999;blankspace=98;while(1){ } printFAT();cin.get();cout<<“請(qǐng)選擇: 1.寫(xiě)入 2.插入 3.顯示文件目錄 4.顯示FAT表”< } case 1: cout<<“輸入文件名:”; cin>>tmpname; cout<<“輸入文件長(zhǎng)度:”;cin>>tmplength; write(tmpname,tmplength);break;cin>>tmpname;int insertpoint; cout<<“輸入插入點(diǎn):”< insert(tmpname,insertpoint);break;FAT[i]=0;case 2: cout<<“輸入文件名:”< 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 (3)運(yùn)行結(jié)果 五、磁盤(pán)調(diào)度算法模擬 1.設(shè)計(jì)目的 (1)要求學(xué)生設(shè)計(jì)一個(gè)模擬磁盤(pán)調(diào)度的程序(2)理解磁盤(pán)調(diào)度過(guò)程中的三個(gè)時(shí)間段(3)理解磁盤(pán)調(diào)度的三種算法 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 2.實(shí)驗(yàn)原理 共享設(shè)備的典型代表為磁盤(pán),磁盤(pán)的物理塊的地址由柱面號(hào)、磁道號(hào)、扇區(qū)號(hào)來(lái)指定,完成磁盤(pán)某一個(gè)物理塊的訪問(wèn)要經(jīng)過(guò)三個(gè)階段:尋道時(shí)間 Ts、旋轉(zhuǎn)延遲 Tw 和讀寫(xiě)時(shí)間 Trw。 尋道時(shí)間 Ts 是磁頭從當(dāng)前磁道移動(dòng)到目標(biāo)磁道所需要的時(shí)間;旋轉(zhuǎn)延遲 Tw 是當(dāng)磁頭停留在目標(biāo)磁道后,目標(biāo)物理塊從當(dāng)前位置旋轉(zhuǎn)到磁頭位置的時(shí)間;讀寫(xiě)時(shí)間 Trw 是目標(biāo)物理塊內(nèi)容與內(nèi)存中對(duì)應(yīng)交換的時(shí)間。磁盤(pán)調(diào)度的原則是公平和高吞吐量,衡量指標(biāo)有訪問(wèn)時(shí)間 T 和平均訪問(wèn)時(shí)間 Ta: T=Ts+Tw+Trw Ta=Tsa+Twa+Trwa 尋道時(shí)間和旋轉(zhuǎn)延遲成為調(diào)度算法的主要考慮因素。減少訪問(wèn)時(shí)間就是要減少尋道時(shí)間和旋轉(zhuǎn)延遲。 3.設(shè)計(jì)要求 (1)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)函數(shù),完成先來(lái)先服務(wù)的磁盤(pán)調(diào)度功能 (2)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)函數(shù)完成最短尋道時(shí)間優(yōu)先的磁盤(pán)調(diào)度功能。(3)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)函數(shù)完成電梯算法的磁盤(pán)調(diào)度功能。 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 4、模擬算法的實(shí)現(xiàn) (1)各算法流程圖 先來(lái)先服務(wù)算法 Begin輸入當(dāng)前磁道號(hào)now磁頭移動(dòng)距離Sum=abs(now-array[0])磁頭總移動(dòng)距離Sum+=abs(array[j]-array[i])輸出磁盤(pán)調(diào)度序列Array[j]N目前的位置變?yōu)楫?dāng)前的位置j++J 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 最短尋道時(shí)間優(yōu)先算法流程圖 Begin獎(jiǎng)磁道從小到大排序輸入當(dāng)前磁道號(hào)nowArray[m-1]<=now?輸出磁盤(pán)調(diào)度序列array[j]Array[0]>=now?磁頭移動(dòng)總距離Sum=now-array[i]輸出磁盤(pán)調(diào)度序列array[j]確定當(dāng)前磁道在已排的序列中的位置目前的位置變?yōu)楫?dāng)前的位置now=array[i]磁頭移動(dòng)的總距離Now-array[l]<=array[r]-now?先向磁道號(hào)減小方向訪問(wèn),再向磁道號(hào)增加方向訪問(wèn)先向磁道號(hào)增加方向訪問(wèn),再向磁道號(hào)減小方向訪問(wèn)目前為止變?yōu)楫?dāng)前的位置now=array[i]i>=0i (2)程序代碼 #include int j,i,now;float sum = 0,avg; cout<<“輸入當(dāng)前的磁道號(hào):”;//輸入當(dāng)前磁道號(hào) 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 cin>>now;sum=abs(now-array[0]); cout<<“先來(lái)先服務(wù)算法調(diào)度后的序列為”< for(i=0,j=1;j sum=sum+abs(array[j]-array[i]); cout< //輸出磁盤(pán)調(diào)度序列 } avg=sum/(m); cout< int temp; int k=1; int now,l,r; int i,j; float sum=0,avg=0; for(i=0;i for(j=i+1;j { if(array[i]>array[j])//將磁道號(hào)從小到大排序 { temp=array[i]; array[i]=array[j]; array[j]=temp; } cout<<“請(qǐng)輸入當(dāng)前的磁道號(hào):”;//輸入當(dāng)前磁道號(hào) cin>>now; cout<<“最短尋道時(shí)間優(yōu)先算法調(diào)度后的序列為”;//輸出磁盤(pán)調(diào)度序列 if(array[m-1]<=now)//若被訪問(wèn)的下一最大的磁道號(hào)不大于當(dāng)前的磁道號(hào) { for(i=m-1;i>=0;i--) { cout< } else { if(array[0]>=now)//若被訪問(wèn)的下一最小的磁道號(hào)不小于當(dāng)前的磁道號(hào) { sum=now-array[i]; now=array[i];} } 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 for(i=0;i { cout< sum=array[i]-now; } } { { k++; } now=array[i]; else //當(dāng)前的磁道號(hào)的值在若所有被訪問(wèn)的下的磁道號(hào)之間 while(array[k] l=k-1; r=k; if((now-array[l])<=(array[r]-now)) { while(l>=0) //先向磁道號(hào)減小方向訪問(wèn) { cout< sum=sum+now-array[l]; now=array[l]; l=l-1; } else //先向磁道號(hào)增加方向訪問(wèn) { while(r } now=array[0]; for(j=r;j { cout< sum+=array[j]-now; } now=array[j]; { cout< sum+=array[r]-now; now=array[r]; r=r+1; } now=array[m-1]; for(j=l;j>=0;j--)//再向磁道號(hào)減小方向訪問(wèn) { cout< sum+=now-array[j]; } now=array[j]; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } avg=sum/(m); cout< int temp; int k=1; int now,d,l,r; int i,j; float sum=0,avg=0; for(i=0;i for(j=i+1;j { if(array[i]>array[j])//將磁道號(hào)從小到大排序 { temp=array[i]; array[i]=array[j]; array[j]=temp; } cout<<“請(qǐng)輸入當(dāng)前的磁道號(hào):”;//輸入當(dāng)前磁道號(hào) cin>>now; cout<<“請(qǐng)輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向(1 表示向磁道號(hào)增加方向,0 表示向磁道號(hào)減小方向): ”; cin>>d; //先要給出當(dāng)前磁道號(hào)和移動(dòng)臂的移動(dòng)方向 cout<<“電梯算法調(diào)度后的序列為”; if(array[m-1]<=now) //若被訪問(wèn)的下一最大的磁道號(hào)不大于當(dāng)前的磁道號(hào) { for(i=m-1;i>=0;i--) { cout< } else { if(array[0]>=now)//若被訪問(wèn)的下一最小的磁道號(hào)不小于當(dāng)前的磁道號(hào) { sum=now-array[i]; now=array[i];} } } } for(i=0;i { cout< sum=array[i]-now; 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } } { { k++; } now=array[i]; else //當(dāng)前的磁道號(hào)的值在若所有被訪問(wèn)的下的磁道號(hào)之間 while(array[k] l=k-1; r=k; switch(d) { case 0: //先向磁道號(hào)減小方向訪問(wèn) { while(l>=0) { cout< sum=sum+now-array[l]; now=array[l]; l=l-1; { while(r } now=array[0]; for(j=r;j { cout< sum+=array[j]-now; } break;} now=array[j]; case 1: //先向磁道號(hào)增加方向訪問(wèn) { cout< sum+=array[r]-now; now=array[r]; r=r+1; } now=array[m-1]; for(j=l;j>=0;j--) { cout< sum+=now-array[j]; }break; now=array[j]; } 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 } avg=sum/(m); cout< int i,m,n,flag=1,array[100]; cout<<“輸入磁盤(pán)調(diào)度序列的個(gè)數(shù):”; cin>>m; cout<<“分別輸入磁盤(pán)調(diào)度序列:”;for(i=0;i cout<<“0 終止”< cout<<“1 先來(lái)先服務(wù)算法”< cout<<“2 最短尋道時(shí)間優(yōu)先算法”< cout<<“3 電梯算法算法”< cout<<“選擇以上的算法:”; } cin>>n;{ case 0: { flag=0;break;} //終止程序 case 1: } { FCFS(array,m);break;} //先來(lái)先服務(wù)算法 { SSTF(array,m);break;}//最短尋道時(shí)間優(yōu)先算法 { SCAN(array,m);break;}//電梯算法 case 2: switch(n) default: cout<<“輸入有誤”< } } case 3: default: cout<<“輸入有誤,請(qǐng)重新輸入:”< 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 (3)運(yùn)行結(jié)果 輸入相關(guān)調(diào)度信息: 先來(lái)先服務(wù)算法: 最短尋道時(shí)間優(yōu)先算法: 電梯算法: 六、總結(jié) 本人在劉發(fā)升老師的指導(dǎo)下,順利完成該課程設(shè)計(jì)。通過(guò)此次課程設(shè)計(jì),收獲頗多。 一、對(duì)實(shí)驗(yàn)原理有更深的理解 通過(guò)模擬DOS的課程設(shè)計(jì),掌握了DOS各項(xiàng)功能實(shí)現(xiàn)的根本原理。并通過(guò)把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),把原來(lái)以為很深?yuàn)W的書(shū)本知識(shí)變的更為簡(jiǎn)單,對(duì)實(shí)驗(yàn)原理有更深的理解。 二、對(duì)該理論在實(shí)踐中的應(yīng)用有深刻的理解 通過(guò)把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),知道和理解了該理論在計(jì)算機(jī)中是怎樣執(zhí)行的,對(duì)該理論在實(shí)踐中的應(yīng)用有深刻的理解。 三、激發(fā)了學(xué)習(xí)的積極性 信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)082班 通過(guò)此次課程設(shè)計(jì),全面系統(tǒng)的理解了計(jì)算機(jī)操作系統(tǒng)中各項(xiàng)功能的一般原理和基本實(shí)現(xiàn)方法。把死板的課本知識(shí)變得生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過(guò)的計(jì)算機(jī)操作系統(tǒng)的知識(shí)強(qiáng)化,能夠把課堂上學(xué)的知識(shí)通過(guò)自己設(shè)計(jì)的程序表示出來(lái),加深了對(duì)理論知識(shí)的理解。以前對(duì)與計(jì)算機(jī)操作系統(tǒng)的認(rèn)識(shí)是模糊的,概念上的,現(xiàn)在通過(guò)自己動(dòng)手做實(shí)驗(yàn),從實(shí)踐上認(rèn)識(shí)了操作系統(tǒng)是如何處理命令的,如何協(xié)調(diào)計(jì)算機(jī)內(nèi)部各個(gè)部件運(yùn)行。課程設(shè)計(jì)中程序比較復(fù)雜,在調(diào)試時(shí)應(yīng)該仔細(xì),在程序調(diào)試時(shí),注意指針,將不必要的命令去除。在這次課程設(shè)計(jì)中,我就是按照實(shí)驗(yàn)指導(dǎo)的思想來(lái)完成。加深了理解文件系統(tǒng)的內(nèi)部功能及內(nèi)部實(shí)現(xiàn),培養(yǎng)實(shí)踐動(dòng)手能力和程序開(kāi)發(fā)能力的目的。 四、理解了該知識(shí)點(diǎn)以及學(xué)科之間的融合滲透 本次課程設(shè)計(jì)程序部分是用C語(yǔ)言編寫(xiě)的,把《計(jì)算機(jī)操作系統(tǒng)》和《C語(yǔ)言》兩門(mén)門(mén)學(xué)科聯(lián)系起來(lái),把各個(gè)學(xué)科之間的知識(shí)融合起來(lái),把各門(mén)課程的知識(shí)聯(lián)系起來(lái),對(duì)計(jì)算機(jī)整體的認(rèn)識(shí)更加深刻。使我加深了對(duì)《計(jì)算機(jī)操作系統(tǒng)》和《C語(yǔ)言》課程的認(rèn)識(shí)。同時(shí)對(duì)操作系統(tǒng)中各種功能的本質(zhì)有了充分地了解。 《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》教學(xué)項(xiàng)目課程設(shè)計(jì) 一、課程設(shè)計(jì)的背景與整體思路 該專(zhuān)業(yè)主要培養(yǎng)學(xué)生德、智、體全面協(xié)調(diào)發(fā)展,掌握關(guān)于計(jì)算機(jī)專(zhuān)業(yè)的基本理論、基礎(chǔ)知識(shí),具備掌握信息處理和信息管理技術(shù)、具備程序設(shè)計(jì)、信息管理系統(tǒng)軟件開(kāi)發(fā)和維護(hù)能力,具備基于計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)、傳感信息處理技術(shù)和互聯(lián)網(wǎng)技術(shù)進(jìn)行信息標(biāo)識(shí)、獲取、傳輸、處理、識(shí)別和控制的能力,掌握軟件技術(shù)的基礎(chǔ)理論、基本技能和軟件開(kāi)發(fā)的專(zhuān)業(yè)知識(shí),精通網(wǎng)站開(kāi)發(fā)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、高級(jí)語(yǔ)言程序設(shè)計(jì)技術(shù)等,能進(jìn)行系統(tǒng)集成及相關(guān)技術(shù)與產(chǎn)品的開(kāi)發(fā)和應(yīng)用推廣,具有計(jì)算機(jī)工程實(shí)踐能力,成為服務(wù)于經(jīng)濟(jì)和社會(huì)發(fā)展需要的高素質(zhì)技能型人才。這個(gè)專(zhuān)業(yè)的畢業(yè)生主要從事面向金融、保險(xiǎn)、機(jī)關(guān)、企事業(yè)單位計(jì)算機(jī)信息管理、計(jì)算機(jī)信息處理、計(jì)算機(jī)文秘、在軟件外包服務(wù)行業(yè)從事銷(xiāo)售、售后技術(shù)支持,IT類(lèi)企業(yè)、或從事面向企業(yè)、事業(yè)單位網(wǎng)絡(luò)管理與維護(hù)、企業(yè)網(wǎng)站建設(shè)、計(jì)算機(jī)產(chǎn)品、網(wǎng)絡(luò)產(chǎn)品、計(jì)算機(jī)外圍硬件設(shè)備的銷(xiāo)售、維護(hù)等崗位工作。課程的設(shè)置主要本著“工學(xué)結(jié)合,培養(yǎng)技能型人才”,在“學(xué)中做、做中學(xué)”的原則,按照計(jì)算機(jī)科學(xué)的發(fā)展規(guī)律,針對(duì)計(jì)算機(jī)信息技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)軟件技術(shù)進(jìn)行設(shè)置。課程設(shè)置合理、實(shí)用性強(qiáng),專(zhuān)業(yè)就業(yè)良好。 二、學(xué)習(xí)領(lǐng)域課程的定位與目標(biāo) 學(xué)校培養(yǎng)專(zhuān)業(yè)帶頭人1人。專(zhuān)業(yè)帶頭人應(yīng)較好地掌握高職教育的發(fā)展規(guī)律,精通本專(zhuān)業(yè)的最新高級(jí)技術(shù),在地區(qū)行業(yè)具有較大的影響力。學(xué)校培養(yǎng)和企業(yè)引進(jìn)骨干教師2人,培養(yǎng)出一批學(xué)風(fēng)扎實(shí)、業(yè)務(wù)精良,具有較高水平教學(xué)、研發(fā)和社會(huì)服務(wù)能力的專(zhuān)兼結(jié)合“雙師”結(jié)構(gòu)教學(xué)的中青年教師骨干。聘請(qǐng)技術(shù)人員3人。本專(zhuān)業(yè)計(jì)劃從企業(yè)長(zhǎng)期聘請(qǐng)2名行業(yè)技術(shù)骨干兼職擔(dān)任專(zhuān)業(yè)課教師,并從合作實(shí)訓(xùn)企業(yè)聘請(qǐng)1名實(shí)訓(xùn)指導(dǎo)兼職教師,由專(zhuān)業(yè)教研室主任李仕敏老師負(fù)責(zé)實(shí)施。通過(guò)多種聘用形式,建立兼職教師隊(duì)伍建設(shè)長(zhǎng)效機(jī)制,造就一支穩(wěn)定的兼職教師隊(duì)伍,促進(jìn)本專(zhuān)業(yè)持續(xù)穩(wěn)定的發(fā)展。 三、教學(xué)項(xiàng)目的選取與序化 在這個(gè)教學(xué)設(shè)計(jì)方案中我們選擇了計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)學(xué)習(xí)領(lǐng)域課程的計(jì)算機(jī)網(wǎng)絡(luò)專(zhuān)業(yè)英語(yǔ)教學(xué)項(xiàng)目進(jìn)行詳細(xì)設(shè)計(jì)。我們選擇這些教學(xué)項(xiàng)目的依據(jù)首先就是學(xué)生的興趣。情境的選擇要符合《高職高專(zhuān)教育英語(yǔ)課程教學(xué)基本要求》交際范圍表的規(guī)定。這些項(xiàng)目在現(xiàn)實(shí)生活中、在對(duì)外交往、在學(xué)生們今后的學(xué)習(xí)和工作中,出現(xiàn)的頻率最高,實(shí)用性和流行性極強(qiáng),為學(xué)生今后順利開(kāi)展對(duì)外交流和自身工作奠定基礎(chǔ)。 四、教學(xué)項(xiàng)目《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》的教學(xué)方案 《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》學(xué)習(xí)領(lǐng)域課程安排在計(jì)算機(jī)專(zhuān)業(yè)第四學(xué)期學(xué)習(xí),總課時(shí)64學(xué)時(shí),學(xué)習(xí)項(xiàng)目《計(jì)算機(jī)網(wǎng)絡(luò)英語(yǔ)》的教學(xué)方案是為計(jì)算機(jī)專(zhuān)業(yè)G12級(jí)學(xué)生設(shè)計(jì)的,學(xué)生總?cè)藬?shù)為250人,該學(xué)習(xí)項(xiàng)目需要10學(xué)時(shí)完成。由于學(xué)生在大一已經(jīng)學(xué)習(xí)過(guò)計(jì)算機(jī)專(zhuān)業(yè)學(xué)習(xí)領(lǐng)域課程,學(xué)生有一定的計(jì)算機(jī)專(zhuān)業(yè)基礎(chǔ)知識(shí)和具備一定的大學(xué)英語(yǔ)基礎(chǔ),所以《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》學(xué)習(xí)領(lǐng)域的開(kāi)設(shè)對(duì)學(xué)生而言不會(huì)太難,該學(xué)習(xí)項(xiàng)目是可實(shí)施的。這個(gè)學(xué)習(xí)項(xiàng)目的實(shí)施需要多媒體教學(xué)硬件、有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)的講解視頻、圖片等。學(xué)院目前設(shè)有多媒體教室,能夠提供基本的硬件設(shè)施,能夠保質(zhì)保量地完成這個(gè)學(xué)習(xí)項(xiàng)目中的任務(wù)。對(duì)于該教學(xué)項(xiàng)目的實(shí)施,建議學(xué)生進(jìn)行實(shí)踐動(dòng)手操作,或者利用校外實(shí)踐基地進(jìn)行教學(xué)實(shí)踐等活動(dòng)。祁姝一老師擔(dān)任本單元的主講老師,作為骨干老師能夠保質(zhì)保量地完成該教學(xué)項(xiàng)目中的各項(xiàng)任務(wù)的順利完成。教學(xué)流程及其詳細(xì)描述如圖。 五、結(jié)束語(yǔ) 我們選擇的《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》教學(xué)項(xiàng)目,是在市場(chǎng)需求分析的基礎(chǔ)上結(jié)合不同的教學(xué)階段進(jìn)行選擇,在教學(xué)實(shí)習(xí)階段,選取小項(xiàng)目,通過(guò)完成小項(xiàng)目掌握相應(yīng)的知識(shí)點(diǎn),選取的項(xiàng)目的功能相對(duì)單一,貼近學(xué)生生活實(shí)際,能充分發(fā)揮學(xué)生學(xué)習(xí)的主動(dòng)性;在課程教學(xué)階段,選取相對(duì)復(fù)雜、結(jié)合生產(chǎn)生活實(shí)際的項(xiàng)目,學(xué)生通過(guò)完成教學(xué)項(xiàng)目體驗(yàn)到成功的喜悅,同時(shí)積累實(shí)際工作的經(jīng)驗(yàn)。因此,我們對(duì)《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》教學(xué)項(xiàng)目的選取既使學(xué)生有切入點(diǎn),能夠動(dòng)手又要使各章的教學(xué)項(xiàng)目之間有聯(lián)系點(diǎn),還要使其能夠最終形成一個(gè)大作業(yè),即課程設(shè)計(jì)。通過(guò)項(xiàng)目教學(xué),使學(xué)生在完成一個(gè)個(gè)項(xiàng)目的同時(shí)。我們認(rèn)為項(xiàng)目教學(xué)法實(shí)質(zhì)上是以項(xiàng)目為導(dǎo)向,讓學(xué)生通過(guò)承擔(dān)和完成某個(gè)具體的項(xiàng)目來(lái)掌握專(zhuān)業(yè)能力、方法能力和社會(huì)能力。通過(guò)好的項(xiàng)目,在完成一個(gè)個(gè)項(xiàng)目的同時(shí),提高學(xué)生的綜合職業(yè)能力,達(dá)到“以能力為本”的培養(yǎng)目的。在教學(xué)中運(yùn)用項(xiàng)目教學(xué)法,充分體現(xiàn)了以學(xué)生為主體的教學(xué)理念,有利于激發(fā)學(xué)生的學(xué)習(xí)興趣。培養(yǎng)學(xué)生自主探究、分析問(wèn)題、解決問(wèn)題的能力,將理論知識(shí)運(yùn)用于實(shí)踐的能力以及合作能力。而教學(xué)過(guò)程中項(xiàng)目的確定是“項(xiàng)目教學(xué)法”成功的關(guān)鍵。第五篇:《計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)》教學(xué)項(xiàng)目課程設(shè)計(jì)