[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):253590657 上傳時(shí)間:2025-03-16 格式:DOC 頁數(shù):32 大?。?95.12KB
收藏 版權(quán)申訴 舉報(bào) 下載
[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)_第1頁
第1頁 / 共32頁
[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)_第2頁
第2頁 / 共32頁
[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)_第3頁
第3頁 / 共32頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《[畢業(yè)設(shè)計(jì)精品]手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì)(32頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 學(xué)生課程設(shè)計(jì)(論文) 題 目: 通信錄管理系統(tǒng)的設(shè)計(jì) 學(xué)生姓名: 學(xué) 號(hào): 所在院(系): 計(jì)算機(jī)學(xué)院 專 業(yè): 網(wǎng)絡(luò)工程 班 級(jí): 09級(jí)網(wǎng)絡(luò)工程(1)班 指導(dǎo)教師: 職稱: 講 師 2010年6月 25日 學(xué)生處監(jiān)制 本科學(xué)生課程設(shè)計(jì)任務(wù)書 題 目 手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì) 1、課程設(shè)計(jì)的目的

2、 本課程設(shè)計(jì)的目的和任務(wù):(1)鞏固和加深學(xué)生對C語言課程的基本知識(shí)的理解和掌握;(2)掌握C語言編程和程序調(diào)試的基本技能;(3)利用C語言進(jìn)行簡單軟件設(shè)計(jì)的基本思路和方法;(4)提高運(yùn)用C語言解決實(shí)際問題的能力。 2、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等) 用C語言設(shè)計(jì)出模擬手機(jī)通信錄管理系統(tǒng),實(shí)現(xiàn)對手機(jī)中的通信錄進(jìn)行管理。 (一)功能要求: (1)查看功能:選擇此功能時(shí),列出下列三類選擇。 A 辦公類 B 個(gè)人類 C 商務(wù)類 ,當(dāng)選中某類時(shí),顯示出此類所有數(shù)據(jù)中的姓名和電話號(hào)碼) (2)增加功能:能錄入新數(shù)據(jù)(一個(gè)結(jié)點(diǎn)包括:姓名、電話號(hào)碼、分類

3、(可選項(xiàng)有:A 辦公類 B 個(gè)人類 C 商務(wù)類)、電子郵件)。例如 楊春 13589664454 商務(wù)類 chuny@ 當(dāng)錄入了重復(fù)的姓名和電話號(hào)碼時(shí),則提示數(shù)據(jù)錄入重復(fù)并取消錄入;當(dāng)通信錄中超過15條信息時(shí),存儲(chǔ)空間已滿,不能再錄入新數(shù)據(jù);錄入的新數(shù)據(jù)能按遞增的順序自動(dòng)進(jìn)行條目編號(hào)。 (3)拔號(hào)功能:能顯示出通信錄中所有人的姓名,當(dāng)選中某個(gè)姓名時(shí),屏幕上模擬打字機(jī)的效果依次顯示出此人的電話號(hào)碼中的各個(gè)數(shù)字,并伴隨相應(yīng)的拔號(hào)聲音。 (4)修改功能:選中某個(gè)人的姓名時(shí),可對此人的相應(yīng)數(shù)據(jù)進(jìn)行修改 (5)刪除功能:選中某個(gè)人的姓名時(shí),可對此人的相應(yīng)數(shù)據(jù)進(jìn)行刪除,并自動(dòng)

4、調(diào)整后續(xù)條目的編號(hào)。 (二)其它要求: (1) 只能使用C/C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀 (2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好) (3) 建議使用結(jié)構(gòu)和鏈表等數(shù)據(jù)結(jié)構(gòu) (4) 學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分) (5)寫出課程設(shè)計(jì)報(bào)告,具體要求見相關(guān)說明文檔 3、主要參考文獻(xiàn) [1]譚浩強(qiáng),《C程序設(shè)計(jì)》,清華大學(xué)出版社 [2]劉振安,孫忱,劉燕君,《C程序設(shè)計(jì)課程設(shè)計(jì)》,機(jī)械工業(yè)出版社 [3]汪詩林,《數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用》,機(jī)械工業(yè)出版社 4、課程設(shè)計(jì)工作進(jìn)度計(jì)劃 課程設(shè)計(jì)時(shí)間為一周,分四個(gè)階段完成: 1. 分析設(shè)計(jì)

