KTV點歌系統(tǒng)報告(軟工)_第1頁
KTV點歌系統(tǒng)報告(軟工)_第2頁
KTV點歌系統(tǒng)報告(軟工)_第3頁
KTV點歌系統(tǒng)報告(軟工)_第4頁
KTV點歌系統(tǒng)報告(軟工)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 中 南 民 族 大 學(xué)計算機科學(xué)學(xué)院軟件工程設(shè)計報告報告名稱:KTV點歌系統(tǒng)需求分析編制人員:KTV點歌系統(tǒng)開發(fā)小組審核人員: 指導(dǎo)教師: 需求分析說明書引言編寫目的需求分析是軟件開發(fā)過程中一個非常重要的環(huán)節(jié),它的基本任務(wù)是準確地回答系統(tǒng)必須做什么。需求分析設(shè)計的好與壞直接影響到軟件開發(fā)的進程以及軟件質(zhì)量。需求分析的任務(wù)不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。背景說明本軟件稱為KTV點歌系統(tǒng) 。本軟件適合中小型KTV娛樂中心以及個人使用。隨著時代的進步,人們的生活變得越來越富裕,這時候的人們不僅僅是追求物質(zhì)上的享受,人

2、們對精神上的享受空前提高。而時代賦予現(xiàn)代人類的一大精神盛宴無疑是越來越多的流行樂,尤其是大多數(shù)的青少年更是離不開音樂。KTV就是這個時候運運而生,城市里越來越多的KTV(這里指KTV場所)出現(xiàn)在人們的生活中。因此,開發(fā)出一款受大眾歡迎的KTV系統(tǒng)是非常迫切需要的。術(shù)語定義術(shù)語名稱術(shù)語含義備注KTV點歌系統(tǒng)用于卡拉OK時進行點歌的軟件平臺一般由軟件開發(fā)商開發(fā)管理員可對該系統(tǒng)進行管理的用戶,權(quán)限高于普通用戶能使用本系統(tǒng)所有能,并且可以進行曲庫的更新普通用戶有使用該系統(tǒng)的權(quán)限的用戶只能使用基本功能,不能對曲庫進行更新操作參考文獻軟件工程導(dǎo)論(清華大學(xué)出版社 第五版) 軟件概述KTV點歌系統(tǒng)是以卡拉O

3、K為基礎(chǔ),利用計算機技術(shù)以及數(shù)據(jù)庫技術(shù)對客戶點歌以及歌曲的存儲進行很大改善的計算機應(yīng)用系統(tǒng)。本系統(tǒng)主要方便用戶在進行點歌時提供一個非常友好的交互界面,以及給系統(tǒng)管理員提供了一個最高權(quán)限,即是能對數(shù)據(jù)庫進行相應(yīng)操作,例如刪除曲庫中的歌曲,添加新的歌曲到曲庫中去。下圖為KTV點歌系統(tǒng)信息頂層圖:用戶用戶ID密碼信息KTV點歌系統(tǒng)ID密碼信息管理員 圖1 KTV點歌系統(tǒng)信息頂層圖三、需求規(guī)定1功能需求KTV點歌系統(tǒng)主要提供一個友好的界面給用戶進行卡拉OK,以及管理曲庫中的數(shù)據(jù),比如說更新曲庫,刪除不喜歡的歌曲等。本系統(tǒng)主要由以下兩部分組成:在進入系統(tǒng)之后首先是用登陸系統(tǒng),根據(jù)用戶輸入的內(nèi)容判斷用戶的

4、合法身份。合法用戶分為普通用戶和系統(tǒng)管理員,其中系統(tǒng)管理員擁有所有權(quán)限,而普通用戶沒有用戶管理和修改系統(tǒng)信息的權(quán)限。進入系統(tǒng)后,用戶可以進行相應(yīng)的合法操作。主要有:點歌、播放歌曲、切歌、對已選歌曲進行優(yōu)先和刪除操作。而管理員除了具有以上這些權(quán)限,還能夠?qū)ο到y(tǒng)的曲庫進行更新操作。下圖為KTV點歌系統(tǒng)的主要功能結(jié)構(gòu):KTV點歌系統(tǒng)KTV點歌系統(tǒng)普通用戶子系統(tǒng)系統(tǒng)用戶子系統(tǒng)主系統(tǒng)用戶管理設(shè)置系統(tǒng)參數(shù)更新曲庫用戶注冊用戶身份驗證用戶登錄用戶管理設(shè)置系統(tǒng)參數(shù)更新曲庫用戶注冊用戶身份驗證用戶登錄 圖2 KTV點歌系統(tǒng)主要功能模塊2外部借口需求用戶界面(1)采用WINDOWS的通用圖形界面,用戶界面友好。(

5、2)界面采用一致性,界面規(guī)范遵循WINDOWS軟件界面的規(guī)范。(3)提供錯誤處理。(4)提供信息提示,用多種信息提示當前用戶狀態(tài)、界面的功能。(5)提供方便的聯(lián)機幫助。硬件軟件接口系統(tǒng)軟件:Windows XP以及更高版本的Windows系統(tǒng)數(shù)據(jù)庫軟件:Microsoft SQL Server 2008硬件要求:Pentium II 450MHZ以上處理品,258MB以上內(nèi)存,20GB以上硬盤剩余空間。3性能需求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效地運行,科技進步先進個人申報系統(tǒng)應(yīng)該滿足以下的性能需求。系統(tǒng)處理的準確性和及時性系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。查詢時應(yīng)保證全率,

6、所有相應(yīng)字段包含查詢關(guān)鍵字的記錄都應(yīng)能查到。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作負荷,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足客戶的要求。系統(tǒng)的開放性和系統(tǒng)的可擴充性系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴充性。例如訂購方式(網(wǎng)訂),用戶查詢的需求也會不斷地更趨近完善。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的高速和擴充。要實現(xiàn)這一點,及通過系統(tǒng)的開放性來完成,即系統(tǒng)應(yīng)是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單地加入和養(yǎng)活系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新?lián)Q代。系統(tǒng)的易用性和易用維護系統(tǒng)是直接面對使用人員的,而使用人員往往地計算機關(guān)不是

