C語言課程設(shè)計__第1頁
C語言課程設(shè)計__第2頁
C語言課程設(shè)計__第3頁
C語言課程設(shè)計__第4頁
C語言課程設(shè)計__第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計說明書 NO.11.課程設(shè)計的目的為了熟練掌握C語言的語法特點、及其數(shù)據(jù)結(jié)構(gòu),提高自身編寫程序的能力。通過課程設(shè)計實現(xiàn)理論知識與實際情況的結(jié)合,使所學(xué)知識能夠在現(xiàn)實社會中起到一定的作用,防止所編寫的程序脫離實際,讓程序可以更好的發(fā)揮作用,以便減輕實際工作中所遇到的繁瑣步驟,提高現(xiàn)實工作中的效率。此外通過課程設(shè)計提高邏輯思考能力和解決實際問題的能力。程序設(shè)計是公認的、最能直接有效地訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)分析問題、解決問題能力的學(xué)科之一。其次課程設(shè)計有利于治學(xué)態(tài)度的培養(yǎng)。程序設(shè)計中,語句的語法和常量變量的定義都有嚴格的要求,有時輸了一個中文標點、打錯了一個字母,編譯就不通過,程序無法正常

2、運行。因此,程序設(shè)計初學(xué)階段,學(xué)生經(jīng)常會犯這樣的錯誤,可能要通過幾次乃至十多次的反復(fù)修改、調(diào)試,才能成功,但這種現(xiàn)象會隨著學(xué)習(xí)的深入而慢慢改觀。這當中就有一個嚴謹治學(xué)、一絲不茍的科學(xué)精神的培養(yǎng),又有一個不怕失敗、百折不撓品格的鍛煉。通訊錄信息管理系統(tǒng)是生活中不可缺少的部分編寫了一個通訊錄信息管理系統(tǒng)是十分必要的。本程序設(shè)計具有通訊信息的錄入,進行保存、查找、刪除等功能,操作界面簡潔美觀,易于操作。 程序用了條件、循環(huán)、指針、結(jié)構(gòu)體等知識點,綜合了文件的打開和保存編寫的??蛇\用于小的管理軟件。軟件運用菜單實現(xiàn)交互式 管理,用戶輕松的按鍵既可實現(xiàn)對軟件的操作,操作簡單易懂,功能豐富,可以很好的滿足

3、的需要。通過對通訊錄管理系統(tǒng)的設(shè)計,進一步理解和掌握C語言這門課程的知識點,能夠熟練的調(diào)用各種函數(shù),把各種C語句有機的結(jié)合起來,提高自己C語言程序設(shè)計的能力,為今后解決實際問題打下良好基礎(chǔ)。 沈 陽 大 學(xué)課程設(shè)計說明書 NO.2 2.設(shè)計方案論證21設(shè)計思路建立一個函數(shù),用來添加、顯示、刪除、查詢、修改、保存通訊錄等信息,完成通訊錄的功能。主函數(shù)可以調(diào)用六個子函數(shù),分別完成添加記錄、顯示記錄、刪除記錄、查詢記錄、修改記錄、保存記錄、退出系統(tǒng)等功能。在主函數(shù)中可以以1、2、3、4、5、6數(shù)字鍵分別可以執(zhí)行某個功能模塊。通訊錄信息管理系統(tǒng)添加記錄顯示記錄刪除記錄保存極錄查詢記錄修改記錄退出程序圖

4、1. 通訊錄信息管理系統(tǒng) 沈 陽 大 學(xué)課程設(shè)計說明書 NO.32.2程序設(shè)計2.2.1根據(jù)圖1定義數(shù)據(jù)類型建立函數(shù)typedef struct char score; /*編號*/char name10; /*姓名*/ char num15; /*號碼*/ char email20;/*郵箱*/char age8;/*年齡*/char adds20;/*住址*/Person;2.2.2主函數(shù)及其流程圖定義主函數(shù) main()和一系列的功能函數(shù),只有通過這些函數(shù)才可實現(xiàn)程序的功能。每次使用都會調(diào)用主函數(shù)。主函數(shù)主要是利用switch語句對數(shù)據(jù)進行處理,流程圖如下: 沈 陽 大 學(xué)課程設(shè)計說明書

5、 NO.4開 始選擇1Y添加記錄選擇2YYYYYY保存記錄修改記錄查找記錄刪除記錄顯示記錄選擇6選擇5選擇4選擇3NNNNNN結(jié) 束圖2.主函數(shù)流程圖 沈 陽 大 學(xué)課程設(shè)計說明書 NO.52.2.3增加函數(shù)及其流程圖.添加通訊錄記錄流程圖:圖3. 添加通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計說明書 NO..顯示通訊錄記錄流程圖:圖4. 顯示通訊錄記錄流程圖: 沈 陽 大 學(xué)課程設(shè)計說明書 NO..刪除通訊錄記錄流程圖 : .查詢通訊錄記錄流程圖: 圖6.查詢通訊錄記錄流程圖圖5. 刪除通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計說明書

6、NO..修改通訊錄記錄流程圖:圖7. 修改通訊錄記錄流程圖 沈 陽 大 學(xué)課程設(shè)計說明書 NO.92.3源程序#include #include#include typedef struct char score; /*編號*/char name10; /*姓名*/ char num15; /*號碼*/ 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請您選擇(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; 沈 陽 大 學(xué)課程設(shè)計說明書 NO.10char sig