5、階段。引導(dǎo)學(xué)生自主學(xué)習(xí)和鉆研問題,明確設(shè)計(jì)要求,找出實(shí)現(xiàn)方法,按照需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)這幾個(gè)步驟進(jìn)行。這一階段前第1天完成。 2. 編碼調(diào)試階段:根據(jù)設(shè)計(jì)分析方案編寫C語言代碼,然后調(diào)試該代碼,實(shí)現(xiàn)課題要求的功能。這一階段在第2-3天完成。 3. 總結(jié)報(bào)告階段:總結(jié)設(shè)計(jì)工作,寫出課程設(shè)計(jì)說明書,要求學(xué)生寫出需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試的步驟和內(nèi)容。這一階段在第4天完成。 4. 考核階段。這一階段在第5天完成。 指導(dǎo)教師(簽字) 日期 年 月 日 教研室意見: 年 月 日 學(xué)生(簽字): 明安坤 接受任務(wù)時(shí)間: 年

6、 月 日 課程設(shè)計(jì)(論文)指導(dǎo)教師成績評(píng)定表 題目名稱 手機(jī)通信錄管理系統(tǒng)的設(shè)計(jì) 評(píng)分項(xiàng)目 分值 得分 評(píng)價(jià)內(nèi)涵 工作 表現(xiàn) 20% 01 學(xué)習(xí)態(tài)度 6 遵守各項(xiàng)紀(jì)律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。 02 科學(xué)實(shí)踐、調(diào)研 7 通過實(shí)驗(yàn)、試驗(yàn)、查閱文獻(xiàn)、深入生產(chǎn)實(shí)踐等渠道獲取與課程設(shè)計(jì)有關(guān)的材料。 03 課題工作量 7 按期圓滿完成規(guī)定的任務(wù),工作量飽滿。 能力 水平 35% 04

7、 綜合運(yùn)用知識(shí)的能力 10 能運(yùn)用所學(xué)知識(shí)和技能去發(fā)現(xiàn)與解決實(shí)際問題,能正確處理實(shí)驗(yàn)數(shù)據(jù),能對課題進(jìn)行理論分析,得出有價(jià)值的結(jié)論。 05 應(yīng)用文獻(xiàn)的能力 5 能獨(dú)立查閱相關(guān)文獻(xiàn)和從事其他調(diào)研;能提出并較好地論述課題的實(shí)施方案;有收集、加工各種信息及獲取新知識(shí)的能力。 06 設(shè)計(jì)(實(shí)驗(yàn))能力,方案的設(shè)計(jì)能力 5 能正確設(shè)計(jì)實(shí)驗(yàn)方案,獨(dú)立進(jìn)行裝置安裝、調(diào)試、操作等實(shí)驗(yàn)工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。 07 計(jì)算及計(jì)算機(jī)應(yīng)用能力 5 具有較強(qiáng)的數(shù)據(jù)運(yùn)算與處理能力;能運(yùn)用計(jì)算機(jī)進(jìn)行資料搜集、加工、處理和輔助設(shè)計(jì)等。 08 對計(jì)算或?qū)嶒?yàn)結(jié)果的分析

8、能力(綜合分析能力、技術(shù)經(jīng)濟(jì)分析能力) 10 具有較強(qiáng)的數(shù)據(jù)收集、分析、處理、綜合的能力。 成果 質(zhì)量 45% 09 插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(jì)(論文)規(guī)范化程度 5 符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。 10 設(shè)計(jì)說明書(論文)質(zhì)量 30 綜述簡練完整,有見解;立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理;實(shí)驗(yàn)正確,分析處理科學(xué)。 11 創(chuàng)新 10 對前人工作有改進(jìn)或突破,或有獨(dú)特見解。 成績 指導(dǎo)教師評(píng)語 指導(dǎo)教師簽名: 年 月 日

9、本科課程設(shè)計(jì)(論文) 摘要 摘 要 手機(jī)作為現(xiàn)代生活通訊工具,已經(jīng)與我們的生活、學(xué)習(xí)、工作密不可分,我們不可能隨時(shí)帶上電話本和筆,記錄我們所打電話和所接電話,只要我們手指動(dòng)幾下,一個(gè)新的號(hào)碼就可以儲(chǔ)存在電話里面,不需要筆和紙,隨時(shí)可以用。究竟是什么賦予手機(jī)這種功能呢,原來是設(shè)計(jì)人員在手機(jī)里面裝好了“手機(jī)通訊錄管理系統(tǒng)”。 作為計(jì)算機(jī)專業(yè)的我們,這樣的系統(tǒng)在學(xué)習(xí)過C語言后完全能夠編寫出來的,利用C語言相關(guān)知識(shí),實(shí)現(xiàn)程序設(shè)計(jì),控制。 關(guān)鍵詞: 管