7、非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶界面;針對用戶可能出現(xiàn)的使用總是要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。系統(tǒng)中涉及的數(shù)據(jù)是公司的相當重要的住處系統(tǒng)要提供方便的手段供系統(tǒng)維護人員進行數(shù)據(jù)的備份、日常的安全管理、系統(tǒng)意外崩潰時數(shù)據(jù)的恢復(fù)工作。系統(tǒng)的標準性系統(tǒng)在設(shè)計、開發(fā)、使用過程中都要涉及很多計算機硬件及軟件。所有這些都要符合主流國標標準、國家標準和行業(yè)標準。例如,在開發(fā)過程使用的操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、開發(fā)工具都必須符合通用標準,如規(guī)范的數(shù)據(jù)庫操縱界面。軟件屬性需求1)正確性要求發(fā)布的軟件達到用戶的預(yù)期目標,運行是基本無誤。2)可靠性在正常條件下,應(yīng)該不出故障。3)效率對于瀏覽、查詢

8、、增加、刪除、更新和密碼設(shè)置一般操作,要求及時響應(yīng),響應(yīng)時間應(yīng)在12秒內(nèi)。4)完整性 要求在發(fā)生意外時,保證數(shù)據(jù)不丟失。5)易用性 軟件界面符合當前主流軟件的操作習(xí)慣,晝?yōu)橹浽~的使用提供方便。6)可維護性 要求軟件運行發(fā)現(xiàn)錯誤時,能夠快、準確地對其定位、診斷和修改恢復(fù)。7)安全保密性要求提供身份驗證,只允許通過身份驗證的用戶使用本軟件。8)可理解性對于軟件提供的各種功能應(yīng)該一目了然,易于理解。9)數(shù)據(jù)的可交換性要求提供數(shù)據(jù)的導(dǎo)入/導(dǎo)出功能(只允許管理員具有此權(quán)限)??傮w設(shè)計說明書引言編寫目的根據(jù)可行性分析說明書、需求分析說明書,經(jīng)過認真仔細的討論以及認真的分析,我們對KTV點歌系統(tǒng)軟件的功能

9、劃分、數(shù)據(jù)結(jié)構(gòu)、軟件總體結(jié)構(gòu)的實現(xiàn)有了進一步的想法。我們將這些想法記錄下來,作為詳細設(shè)計說明書,為進一步設(shè)計軟件、編寫代碼打下基礎(chǔ)。項目背景本軟件稱為KTV點歌系統(tǒng) 。本軟件適合中小型KTV娛樂中心以及個人使用。隨著時代的進步,人們的生活變得越來越富裕,這時候的人們不僅僅是追求物質(zhì)上的享受,人們對精神上的享受空前提高。而時代賦予現(xiàn)代人類的一大精神盛宴無疑是越來越多的流行樂,尤其是大多數(shù)的青少年更是離不開音樂。KTV就是這個時候運運而生,城市里越來越多的KTV(這里指KTV場所)出現(xiàn)在人們的生活中。因此,開發(fā)出一款受大眾歡迎的KTV系統(tǒng)是非常迫切需要的??傮w設(shè)計KTV點歌系統(tǒng)是一種娛樂型的軟件管

10、理系統(tǒng)。使用本系統(tǒng)需要具備相應(yīng)的權(quán)限,也就是需要正確的用戶名及密碼,用戶分為普通用戶和管理員。登錄本系統(tǒng)后,可進行點歌、播放、暫停、切歌、優(yōu)先、電影欣賞等相應(yīng)的操作。本系統(tǒng)主要包括登錄模塊、視頻播放模塊、控制模塊、點歌模塊和數(shù)據(jù)庫模塊。功能模塊設(shè)計點歌方式包括歌手點歌、歌名點歌,控制包括播放、暫停、切歌和音量控制,管理員可以通過自己具有的權(quán)限對KTV點歌系統(tǒng)的曲庫進行更新操作。系統(tǒng)模塊分為以下幾個部分,如圖1所示。用戶登錄用戶登錄主控界面主控界面更新曲庫控 制點 歌更新曲庫控 制點 歌修改歌曲刪除歌曲載入歌曲音量控制切歌暫停播放修改歌曲刪除歌曲載入歌曲音量控制切歌暫停播放歌曲點歌歌手點歌歌曲點

11、歌歌手點歌 圖1 系統(tǒng)功能模塊設(shè)計流程下面著重介紹一下主控界面的搭建過程。安裝本系統(tǒng)后,打開程序,首先進入登錄界面,然后進入歡迎界面,若登錄成功,會自動進入主控界面。界面設(shè)計本系統(tǒng)打開之后,首先彈出的是登錄界面,讓用戶輸入正確的用戶名及密碼,待用戶信息輸入完成并驗證用戶信息無誤的時即可進入歡迎界面,隨后進入主控界面。至此,一切準備工作的已經(jīng)準備完成了,用戶可以根據(jù)自己的需要進行相應(yīng)的操作了。數(shù)據(jù)庫相關(guān)設(shè)計本系統(tǒng)的運行需要一個龐大的數(shù)據(jù)庫做后臺,本系統(tǒng)主要存儲的是音樂的MTV,每一首都會占用10MB到100MB的容量,并且音樂的數(shù)量也較為龐大,故對數(shù)據(jù)庫有很大的依賴性。數(shù)據(jù)庫有用戶管理數(shù)據(jù)庫以及

12、曲庫數(shù)據(jù)庫,用戶管理數(shù)據(jù)庫用來存儲用戶的相關(guān)信息,曲庫數(shù)據(jù)庫則是存儲歌曲的相關(guān)信息。圖2為用戶管理數(shù)據(jù)庫表,圖3為管理員數(shù)據(jù)庫表,圖4為曲庫數(shù)據(jù)庫表:列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束用戶名char20有密碼char6無 圖2 用戶管理數(shù)據(jù)庫表列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束用戶名char20有密碼char6無 圖3 管理員數(shù)據(jù)庫表列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束歌手char 20 無歌名char 30 無語種 char 10 無 圖3 曲庫數(shù)據(jù)庫表功能系統(tǒng)主控界面打開以后,用戶就可以很方便地進行相應(yīng)的操作。首先,進行歌曲選擇,可以通過歌手點歌和歌名點歌兩種方式進行點歌,歌曲點好之后就可以開始進行播放

