




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)說明書 NO.11.課程設(shè)計(jì)的目的為了熟練掌握C語言的語法特點(diǎn)、及其數(shù)據(jù)結(jié)構(gòu),提高自身編寫程序的能力。通過課程設(shè)計(jì)實(shí)現(xiàn)理論知識(shí)與實(shí)際情況的結(jié)合,使所學(xué)知識(shí)能夠在現(xiàn)實(shí)社會(huì)中起到一定的作用,防止所編寫的程序脫離實(shí)際,讓程序可以更好的發(fā)揮作用,以便減輕實(shí)際工作中所遇到的繁瑣步驟,提高現(xiàn)實(shí)工作中的效率。此外通過課程設(shè)計(jì)提高邏輯思考能力和解決實(shí)際問題的能力。程序設(shè)計(jì)是公認(rèn)的、最能直接有效地訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)分析問題、解決問題能力的學(xué)科之一。其次課程設(shè)計(jì)有利于治學(xué)態(tài)度的培養(yǎng)。程序設(shè)計(jì)中,語句的語法和常量變量的定義都有嚴(yán)格的要求,有時(shí)輸了一個(gè)中文標(biāo)點(diǎn)、打錯(cuò)了一個(gè)字母,編譯就不通過,程序無法正常
2、運(yùn)行。因此,程序設(shè)計(jì)初學(xué)階段,學(xué)生經(jīng)常會(huì)犯這樣的錯(cuò)誤,可能要通過幾次乃至十多次的反復(fù)修改、調(diào)試,才能成功,但這種現(xiàn)象會(huì)隨著學(xué)習(xí)的深入而慢慢改觀。這當(dāng)中就有一個(gè)嚴(yán)謹(jǐn)治學(xué)、一絲不茍的科學(xué)精神的培養(yǎng),又有一個(gè)不怕失敗、百折不撓品格的鍛煉。通訊錄信息管理系統(tǒng)是生活中不可缺少的部分編寫了一個(gè)通訊錄信息管理系統(tǒng)是十分必要的。本程序設(shè)計(jì)具有通訊信息的錄入,進(jìn)行保存、查找、刪除等功能,操作界面簡潔美觀,易于操作。 程序用了條件、循環(huán)、指針、結(jié)構(gòu)體等知識(shí)點(diǎn),綜合了文件的打開和保存編寫的??蛇\(yùn)用于小的管理軟件。軟件運(yùn)用菜單實(shí)現(xiàn)交互式 管理,用戶輕松的按鍵既可實(shí)現(xiàn)對(duì)軟件的操作,操作簡單易懂,功能豐富,可以很好的滿足
3、的需要。通過對(duì)通訊錄管理系統(tǒng)的設(shè)計(jì),進(jìn)一步理解和掌握C語言這門課程的知識(shí)點(diǎn),能夠熟練的調(diào)用各種函數(shù),把各種C語句有機(jī)的結(jié)合起來,提高自己C語言程序設(shè)計(jì)的能力,為今后解決實(shí)際問題打下良好基礎(chǔ)。 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.2 2.設(shè)計(jì)方案論證21設(shè)計(jì)思路建立一個(gè)函數(shù),用來添加、顯示、刪除、查詢、修改、保存通訊錄等信息,完成通訊錄的功能。主函數(shù)可以調(diào)用六個(gè)子函數(shù),分別完成添加記錄、顯示記錄、刪除記錄、查詢記錄、修改記錄、保存記錄、退出系統(tǒng)等功能。在主函數(shù)中可以以1、2、3、4、5、6數(shù)字鍵分別可以執(zhí)行某個(gè)功能模塊。通訊錄信息管理系統(tǒng)添加記錄顯示記錄刪除記錄保存極錄查詢記錄修改記錄退出程序圖
4、1. 通訊錄信息管理系統(tǒng) 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.32.2程序設(shè)計(jì)2.2.1根據(jù)圖1定義數(shù)據(jù)類型建立函數(shù)typedef struct char score; /*編號(hào)*/char name10; /*姓名*/ char num15; /*號(hào)碼*/ char email20;/*郵箱*/char age8;/*年齡*/char adds20;/*住址*/Person;2.2.2主函數(shù)及其流程圖定義主函數(shù) main()和一系列的功能函數(shù),只有通過這些函數(shù)才可實(shí)現(xiàn)程序的功能。每次使用都會(huì)調(diào)用主函數(shù)。主函數(shù)主要是利用switch語句對(duì)數(shù)據(jù)進(jìn)行處理,流程圖如下: 沈 陽 大 學(xué)課程設(shè)計(jì)說明書
5、 NO.4開 始選擇1Y添加記錄選擇2YYYYYY保存記錄修改記錄查找記錄刪除記錄顯示記錄選擇6選擇5選擇4選擇3NNNNNN結(jié) 束圖2.主函數(shù)流程圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.52.2.3增加函數(shù)及其流程圖.添加通訊錄記錄流程圖:圖3. 添加通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO..顯示通訊錄記錄流程圖:圖4. 顯示通訊錄記錄流程圖: 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO..刪除通訊錄記錄流程圖 : .查詢通訊錄記錄流程圖: 圖6.查詢通訊錄記錄流程圖圖5. 刪除通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書
6、NO..修改通訊錄記錄流程圖:圖7. 修改通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.92.3源程序#include #include#include typedef struct char score; /*編號(hào)*/char name10; /*姓名*/ char num15; /*號(hào)碼*/ char email20;/*郵箱*/char age8;/*年齡*/char adds20;/*住址*/Person; Person pe80; int menu_select() char c; do system(cls); printf(tt *通訊錄* n); pri
7、ntf(ttn); printf(tt 1. 添加記錄 n); printf(tt 2. 顯示記錄 n); printf(tt 3. 刪除記錄 n); printf(tt 4. 查詢記錄 n); printf(tt 5. 修改記錄 n); printf(tt 6. 保存記錄 n);printf(tt 0. 退出程序 n); printf(ttn); printf(tt請(qǐng)您選擇(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.10char sig
8、n,x10; while(sign!=n&sign!=N) printf(t編號(hào):); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+); printf(t年齡:); scanf(t%s,pern+i.age);printf(t電話號(hào)碼:); scanf(t%s,pern+i.num); printf(t通訊住址:); scanf(t%s,pern+i.adds);printf(t電子郵箱:);scanf(t%s,pern+i.email);gets(x); printf(nt是否繼續(xù)添加?(Y/N); scanf(t
9、%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(編號(hào) 姓名 年齡 電話號(hào)碼 通訊地址 電子郵箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.11system(pause); printf(t-n); printf(-n);system(pause); int Delete_a_record(Person per,int n) char s20; int
10、i=0,j; printf(t請(qǐng)輸入想刪除記錄中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(,perj+1.name); strcpy(perj.age,perj+1.age);strcpy(perj.adds,perj+1.adds);strcpy(perj.email,perj+1.email);perj.score=p
11、erj+1.score; printf(ttt已經(jīng)成功刪除!n); return(n-1); void Query_a_record(Person per,int n) int m; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.12printf(tn請(qǐng)選擇查詢方式:n); printf(tn); printf(t1-姓名 n); printf(t2-電話 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(請(qǐng)選擇:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(輸入錯(cuò)誤,請(qǐng)重新選擇:);
12、scanf(%d,&m);if(m=1)char s20; int i=0; printf(t請(qǐng)輸入想查詢的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t此人年齡: %sn,peri.age); printf(t電話號(hào)碼: %sn,peri.num); printf(t通訊地址: %sn,peri.adds);printf(t電子郵箱: %sn,peri.email); ;if(
13、m=2)char s20; int i=0; printf(t請(qǐng)輸入想查詢的電話:); scanf(t%s,s);while(strcmp(peri.num,s)!=0&in) i+; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.13if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t此人姓名: %sn,);printf(t此人年齡: %sn,peri.age); printf(t通訊地址: %sn,peri.adds);printf(t電子郵箱: %sn,peri.email); ;i
14、f(m=3)char s20; int i=0; printf(t請(qǐng)輸入想查詢的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t此人姓名: %sn,);printf(t此人年齡: %sn,peri.age); printf(t電話號(hào)碼: %sn,peri.num); printf(t電子郵箱: %sn,peri.email); ;void Change(Perso
15、n per,int n) char s20; int i=0; printf(t請(qǐng)輸入想修改的記錄中的名字:); scanf(%s,s); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.14while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t編號(hào):); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,); printf(t年齡:); scanf(t%s,peri.age);printf(t電話號(hào)碼:); scanf(t%s,pe
16、ri.num); printf(t通訊住址:); scanf(t%s,peri.adds);printf(t電子郵箱:);scanf(t%s,peri.email);printf(t修改成功!);void WritetoText(Person per,int n) int i=0; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ printf(t保存到文件n); /*輸入文件名*/ printf(t請(qǐng)輸入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) printf(t無法
17、打開文件n); system(pause); return; fprintf(fp,*通訊錄*n);fprintf(fp,編號(hào) 姓名 年齡 電話號(hào)碼 通訊地址 電子郵箱n); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.15fprintf(fp,-n);while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,-n);fprintf(fp,*共有%d條記錄*n,n); fclose(fp); /*關(guān)
18、閉文件*/ printf(保存成功!n); void main() /*主函數(shù)*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加記錄到通訊錄n); /*添加記錄*/ n=Input(pe,n); break; case 2: printf(nttt 通訊錄記錄表n); /*顯示記錄*/ Display(pe,n); break;case 3: printf(nt從通訊錄中刪除記錄n); n=Delete_a_record(pe,n); /*刪除記錄*/ printf(t); system(pause); break; case
19、 4: printf(nt在通訊錄中查找記錄n); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.16Query_a_record(pe,n); /*查找記錄*/ printf(t); system(pause); break;case 5: printf(nt修改通訊錄中的記錄n); Change(pe,n); /*修改數(shù)據(jù)*/ printf(t); system(pause); break; case 6: printf(nt保存功能n); WritetoText(pe,n); /*保存數(shù)據(jù)*/ printf(t); system(pause); break; case 0: printf(ntt謝
20、謝使用,再見!n); /*結(jié)束程序*/ printf(ntt); system(pause); exit(0); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.173設(shè)計(jì)結(jié)果與分析3.1運(yùn)行程序?qū)⒃闯绦蚓幾g、鏈接后生成可執(zhí)行文件,運(yùn)行該文件會(huì)看到如圖8所示界面。圖8.菜單函數(shù)界面運(yùn)行主函數(shù)時(shí),首先調(diào)用函數(shù)menu();,該函數(shù)主要是利用輸出函數(shù)printf進(jìn)行輸出,其結(jié)圖所示。3.2 增加信息3.2.1輸入1顯示添加通訊錄界面。圖9.添加通訊錄界面圖這一函數(shù)實(shí)現(xiàn)了對(duì)字符串賦值的功能1。系統(tǒng)提示通訊錄使用者輸入相應(yīng)信息, 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.18然后用scanf函數(shù)獲取輸入數(shù)據(jù)。每次輸入結(jié)
21、束后,系統(tǒng)輸出詢問是否繼續(xù)添加的信息,然后執(zhí)行switch語句,如果返回值是“y”,則繼續(xù)執(zhí)行addnewcard()函數(shù)添加用戶,否則返回主菜單。3.2.2輸入2顯示顯示通訊錄界面。圖10.顯示通訊錄界面圖這一函數(shù)實(shí)現(xiàn)了對(duì)字符串賦值的功能2。系統(tǒng)提示通訊錄使用者輸入相應(yīng)信息,然后用scanf函數(shù)獲取輸入數(shù)據(jù)。,然后執(zhí)行switch語句,如果返回值是“y”,則繼續(xù)執(zhí)行函數(shù)顯示,否則返回主菜單。3.2.3在主菜單輸入3顯示刪除通訊錄界面。圖11.選擇刪除通訊錄記錄顯示圖 圖12.成功刪除通訊錄記錄顯示圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.19在主菜單界面輸入數(shù)字“3”,執(zhí)行deletecard()函數(shù)刪除用戶。當(dāng)通訊錄執(zhí)行者輸入要?jiǎng)h除學(xué)生的姓名,系統(tǒng)會(huì)搜索數(shù)據(jù)庫并將搜索結(jié)果輸出。然后征求確認(rèn)。每次刪除成功后系統(tǒng)會(huì)詢問是否繼續(xù)刪除,然后執(zhí)行相應(yīng)操作。刪除后,通訊錄里的顯示記錄顯示:圖13.刪除后通訊錄顯示記錄圖刪除通訊錄記錄時(shí)首先選擇出名字,其次在顯示刪除后程序才真正的刪除,再進(jìn)入顯示界面就不會(huì)再顯示原來所謂信息 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.203.2.4在主菜單輸入4顯示查詢通訊錄界面。圖13.查詢通訊錄記錄界面圖這一函數(shù)提示通訊錄管理人員可以有姓名、電話、地址三種輸入方式,調(diào)用scanf函數(shù)獲取輸入信息,然后執(zhí)行if語句,則會(huì)顯示查詢用戶信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黃河交通學(xué)院《信息論與編碼》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京理工大學(xué)泰州科技學(xué)院《音韻與方言》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南省婁底市婁星區(qū)2024年八上數(shù)學(xué)期末達(dá)標(biāo)檢測試題含解析
- 畢節(jié)醫(yī)學(xué)高等??茖W(xué)?!豆糯鷿h語Ⅰ(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆科技職業(yè)技術(shù)學(xué)院《文創(chuàng)產(chǎn)品設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 歷史時(shí)間線梳理與專題研究教案
- 石家莊學(xué)院《急診急救與災(zāi)難救援》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南省林州市第七中學(xué)2025屆化學(xué)九年級(jí)第一學(xué)期期末達(dá)標(biāo)檢測模擬試題含解析
- 江蘇省新沂市度第二期期2024年八上物理期末達(dá)標(biāo)檢測試題含解析
- 四川旅游學(xué)院《移動(dòng)應(yīng)用技術(shù)與開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 20470-2006臨床實(shí)驗(yàn)室室間質(zhì)量評(píng)價(jià)要求
- 《沙盤游戲與大學(xué)生心理治療》課程教學(xué)大綱
- GA/T 1399.2-2017公安視頻圖像分析系統(tǒng)第2部分:視頻圖像內(nèi)容分析及描述技術(shù)要求
- 丁類(D類)功率放大器
- 鋼制壓力容器焊接通用規(guī)程
- (0059)船舶貨運(yùn)保險(xiǎn)理賠答疑手冊
- 醫(yī)療器械輻照滅菌確認(rèn)報(bào)告
- 南瑞繼保103-主體部分
- J-STD-020D[1].1中文版
- 燃?xì)廨斉涔こ淘O(shè)計(jì)施工驗(yàn)收技術(shù)規(guī)范 DB11T 302-2005
- 自動(dòng)噴水滅火系統(tǒng)嚴(yán)密性試驗(yàn)記錄
評(píng)論
0/150
提交評(píng)論