10、理系統(tǒng),switch,遞歸調(diào)用,程序 - 25 - 本科課程設(shè)計(jì)(論文) 目錄 目 錄 摘 要 I 目 錄 II 1 緒論 - 1 - 1.1課程設(shè)計(jì)背景 - 1 - 1.2課程設(shè)計(jì)思路 - 1 - 2 概要設(shè)計(jì) - 2 - 2.1 模塊設(shè)計(jì) - 2 - 2.2 詳細(xì)設(shè)計(jì) - 3 - 2.2.1 信息結(jié)構(gòu)體說明 - 3 - 2.2.2 函數(shù)說明 - 4 - 2.2.4 詳細(xì)設(shè)計(jì) - 5 - 3 調(diào)試報(bào)告 - 7

11、- 3.1 運(yùn)行中問題及解決 - 7 - 4.1 顯示信息 - 11 - 4.2 刪除信息 - 11 - 4.3 添加信息 - 11 - 4.4修改信息 - 11 - 4.5撥號(hào)功能 - 11 - 4.6保存操作并退出系統(tǒng) - 11 - 5 設(shè)計(jì)體會(huì) - 12 - 參考文獻(xiàn) - 13 - 附錄:源代碼 - 14 - 本科課程設(shè)計(jì)(論文) 緒論 1 緒論 1.1課程設(shè)計(jì)背景 生活中我們經(jīng)常遇見這種問題,就是在外面做事的時(shí)候人家

12、有時(shí)候會(huì)給我們說聯(lián)系號(hào)碼,通常情況下我們是拿出手機(jī)直接輸入手機(jī),這就為我們節(jié)約了時(shí)間,紙張,我們也不必為寫在紙條上的號(hào)碼的丟失而感到懊惱。雖然說我們的激勵(lì)力不錯(cuò),但是隨著聯(lián)系人的增加,我們機(jī)會(huì)是不可能的記住所有聯(lián)系人的號(hào)碼,所以,這就得靠手機(jī)通訊錄了。 1.2課程設(shè)計(jì)思路 做通訊錄最主要的就是實(shí)用性,要簡單,便于操作。程序的界面要方便與用戶之間的交互。并結(jié)合實(shí)際中遇到的問題,如加入一個(gè)信息,修改一個(gè)信息,或是刪除一個(gè)信息,這些基本的方面一定要考慮到。這就大致的確定了程序的幾個(gè)模塊。然后對每個(gè)模塊進(jìn)行設(shè)計(jì),在整合起來,那么一個(gè)完善的通訊錄就可以建立起來了。 本科課程設(shè)計(jì)(論文)

13、 概要設(shè)計(jì) 2 概要設(shè)計(jì) 2.1 模塊設(shè)計(jì) 所謂通訊錄,就是對聯(lián)系人的信息進(jìn)行輸入,修改,刪除,查找等功能,我們按照其功能劃分為幾個(gè)模塊,在程序開始后,可以自行選擇,到進(jìn)入到所需要進(jìn)入的功能中,所以我們就得設(shè)計(jì)幾個(gè)模塊,以實(shí)現(xiàn)不同功能。 具體的模塊關(guān)系如表2-1: 表2-1 基本模塊表 模塊 輸入 刪除 保存 查找 插入 排序 實(shí)現(xiàn)功能 填入信息 去掉信息 保存信息 具體定位 添加信息 方便查找 程序總體設(shè)計(jì)

14、 圖1 程序的總體流程圖 圖2:程序所有功能 每一個(gè)功能都編寫一個(gè)函數(shù),多個(gè)功能函數(shù)都要用到的子模塊單獨(dú)編寫函數(shù),供各個(gè)實(shí)現(xiàn)功能的函數(shù)調(diào)用。在主函數(shù)中設(shè)置歡迎界面和菜單處理函數(shù),通過菜單處理函數(shù)調(diào)用各子函數(shù)處理模塊,從而實(shí)現(xiàn)整個(gè)通訊錄管理系統(tǒng)的功能。因?yàn)楦鱾€(gè)函數(shù)之間是并列關(guān)系,所以可以通過switch函數(shù)實(shí)現(xiàn)各個(gè)功能函數(shù)的調(diào)用。 2.2 詳細(xì)設(shè)計(jì) 2.2.1 信息結(jié)構(gòu)體說明 圖