13、了,用戶可進行播放、暫停、切歌以及音量調(diào)節(jié)等播放控制。當然,對已經(jīng)預(yù)選好的歌曲,如果不滿意,可以進行刪除的操作,如果希望所選的歌曲先于之前的歌曲播放,可以點擊優(yōu)先按鈕。如果曲庫中的歌曲用戶不喜歡或者是需要添加自己喜歡的歌曲,那么用戶可以獲取管理員權(quán)限對曲庫進行刪除、添加以及修改的操作。模塊結(jié)構(gòu)設(shè)計登錄模塊程序開始運行時,需要用戶提供一定的權(quán)限,才能使用本系統(tǒng)。因此,首先彈出登陸框,提醒用戶登錄系統(tǒng),若用戶不存在或密碼錯誤,登錄失敗,提醒用戶用戶名或密碼錯誤;若需要注冊新用戶,直接點擊注冊按鈕進行注冊。登錄成功后系統(tǒng)就可以進行正常的工作了。視頻播放模塊用戶點好歌之后希望能夠觀看字母或者視頻,這是

14、就需要提供用戶一個用于播放視頻格式文件的模塊。控制模塊控制模塊是本系統(tǒng)中很重要的一個模塊,用戶可以通過控制模塊對系統(tǒng)進行相應(yīng)的操作,比如說播放歌曲,暫停播放,切換歌曲,音量調(diào)節(jié),觀看電影,刪除已選歌曲,優(yōu)先選中的歌曲等等??傊?,通過該模塊用戶可以更方便地進行卡拉OK。點歌模塊系統(tǒng)進入主控界面之后,會加載一首默認的歌曲,當然不會自動播放,因為有時候用戶不需要。若要點唱其他的歌曲,則需要進入點歌模塊,點歌模塊可以分為歌手點歌和歌名點歌,用戶可以輸入歌手名或者歌名進行點歌。數(shù)據(jù)庫模塊數(shù)據(jù)庫設(shè)計是系統(tǒng)設(shè)計中的一個很重要的環(huán)節(jié),本系統(tǒng)只需要一個數(shù)據(jù)庫,其中包括三張表,一張用戶管理表,一張管理員表和一張曲

15、庫表。詳細設(shè)計報告一、引言1.編寫目的本說明書基于之前編寫的需求分析報告與總體設(shè)計報告而編寫的,本說明書主要提供了本系統(tǒng)每個模塊的精確描述。通過本說明書,讀者可以很清楚地看到本系統(tǒng)的詳細設(shè)計細節(jié)。2.背景本系統(tǒng)名為:KTV點歌系統(tǒng)。本系統(tǒng)屬于娛樂性的管理軟件系統(tǒng),主要用于KTV娛樂場所。3.定義術(shù)語名稱術(shù)語含義備注KTV點歌系統(tǒng)用于卡拉OK時進行點歌的軟件平臺一般由軟件開發(fā)商開發(fā)管理員可對該系統(tǒng)進行管理的用戶,權(quán)限高于普通用戶能使用本系統(tǒng)所有能,并且可以進行曲庫的更新普通用戶有使用該系統(tǒng)的權(quán)限的用戶只能使用基本功能,不能對曲庫進行更新操作注冊用于注冊新用戶若用戶目前沒有使用該系統(tǒng)的權(quán)限,可以注

16、冊歡迎界面登錄系統(tǒng)后就進入的一個界面通過本界面給予用戶一種友好的感覺主界面一切操作的平臺該界面上集成了點歌系統(tǒng)的大多數(shù)功能點歌界面用于選擇用戶喜愛的歌曲通過點擊主界面上的點歌按鈕即可進入該界面導(dǎo)入歌曲界面用于添加新的歌曲到曲庫當中的界面只有系統(tǒng)管理員才有該權(quán)限刪除歌曲界面用于刪除用戶不喜歡的歌曲只有系統(tǒng)管理員才有該權(quán)限登錄界面用戶登錄該系統(tǒng)的入口界面打開該系統(tǒng),首先進入該界面,需要提供相應(yīng)的權(quán)限4.參考資料軟件工程導(dǎo)論(清華大學(xué)出版社 第五版)C+ Builder程序設(shè)計導(dǎo)學(xué)(清華大學(xué)出版社 劉光)數(shù)據(jù)庫系統(tǒng)概論(高等教育出版社 王珊 薩師煊)Microsoft SQL Server 2005

17、數(shù)據(jù)庫設(shè)計二、系統(tǒng)的結(jié)構(gòu)1.數(shù)據(jù)庫設(shè)計列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束用戶名char20有密碼char6無 圖2 用戶管理數(shù)據(jù)庫表列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束用戶名char20有密碼char6無 圖3 管理員數(shù)據(jù)庫表列名數(shù)據(jù)類型數(shù)據(jù)長度唯一性約束歌手char 20 無歌名char 30 無語種 char 10 無 圖3 曲庫數(shù)據(jù)庫表2.前臺設(shè)計 用戶登錄用戶登錄歡迎界面歡迎界面主控界面主控界面更新曲庫控 制點 歌更新曲庫控 制點 歌修改歌曲刪除歌曲載入歌曲音量控制切歌暫停播放修改歌曲刪除歌曲載入歌曲音量控制切歌暫停播放歌曲點歌歌手點歌歌曲點歌歌手點歌 圖1 系統(tǒng)功能模塊三、登陸界面模塊設(shè)計說明

18、主要介紹了登錄界面模塊的詳細設(shè)計。1.模塊描述登錄窗口是用戶與本系統(tǒng)“見面”的第一個界面。在該界面上需要用戶輸入用戶名和用戶密碼登錄系統(tǒng),其中還需要選擇登錄的用戶類型(普通用戶或者管理員),若用戶沒有權(quán)限登錄該系統(tǒng)或者說沒有注冊該系統(tǒng),可以從該界面進入注冊界面,進行注冊。由于本界面是系統(tǒng)與用戶最先見面的界面,故要充分考慮界面的美觀。2.功能通過本界面可以登錄到系統(tǒng),若用戶沒有權(quán)限登錄該系統(tǒng)或者說用戶還為注冊過該系統(tǒng),則可以通過本界面進入注冊界面,進行新用戶注冊。3.性能本模塊對于用戶輸入的用戶名和密碼要進行嚴格的審查。若用戶還沒有輸入用戶名,應(yīng)提示用戶用戶名未輸入;若用戶未輸入用戶密碼應(yīng)提示用