8、n,x10; while(sign!=n&sign!=N) printf(t編號:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+); printf(t年齡:); scanf(t%s,pern+i.age);printf(t電話號碼:); 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(編號 姓名 年齡 電話號碼 通訊地址 電子郵箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); 沈 陽 大 學(xué)課程設(shè)計說明書 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請輸入想刪除記錄中的名字:); 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è)計說明書 NO.12printf(tn請選擇查詢方式:n); printf(tn); printf(t1-姓名 n); printf(t2-電話 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(請選擇:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(輸入錯誤,請重新選擇:);

12、scanf(%d,&m);if(m=1)char s20; int i=0; printf(t請輸入想查詢的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號: %dn,peri.score);printf(t此人年齡: %sn,peri.age); printf(t電話號碼: %sn,peri.num); printf(t通訊地址: %sn,peri.adds);printf(t電子郵箱: %sn,peri.email); ;if(

13、m=2)char s20; int i=0; printf(t請輸入想查詢的電話:); scanf(t%s,s);while(strcmp(peri.num,s)!=0&in) i+; 沈 陽 大 學(xué)課程設(shè)計說明書 NO.13if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號: %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請輸入想查詢的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號: %dn,peri.score);printf(t此人姓名: %sn,);printf(t此人年齡: %sn,peri.age); printf(t電話號碼: %sn,peri.num); printf(t電子郵箱: %sn,peri.email); ;void Change(Perso

15、n per,int n) char s20; int i=0; printf(t請輸入想修改的記錄中的名字:); scanf(%s,s); 沈 陽 大 學(xué)課程設(shè)計說明書 NO.14while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t編號:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,); printf(t年齡:); scanf(t%s,peri.age);printf(t電話號碼:); 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請輸入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) printf(t無法

17、打開文件n); system(pause); return; fprintf(fp,*通訊錄*n);fprintf(fp,編號 姓名 年齡 電話號碼 通訊地址 電子郵箱n); 沈 陽 大 學(xué)課程設(shè)計說明書 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è)計說明書 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è)計說明書 NO.173設(shè)計結(jié)果與分析3.1運行程序?qū)⒃闯绦蚓幾g、鏈接后生成可執(zhí)行文件,運行該文件會看到如圖8所示界面。圖8.菜單函數(shù)界面運行主函數(shù)時,首先調(diào)用函數(shù)menu();,該函數(shù)主要是利用輸出函數(shù)printf進行輸出,其結(jié)圖所示。3.2 增加信息3.2.1輸入1顯示添加通訊錄界面。圖9.添加通訊錄界面圖這一函數(shù)實現(xiàn)了對字符串賦值的功能1。系統(tǒng)提示通訊錄使用者輸入相應(yīng)信息, 沈 陽 大 學(xué)課程設(shè)計說明書 NO.18然后用scanf函數(shù)獲取輸入數(shù)據(jù)。每次輸入結(jié)

21、束后,系統(tǒng)輸出詢問是否繼續(xù)添加的信息,然后執(zhí)行switch語句,如果返回值是“y”,則繼續(xù)執(zhí)行addnewcard()函數(shù)添加用戶,否則返回主菜單。3.2.2輸入2顯示顯示通訊錄界面。圖10.顯示通訊錄界面圖這一函數(shù)實現(xiàn)了對字符串賦值的功能2。系統(tǒng)提示通訊錄使用者輸入相應(yīng)信息,然后用scanf函數(shù)獲取輸入數(shù)據(jù)。,然后執(zhí)行switch語句,如果返回值是“y”,則繼續(xù)執(zhí)行函數(shù)顯示,否則返回主菜單。3.2.3在主菜單輸入3顯示刪除通訊錄界面。圖11.選擇刪除通訊錄記錄顯示圖 圖12.成功刪除通訊錄記錄顯示圖 沈 陽 大 學(xué)課程設(shè)計說明書 NO.19在主菜單界面輸入數(shù)字“3”,執(zhí)行deletecard()函數(shù)刪除用戶。當通訊錄執(zhí)行者輸入要刪除學(xué)生的姓名,系統(tǒng)會搜索數(shù)據(jù)庫并將搜索結(jié)果輸出。然后征求確認。每次刪除成功后系統(tǒng)會詢問是否繼續(xù)刪除,然后執(zhí)行相應(yīng)操作。刪除后,通訊錄里的顯示記錄顯示:圖13.刪除后通訊錄顯示記錄圖刪除通訊錄記錄時首先選擇出名字,其次在顯示刪除后程序才真正的刪除,再進入顯示界面就不會再顯示原來所謂信息 沈 陽 大 學(xué)課程設(shè)計說明書 NO.203.2.4在主菜單輸入4顯示查詢通訊錄界面。圖13.查詢通訊錄記錄界面圖這一函數(shù)提示通訊錄管理人員可以有姓名、電話、地址三種輸入方式,調(diào)用scanf函數(shù)獲取輸入信息,然后執(zhí)行if語句,則會顯示查詢用戶信

溫馨提示

  • 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

提交評論