15、3:信息結(jié)構(gòu)體說明 2.2.2 函數(shù)說明 2.2.3 主要函數(shù)、結(jié)構(gòu)體和鏈表 void creat();/*將文件的信息讀入結(jié)構(gòu)體數(shù)組在轉(zhuǎn)存入鏈表中*/ void ShowA(); void ShowB(); void ShowC(); void ShowD(); void Show(); void Delete(); void Input(); void Alter(); void Dial(); void Save(); struct persons /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/ { int num; /*編號(hào)*/ char

16、 name[20]; /*姓名*/ char e_addr[20]; /*電子郵箱*/ char tel_no[15]; /*電話號(hào)碼*/ char sim_no; /*縮位號(hào)碼*/ char arch; /*分類*/ }persons[maxlen]; typedef struct lnode /*通訊錄結(jié)構(gòu)中結(jié)點(diǎn)的定義*/ { int num; char name[20]; char e_addr[20]; char tel_no[15]; char sim_no; char arch; s

17、truct lnode *next; }listnode,*linklist; 2.2.4 詳細(xì)設(shè)計(jì) (1)、新建通訊錄文件 1.打開通訊錄文件文本; 2.如果文件存在,則用尾插法將文件中的數(shù)據(jù)依次存入鏈表中,然后關(guān)閉文件; 3.如果文件為不存在,則新建一個(gè)空的通訊錄文件文本,然后關(guān)閉文件。 (2)、顯示信息 1.在提示中界面選擇 顯示通訊錄 ; 2.輸入需要顯示的類別; 3.根據(jù)選擇的類別調(diào)用顯示函數(shù); 4.從第一個(gè)節(jié)點(diǎn)開始,判斷鏈表中的節(jié)點(diǎn)是否屬于選擇的類別; 5.如果節(jié)點(diǎn)屬于所選類別,則顯示該節(jié)點(diǎn)中所有信

18、息; 6.如果不屬于所選類別,則將所指節(jié)點(diǎn)下移,直至將鏈表中所有屬于該類別的信息 全部輸出為止; 7.回到提示界面。 (3)、刪除信息 1.在提示界面中選擇 刪除通訊錄 ; 2.輸入要?jiǎng)h除的姓名; 3.如果通訊錄文件空,則輸出 你選擇的用戶不存在! ; 4.如果通訊錄文件不為空,則從第一個(gè)節(jié)點(diǎn)開始比較,若有某一節(jié)點(diǎn)中的姓名與輸入姓 名相同時(shí),就釋放該節(jié)點(diǎn); 5.若節(jié)點(diǎn)中所有姓名都與輸入姓名不相同,則輸出 你選擇的用戶不存在! ; 6.保存剛才的操作,并回到提示界面。 (4)、添加信息 1.在提示界面中選擇 添

19、加通訊錄 ; 2.依次輸入添加的信息 姓名 電話號(hào)碼 縮位號(hào)碼 電子郵箱 類別 ; 3.保存剛才操作,并回到提示界面。 (5)、修改信息 1.在提示界面中選擇 編輯通訊錄 ; 2.輸入所要修改信息中的姓名,再依次輸入信息 姓名 電話號(hào)碼 縮位號(hào)碼 電子郵 箱 類別 ; 3.保存剛才的操作,并回到提示界面。 (6)、撥號(hào)功能 1.在提示界面中選擇 撥號(hào)功能 ,進(jìn)入撥號(hào)功能區(qū); 2.若選擇1,則將按姓名撥號(hào),輸入 姓名 ,則輸出與姓名相對應(yīng)的電話號(hào)碼,并回到提示界面;若選

20、擇2,則將按單鍵撥號(hào),輸入 縮位號(hào)碼,則輸出與該縮位號(hào)碼相對應(yīng)的姓名和電話號(hào)碼,并回到提示界面。 (7)、保存操作并退出系統(tǒng) 1.在提示界面中選擇 保存剛才操作并退出 ; 2.調(diào)用保存函數(shù),該函數(shù)將剛才所有的操作存入通訊錄文件,并關(guān)閉文件; 3.退出程序。 本科課程設(shè)計(jì)(論文) 調(diào)試報(bào)告 3 調(diào)試報(bào)告 3.1 運(yùn)行中問題及解決 3.1.1 問題1:程序運(yùn)行時(shí)只能運(yùn)行一個(gè)函數(shù),就必須保存并退出,