19、戶密碼未輸入;若兩者都沒有輸入,則提醒用戶用戶名和密碼還沒有輸入。用戶輸入完成后,應(yīng)對數(shù)據(jù)庫中的用戶表進行查詢。若用戶不存在則提示用戶用戶名不存在;若用戶存在而密碼不正確應(yīng)提示用戶密碼錯誤;若輸入均無誤,則直接進入歡迎界面。本模塊要有具有很完整的檢錯機制以及相應(yīng)的提示消息。4.輸入項用戶輸入用戶名和密碼作為用戶使用該系統(tǒng)的權(quán)限,用戶名和密碼都必須存在數(shù)據(jù)庫中的用戶表中并且要都輸入正確。5.輸出項本模塊沒有輸出,只是讓用戶輸入自己登陸系統(tǒng)的權(quán)限。6.設(shè)計方法(算法)需要用到兩個Label控件,兩個Edit控件,兩個BitBtn,兩個RadioButton,一個Button。7.流程邏輯選擇用戶類

20、型選擇用戶類型輸入密碼輸入用戶名輸入密碼輸入用戶名 輸入完成 輸入完成查找數(shù)據(jù)庫表中用戶查找數(shù)據(jù)庫表中用戶判斷用戶明和密碼是否存在或者是否正確判斷用戶明和密碼是否存在或者是否正確用戶名或密碼不正確 用戶名不存在進入歡迎界面進入歡迎界面8.接口如果本模塊所要求用戶輸入的用戶名存在并且用戶密碼正確了之后就可以進入到接下來的歡迎界面模塊。9.存儲分配本模塊不需要占用太多的存儲空間,用戶信息均存放在數(shù)據(jù)庫中。10.限制條件本模塊在用戶正確輸入用戶信息的情況下不會產(chǎn)生任何問題,但是用戶名只能有大于0并且小于20個字符。密碼最大為6位。11.測試計劃測試該模塊時,先在數(shù)據(jù)庫中的用戶表中添加幾個用戶名和對應(yīng)

21、的密碼,然后通過輸入數(shù)據(jù)庫表中已有的用戶信息對本模塊進行測試。12.尚未解決的問題由于登錄界面本身的結(jié)構(gòu)就相對簡單,所以目前沒有上位解決的問題(滿足限制條件的情況下)。四、注冊界面模塊設(shè)計說明若用戶沒有足夠的權(quán)限登錄該系統(tǒng),則可以選擇點擊注冊按鈕進行注冊。1.模塊描述本模塊主要是用于新用戶進行注冊,屆時,用戶需要輸入完整的信息。2.功能通過本模塊,用戶可以獲取登錄該系統(tǒng)的權(quán)限,但是必須輸入完整的用戶信息。3.性能對于用戶輸入的錯誤信息本模塊必須具有較強處理錯誤能力,否則會對后臺數(shù)據(jù)庫造成影響。4.輸入項用戶需要提供用戶名,用戶密碼以及確認密碼。5.輸出項本模塊將用戶填寫的正確信息寫到數(shù)據(jù)庫中的

22、用戶表中。6.設(shè)計方法(算法)本模塊需要用戶輸入三個信息,分別是:用戶名、用戶密碼以及確認密碼。只有在三個信息都輸入的情況下本模塊才會檢查用戶輸入的信息。首先,本模塊需要對用戶輸入的用戶名進行查詢,若數(shù)據(jù)庫中的用戶表中存在該用戶,則不能注冊;若不存在,檢查用戶的用戶密碼和確認密碼是否一致,不一致要求用戶重新輸入,若一致則注冊成功。7.流程邏輯開 始開 始用戶輸入用戶名,用戶密碼以及確認密碼用戶輸入用戶名,用戶密碼以及確認密碼用戶是否存在?用戶密碼以及確認密碼是否一致用戶是否存在?用戶密碼以及確認密碼是否一致 用戶密碼和確認密碼不一致 用戶已存在返回登錄界面返回登錄界面8.接口打開本系統(tǒng)進入登錄

23、界面,點擊“注冊”按鈕,注冊完成之后進入登錄界面。9.存儲分配本模塊只是用戶輸入用戶基本信息,故不需要太大的空間開銷。10.限制條件用戶名長度需大于0小于等于20個字符,用戶密碼必須小于等于6。不能注冊已有的用戶名。11.測試計劃多次進行注冊,然后以注冊的用戶登錄系統(tǒng),可以通過Microsoft SQL Server 2008打開數(shù)據(jù)庫查看用戶表中注冊的用戶是否已經(jīng)寫到用戶表中,對輸入錯誤的情況在限制條件內(nèi)反復(fù)地進行測試,直至達到預(yù)期的效果為止。12.尚未解決的問題鑒于本模塊的簡單性,故在其上所需要實現(xiàn)的功能均已經(jīng)實現(xiàn),故目前不存在未解決的問題。五、歡迎界面設(shè)計說明登錄系統(tǒng)成功后,首先進入的是

24、歡迎界面,該界面只是給用戶一個了解該系統(tǒng)友好交互。1.模塊描述本模塊是該系統(tǒng)中最簡單的一個模塊,因為它不需要實現(xiàn)任何功能,在其上只需要一個按鈕進入主界面就可以了。2.功能本模塊只作為一個從登錄界面到主界面的一個過渡,無什么實際功能。3.性能無性能需求。4.輸入項登錄成功后直接進入該界面。5.輸出項單擊“進入”按鈕可直接進入系統(tǒng)主界面。6.設(shè)計方法(算法)在該界面上添加一張圖片作為美化,一個按鈕7.流程邏輯無。8.接口主控界面歡迎界面登錄系統(tǒng)主控界面歡迎界面登錄系統(tǒng) 登錄成功9.存儲分配無需分配多大的存儲空間。10.限制條件無限制條件。11.測試計劃無。12.尚未解決的問題功能非常簡單,無未解決

25、的問題。六、主控界面設(shè)計說明本界面集成了本系統(tǒng)的核心功能,系統(tǒng)的主要操作也集中在該界面。所以,設(shè)計過程中,對本系統(tǒng)的相關(guān)需求更是要有嚴格要求。1.模塊描述本模塊是本系統(tǒng)的核心部分,系統(tǒng)的主要功能也是設(shè)計在該模塊中。主要有點歌功能,播放控制功能,更新數(shù)據(jù)庫功能(系統(tǒng)管理員才具有的權(quán)限)。其中點歌功能需要添加另一個模塊。播放控制功能則可以通過一些按鈕實現(xiàn),其中主要包括播放功能,暫停功能,停止功能,切歌功能,音量加功能,音量減功能,刪除選擇歌曲功能,優(yōu)先選擇歌曲功能。2.功能本界面主要功能如下:播放功能,暫停功能,停止功能,切歌功能,音量加功能,音量減功能,刪除選擇歌曲功能,優(yōu)先選擇歌曲功能。3.性

