




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄一 概述2二 方案設計3三 流程圖4四 程序的調(diào)試與運行結果說明6五 課程設計總結11六 參考文獻11七 附錄(源代碼)12一 概述1. 課程設計的目的(1)通過課程設計,使學生理論聯(lián)系實際,在程序設計實踐中進一步了解操作系統(tǒng)的原理和算法的實現(xiàn),了解設計系統(tǒng)時應考慮的因素;(2)了解c應用程序編寫;(3)培養(yǎng)學生分析、解決問題的能力,提高學生的論文寫作能力。2. 課程設計的要求(1)熟悉c語言的運用,掌握和理解操作系統(tǒng)中的原理和算法;(2)結合操作系統(tǒng)的基本原理,進行程序設計;(3)對操作系統(tǒng)的設計和實現(xiàn)有進一步認識和理解;(4)獨立思考,獨立完成:課程設計中各任務的設計和調(diào)試要求獨立完
2、成,遇到問題可以討論,但不可以拷貝;(5)做好上機準備:上機前,要事先編制好準備調(diào)試的程序,認真想好調(diào)試步驟和有關環(huán)境的設置方法,準備好有關的文件;(6)課程設計報告:根據(jù)編程實現(xiàn)的結果,按課程設計報告的撰寫規(guī)范完成操作系統(tǒng)課程設計報告(課程設計報告中必須有相關原理分析、程序設計、程序實現(xiàn)和程序調(diào)試等內(nèi)容,一人一份,絕對不能雷同);(7)電子文檔:每組實現(xiàn)的結果必須進行檢查和演示;程序源代碼和可執(zhí)行程序必須上交,作為考核內(nèi)容的一部分;(8)電子文檔和報告一起由學習委員按規(guī)定時間統(tǒng)一上交,遲交者無成績。3. 課程設計的主要設計思想本設計的目的是解決生產(chǎn)者消費者問題。設計目的是讓有界緩沖區(qū)內(nèi)設有個
3、存儲單元,放入取出的數(shù)據(jù)項設定為這個整形數(shù)。要求每個生產(chǎn)者和消費者對有界緩沖區(qū)進行操作后,即時顯示有界緩沖區(qū)的全部內(nèi)容、當前指針位置和生產(chǎn)者消費者標識符.二 方案設計1. 設計方案 本系統(tǒng)一共建立了administrator 和guest兩個用戶,每個用戶擁有一個結構體數(shù)組為struct flie fa8和 struct flie fg8每個用戶最多可一建立8個文件,每個文件對應一個文件模塊; 文件模塊: struct flie int ed; /判斷是否正存放文件 char f_name8; /文件名 char f_c8; /存放文件內(nèi)容 int att ; / 文件屬性 0為只讀 1為只寫
4、 ; 文件模塊示意圖(如圖1):ed f_name8 att f_c8 圖1分別設計主函數(shù)和子函數(shù),通過主函數(shù)分別調(diào)用子函數(shù)來實現(xiàn)相應的功能。在進入主函數(shù)之后,首先進入用戶登陸界面,通過調(diào)用check()函數(shù)來對用戶輸入的密碼進行驗證,驗證通過后,則進入文件管理的界面。進入文件管理的界面之后,系統(tǒng)則通過一個switch()語句來實現(xiàn)文件管理系統(tǒng)的各個功能的。 各個子函數(shù)如表1:系統(tǒng)調(diào)用原型功能主要參數(shù)說明void check()密碼認證admin為函數(shù)出口int init()初始化操作界面返回i執(zhí)行相應的操作void createfile()創(chuàng)建文件name文件名-fa.f_namevoid
5、deletefile()刪除文件void openfile()打開文件void exit()退出系統(tǒng)void writefile()書寫文件c為文件內(nèi)容-fa.f_cvoid copyfile()復制文件void modifyfile()修改屬性a為文件屬性-fa.attvoid catalogue()目錄管理 表1三 流程圖1. 整體框圖(如圖2):消注?成功? 開始用戶登陸ny接收命令 解析命令實現(xiàn)命令 結束n選擇用戶退出nyy 圖22. 系統(tǒng)原理框圖(如圖3):administratorguestflie1 flie2 flie1 flie2 ed f_name att f_c文件名文件
6、屬性文件內(nèi)容判斷存儲狀態(tài)ed f_name att f_c判斷存儲狀態(tài)判斷存儲狀態(tài)判斷存儲狀態(tài)判斷存儲狀態(tài) 圖3四 程序的調(diào)試與運行結果說明1程序調(diào)試通過后運行出現(xiàn)登陸界面,如圖4所示: 圖42選擇1(即選擇administrator)后,要求輸入密碼,如圖5所示: 圖53輸入錯誤密碼后提示“輸入錯誤,請重新輸入”如圖6所示: 圖64輸入正確密碼“ admin”后,進入初始界面,如圖7所示: 圖75選擇1(創(chuàng)建文件)后,如圖8所示: 圖86輸入文件名稱“byf”后回車,提示“請選擇文件屬性(0.只讀 - 1.只寫):1”,輸入1(即只寫)后提示“創(chuàng)建文件成功”如圖9所示: 圖97再選擇1創(chuàng)建相
7、同的文件后提示“創(chuàng)建錯誤!文件已經(jīng)存在!”如圖10所示: 圖108選擇4(書寫文件)后提示“請輸入要書寫的文件的名稱”輸入文件內(nèi)容后提示“書寫文件成功”,如圖11所示: 圖119選擇3(打開文件)后提示“請輸入您所要打開文件的名稱”輸入“byf”后顯示byf文件的內(nèi)容,如圖12所示: 圖1210選擇3(打開文件),如果輸入的文件不存在則提示“文件不存在”,如圖13所示: 圖1311選擇5(復制文件),如圖14所示: 圖1412選擇6(修改屬性),如圖15所示: 圖1513選擇7(目錄管理),如圖16所示: 圖1614選擇2(刪除文件),如圖17所示: 圖1715選擇8(注銷)后,返回初始界面,
8、如圖18所示: 圖1816最后選擇“退出系統(tǒng)”,如圖19所示: 圖19五 課程設計總結一個星期以來,我想了好多好多的方法來做這個課程設計,上網(wǎng)查了一些資料,參考網(wǎng)上的程序,終于把課程設計弄完了,感覺收獲很大。 當然這一個星期來,對課程設計有了更多的認識和了解.如何真正檢測自己對所學知識的掌握應用。課程設計時每一句程序代碼的書寫都要遵循規(guī)則,一定要保證一切都要有據(jù)可依,有理可尋,不切實際的構想永遠只能是構想,永遠無法升級為設計。任何一點的失誤,都有可能在成嚴重的后果.課程設計不同于平時的編程,平時的編程,針對的只是短期內(nèi)的知識點,內(nèi)容要求較低,難度也比較低。而此時,我們必須綜合考慮整個程序框架,
9、可以說要想做好課程設計,第一件事必須對所學知識事先進行全面的回顧,弄懂每一個知識點,弄清楚自己以前不大清楚的問題,只有這樣才不至于編程時摸不著頭腦。程序設計對程序的內(nèi)容功能的要求遠遠要超出我們課堂所學的內(nèi)容,為了讓自己的設計功能更加完善,更加符合要求,上網(wǎng)查資料。 在次過程中。對操作系統(tǒng)的文件管理有了更深一層的理解,這就讓我明白了一個道理,那就是任何一個微不足道的細節(jié)豆油可能會影響到整個的設計,必須將這個問題時刻牢記在心。在程序調(diào)試的過程中很多時候可能出現(xiàn)一些自己想不到的結果. 總的來說,本次課程設計讓我學到了很多的東西,不僅僅是書本上的知識,更多的書本上所沒有的知識, 起到串起所學知識,提升
10、了我的綜合能力、動手能力、將所學知識應用于實踐的能力。 這次時間比較緊。我做的不好。沒辦法。等有機會我還會把這做的更好。因為我是一個追求完美的人,所以我會盡力做的更好。再追求最好。還好,這次的目的基本上達到了.最后,還想感謝指導老師,謝謝!六 參考文獻(1)湯子瀛. 計算機操作系統(tǒng)m. 西安電子科技大學出版社. 2006.9 (2)錢能.c+程序設計教程m.清華大學出版社.2005.5七 附錄(源代碼)ok equ 20h ;搶答開始標志位;將p1口與p2口互換,p3.0-p1.0,p3.1-p1.7 ring equ 22h ;響鈴標志位 org 0000h ajmp main org 00
11、03h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040h;=-;主程序;=main: mov r1,#0fh ;初設搶答時間為15s mov r2,#0ah ;初設答題時間為10s mov tmod,#11h ;設置未定時器/模式1 mov th0,#0f0h mov tl0,#0ffh ;越高發(fā)聲頻率越高,越尖 mov th1,#3ch mov tl1,#0b0h ;50ms為一次溢出中斷 setb ea setb et0 setb et1 setb ex0 setb
12、 ex1 ;允許四個中斷,t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0 ;一開始就運行定時器,以開始顯示fff.如果想重新計數(shù),重置th1/tl1就可以了;=查詢程序=start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display ;未開始搶答時候顯示fff jb p1.0,next ;ddddddd acall delay jb p1.0,next ;去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到非法搶答查詢 acall bark ;按鍵發(fā)聲 mov a,r1 mov r6,a ;送r1-r6
13、,因為r1中保存了搶答時間 setb ok ;搶答標志位,用于count只程序中判斷是否查詢搶答 mov r3,0ah ;搶答只顯示計時,滅號數(shù) ajmp count ;進入倒計時程序,查詢有效搶答的程序在count里面next: jnb p1.1,false1 jnb p1.2,false2 jnb p1.3,false3 jnb p1.4,false4 jnb p1.5,false5 jnb p1.6,false6 ajmp start;=非法搶答處理程序=false1: acall bark ;按鍵發(fā)聲 mov r3,#01h ajmp errorfalse2: acall bark m
14、ov r3,#02h ajmp errorfalse3: acall bark mov r3,#03h ajmp errorfalse4: acall bark mov r3,#04h ajmp errorfalse5: acall bark mov r3,#05h ajmp errorfalse6: acall bark mov r3,#06h ajmp error;=int0(搶答時間r1調(diào)整程序)= int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display ;先在兩個時間led上顯示r1
15、jnb p3.4,inc0 ;p3.4為+1s鍵,如按下跳到inco jnb p3.5,dec0 ;p3.5為-1s鍵,如按下跳到deco jnb p1.7,back0 ;p3.1為確定鍵,如按下跳到backo ajmp int0subinc0: mov a,r1 cjne a,#63h,add0 ;如果不是99,r2加1,如果加到99了,r1就置0,重新加起。 mov r1,#00h acall delay1 ajmp int0subadd0: inc r1 acall delay1 ajmp int0subdec0: mov a,r1 jz setr1 ;如果r1為0, r1就置99, d
16、ec r1 acall delay1 ajmp int0subsetr1: mov r1,#63h acall delay1 ajmp int0subback0: reti ;=int1(回答時間r2調(diào)整程序)=int1sub: mov a,r2 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.4,inc1 jnb p3.5,dec1 jnb p1.7,back1 ajmp int1subinc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1 aj
17、mp int1subadd1: inc r2 acall delay1 ajmp int1subdec1: mov a,r2 jz setr2 dec r2 acall delay1 ajmp int1subsetr2: mov r2,#63h acall delay1 ajmp int1subback1: reti ;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=count: mov r0,#00h ;重置定時器中斷次數(shù) mov th1,#3ch mov tl1,#0b0h ;重置定時器recount: mov a,r6 ;r6保存了倒計時的時間,之前先將搶答時間或回答時間給r6 mo
18、v b,#0ah div ab ;除十分出個位/十位 mov 30h,a ;十位存于(30h) mov 31h,b ;個位存于(31h) mov r5,30h ;取十位 mov r4,31h ;取個位 mov a,r6 subb a,#07h jnc larger ;大于5s跳到larger,小于等于5s會提醒 mov a,r0 cjne a,#0ah,full;1s中0.5s向下運行 clr ring ajmp checkfull: cjne a,#14h,check;下面系1s的情況,響并顯示號數(shù)并清r0,重新計 setb ring mov a,r6 jz quit ;計時完畢 mov r
19、0,#00h dec r6 ;一秒標志減1 ajmp checklarger: mov a,r0 cjne a,#14h,check;如果1s向下運行,否者跳到查停/顯示 dec r6 ;計時一秒r6自動減1 mov r0,#00hcheck: jnb p1.7,quit ;如按下停止鍵退出 acall display jb ok,accout ;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) ajmp recountaccout:jnb p1.1,true1 jnb p1.2,true2 jnb p1.3,true3 jnb p1.4,true4 jnb p1.
20、5,true5 jnb p1.6,true5 ajmp recountquit: clr ok ;如果按下了停止鍵執(zhí)行的程序 clr ring ajmp start;=正常搶答處理程序=true1: acall bark ;按鍵發(fā)聲 mov a,r2 mov r6,a ;搶答時間r2送r6 mov r3,#01h clr ok ;因為答題的計時不再查詢搶答,所以就鎖了搶答 ajmp counttrue2: acall bark; mov a,r2 mov r6,a mov r3,#02h clr ok ajmp counttrue3: acall bark; mov a,r2 mov r6,a
21、 mov r3,#03h clr ok ajmp counttrue4: acall bark; mov a,r2 mov r6,a mov r3,#04h clr ok ajmp counttrue5: acall bark; mov a,r2 mov r6,a mov r3,#05h clr ok ajmp counttrue6: acall bark; mov a,r2 mov r6,a mov r3,#06h clr ok ajmp count;=犯規(guī)搶答程序=error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3 ;犯規(guī)號數(shù)暫
22、存與(34h)here: mov a,r0 cjne a,#0ah,flash ;0.5s向下運行-滅并停響 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0ah ;三燈全滅 ajmp check1flash: cjne a,#14h,check1 ;下面系1s的情況,響并顯示號數(shù)并清r0,重新計 setb ring mov r0,#00h mov r3,34h ;取回號數(shù) mov r5,#0bh mov r4,#0bh ;顯示ff和號數(shù) ajmp check1check1:jnb p1.7,quit1 acall display ajmp herequit1: clr ring clr ok ajmp start;=顯示程序=display: mov dptr,#dat1 ;查表顯示程序,利用p0口做段選碼口輸出/p2低三位做位選碼輸出, mov a,r5 movc a,a+dpt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心功能不全合并糖尿病大鼠模型建立及代謝組學研究
- MES 系統(tǒng)應用于水廠的管理實踐
- 2025版高考地理二輪復習仿真模擬練三
- 主播接單合同范例
- 農(nóng)村毛豬收購合同范例
- 辦公裝修合同范例
- 保育員簡易合同范例
- 共同出資擔保合同范例
- 分紅寫進合同范例
- 基于光學頻率梳的自由空間頻率傳遞中時延抖動補償?shù)年P鍵技術研究
- 2024-2030年中國數(shù)據(jù)中心機柜機架行業(yè)發(fā)展狀況與投資盈利預測報告
- DL-T5704-2014火力發(fā)電廠熱力設備及管道保溫防腐施工質量驗收規(guī)程
- CBZ125-1998-潛艇船體結構焊接質量檢驗規(guī)則
- 2024年河南省信陽市浉河區(qū)二模語文試卷
- 代理商區(qū)域保護協(xié)議書范本
- 2024年包頭鋼鐵職業(yè)技術學院單招職業(yè)適應性測試題庫及答案解析
- 2024年南京鐵道職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- 英語定位紙模板
- 中外政治思想史-形成性測試四-國開(HB)-參考資料
- 小學語文中高年級單元整體教學設計的實踐研究(中期報告)
- 國家安全教育國土安全
評論
0/150
提交評論