21、否則會(huì)造成運(yùn)行錯(cuò)誤。如Delete函數(shù)的代碼為: void Delete() { system("cls"); /*清屏*/ printf("\n\n\t請輸入要?jiǎng)h除用戶的姓名:"); cin>>name1; /*輸入要?jiǎng)h除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } else

22、 { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要?jiǎng)h除的節(jié)點(diǎn)*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<

23、t、Alter等函數(shù)結(jié)尾都添加Save函數(shù)。代碼為: void Delete() { system("cls"); /*清屏*/ printf("\n\n\t請輸入要?jiǎng)h除用戶的姓名:"); cin>>name1; /*輸入要?jiǎng)h除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } el

24、se { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要?jiǎng)h除的節(jié)點(diǎn)*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<

25、:當(dāng)通訊錄文件為空時(shí),在添加信息時(shí),只能添加一個(gè)用戶的信息,其代碼為: void Input() { system("cls"); /*清屏*/ s=(linklist)malloc(sizeof(listnode)); /*開辟一個(gè)節(jié)點(diǎn),用于存放新輸入的信息*/ printf("\n\n\t請輸入該用戶的信息:\n"); cout<<"姓名:"; cin>>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號(hào)碼:"; cin>>s->sim_no; cout<<

26、"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n"); /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!");

27、 free(s); } } if(head==NULL) { head=s; head->next=NULL; } else { r->next=s; r=s; r->next=NULL; } Save(); } (4)、問題二解決方法:該問起之時(shí)由于丟了一個(gè)語句造成的,修改后的代碼為: void Input() { system("cls"); /*清屏*/ s=(linklist)malloc(sizeof(listnode)); /*開辟一個(gè)節(jié)點(diǎn),用于存放新輸入的信息*/

28、 printf("\n\n\t請輸入該用戶的信息:\n"); cout<<"姓名:"; cin>>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號(hào)碼:"; cin>>s->sim_no; cout<<"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n"); /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&

29、&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!= 0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!"); free(s); } } if(head==NULL) { head=s; r=head; head->next=NULL; } else { r->next=s; r=s; r->next=NU

30、LL; } Save(); } 本科課程設(shè)計(jì)(論文) 用戶手冊 4 用戶手冊 4.1 顯示信息 (1).在提示中界面選擇 顯示通訊錄 ; (2).輸入需要顯示的類別。 4.2 刪除信息 (1).在提示界面中選擇 刪除通訊錄 ; (2).輸入要?jiǎng)h除的姓名。 4.3 添加信息 (1).在提示界面中選擇 添加通訊錄 ; (2).依次輸入添加的信息 姓名 電話號(hào)碼 縮位號(hào)碼 電子郵箱 類別

31、。 4.4修改信息 (1).在提示界面中選擇 編輯通訊錄 ; (2).輸入所要修改信息中的姓名,再依次輸入信息 姓名 電話號(hào)碼 縮位號(hào)碼 電子郵 箱 類別。. 4.5撥號(hào)功能 (1).在提示界面中選擇 撥號(hào)功能 ,進(jìn)入撥號(hào)功能區(qū); (2).若選擇1,則將按姓名撥號(hào),輸入姓名;若選擇2,則將按單鍵撥號(hào),輸入縮位號(hào)碼。 4.6保存操作并退出系統(tǒng) (1).在提示界面中選擇 保存剛才操作并退出 。 本科課程設(shè)計(jì)(論文) 設(shè)計(jì)體會(huì)

32、 5 總 結(jié) 由于本課題中的許多知識(shí)點(diǎn)都沒有學(xué)過都要靠自己到課外的資料中去查找。在用的時(shí)候難免出現(xiàn)這樣那樣的錯(cuò)誤。如開始設(shè)計(jì)出來的菜單不是預(yù)想的那樣,而是總個(gè)窗中出現(xiàn)混亂。解決的這個(gè)問題的辦法是調(diào)整。一個(gè)系統(tǒng)的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎么用你設(shè)計(jì)的這個(gè)系統(tǒng)。在設(shè)計(jì)的調(diào)試過程中也無法順利的完成調(diào)試工作。有了一個(gè)清晰簡單的菜單和一些提示信息這后,調(diào)試過程完成的非常順利。 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)月的日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很