26、能系統(tǒng)的穩(wěn)定與否主要體現(xiàn)在本模塊,本模塊必須具有較強的處理異常能力,否則會導(dǎo)致系統(tǒng)崩潰。4.輸入項在本模塊,用戶無需輸入任何數(shù)據(jù),只需用鼠標進行操作即可5.輸出項這是系統(tǒng)的最終模塊,故無輸出。6.設(shè)計方法(算法)本界面提供完整的用戶操作,每項功能之間會有間接的聯(lián)系,所以在設(shè)計的過程當中,應(yīng)充分考慮功能間的聯(lián)系。只有播放列表中有歌曲,播放的控制才有效。7.流程邏輯點 歌點 歌播放控制播放控制音量減音量加切歌停止暫停播放音量減音量加切歌停止暫停播放8.接口登錄系統(tǒng)成功后,點擊播放界面上的“進入”按鈕即可進入本模塊。通過本模塊,可以進入點歌界面,如果是系統(tǒng)管理員登錄的該系統(tǒng),可以進入添加歌曲界面和刪

27、除歌曲界面。9.存儲分配本系統(tǒng)的主要數(shù)據(jù)存放在硬盤中,系統(tǒng)占用的存儲空間僅10多兆存儲容量。10.限制條件本系統(tǒng)的播放器是微軟開發(fā)的一款多媒體插件Windows Media Player 11,故在很多實現(xiàn)手段上都受限于本插件。11.測試計劃由于本播放器插件只能支持avi格式的MTV,故在測試的時候就得使用avi格式的MTV進行測試。首先在播放列表中有歌曲的情況下進行每個功能的測試,然后在沒有歌曲的情況下進行測試,增強系統(tǒng)的處理用戶異常操作能力。12.尚未解決的問題由于資源的限制,沒有對曲庫進行很好的分類,如“古典歌曲”,“流行歌曲”等等。七、點歌界面設(shè)計說明點歌界面提供了主控界面的輸入,用戶

28、需要進入該界面進行選歌操作,選擇自己喜歡的歌曲,本模塊提供了兩種點歌方式,即歌手點歌和歌名點歌。1.模塊描述用戶通過該界面選擇自己喜歡的歌曲,然后將其添加到播放列表當中。用戶可以按照歌手名來選擇歌曲,用戶選擇了這種方式,該界面會列出曲庫中所有用戶輸入的歌手的歌;若用戶按照歌名來點歌,則會列出所有同名的歌曲。用戶找到自己喜歡的歌曲,單擊該歌曲,然后單擊“選定”按鈕則可把相應(yīng)的歌曲添加到播放列表當中。2.功能通過這個模塊,根據(jù)用戶的操作,提供相應(yīng)的輸入給主控界面。3.性能需要對用戶輸入的任何情況進行查詢,也需要給出用戶的錯誤輸入進行相應(yīng)的操作提示。4.輸入項登錄系統(tǒng)后,進入主界面,單擊“點歌”按鈕

29、即可進入該界面,用戶需要選擇選歌方式,選歌方式有“歌手點歌”和“歌名點歌”,然后輸入歌手名或者歌曲名。進行選擇。5.輸出項從本界面添加的歌曲將作為主界面的輸入。也就是本界面輸出的是播放曲目。6.設(shè)計方法(算法)本界面需要訪問數(shù)據(jù)庫中的曲庫表,需要對里面的歌曲進行查詢操作,用戶如果沒有選擇選歌類型則不能進行點歌,并且用戶需要輸入歌手名或者歌曲名才可以進行查詢操作,每單擊一下“選定”按鈕,就向播放列表中添加一首歌曲。7.流程邏輯開 始開 始選擇點歌方式選擇點歌方式輸入歌手名或者歌名輸入歌手名或者歌名單擊單擊“確定”選中歌曲選中歌曲單擊單擊“選定”按鈕返回主界面返回主界面8.接口點歌界面主界面點歌界

30、面主界面 單擊“選歌”八、添加歌曲界面設(shè)計說明如果用戶喜歡的歌曲曲庫中找不到,那么可以選擇導(dǎo)入歌曲,將喜愛的歌曲添加到曲庫當中。1.模塊描述本模塊需要輸入完整的歌曲信息,這一個模塊只有系統(tǒng)管理員才具備操作的權(quán)限。2.功能添加歌曲到曲庫當中。3.性能具備較強的檢錯能力,以防止管理員的錯誤的操作破壞數(shù)據(jù)庫。4.輸入項輸入歌曲的完整信息。5.輸出項將管理員輸入的歌曲添加到曲庫當中。九、刪除歌曲界面設(shè)計說明如果管理員對曲庫中的歌曲不喜歡,或者是出于其他的原因,需要刪掉曲庫中的垃圾歌曲,則需要進入該界面進行刪除歌曲操作。1.模塊描述本模塊能夠?qū)⒐芾韱T輸入的歌曲信息從曲庫中刪除掉。2.功能刪除曲庫中的垃圾

31、信息。3.性能具備較強的檢錯能力,以防止管理員的錯誤的操作破壞數(shù)據(jù)庫。4.輸入項輸入曲庫中存在的歌曲信息。5.輸出項刪除管理員輸入的歌曲。6.限制條件管理員只能輸入曲庫中存在的歌曲,如果曲庫中不存在,那么會提示管理員曲庫中不存在該歌曲。只有管理員才具備操作本模塊的權(quán)限。7.測試計劃首先對存在曲庫中的歌曲進行刪除操作,然后對其中沒有的歌曲進行刪除操作,并且還可以與添加歌曲模塊相互配合進行測試。系統(tǒng)測試登錄界面測試系統(tǒng)界面用戶登錄 用戶密碼錯誤 用戶名不存在注冊用戶測試注冊新用戶界面注冊已有的用戶密碼不一致注冊成功 點歌測試點歌界面歌手點歌 歌名點歌主控界面測試主控界面播放歌曲 添加歌曲測試添加歌

