




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、成績 南京工程學院 課程設(shè)計說明書(論文) 題 目 通訊錄的制作 課 程 名 稱 軟件技術(shù)基礎(chǔ) 院(系、部、中心) 專 業(yè) 班 級 學 生 姓 名 學 號 設(shè) 計 地 點 指 導 教 師 設(shè)計起止時間: 目錄1課程設(shè)計任務(wù)書 32 概要設(shè)計(各模塊流程圖 ) 82.1 主函數(shù) 82.2 菜單選擇函數(shù) 92.3 建立函數(shù) 102.4 追加數(shù)據(jù)函數(shù) 112.5 數(shù)據(jù)查詢函數(shù) 122.6 數(shù)據(jù)刪除函數(shù) 132.7 數(shù)據(jù)顯示函數(shù) 142.8 數(shù)據(jù)保存函數(shù) 152.9 數(shù)據(jù)裝入函數(shù)163 詳細設(shè)計 173.1 主函數(shù)173.2 通訊錄菜單選擇183.3 通訊錄建立 193.4 通訊錄追加數(shù)據(jù)203.5
2、通訊錄數(shù)據(jù)查詢203.6 通訊錄數(shù)據(jù)刪除213.7 通訊錄數(shù)據(jù)顯示223.8 通訊錄數(shù)據(jù)保存223.9 通訊錄數(shù)據(jù)裝入234 調(diào)試報告 244.1 主函數(shù)244.2 通訊錄菜單選擇254.3 通訊錄建立 264.4 通訊錄追加數(shù)據(jù)284.5 通訊錄數(shù)據(jù)查詢294.6 通訊錄數(shù)據(jù)刪除314.7 通訊錄數(shù)據(jù)顯示314.8 通訊錄數(shù)據(jù)保存324.9 通訊錄數(shù)據(jù)裝入335 改進意見及收獲體會 356 程序清單 367 主要參考文獻 42南京工程學院課程設(shè)計任務(wù)書 課 程 名 稱 軟件技術(shù)基礎(chǔ) 院(系、部、中心) 專 業(yè) 班 級 起 止 日 期 指 導 教 師 1課程設(shè)計應(yīng)達到的目的該實踐教學是軟件設(shè)計
3、的綜合訓練,包括問題分析、總體結(jié)構(gòu)設(shè)計、用戶界面設(shè)計、程序設(shè)計基本技能和技巧。學生通過課程設(shè)計加深理解課堂教學內(nèi)容,要求學生在設(shè)計中逐步提高程序設(shè)計和調(diào)試能力,培養(yǎng)學生解決實際問題的能力,算法分析能力和學生的科技論文寫作能力。2課程設(shè)計題目及要求題目:通訊錄的制作1問題描述編寫一個通訊錄管理系統(tǒng), 用數(shù)據(jù)結(jié)構(gòu)中的(雙向)鏈表作數(shù)據(jù)結(jié)構(gòu), 每條信息至少包含 :姓名(NAME )、街道(STREET)、城市(CITY)、郵編(EIP)、國家(STATE)幾項。2. 基本要求:(1)輸入信息enter()(2)顯示信息display( )(3)查找以姓名作為關(guān)鍵字 search( )(4)刪除信息d
4、elete( )(5)存盤save ( )(6)裝入load( ) 作為一個完整的系統(tǒng),應(yīng)具有友好的界面和較強的容錯能力,上機能正常運行,盡量避免出現(xiàn)操作錯誤時出現(xiàn)死循環(huán)。3課程設(shè)計任務(wù)及工作量的要求包括課程設(shè)計計算說明書、圖紙、實物樣品等要求(1)分析問題,給出數(shù)學模型,設(shè)計相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。(2)算法設(shè)計在已經(jīng)選擇好數(shù)據(jù)結(jié)構(gòu)的前提下,為解決問題設(shè)計算法。² 確定所需模塊對于稍復(fù)雜的程序設(shè)計,要充分利用模塊化程序設(shè)計方法,自頂向下,逐步細化,在整體思路確定的情況下,考慮所需模塊數(shù),各模塊完成功能以及模塊之間的數(shù)據(jù)聯(lián)系和調(diào)用關(guān)系。² 各子模塊功能描述給出主要模塊的算法描述,用
5、流程圖或偽代碼表示。² 模塊之間的調(diào)用關(guān)系給出算法各模塊之間的關(guān)系圖示(3)源程序清單(草稿)為了提高工作效率,充分利用上機調(diào)試程序的時間,要求學生在上機之前給出源程序清單。(4)用測試數(shù)據(jù)去驗證算法及程序的正確性正序、逆序、隨機數(shù)(5)算法分析經(jīng)過上機調(diào)試,源程序運行正確,并且實現(xiàn)算法要求的功能,解決課程設(shè)計題目中給出的問題后,分析算法的時間復(fù)雜度和空間復(fù)雜度。(6)提供的主程序可以象一個應(yīng)用系統(tǒng)一樣有主窗口,通過主菜單和分級菜單調(diào)用課程設(shè)計中要求完成的各個功能模塊,調(diào)用后可以返回到主菜單,繼續(xù)選擇其他功能進行其他功能的選擇。(7)按照課程設(shè)計說明書的格式規(guī)范撰寫課程設(shè)計說明書,其
6、中正文包括: 需求分析:對系統(tǒng)要實現(xiàn)的功能進行簡明扼要的描述。 概要設(shè)計:根據(jù)功能描述,建立系統(tǒng)的體系結(jié)構(gòu),即將整個系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡要說明各模塊的功能。 詳細設(shè)計:詳細說明各功能模塊的實現(xiàn)過程,算法、技巧等。重點功能部分要加上清晰的程序注釋。 效果及存在問題:說明系統(tǒng)的運行效果(附上運行界面圖片)、存在哪些不足以及預(yù)期的解決辦法。 心得體會:談?wù)勛约涸谡n程設(shè)計過程中的心得體會。(8)課程設(shè)計說明書用B5紙統(tǒng)一打印,裝訂按學校的統(tǒng)一要求完成。(9)課程設(shè)計的程序以軟盤形式上交,文件夾名稱為學生姓名及學號的組合。未經(jīng)指導教師許可或無故不到者,缺勤
7、率達50%的學生不能參加答辯。 答辯時,設(shè)計者在5分鐘內(nèi)闡述自己的設(shè)計過程和最終結(jié)果,突出設(shè)計中遇到的主要問題和解決方法,然后回答教師提問。每位學生答辯總時間一般不超過15分鐘。 4主要參考文獻1 徐士良. 計算機軟件技術(shù)基礎(chǔ)M . 北京:清華大學出版社,2004.2 廖雷C程序設(shè)計實踐教程M北京: 高等教育出版社,2003.3 潭浩強. C程序設(shè)計(第三版). 北京:清華大學出版社,2005.4 潭浩強. C程序設(shè)計題解與上機指導(第二版). 北京:清華大學出版社,1999.5 廖雷 羅代忠C語言程序設(shè)計基礎(chǔ)實踐教程北京: 高等教育出版社,2005.6 廖雷C語言程序設(shè)計基礎(chǔ)北京: 高等教育
8、出版社,2004.5課程設(shè)計進度安排起 止 日 期工 作 內(nèi) 容2009年12月19日20日2009年12月21 日2009年12月22 日2009年12月23 日2009年12月24 日2009年12月25 日 熟悉任務(wù),設(shè)計算法,編寫源程序上機調(diào)試上機調(diào)試上機調(diào)試上機調(diào)試考核驗收6成績考核辦法課程設(shè)計成績的評定:根據(jù)設(shè)計的完成情況、程序的編制質(zhì)量、獨立設(shè)計能力以及答辯情況綜合衡量,由答辯小組討論決定。原則上按以下公式計算: 課程設(shè)計成績工作表現(xiàn)×30%設(shè)計成果×40%考核測評×30% 工作表現(xiàn):獨立工作能力及設(shè)計過程的表現(xiàn)。占總成績的30%。設(shè)計成果:設(shè)計說明
9、書(計算書、論文)、圖紙、程序、作品等的質(zhì)量。占總成績的40%。考核測評:課程設(shè)計結(jié)束前,指導教師應(yīng)采用考試或答辯等形式對所指導的學生進行測評。測評成績占總成績的30%。有創(chuàng)新的同學根據(jù)具體情況適當加分。教研室審查意見:教研室主任簽字: 年 月 日院(系、部、中心)意見:主管領(lǐng)導簽字: 年 月 日2概要設(shè)計各模塊流程圖(1) main( )開始清屏Menu_select退出菜單 1 2 3 4 5 6 7 0刪除記錄查詢記錄追加記錄新建記錄顯示記錄保存記錄讀取記錄 Break Break Break Break Break Break Break Break 結(jié)束(2) menu_select
10、( )開始清屏輸出菜單提示信息輸入選擇按鍵選擇數(shù)字<0或數(shù)字>7 Y N Break; 返回菜單 提示:輸入錯誤 結(jié)束 (3) linklist create_list( )開始生成頭節(jié)點,定義指針等清屏頭指針為空headNULL打開文件為空 Y N 文件未結(jié)束 動態(tài)生成節(jié)點p打開文件失敗 Y 讀入文件不是1 Y N 跳出 頭指針為空 p>next=q;p=q; headq;phead;p=q;指針指向下一節(jié)點關(guān)閉文件結(jié)束(4) insert_node()開始定義指針p1,p2清屏輸出表頭,輸出“通訊錄信息的追加”動態(tài)生成節(jié)點p 輸入追加者姓名p1=head;p2=p1-&g
11、t;next;P2不為空且p2指向的郵編小于p1指向的郵編 假 真 p2=p1;p2=p2->next; 真動態(tài)生成節(jié)點p調(diào)用save()函數(shù)結(jié)束(5) search_list( )開始定義指針p,數(shù)組name清屏輸出表頭,輸出“按姓名查詢” P指向head下一結(jié)點輸入查詢者姓名P不為空且要查詢姓名與表中姓名不等 真查找下一個 p=p->next結(jié)束(6)del_node()開始清屏輸出表頭,輸出“通訊錄信息的刪除”定義數(shù)組name,指針p,q指針后移p=head->next 輸出提示:要刪除者的姓名p不為空且輸入的姓名與表單中的姓名不相等 假 真 指針指向下一節(jié)點 真結(jié)束動
12、態(tài)生成節(jié)點p調(diào)用save()函數(shù) (7) display_list( )開始清屏輸出提示信息,表頭定義指針pp=head->next 輸出表頭P不為空 真 輸出數(shù)據(jù) 真結(jié)束指針指向下一節(jié)點P=p->next;輸出表尾(8) save ( )開始清屏定義指針等輸出提示信息,表頭打開文件為空 Y N輸出提示:保存文件 P不為空打開文件失敗 將數(shù)據(jù)寫入文件指針指向下一節(jié)點 關(guān)閉文件 結(jié)束提示:保存成功(9) load( )開始定義指針等清屏頭指針為空headNULL打開文件為空 Y N文件未結(jié)束 動態(tài)生成節(jié)點p打開文件失敗 讀入文件不是1 Y 跳出 頭指針為空 p>next=q;p
13、=q;headq;phead;p=q;指針指向下一節(jié)點關(guān)閉文件結(jié)束3詳細設(shè)計#include<stdio.h> /*頭文件*/ #include<string.h>#include<stdlib.h>#include<conio.h> /*屏幕文件*/typedef struct /*定義結(jié)構(gòu)體*/ char name10; char phone13; char street14; char city10; char eip9; char country10; datatype; /*結(jié)構(gòu)體名*/typedef struct node datat
14、ype data; struct node * next;listnode;typedef listnode * linklist; linklist head;listnode *p;int menu_select( );linklist create_list(void);void insert_node(linklist head,listnode *p);listnode *search_list(linklist head);void del_node(linklist head); /*函數(shù)的說明*/void display_list(linklist head); /*函數(shù)的使用
15、要在函數(shù)的定義之后*/void save(linklist *head);listnode *load(); void main() /*主函數(shù)*/ for( ; ; ) switch(menu_select() ) /*進入菜單選擇*/ case 1: head=create_list(); /*選擇1,建立鏈表函數(shù)*/ break; case 2: insert_node(load(),p); /*選擇2,追加函數(shù)*/ break; case 3: p=search_list(load(); /*選擇3,查詢函數(shù)*/ if(p!=NULL)printf("n");pri
16、ntf("姓名國 家城 市街 道郵 編電 話n");printf("n");printf("%-8s%-8s%-8s%-8s%-12s%-12sn",p->,p->data.country,p->data.city,p->data.street,p->data.eip,p->data.phone);printf("n"); /*打印表頭信息*/ else printf("沒有你要找的人 ! n");getch(); /*提示:若未查到則提示*
17、/ break; case 4: del_node(load(); /*選擇4,刪除函數(shù)*/ break; case 5: display_list(load(); break; /*選擇5,顯示信息函數(shù)*/ case 6: save(head); /*選擇,保存函數(shù)*/ break; case 7: display_list(load(); /*選擇7,裝入文件函數(shù)*/ getch(); break; case 0: printf("t感謝您的使用! n"); /*選擇0,退出菜單*/ return; int menu_select() /*菜單選擇函數(shù)*/ int sn
18、; system("cls"); /*清屏*/ printf(" n"); printf(" n"); printf(" n"); printf(" *通訊錄管理系統(tǒng)*n"); printf(" n"); printf(" n"); printf(" 1.通訊錄鏈表的建立 n"); printf(" n"); printf(" 2.通訊者結(jié)點的插入 n"); printf(" n&quo
19、t;); printf(" 3.通訊錄鏈表的查詢 n"); printf(" n"); printf(" 4.通訊者結(jié)點的刪除 n"); printf(" n"); printf(" 5.通訊錄鏈表的輸出 n"); printf(" n"); printf(" 6.通訊錄鏈表的存盤 n"); printf(" n"); printf(" 7.通訊錄鏈表的裝入 n"); printf(" n");
20、printf(" 0.退出通訊錄管理系統(tǒng) n"); printf(" n"); printf( " 請選擇操作0-7 nn"); /*輸出菜單信息*/ for(; ;) scanf("%d",&sn); /*輸入選擇數(shù)字*/ if(sn<0|sn>7) printf("t輸入錯誤n"); /*如果按鍵數(shù)字小于0或者大于7,提示出錯*/ else break; return sn;linklist create_list(void) /*建立鏈表函數(shù)*/ linklist he
21、ad=(listnode *)malloc(sizeof(listnode); listnode *p,*rear; int flag=1; /*標記1*/ system("cls"); /*清屏*/ printf(" n"); printf(" *n"); printf(" 通訊信息的建立 n"); printf(" *n"); rear=head; while(flag=1) p=(listnode *)malloc(sizeof(listnode); /*動態(tài)生成節(jié)點p*/ printf(
22、"n"); printf("姓名國 家城 市街 道郵 編電 話n"); printf("n"); scanf("%s%s%s%s%s%s",p->,p->data.country,p->data.city,p->data.street,p->data.eip,p->data.phone); rear->next=p; /*指針指向下一節(jié)點*/ rear=p; printf("繼續(xù)建表嗎? (1.是/0.不):"); /*提示是否繼續(xù)建表
23、*/ scanf("%d",&flag); /*輸入選擇*/ if(flag=1) printf("創(chuàng)建成功!n"); /*若選擇1,則提示創(chuàng)建成功*/ rear->next=NULL; return head; /*返回頭節(jié)點*/ getch(); /*按任意鍵返回*/void insert_node(linklist head,listnode *p) /*追加節(jié)點函數(shù)*/ listnode *p1,*p2; system("cls"); /*清屏*/ printf(" *n"); printf(
24、" 訊信息的追加 n"); printf(" *n"); printf("n"); printf("姓名國 家城 市街 道郵 編電 話n"); printf("n"); p=(listnode *)malloc(sizeof(listnode); scanf("%s%s%s%s%s%s",p->,p->data.country,p->data.city,p->data.street,p->data.eip,p->data.
25、phone); p1=head; p2=p1->next; /*指針指向下一節(jié)點*/ while(p2!=NULL && strcmp(p2->data.eip,p->data.eip)<0) p1=p2; p2=p2->next; p1->next=p; p->next=p2; printf("插入成功!n");save(head); /*提示插入成功,調(diào)用保存函數(shù)*/ getch();listnode * search_list(linklist head) /*查詢函數(shù)/ listnode * p; char
26、name10; system("cls"); printf(" *n"); printf(" 通訊信息的查詢 n"); printf(" *n"); printf("*n"); printf("按姓名查詢n"); /*提示按姓名查詢*/ printf("*n"); p=head->next; printf("請輸入要查詢者的姓名: "); scanf("%s",name); while(p &&
27、 strcmp(p->,name)!=0) /*當p不為空且輸入的姓名與信息中的姓名不符時*/ p=p->next; /*指針指向下一節(jié)點*/ return p;void del_node(linklist head) /*刪除函數(shù)*/ char name10; int jx; listnode *p,*q; system("cls"); /*清屏*/ printf(" *n");printf(" 通訊信息的刪除 n"); printf(" *n"); p=head->next;
28、 printf("請輸入要刪除者的姓名: "); /*按姓名刪除*/ scanf("%s",name); /*輸入姓名*/ while(p && strcmp(p->,name)!=0) p=p->next; if(p=NULL) /*若p為空*/ printf("沒有要刪除的通訊者!:n"); /*提示沒有該人*/ return; printf ("真的要刪除該結(jié)點嗎?(1.是/0.不):"); /*確認是否刪除*/ scanf("%d",&
29、;jx); if (jx=1) q=head; while(q!=NULL && q->next!=p) q=q->next; q->next=p->next; free(p); printf("通訊者已被刪除!n"); save(head); /*調(diào)用保存函數(shù)*/ getch(); void display_list(linklist head) /*顯示信息函數(shù)*/ listnode * p; system("cls"); printf(" *n"); printf(" 通訊鏈表的輸出 n"); printf(" *n"); p=head->next; printf("n"); printf("姓名國 家城 市街 道郵 編電 話n"); while(p!=NULL)printf("n"); printf("%-8s%-8s%-8s%-8s%-12s%-12sn"
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版三年級語文下冊第三單元達標測試卷(含答案)
- 2019-2025年軍隊文職人員招聘之軍隊文職法學題庫檢測試卷A卷附答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識題庫練習試卷B卷附答案
- 2019-2025年軍隊文職人員招聘之軍隊文職管理學與服務(wù)通關(guān)提分題庫及完整答案
- 2025年軍隊文職人員招聘之軍隊文職教育學題庫檢測試卷A卷附答案
- 初二壓強物理試題及答案
- 螺螄粉專業(yè)知識培訓課件
- 2025年大學生防詐騙知識競賽題庫及答案(一)
- 從愚公移山看堅持與毅力作文
- 《初識高中物理實驗:運動與力的教學計劃》
- 健康管理調(diào)查表
- 五步三查”流程規(guī)范要求ppt課件
- 三打白骨精英語話劇劇本
- 高嶺土化驗檢測分析報告
- 廢舊物資回收服務(wù)實施方案
- 電力建設(shè)工程質(zhì)量監(jiān)督檢查大綱新版
- 四“借”三“有”寫清楚實驗過程——三下“我做了一項小實驗”習作教學
- 呼吸困難完全PPT課件
- 中國春節(jié)習俗簡介0001
- 高二數(shù)學教學進度計劃表
- 規(guī)章制度匯編結(jié)構(gòu)格式標準
評論
0/150
提交評論