33、多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)本次課程設(shè)計(jì)結(jié)束了,對于我的影響很大。我通過這次實(shí)踐學(xué)到了許多知識(shí)。學(xué)到了設(shè)計(jì)一個(gè)簡單的系統(tǒng)。要注意哪些方面。也使我知道自己哪些方

34、面做得還不夠。 但我出總結(jié)出了一點(diǎn)點(diǎn)的經(jīng)驗(yàn)如下: 1、要對系統(tǒng)的功能和要求做出詳細(xì)的分析,并合理分解任務(wù)。 2、把分解出來的子任務(wù),做給一個(gè)相對獨(dú)立的模塊。 3、在設(shè)計(jì)一個(gè)模塊之前,要簡單構(gòu)想一下總界面的顯視情況。 4、針對構(gòu)想出來的界面進(jìn)行程序的編寫。 通過這次課程設(shè)計(jì),增加了我對軟件技術(shù)的了解,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從學(xué)習(xí)C語言這門課程開始,已發(fā)現(xiàn)程序設(shè)計(jì)的好處,他對我們數(shù)學(xué)的學(xué)習(xí)也有很大的幫助。在學(xué)習(xí)C語言的過程中也學(xué)到和鞏固了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對計(jì)算機(jī)的機(jī)體也有了一個(gè)較為詳細(xì)的了解。在具體操作中對這學(xué)期所學(xué)的C語言的理論知識(shí)得到鞏固加強(qiáng),達(dá)

35、到實(shí)訓(xùn)的目的,也發(fā)現(xiàn)自己的不足之處,為我問以后的c語言學(xué)習(xí)奠定了基礎(chǔ),同時(shí)體會(huì)到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)操作的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。通過實(shí)際操作,學(xué)會(huì) C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。 這不僅是程序設(shè)計(jì),更是鍛煉我們處理問題的能力,同時(shí)也使我們了解到團(tuán)隊(duì)合作的可貴.編寫程序是件細(xì)心活,稍不留神就會(huì)出錯(cuò),這就必須要求我們對待事情要認(rèn)真!在編寫程序的過程中,錯(cuò)誤不斷出現(xiàn),不同的類型(如少寫了一個(gè)符號(hào),寫錯(cuò)了字母,用錯(cuò)了函數(shù)等等)層出不窮,這考驗(yàn)我們待事細(xì)心,耐心,能不能堅(jiān)持到底,

36、不能半途而廢。 三人行必有我?guī)?遇到問題我們一起討論,研究,錯(cuò)了再寫,寫了在改.經(jīng)過多次的修改,調(diào)試,運(yùn)行,添加,終于最后在大家的歡呼聲中,完成了我的任務(wù).雖說是累了點(diǎn),但我也從中找到了自己的快樂,每當(dāng)完成一個(gè)新的函數(shù)時(shí),那心情是激動(dòng)啊,這畢竟是自己弄出來的,同時(shí)也使我感受到了學(xué)習(xí)的快樂! 生活上我們也同樣如此,以這種精神對待生活,對待生命,我想,我們的人生會(huì)更美好,路是自己走出來的,也只有經(jīng)過無數(shù)次的磨練,無數(shù)次地堅(jiān)定我們的信心,鍛煉我們的意志漸漸地使自己才能夠使自己成熟起來,走出一片屬于自己的天空。 參考文獻(xiàn)本科課程設(shè)計(jì)(論文)

37、 參考文獻(xiàn) 參考文獻(xiàn) [1]譚浩強(qiáng),《C程序設(shè)計(jì)》,清華大學(xué)出版社 [2]劉振安,孫忱,劉燕君,《C程序設(shè)計(jì)課程設(shè)計(jì)》,機(jī)械工業(yè)出版社 [3]汪詩林,《數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用》,機(jī)械工業(yè)出版社 [4] CSDN下載頻道. [5]朱若愚.數(shù)據(jù)結(jié)構(gòu)[M]. 電子工業(yè)出版社 [6]晉良潁.數(shù)據(jù)結(jié)構(gòu)[M].人民郵電出版社 [7]劉大有.數(shù)據(jù)結(jié)構(gòu)[M]. 高等教育出版社 本科課程設(shè)計(jì)(論文) 源代碼 附錄:源代碼 1.源程序清單 #include