32、曲界面添加已有歌曲 添加不存在的歌曲 刪除歌曲測試刪除歌曲界面刪除不存在的歌曲 刪除存在的歌曲附錄資料:不需要的可以自行刪除語言的常用庫函數(shù)函數(shù)1。absread()讀磁盤絕對扇區(qū)函數(shù)原形:int absread(int drive,int num,int sectnum,void *buf)功能:從drive指定的驅(qū)動器磁盤上,sectnum指定的邏輯扇區(qū)號開始讀取(通過DOS中斷0 x25讀取)num個(最多64K個)扇區(qū)的內(nèi)容,儲存于buf所指的緩沖區(qū)中。參數(shù):drive=0對應(yīng)A盤,drive=1對應(yīng)B盤。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)2。abswrite()寫磁

33、盤絕對扇區(qū)函數(shù)原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驅(qū)動器)、1(B驅(qū)動器)、nsects=要寫的扇區(qū)數(shù)(最多64K個);lsect=起始邏輯扇區(qū)號;buffer=要寫入數(shù)據(jù)的內(nèi)存起始地址。功能:將指定內(nèi)容寫入(調(diào)用DOS中斷0 x26)磁盤上的指定扇區(qū),即使寫入的地方是磁盤的邏輯結(jié)構(gòu)、文件、FAT表和目錄結(jié)構(gòu)所在的扇區(qū),也照常進行。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點數(shù)的函數(shù)原形:double atof(const char *s)功能:把s

34、所指向的字符串轉(zhuǎn)換成double類型。s格式為:符號數(shù)字.數(shù)字E符號數(shù)字返回值:字符串的轉(zhuǎn)換值。頭文件:math.h、stdlib.h函數(shù)4。atoi()將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)原形:int atoi(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成int類型。s格式為:符號數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)5。atol()將字符串轉(zhuǎn)換成長整型數(shù)的函數(shù)原形:long atol(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成long int類型。s格式為:符號數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)6。

35、bcd()把一個數(shù)轉(zhuǎn)換成對應(yīng)的BCD碼的函數(shù)原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意:BCD碼的精度可達17位。參數(shù)decimals是可選的,用來指定轉(zhuǎn)換后小數(shù)點后的位數(shù)。頭文件:bcd.h函數(shù)7。bdos()原形int bdos(int fnum,unsigned dx,unsigned al)其中fnum是系統(tǒng)調(diào)用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;功能DOS系統(tǒng)調(diào)用(INT21H)返回值A(chǔ)X中的值函數(shù)8。biosdisk()調(diào)用BIOS磁盤驅(qū)動程序函數(shù)原形:char biosd

36、isk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中斷0 x13,直接調(diào)用BIOS進行磁盤操作參數(shù):(1)cmd:2-數(shù)據(jù)以每扇區(qū)512字節(jié)的格式讀入buffer,起始扇區(qū)由head、track和sector定,扇區(qū)數(shù)由nsects定。3-將buffer中的數(shù)據(jù)按每扇區(qū)512字節(jié)寫入磁盤。4-對扇區(qū)進行數(shù)據(jù)校驗。6-格式化一個磁盤并對化扇區(qū)設(shè)置化標志。8-返回當前驅(qū)動器參數(shù)在buffer的前4個字節(jié)中。10-長讀,每扇區(qū)讀入512字節(jié)加上額外的4個字節(jié)。11-長寫,每扇區(qū)寫入512字

37、節(jié)加上額外的4個字節(jié)。(2)drive:0-第一個軟驅(qū);1-第二個軟驅(qū);0 x80-第一個硬驅(qū)(3)head:磁頭(4)track:磁道(5)sector:扇區(qū)(6)nsects:扇區(qū)數(shù)(7)buffer:數(shù)據(jù)緩沖區(qū),定義為unsigned char buffer;返回值:0 x00-操作成功0 x01-錯誤命令0 x03-企圖寫具有寫保護的磁盤0 x07-驅(qū)動器參數(shù)設(shè)置錯誤0 x10-磁盤讀/CRC/ECC錯誤頭文件:bios.h注:對于硬盤主引導(dǎo)記錄扇區(qū)head=0,track=0,sector=1函數(shù)9。biosprint()調(diào)用BIOS打印機I/O接口的函數(shù)原形:int biospri

38、nt(int cmd,int abyte,int port)功能:通過BIOS中斷0 x17在由參數(shù)port指定的打印機上完成各種打印機功能。port=0(LPT1)=1(LPT2);cmd=0(打印字符abyte)1(初始化打印機端口)2(讀打印機狀態(tài));abyte=0-255;返回值:打印機狀態(tài)位0(設(shè)備超時);位3(I/O出錯);位4(打印機已選擇);位5(沒紙);位6(打印機確認);位7(不忙)頭文件:bios.h函數(shù)10。calloc()分配內(nèi)存函數(shù)原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一塊內(nèi)存,將該內(nèi)存的內(nèi)容全部清。返回

39、值:返回指向新分配內(nèi)存的指針??臻g不夠則返回NULL。頭文件:stdlib.h、calloc.h函數(shù)11。ceil()原形double ceil(double num)功能求不小于num的最小雙精度整數(shù)頭文件math.h函數(shù)12。cgets()讀字符串函數(shù)原形:char *cgets(char *str)功能:從控制臺讀入一個字符串,并將該字符串(和字符串長度)存入有str所指向的地址中。注意:在調(diào)用cgets之前,必須將要讀入的字符串最大長度存入str0中,返回時str1被設(shè)置為實際讀入的字符數(shù)。實際字符串內(nèi)容從str2開始,以空字符(0)結(jié)尾。返回值:指向str2的指針。頭文件:conio

40、.h函數(shù)13。chdir()改變當前目錄的函數(shù)原形:int chdir(const char *path)功能:把由path指定的目錄改為當前目錄。path參數(shù)中可以指定驅(qū)動器號,如a:ddd, 但只是改變該驅(qū)動器上的當前目錄,對當前活動驅(qū)動器上的當前目錄無影響。返回值:0(成功);-1(失敗)頭文件:dir.h函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)原形:int _chmod(const char *path,int func,int attrib)功能:讀取(func=0時)或設(shè)置(func=1時)DOS文件屬性。attrib=FA_RDONLY 只讀attrib=FA_HIDDE

