




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 成 績 評 定 表學(xué)生姓名班級學(xué)號專 業(yè)計算機科學(xué)與技術(shù)課程設(shè)計題目計算機外部輸出設(shè)備(如顯示器)和的CPU處理數(shù)據(jù)的速度不同。按先來先服務(wù)的方式進行管理,設(shè)計緩沖隊列,實現(xiàn)外設(shè)與CPU的匹配 評語組長簽字:成績?nèi)掌?2015 年12 月15 日課程設(shè)計任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)計算機科學(xué)與技術(shù)學(xué)生姓名班級學(xué)號課程設(shè)計題目計算機外部輸出設(shè)備(如顯示器)和的CPU處理數(shù)據(jù)的速度不同。按先來先服務(wù)的方式進行管理,設(shè)計緩沖隊列,實現(xiàn)外設(shè)與CPU的匹配。實踐教學(xué)要求與任務(wù):任務(wù):計算機外部輸出設(shè)備(如顯示器)和的CPU處理數(shù)據(jù)的速度不同。按先來先服務(wù)的方式進行管理,設(shè)計緩沖隊列,實現(xiàn)外設(shè)與
2、CPU的匹配。要求:1)對相應(yīng)的題目進行算法設(shè)計2)編寫源代碼3)上機調(diào)試4)顯示調(diào)試結(jié)果5)寫出實驗總結(jié)工作計劃與進度安排:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計時間安排在教學(xué)第14周、第15周內(nèi)完成,按上述題目要求完成查閱資料、程序設(shè)計、調(diào)試、運行等工作。時間安排如下:1、 查閱資料、與初步設(shè)計;1-2天2、 整體功能設(shè)計、代碼編碼與初步調(diào)試。1-3天3、 調(diào)試和軟件功能的測試和驗收。1-3天4、 答辯與論文撰寫。1-2天指導(dǎo)教師: 2015年11月28日專業(yè)負責(zé)人:2015年11月28日學(xué)院教學(xué)副院長:2015年11月28日目 錄 一、題目概述(內(nèi)容及要求)3二、功能分析4三、設(shè)計5四、運行與測試9五、總結(jié)1
3、1參考文獻12一、 題目概述(內(nèi)容及要求)1. 內(nèi)容:計算機外部輸出設(shè)備(如顯示器)和的CPU處理數(shù)據(jù)的速度不同。按先來先服務(wù)的方式進行管理,設(shè)計緩沖隊列,實現(xiàn)外設(shè)與CPU的匹配。2. 要求:1)對相應(yīng)的題目進行算法設(shè)計2)編寫源代碼3)上機調(diào)試4)顯示調(diào)試結(jié)果二、 功能分析1. 功能模塊圖主函數(shù)創(chuàng)建隊列刪除隊列元素查詢隊列元素圖2.1 功能模塊圖程序主要功能分為三個部分:1, 第一個部分為創(chuàng)建隊列。創(chuàng)建一個尾插的鏈表存儲數(shù)據(jù)2, 第二部分為刪除隊列元素,根據(jù)隊列特點,應(yīng)從鏈表頭部刪除元素3, 第三部分為查詢隊列元素,經(jīng)過查詢經(jīng)過一系列處理后,隊列中的元素。4, 在程序的主體main函數(shù)中設(shè)計
4、程序菜單,通過用戶輸入選擇實現(xiàn)種種功能2.程序流程圖定義變量Case3Case2Case1圖2.2 程序流程圖開始While(1)Switch(n)Creat()Del()Print()顯示結(jié)果Main函數(shù)流程設(shè)計圖:通過一個while循環(huán)來實現(xiàn)菜單的設(shè)計,內(nèi)部用switch語句實現(xiàn)對不同功能的函數(shù)的調(diào)用。三、 設(shè)計根據(jù)題目要求,是要設(shè)計一個隊列程序,隊列的特點為先進先出。因此根據(jù)該特點我設(shè)計了一個尾插頭刪的鏈表。數(shù)據(jù)在內(nèi)存中鏈式存儲,用一個Creat()函數(shù)實現(xiàn)對鏈表的創(chuàng)建。Creat()函數(shù)代碼如下:struct data * Creat(struct data * front, stru
5、ct data * real)struct data * p;real = (struct data *)malloc(sizeof(struct data);p = real;p -num = n + 1;printf(當前用戶編號:%d n, p-num);printf(輸入證件尾號和用戶姓名(中間都好分隔):);scanf(%d,%s, &p -realnum, &p-name);while(p -realnum != 0)n += 1;if(n = 1)front = p;elsereal-next = p;real = p;p = (struct data *)malloc(size
6、of(struct data);p -num = n + 1;printf(當前用戶編號:%d n, p-num);printf(輸入證件尾號和用戶姓名(中間都好分隔,輸入0退出):n);scanf(%d,%s, &p -realnum, &p-name);real -next = NULL;return (front);以上函數(shù)實現(xiàn)了隊列的后進特點,而先出特點則由del()函數(shù)實現(xiàn)del()函數(shù)代碼如下:struct data * del(struct data * front)struct data * p = NULL;if(front != NULL)p = front -next;f
7、ront -next = NULL;printf(第%d號用戶:%s業(yè)務(wù)辦理完畢n, front -num, front -name);elseprintf(當前無人排隊辦理業(yè)務(wù)!n);return (p);最后一部分為查看隊列元素函數(shù),代碼如下:void print(struct data * front)struct data * p;printf(現(xiàn)在排隊辦理業(yè)務(wù)的人有:n);p = front;if(front !=NULL)doprintf(序號:%d, 姓名:%sn, p-num, p-name);p = p-next;while(p != NULL);設(shè)計思路:首先程序采用菜單,
8、用戶需要輸入與操作相對應(yīng)的序號選項來運行程序。其次,在輸入序號選項后,程序會執(zhí)行相應(yīng)的函數(shù)。題目要求做一個隊列程序,我把它想象作是一個排隊程序。(1) 有人來掛號排隊。這時候就需要創(chuàng)建尾插鏈表函數(shù)。這部分也就相當于計算機鍵盤錄入。(2) 有人排隊就需要有人處理。所以設(shè)計了一個del()函數(shù)從鏈表的頭部刪除數(shù)據(jù)。這部分就相當于計算機CPU處理數(shù)據(jù)。(3) 有時候需要查詢當前還有多少人排隊。所以設(shè)計個一個print()函數(shù)將隊列信息打印出來。這部分相當于計算機顯示器部分。以此方式來實現(xiàn)題目要求的隊列緩沖程序。完整源代碼:#include#include#include#define N 5stru
9、ct data * Creat(struct data * front, struct data * real);struct data * del(struct data * front);void print(struct data * front);struct data int num;int realnum;char nameN; struct data * next;int n = 0;/定義全局變量,記錄隊列長度 int main(void)struct data * front = NULL;struct data * real = NULL;while(1)printf(-n
10、);printf(- 1掛號排隊 -n);printf(- 2業(yè)務(wù)辦理 -n);printf(- 3查詢當前辦理業(yè)務(wù)的人 -n);printf(-n);int num;printf(請輸入業(yè)務(wù)序號:); scanf(%d, &num);system(cls);switch(num)case 1: front = Creat(front, real); break;case 2: front = del(front);break;case 3: print(front) ; break;return 0;struct data * Creat(struct data * front, struc
11、t data * real)struct data * p;real = (struct data *)malloc(sizeof(struct data);p = real;p -num = n + 1;printf(當前用戶編號:%d n, p-num);printf(輸入證件尾號和用戶姓名(中間都好分隔):);scanf(%d,%s, &p -realnum, &p-name);while(p -realnum != 0)n += 1;if(n = 1)front = p;elsereal-next = p;real = p;p = (struct data *)malloc(sizeo
12、f(struct data);p -num = n + 1;printf(當前用戶編號:%d n, p-num);printf(輸入證件尾號和用戶姓名(中間都好分隔,輸入0退出):n);scanf(%d,%s, &p -realnum, &p-name);real -next = NULL;return (front); struct data * del(struct data * front)struct data * p = NULL;if(front != NULL)p = front -next;front -next = NULL;printf(第%d號用戶:%s業(yè)務(wù)辦理完畢n,
13、front -num, front -name);elseprintf(當前無人排隊辦理業(yè)務(wù)!n);return (p); void print(struct data * front)struct data * p;printf(現(xiàn)在排隊辦理業(yè)務(wù)的人有:n);p = front;if(front !=NULL)doprintf(序號:%d, 姓名:%sn, p-num, p-name);p = p-next;while(p != NULL);四、運行與測試1)運行后主菜單界面圖 4.1 程序運行圖一經(jīng)運行,程序能正確顯示菜單。2)測試能否正確調(diào)用功能函數(shù)圖4.2 程序運行圖二3)測試算法是否
14、能夠正確執(zhí)行圖 4.2 程序運行圖二圖4.3 程序運行圖三圖4.3 程序運行圖四圖4.3 程序運行圖五經(jīng)測試,算法能夠正確執(zhí)行,程序運行正確。五、總結(jié)課程設(shè)計過程中出現(xiàn)的技術(shù)難點和解決方法:在進行課程設(shè)計過程中對題目不能夠很好的理解。題目內(nèi)容略有抽象,無法直接具體實現(xiàn),這需要我們將題目和顯示生活進行聯(lián)想。才能更好的解決問題。在課程設(shè)計中設(shè)計創(chuàng)建鏈表的程序,鏈表創(chuàng)建要實現(xiàn)尾插。在設(shè)計過程中,由于指針較多,出現(xiàn)了混亂的情況,這就需要我們對于變量名字的定義要有含義,必要的地方要有注釋。在設(shè)計刪除元素函數(shù)的時候,出現(xiàn)了只能刪除第一個元素,之后的元素不能刪除顯示為沒有隊列元素可被刪除。經(jīng)排查這種情況出現(xiàn)
15、的原因為創(chuàng)建鏈表是首元素沒有和后邊的元素連接上。導(dǎo)致創(chuàng)建了很多節(jié)點,但在實際鏈表中只有一個元素。經(jīng)過修改creat()函數(shù)后,問題解決。在主函數(shù)中設(shè)置了一個清屏語句。但是由于放置的位置不太合理。導(dǎo)致del()函數(shù)和print()函數(shù)所顯示在屏幕上的內(nèi)容被清除,無法觀察結(jié)果。因此調(diào)整了清屏語句的位置。課程設(shè)計期間的主要收獲:通過這次課程設(shè)計使我對數(shù)據(jù)結(jié)構(gòu)有了更深的了解,也明白了數(shù)據(jù)結(jié)構(gòu)在生活中的實際應(yīng)用,每一個日常生活中的事情,都可以抽象為一種數(shù)據(jù)結(jié)構(gòu)。而我們程序設(shè)計的目的就是為了解決日常生活中遇到的問題。因此學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)尤為重要。通過這次課設(shè)使我對程序設(shè)計的理解更深了。對數(shù)據(jù)結(jié)構(gòu)的理論知識和實現(xiàn)具體的程序的過程有了更多的經(jīng)驗,不再是單一的理論學(xué)習(xí)。算法很重要,但是也要能把算法做出程序的能力。有時我們對于算法的理解已經(jīng)很透徹,但是卻無法編成具體的程序?;蛘呔幊鰜韰s有各種
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民專業(yè)合作社培訓(xùn)指南
- 停車場智能收費系統(tǒng)招標
- 客戶需求調(diào)查表-個性化需求分析
- 統(tǒng)編三年級下冊《趙州橋》公開課課件(有配套教案)
- 跨境電商 的物流
- 建筑施工現(xiàn)場安全監(jiān)督指南
- 外科總論練習(xí)卷附答案
- 高職護理婦產(chǎn)科復(fù)習(xí)試題
- 醫(yī)療機構(gòu)運營與管理作業(yè)指導(dǎo)書
- 辦公區(qū)裝修活動策劃方案
- GB/T 5778-1986膨脹合金氣密性試驗方法
- GB/T 5455-2014紡織品燃燒性能垂直方向損毀長度、陰燃和續(xù)燃時間的測定
- GB/T 5117-2012非合金鋼及細晶粒鋼焊條
- GB/T 3782-2006乙炔炭黑
- 大國醫(yī)魂:800年滋陰派與600年大德昌課件
- 真核生物的轉(zhuǎn)錄
- 《電商企業(yè)財務(wù)風(fēng)險管理-以蘇寧易購為例開題報告》
- 公司組織架構(gòu)圖(可編輯模版)
- 中小學(xué)綜合實踐活動課程指導(dǎo)綱要
- 清淤工程施工記錄表
- 黃河上游歷史大洪水市公開課金獎市賽課一等獎?wù)n件
評論
0/150
提交評論