




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、設計說明書通訊錄管理系統(tǒng)起止日期:2012 年 12 月 18 日 至 2012 年 12月 23日學 生 姓 名班 級學 號成 績指 導 教 師 (簽 字 計算機與通信學院2012 年 12 月 23 日 通訊錄管理系統(tǒng)一、 設計要求綜合運用 C 語言程序設計課程的主要知識,設計一個用于通訊錄管理的程序,設計指標 由程序的功能要求和技術要求具體說明。1、 功能要求通信錄管理程序至少應具有如下功能:(1 輸入功能:能通過鍵盤向通信錄輸入數(shù)據(jù)。要求隨時都能使用該項功能實現(xiàn)記 錄輸入, 一次可以輸入一條記錄, 也可以輸入多條記錄。 所謂一條記錄, 是指通信錄中一個 人員的完整信息。(2 顯示功能:
2、能顯示通信錄存儲的記錄信息,在顯示時能提供下列顯示方式:按自然順序顯示。即按照向通信錄輸入數(shù)據(jù)時各條記錄的先后順序,顯示通信錄中 已有的記錄信息。按照一定的排列順序顯示通信錄信息。排序順序有多種,如按姓名查詢、按所在城 市查詢,任何一種查詢都要有明確的查詢結果。(3 查詢功能:能查詢通信錄信息。要求至少提供兩種查詢方式,如按照姓名查詢、 按所在城市查詢,任何一種查詢都要有明確的查詢結果。(4 修改功能:能對通信錄存儲的信息進行修改。要求至少提供兩種修改方式,如 按照姓名修改、按照通信錄記錄序號修改。記錄序號是通信錄記錄的自然順序編號。(5 刪除功能:能對通信錄的信息進行刪除。要求刪除時以記錄為
3、單位,既能一次 刪除一條記錄,也能一次刪除多條記錄。(6 保存功能:能將記錄保存在任何自定義的文件中,如保存在:c:score。(7 讀取功能:能將保存在文件中的記錄讀取出來,并在屏幕上顯示。(8 通信錄管理結束后,能夠正常退出通信錄管理程序。2、 技術要求(1 每個通信錄記錄至少包括如下信息:姓名、電話、所在城市、所在單位、年齡、 備注等。(2 通信錄信息以磁盤文件的形式存儲,存儲位置、文件名、文件格式由設計者確 定。(3 對于通信錄功能中數(shù)據(jù)輸入、顯示、查詢、修改、刪除、保存、讀取等功能, 要求編寫功能獨立的函數(shù)或主控函數(shù)予以實現(xiàn),其所屬的各項功能盡量由獨立的函數(shù)實現(xiàn)。(4 以菜單方式實現(xiàn)
4、功能選擇控制。(5 本通信錄管理程序能夠實現(xiàn) 100條記錄的管理。二、 程序的功能設計根據(jù)題目的功能要求,設計通信錄管理程序的功能如圖 1所示。 圖 1 通信錄管理程序功能圖各功能的具體說明如下:1、 通信錄信息錄入(1 通過顯示信息項目,逐項輸入通信錄的記錄信息。(2 每次輸入記錄后,通過詢問的方式?jīng)Q定是否繼續(xù)進行記錄輸入。因此,使用該功能 既可以錄入一條記錄,也可連續(xù)錄入多條記錄。(3 每次錄入記錄之前,顯示通信錄中已有的記錄數(shù)。2、 通信錄信息顯示(1按自然順序顯示,即以通信錄文件中的記錄順序為序,逐個對文件記錄進行顯示。(2按排序順序顯示,即對通信錄中的記錄進行排序后,再按照排序結果顯
5、示出來,但不 管使用何種排序算法,排序顯示不能改變通信錄記錄的物理順序。(3當通信錄信息較多時,實行分屏顯示,每屏最多顯示 20條記錄信息。(4顯示記錄時,對每一條記錄增加與顯示順序一致的序號。3、 通信錄信息查詢(1提供按姓名查詢和按城市查詢兩種查詢方式。(2查找成功后顯示每一條符號條件記錄的完整信息,當一屏不能完成顯示時,實行分屏 顯示,每屏最多顯示 20條符合條件的記錄信息。當找不到符合條件記錄時,給出相應的提 示信息。4、 通信錄信息修改(1按照指定的記錄序號,對通信錄記錄進行修改。首先顯示指定的記錄當前數(shù)據(jù),然后 通過重新輸入該記錄數(shù)據(jù)的方法,完成數(shù)據(jù)修改操作。(2為方便確認記錄序號
6、,該功能項同時提供通信錄記錄的瀏覽功能。5、 通信錄信息刪除(1提供按姓名刪除和按序號刪除兩種方式,當找到指定記錄時,進行刪除操作。找不到 指定記錄時,給出相應的提示信息。(2所有的刪除均為物理刪除,即將制定的記錄從通訊錄文件中徹底清除掉。6、 建立通訊錄文件第一次使用通訊錄管理程序時,用于建立存儲通訊錄信息的文件。三、 程序的數(shù)據(jù)設計(1每個通訊錄記錄由多個不同的數(shù)據(jù)項構成,是一個結構體數(shù)據(jù),因此需要定義結構體 數(shù)據(jù), 因此需要定義結構體數(shù)據(jù)類型。 根據(jù)題目要求, 確定每個記錄包括的數(shù)據(jù)項目為:姓 名、電話、所在城市、所在單位、年齡、備注等。據(jù)此定義如下結構體數(shù)據(jù)類型:Struct reco
7、rdChar name20 / /姓名Int age; / /年齡Char tele15; / /電話號碼Char city20; / /所在城市Char units30; / /所在單位Char note20; / /備注;(2 考慮到 struct record是通訊錄管理程序中的通用數(shù)據(jù)類型, 將在多個函數(shù)中使用, 故將 其在頭文件中定義。(3使用文件 address.txl 存儲數(shù)據(jù)類型為 stuct record的通訊錄數(shù)據(jù)。四、 程序的函數(shù)設計1、 函數(shù)功能描述(1 main(函數(shù)通訊錄管理程序主函數(shù),實現(xiàn)程序功能的主菜單顯示,通過各功能函數(shù)的調用,實現(xiàn)整 個程序的功能控制。(2
8、append(函數(shù)函數(shù)原型為 void append(,是輸入數(shù)據(jù)函數(shù),它實現(xiàn)通訊錄數(shù)據(jù)的鍵盤輸入。(3 display(函數(shù)函數(shù)原型為 void display(, 是顯示通訊錄信息的主控函數(shù), 它實現(xiàn)顯示功能的菜單顯示, 并進行不同顯示功能的函數(shù)調用,以實現(xiàn)程序的顯示功能。(4 locate(函數(shù)函數(shù)原型為 void locate(,是查詢通訊錄信息的主控函數(shù),它顯示查詢功能的菜單,并 根據(jù)查詢要求,進行相應的函數(shù)調用,以實現(xiàn)查詢的查詢功能。(5 modify(函數(shù)函數(shù)原型為 void modify(, 修改通訊錄信息的主控函數(shù), 它顯示查詢功能的菜單, 進行 相應的函數(shù)調用,以實現(xiàn)程序的
9、修改功能。(6 dele(函數(shù)函數(shù)原型為 void dele(,是刪除通訊錄記錄的主控函數(shù),它顯示刪除功能的菜單,并根 據(jù)刪除要求,并進行相應的函數(shù)調用,以實現(xiàn)程序的修改功能。(7 disp_arr(函數(shù)函數(shù)原型為 void disp_arr(struct record,int, 功能是顯示 struct record型結構體數(shù)組的全 部數(shù)據(jù),其第二個參數(shù)是結構體數(shù)組的長度。這里的結構體數(shù)組對應于存儲通訊錄文件 address. txl 的數(shù)據(jù),數(shù)組長度對應于通訊錄文件的記錄數(shù)。(8 disp_name(函數(shù)函數(shù)原型為 void disp_row(struct record,功能是顯示一個 s
10、truct record型結構體數(shù)據(jù), disp_arr(函數(shù)進行數(shù)組輸出時,每一個數(shù)組元素都調用 disp_row(函數(shù)實現(xiàn)輸出。(9 sort(函數(shù)函數(shù)原型為 void sort(struct record,int,是排序的主控函數(shù),它顯示排序功能的菜單, 并根據(jù)顯示的排序要求,進行相應的函數(shù)調用,以實現(xiàn)程序的排序顯示功能。(10 sort_name(函數(shù)函數(shù)原型為 void sort_name(struct record,int, 功能是對 struct record型結構體數(shù)組實現(xiàn) 按姓名排序操作。(11 sort_city(函數(shù)函數(shù)原型為 void sort_city(struct
11、record,int ,功能是對 struct record型結構體數(shù)組實現(xiàn) 按城市排序操作。(12 modi_seq(函數(shù)函數(shù)原型為 void modi_seq(struct record,int,功能是對 struct record型結構體數(shù)組實現(xiàn) 按序號修改操作。(13 dele_name(函數(shù)函數(shù)原型為 void dele_name(struct record,int*,功能是對 struct record型結構數(shù)組實現(xiàn)第 6 頁 共 8 頁 按姓名刪除操作。 (14)dele_sequ(函數(shù) 函數(shù)原型為 void dele_sequ(struct record,int*, 功能是對
12、struct record 型結構體數(shù)組實現(xiàn) 按序號刪除操作。 (15)disp_str(函數(shù) 函數(shù)原型為 disp_str(char,int,功能是輸出 n 個字符,用于菜單的字符顯示,每一個有 菜單顯示功能的函數(shù)都調用該函數(shù)。 (16)disp_table(函數(shù) 函數(shù)原型為 void disp_table(,功能是顯示一行表頭,用于輸出記錄時的標題顯示。 (17)creat(函數(shù) 函數(shù)原型為 void creat(,功能是建立存儲通訊錄信息的文件 address,txl。 2、 函數(shù)的直接調用關系 、 (1)main(函數(shù)直接調用的函數(shù):disp_str(函數(shù)、append(函數(shù)、disp
13、lay(函數(shù)、locate(函 數(shù)、modify(函數(shù)、dele(函數(shù)。 (2)append(函數(shù)直接調用的函數(shù):無。 (3)display(函數(shù)直接調用的函數(shù):disp_str(、disp_arr(、sort(。 。 程序編碼 編碼及調試 五、 程序編碼及調試 1、 頭文件 address.h 的設計 、 頭文件 address.h 包含以下信息: (1) 通訊錄記錄的結構體類型定義。 (2) 通訊錄管理程序中使用的 C 語言系統(tǒng)的宏包含命令。 (3) 通訊錄管理程序中自定義的函數(shù)原型聲明。 (4) 通訊錄管理程序中使用的結構體數(shù)組的長度。 下面是頭文件 address.h 的具體內容: #
14、define M 100 用于定義結構體數(shù)組的長度 以下是通訊錄管理程序所用系統(tǒng)頭文件的宏包含命令 #include “stdio.h” #include”stdib.h” #include”string.h” 以下是結構體數(shù)據(jù)類型定義,與通訊錄記錄的數(shù)據(jù)項相同 struct record char name20; / / 姓名 int age; / /年齡 int tele15; / /電話號碼 第 7 頁 共 8 頁 char city30; / /所在城市 char units30; / /所在單位 char note20; / /備注 ; / /以下是用戶自定義函數(shù)聲明 void cr
15、eat(; / /建立通訊錄文件函數(shù) void append(; / /輸入數(shù)據(jù)函數(shù) void siaplay(; / /顯示通訊錄文件函數(shù) void locate(; / /查詢通訊錄主控函數(shù) void modify(; / /修改通訊錄主控函數(shù) void dele(; / /刪除通訊錄主控函數(shù) void disp_arr(struct record*,int; / /顯示數(shù)組函數(shù) void disp_row(struct record; / /顯示一個記錄的函數(shù) void disp_table(; / /顯示一行表頭的函數(shù) void modi_seq(struct record ,int
16、; / /按序號編輯修改記錄函數(shù) void disp_str(char,int ; / /顯示 N 個字符的函數(shù) void sort(struct record,int ; / /排序主控函數(shù) void sort_name(struct record,int; / /按姓名排序函數(shù) void sort_city(struct record,int ; / /按城市排序函數(shù) void dele_name(srtruct record,int*; / /按姓名刪除記錄函數(shù) void dele_sequ(struct record,int*; / /按序號刪除記錄函數(shù) 以上為頭文件 address.
17、h 的全部內容該頭文件在通訊錄管理程序的開頭位置用 include 命 令包含,宏包含命令為 #include”address.h”。 2、 main()函數(shù)的編碼及調試 、 ()函數(shù)的編碼及調試 ()函數(shù)的編碼 main()函數(shù)是通訊錄管理程序的主控函數(shù),它的設計調試需要反復多次。在開始 時,將它的所有被調用函數(shù)都設計為簡單的字符串輸出函數(shù),以設計調試 main()函數(shù) 的菜單控制功能。然后,每實現(xiàn)一個主功能(輸入、顯示、查詢、修改、刪除、新建) 函數(shù),都對 main()函數(shù)的調用和菜單控制功能進程調試。 (1) main()函數(shù)代碼 (2) disp-str()函數(shù)的代碼 (3) main()函數(shù)調試 3、 create()函數(shù)的編碼及調試 、 ()函數(shù)的編碼及調試 ()函數(shù)的編碼 create()函數(shù)的功能是建立通訊錄文件,該函數(shù)不調用其他的自定義函數(shù)。執(zhí)行該 函數(shù),將重新建立存儲通訊錄信息的文件 address.txl。 (1creat(函數(shù)代碼 void creat( / 建立通訊錄文件函數(shù) FILE*fp; if(fp=fopen(*address.txl”,”wb”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借貸擔保條件合同范本
- 買賣旅游車車合同范本
- 制作類開口合同范本
- 包工包料安裝鍋爐合同范本
- 養(yǎng)豬場租賃合同范本
- 鄉(xiāng)鎮(zhèn)土地開發(fā)整改合同范本
- 佛山土地出租合同范本
- 付款協(xié)議合同范本
- 農村養(yǎng)牛蛙銷售合同范本
- ktv裝修乙方合同范本
- 2024年湖南汽車工程職業(yè)學院單招職業(yè)技能測試題庫標準卷
- 完整word版,“呂氏八字命理學”高級理論
- 中外合作辦學的可行性報告
- 飛達及其輔助機構
- 母嬰保健課程標準
- 深圳地鐵三號線正線信號系統(tǒng)
- 高中化學競賽培訓計劃
- 研發(fā)向善課程----綻放生命異彩
- 電廠機組深度調峰摸底試驗方案
- 地球上的大氣知識結構圖
- 加油站數(shù)質量管理考核辦法版.doc
評論
0/150
提交評論