41、N 隱藏文件attrib=FA_SYSTEM 系統(tǒng)文件attrib=FA_LABLE 卷標attrib=FA_DIREC 目錄attrib=FA_ARCH 檔案 返回值:失敗時返回-1。成功時返回文件的屬性字節(jié),如果 返回值&FA_RDONLY 不等于0,則文件是只讀文件;頭文件:io.h、dos.h函數(shù)15。chmod()改變文件存取權(quán)限的函數(shù)原形:int chmod(const char *path,int amode)功能:根據(jù)amode的值,設(shè)置由path所指文件的存取權(quán)限。amode的值存取權(quán)限S_IWRITE 允許寫S_IREAD允許讀(只讀)S_IREAD|S_IWRITE 可讀

42、可寫 返回值:0(成功);-1(失敗)頭文件:io.h、sysstat.h函數(shù)16。clock()原形long clock(void)功能測得從程序開始到調(diào)用處處理機所用的時間頭文件time.h函數(shù)17。close()關(guān)閉文件函數(shù)原形:int close(int handle)功能:關(guān)閉由文件句柄所指向的文件,句柄是調(diào)用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數(shù)并不在文件末尾寫一個Ctrl-Z字符,如果想用該字符結(jié)束文件,必須顯式地給出該字符。返回值:0(成功);-1(失敗)頭文件:io.h函數(shù)18。closegrap

43、h()關(guān)閉圖形函數(shù)原形:void far closegraph(void)功能:釋放圖形系統(tǒng)分配的所有內(nèi)存,將屏幕恢復(fù)到調(diào)用initgraph之前的模式。頭文件:graphics.h函數(shù)19。cos()原形double cos(double arg)功能計算arg(弧度)的余弦值頭文件math.h函數(shù)20。ctrlbrk()設(shè)置ctrl-break處理程序的函數(shù)原形:void ctrlbrk(int(*handle)(void)功能:修改中斷向量0 x23,使用新的ctrl-break中斷處理函數(shù)。用法:ctrlbrk(函數(shù)名);先定義函數(shù):int 函數(shù)名(void).頭文件:dos.h函數(shù)2

44、1。delay()暫停函數(shù)原形:void delay(unsigned milliseconds)功能:暫停當前所執(zhí)行的程序milliseconds毫秒。頭文件:dos.h函數(shù)22。disable()屏蔽中斷的宏原形:void disble(void)功能:屏蔽中斷,只允許從外部設(shè)備來的不可屏蔽中斷(NMI)。頭文件:dos.h函數(shù)23。enable()開硬件中斷的宏原形:void enable(void)功能:開放中斷,允許接受任何設(shè)備產(chǎn)生的中斷。頭文件:dos.h函數(shù)24。exec()加載并運行其它程序的函數(shù)族execl(),execle(),execlp(),execlpe(),exec

45、v(),execve(),execvp(),execvpe()原形 int execl(char *path,char *arg0,*arg1,.,*argn,NULL)int execle(char *path,char *arg0,*arg1,.,*argn,NULL,char *env)int execlp(char *path,char *arg0,*arg1,.,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,.,*argn,NULL,char *env)int execv(char *path,char *argv)int ex

46、ecve(char *path,char *argv,char *env)int execvp(char *path,char *argv)int execvpe(char *path,char *argv,char *env)其中,path是調(diào)用的子程序的文件名,在exec后面的后綴具有某種功能:p表示函數(shù)能夠在由DOS環(huán)境變量PATH的目錄中搜索子進程文件,如果path中未指明文件所在目錄,函數(shù)將首先在當前目錄中找,然后在DOS環(huán)境變量指定的目錄中找。l表示參數(shù)指針(arg0,.,argn)按單獨參數(shù)傳送。當預(yù)先知道要傳送的參數(shù)個數(shù)時,通常用帶后綴l的函數(shù)。v表示參數(shù)指針(arg0,.,a

47、rgn)按指針數(shù)組傳送。當要傳送的參數(shù)可變時,使用帶后綴v的函數(shù)。e表示參數(shù)env可以傳送到子進程,該函數(shù)可用來修改子進程的環(huán)境。若無e后綴,子進程將繼承父進程的環(huán)境。注意:arg0+.+argn,或arg0+.+argn的總長度必需小于128字節(jié)。當調(diào)用exec函數(shù)時,原先已經(jīng)打開的文件在子進程中仍然是打開的。功能:加載并運行其它程序,調(diào)用時必須有足夠的內(nèi)存空間用于加載和執(zhí)行子程序,子程序?qū)⒏采w父程序。頭文件:process.h 函數(shù)25。farcalloc()從遠堆中分配內(nèi)存的函數(shù)原形:void far *farcalloc(unsigned long nunits,unsigned lo

48、ng unitsz)功能:從遠堆中為包含nunits個元素的數(shù)組分配內(nèi)存,每一區(qū)unitsz字節(jié)長。用法:fptr=farcalloc(數(shù)目,sizeof(char);先定義:char far *fptr;注意:所有可用RAM能被分配;大于64的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配塊的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)26。farfree()從遠堆中釋放一塊已分配內(nèi)存的函數(shù)原形:void farfree(void far *block)頭文件:alloc.h函數(shù)27。farmalloc()從遠堆中分配內(nèi)存的函數(shù)原形:void far *f

49、armalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字節(jié)數(shù));先定義char far *fptr;功能:從遠堆中分配長nbytes字節(jié)的內(nèi)存。注意:所有可用RAM能被分配;大于64的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配內(nèi)存的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)28。farrealloc()調(diào)整遠堆中已分配塊的函數(shù)原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回調(diào)整后的新內(nèi)存地址。若不能重新分配,則返回N

50、ULL。頭文件:alloc.h函數(shù)29。fclose()關(guān)閉一個流函數(shù)原形:int fclose(FILE *stream)使用方式:fclose(文件指針名);其中文件指針名=fopen();功能:關(guān)閉指定的流,關(guān)閉前清除所有與stream相聯(lián)的緩沖區(qū),釋放系統(tǒng)分配的緩沖區(qū),但由setbuf設(shè)置的緩沖區(qū)不能自動釋放。返回值:0(成功);EOF(失敗)頭文件:stdio.h函數(shù)30。fcloseall()關(guān)閉打開的流的函數(shù)原形:int fcloseall(void)功能:關(guān)閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設(shè)置的流除外。返回值:關(guān)閉流的總數(shù)。如