38、io.h> #include /*與malloc.h差不多*/ #ionclude #include #define maxlen 100 struct persons /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/ { int num; /*編號(hào)*/ char name[20]; /*姓名*/ char e_addr[20]; /*電子郵箱*/ char tel_no[15]; /*電話號(hào)碼*/ char sim_no; /*縮位號(hào)碼*/ char ar

39、ch; /*分類*/ }persons[maxlen]; typedef struct lnode /*通訊錄結(jié)構(gòu)中結(jié)點(diǎn)的定義*/ { int num; char name[20]; char e_addr[20]; char tel_no[15]; char sim_no; char arch; struct lnode *next; }listnode,*linklist; void Save(); linklist head=NULL,r=NULL; /*定義頭指針和尾指針*/ listnode *s,*p0,*p

40、1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9; int i; char name1[10],ch; char tel_no1[15]; char arch1; char sim_no1; char e_addr1[20]; char s1[20]; FILE *fp; /*定義文件指針*/ void creat() /*將文件的信息讀入結(jié)構(gòu)體數(shù)組在轉(zhuǎn)存入鏈表中*/ { int j; long k; fp=fopen("通訊錄文件.txt","r t"); /*打開文件*/ if(fp!=NULL)

41、 { for(i=0;i<=maxlen;i++ ) /*當(dāng)信息數(shù)不大于100條時(shí),文件中的信息可以依次存入鏈表中*/ { j=fgetc(fp); if(j==EOF) return; k=i; fseek(fp,k*sizeof(struct persons),0); /*讀取一個(gè)人的信息*/ fread(&persons[i],sizeof(struct persons),1,fp); s=(linklist)malloc(sizeof(listnode)); /*裝存入鏈表中*/ s->num

42、=persons[i].num; strcpy(s->name,persons[i].name); strcpy(s->e_addr,persons[i].e_addr); strcpy(s->tel_no,persons[i].tel_no); s->sim_no=persons[i].sim_no; s->arch=persons[i].arch; if(head==NULL) /*用尾插法將其插入鏈表中*/ { head=s; r=head; head->next=NULL; }

43、 else { r->next=s; r=s;r->next=NULL; } } fclose(fp); } else { fp=fopen("通訊錄文件.txt","w"); /*不能打開另開辟一個(gè)文件*/ i=1; } } /***********************************/ /*函數(shù)名:ShowA */ /*函數(shù)說明:輸出家庭類所有信息 */ /*入口參數(shù):無 */

44、/*出口參數(shù):無 */ /***********************************/ void ShowA() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='A') /*判斷信息是否屬于該類*/ { cout<name<e_addr<

45、 cout<<"電話號(hào)碼:"<tel_no<sim_no<arch<next; continue; } } /***********************************/ /*函數(shù)名:ShowB */ /*函數(shù)說明:輸出朋友類所有信息 */ /*入口參數(shù):無

46、 */ /*出口參數(shù):無 */ /***********************************/ void ShowB() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='B') /*判斷信息是否屬于該類*/ { cout<name<e_addr<

47、輸出電子郵箱*/ cout<<"電話號(hào)碼:"<tel_no<sim_no<arch<next; continue; } } /***********************************/ /*函數(shù)名:ShowC */ /*函數(shù)說明:輸出重要人士類所有信息 */ /*入口參數(shù):無

48、 */ /*出口參數(shù):無 */ /***********************************/ void ShowC() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='C') /*判斷信息是否屬于該類*/ { cout<name<e_add

49、r<tel_no<sim_no<arch<next; continue; } } /***********************************/ /*函數(shù)名:ShowD */ /*函數(shù)說明:輸出其他類所有信息 *

50、/ /*入口參數(shù):無 */ /*出口參數(shù):無 */ /***********************************/ void ShowD() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='D') /*判斷信息是否屬于該類*/ { cout<name<

51、"<e_addr<tel_no<sim_no<arch<next; continue; } } /***********************************/ /*函數(shù)名:Show */ /*函數(shù)說明:輸出已有信息

52、 */ /*入口參數(shù):無 */ /*出口參數(shù):無 */ /***********************************/ void Show() { char ch1; system("cls"); /*清屏*/ printf("你想輸出哪一類信息?\n"); cout<<"A:家庭類"<<"B:朋友類"<<"C:重要人士類"<<"D:其他"<>ch1; /*輸入選

53、擇類別*/ switch(ch1) /*用單條件多選擇語句實(shí)現(xiàn)調(diào)用與循環(huán)*/ { case'A':ShowA();break; case'B':ShowB();break; case'C':ShowC();break; case'D':ShowD();break; default:cout<<"error"<

54、參數(shù):無 */ /*出口參數(shù):無 */ /***********************************/ void Delete() { system("cls"); /*清屏*/ printf("\n\n\t請輸入要?jiǎng)h除用戶的姓名:"); cin>>name1; /*輸入要?jiǎng)h除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name

55、1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } else { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要?jiǎng)h除的節(jié)點(diǎn)*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<

56、

57、s=(linklist)malloc(sizeof(listnode)); /*開辟一個(gè)節(jié)點(diǎn),用于存放新輸入的信息*/ printf("\n\n\t請輸入該用戶的信息:\n"); cout<<"姓名:"; cin>>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號(hào)碼:"; cin>>s->sim_no; cout<<"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n");

58、 /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!"); free(s); } } if(head==NULL) { head=s; r=head; head->next=NULL; }

59、 else { r->next=s; r=s; r->next=NULL; } Save(); } /***********************************/ /*函數(shù)名:Alter */ /*函數(shù)說明:改變一個(gè)人信息 */ /*入口參數(shù):無 */ /*出口參數(shù):無 */ /***********************************/ void Alter() {

60、 system("cls"); /*清屏*/ printf("\n\n\t請輸入姓名:"); cin>>name1; p3=head; while(p3!=NULL&&strcmp(name1,p3->name)!=0) p3=p3->next; if(p3==NULL) /*判斷輸入的用戶是否存在*/ printf("\n\n\t您選擇的用戶不存在!"); else { printf("\n\n\t請輸入該用戶的新信息:\n"); /*輸入要改人的新信息*/ cout<<"姓名:"; cin>>name1;

61、 cout<<"電話號(hào)碼:"; cin>>tel_no1; cout<<"電子郵箱:"; cin>>e_addr1; cout<<"縮位號(hào)碼:"; cin>>sim_no1; cout<<"類別:"; cin>>arch1; while(p9!=NULL&&strcmp(name1,p9->name)!=0&&strcmp(tel_no1,p9->tel_no)!=0) /*找尋輸入的用戶*/ p9=p9->next; if(p9==NULL) /*輸入用戶存在,則修改用戶信息*/ { str

62、cpy(p3->name,name1); strcpy(p3->tel_no,tel_no1); strcpy(p3->e_addr,e_addr1); p3->sim_no=sim_no1; p3->arch=arch1; } else printf("您添加的用戶已存在!"); } Save(); } /***********************************/ /*函數(shù)名:Dial */ /*函數(shù)說明:模擬撥打一個(gè)人的號(hào)碼 */ /*入口參數(shù)

63、:無 */ /*出口參數(shù):無 */ /***********************************/ void Dial() { int a; char b; system("cls"); /*清屏*/ cout<<"1.撥叫用戶:"<>a; p0=head; if(a==1) { cout<<"請輸入撥叫用戶的姓名:"; cin>>name1; whil

64、e(strcmp(name1,p0->name)!=0&&p0!=NULL) /*找尋輸入的用戶*/ p0=p0->next; if(p0==NULL) cout<<"您選擇的用戶不存在!"; else { cout<tel_no; cout<>b; while(p0!=NULL&&b!=p0->sim_no) /*找尋輸入的用戶*/ p0=p0->next

65、; if(p0==NULL) cout<<"您輸入的單鍵號(hào)碼不存在!"; else { cout<name<tel_no; cout<

66、:無 */ /***********************************/ void Save() { int j; fp=fopen("通訊錄文件.txt","w"); for(p2=head,j=0;p2!=NULL;j++ ,p2=p2->next)/*將信息裝出入結(jié)構(gòu)體數(shù)組在出入鏈表中,避免地址的出入,造成亂碼文件*/ { strcpy(persons[j].name,p2->name); strcpy(persons[j].e_addr,p2->e_addr); strcpy(persons[j].tel_no,p2->tel_no); persons[j].sim_no=p2->sim_no; persons[j].arch=p2->arch; fwrite(&persons[j],sizeof(struct persons),1,fp); } } vo

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