51、果發(fā)現(xiàn)錯誤則返回EOF。頭文件:stdio.h 函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)原形int feof(FILE *fp)返回值文件結(jié)束返回非0值,否則返回0。頭文件stdio.h函數(shù)32。fgets()從流中讀取一字符串的函數(shù)原形:char *fgets(char s,int n,FILE *stream)使用格式:fgets(字符串指針,字符個數(shù),文件指針)功能:從輸入流stream中讀入字符存到s串中。當讀了n-1個字符或遇到換行符時,函數(shù)停止讀過程。fgets在s串尾保留換行字符。讀入的最后一個字符后面加一個空字符。返回值:成功時返回字符串參數(shù)s,出錯或遇到文件結(jié)束時,返回N

52、ULL。頭文件:stdio.h函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)調(diào)用方式:整形數(shù)=findfirst(文件名,&結(jié)構(gòu)變量名,屬性常數(shù)組合(如0 x26);其中定義struct ffblk 結(jié)構(gòu)變量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;/要檢索的文件名struct ffblkchar ff_reserved21;char ff_attrib;/被檢索的文件屬性unsigned ff_ftime;/最后修改的時間/(0-4位:秒數(shù)/2;5-10位:分數(shù);11-15位:小時數(shù)

53、)unsigned ff_fdate;/最后修改的日期/(0-4位:日;5-8位:月;9-15位:年減1980)long ff_fsize;/文件大小char ff_name13;/組名*buffer;int attr;/要檢索的文件屬性功能:檢索由path和attr指定的文件,把結(jié)果返回到buffer。findfirst返回關(guān)于第一個指定文件的信息,findnext繼續(xù)檢索。返回值:0(檢索成功),-1(沒有找到指定的文件)屬性常數(shù):FA_NORMAL(0 x00)含意:Normal file, no attributes FA_RDONLY(0 x01)含意:只讀FA_HIDDEN(0 x

54、02)含意:隱含文件FA_SYSTEM(0 x04)含意:系統(tǒng)文件FA_LABEL(0 x08) 含意:卷標FA_DIREC(0 x10) 含意:子目錄FA_ARCH(0 x20)含意:修改的文件Archive頭文件:dir.h(dos.h)函數(shù)34。floodfill()填充區(qū)域的函數(shù)原形:void far floodfill(int x,int y,int border)功能:在圖形設(shè)備上用顏色border圍起來的區(qū)域?qū)⒂卯斍疤畛漕伾畛洹?x,y)是待填充區(qū)域的起點,若起點在封閉區(qū)域內(nèi),則區(qū)域內(nèi)被填充;若起點在封閉區(qū)域外,則區(qū)域外被填充。頭文件:graphics.h函數(shù)35。floor(

55、)原形double floor(double num)功能求不大于num的最大雙精度整數(shù)頭文件math.h函數(shù)36。fnmerge()建立文件路徑函數(shù)原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:dirname.ext,放在path頭文件:dir.h函數(shù)37。fnsplit()分解完整的路徑名函數(shù)原形:int fnsplit(char *path,const char *drive,const char *dir,const ch

56、ar *name,const char *ext)功能:把文件名路徑path分成4個部分存放。其中drive中有冒號;dir中有開始和結(jié)尾的反斜杠;ext包括開始圓點返回值:如果有擴展名,則返回值&EXTENSION!=0如果有文件名,則返回值&FILENAME!=0如果有目錄名,則返回值&DIRECTORY!=0如果有驅(qū)動器號,則返回值&DIRVE!=0頭文件:dir.h 函數(shù)38。fopen()打開一個流函數(shù)原形:FILE *fopen(const char *filename,const char *mode)功能:打開用filename指定的文件,并使其與一個流相聯(lián)。使用方式:文件指針

57、名fopen(文件名,處理方式)處理方式?。簉t打開一個文本文件,只能讀。wt生成一個文本文件,只能寫。若文件存在則被重寫。at打開一個文本文件,只能在文件尾部添加。rb打開一個二進制文件,只能讀。wb生成一個二進制文件,只能寫。ab打開一個二進制文件,只能在文件尾部添加。rt+ 打開一個文本文件,可讀可寫。wt+ 生成一個文本文件,可讀可寫。at+ 打開一個文本文件,可讀可添加。rb+ 打開一個二進制文件,可讀可寫。wb+ 生成一個二進制文件,可讀可寫。ab+ 打開一個二進制文件,可讀可添加。返回值:指明流的指針(成功時)或NULL(失敗時)注:需先定義 FILE *文件指針名;文件名若用

58、argv1代替,則可使用命令行形式指定文件名函數(shù)39。FP_OFF()獲取遠地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和設(shè)置遠指針*p的偏移量返回值:偏移量頭文件:dos.h 函數(shù)40。fprintf()傳送輸出到一個流中的函數(shù)原形:int fprintf(FILE *stream,const char *format,argument,.)功能:向文件指針指向的文件輸出ASC代碼向顯示器輸出錯誤信息 使用形式:fprintf(文件指針,輸出格式,輸出項系列);fprintf(stderr,錯誤信息);使用實例:fprintf(stream,%d %

59、c %f,i,c,f);其中定義FILE *stream;int i;char c;float f;返回值:成功則返回輸出的字節(jié)數(shù),錯誤則返回EOF。頭文件:stdio.h函數(shù)41。FP_SEG()獲取遠地址段值的宏原形:unsigned FP_SEG(void far *p)功能:取得和設(shè)置遠指針*p段地址值返回值:段地址值頭文件:dos.hfree()釋放已分配內(nèi)存的函數(shù)原形:void free(void *block)功能:釋放由calloc、malloc、realloc函數(shù)調(diào)用所分配的內(nèi)存。頭文件:stdlib.h、alloc.h函數(shù)42。fscanf()格式化輸入函數(shù)原形:int f

60、scanf(FILE *stream,const char *format,address,.)功能:從一個流中掃描輸入字段,一次掃描一個字符,每個輸入字段根據(jù)format所指格式指示符格式化后,把輸入字段存在format后面由地址參數(shù)給出的位置上。使用格式:fscanf(文件指針,輸入格式,輸入項系列);使用實例:fscanf(fp,%d,&b);從fp指向的文件中讀取十進制整數(shù) (ASC形式)賦予變量b注:當文件指針是stdin時,與scanf功能完全相同頭文件:stdio.h函數(shù)43。fseek()移動文件指針函數(shù)原形:int fseek(FILE *stream,long offset

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論