西北工業(yè)大學c語言大作業(yè)_第1頁
西北工業(yè)大學c語言大作業(yè)_第2頁
西北工業(yè)大學c語言大作業(yè)_第3頁
西北工業(yè)大學c語言大作業(yè)_第4頁
西北工業(yè)大學c語言大作業(yè)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學 院班 級學 號姓 名目錄1 摘要31.1 設計題目31.2 設計內容31.3 開發(fā)工具31.4 應用平臺32 詳細設計32.1 程序結構32.2 主要功能32.3 函數(shù)實現(xiàn)32.4 開發(fā)日志43 程序調試及運行43.1 程序運行結果43.2 程序使用說明43.3 程序開發(fā)總結44 附件(源程序)4/*在后面的文檔編寫中,請你不要修改各個標題的內容,從而確保報告內容和風格一致。完成全部內容后,你只需要在上面的目錄上右鍵“更新域”,選擇“只更新頁碼”就可以更新正確的目錄頁碼。注意:目錄的左邊距為6.5厘米。*/1 摘要1.1 設計題目個人電話薄的管理1.2 設計內容通訊錄管理系統(tǒng)是典型的管理系

2、統(tǒng)(mis),其開發(fā)主要包括數(shù)據(jù)庫的建立和維護前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)庫一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。經(jīng)過分析,我們使用microsoft公司的visual,basic開發(fā)工具,利用其提供的各種面向對象的開發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時間內建立系統(tǒng)應用原型,然后,對初始原型系統(tǒng)進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。1.3 開發(fā)工具visual c+ 6.0 win32 word辦公軟件1.4 應用平臺windows 2000/xp/vista 32位2

3、詳細設計2.1 程序結構1,總體設計圖個人通訊錄管理系統(tǒng)信息導入模塊信息添加模塊信息查詢模塊信息刪除模塊信息輸出模塊信息主序模塊2,詳細設計設計主界面主界面是一個應用系統(tǒng)的主要操作界面,也是系統(tǒng)的交互式平臺,通過printf函數(shù)來畫一個主界面,實現(xiàn)代碼如下:void main() printf(“n-community note management system-n”); printf(“nn”); printf(“ input-0n”); printf(“ lode-1n”);printf(“ display-2n”)printf(“ find-3n”);printf(“ modify-4

4、n”)printf(“ delete-5n”)printf(“ save-6n”);printf(“ quit-7n); /*通訊錄提示信息;*/printf(“nn”);printf(“please input number(07);”);用printf函數(shù)畫出的操作主界面,其返回結果如圖:add( )增加模塊建立鏈表的具體操作就是逐一輸入各結點數(shù)據(jù),并建立其前后相鏈的關系。void add()int i;file *fp;if(fp=fopen(通訊錄.txt,a)=null)printf(無法打開文件,按任意鍵退出!n);char a;scanf(%c,&a);exit(0);int n

5、um;printf(您想要增加幾個聯(lián)系人:n);scanf(%d,&num);struct lianxiren t50;printf(請輸入聯(lián)系人信息n);printf(名字地址年齡電話電子郵箱n);printf(-n);for(i=0;inum;i+)scanf(%s%s%s%s%s, ,ti.address ,ti.age ,ti.tele ,ti.e_mail );printf(_n);for(i=0;inext,后把next指向p-next。在釋放p指針。要完成的是鏈表的刪除操作,只需修改鏈表中要刪除結點的前一個結點的鏈指針。使之指向被刪除結點的后面一個結點即可。 voi

6、d dele(struct lianxiren a,int n)struct lianxiren temp5;char mingzi20;int i,j=0,s=0;printf(輸入你要刪除人得名字:);scanf(%s,mingzi);printf(n);for(i=0;in;i+)if(strcmp(mingzi,)!=0)strcpy(,);strcpy(tempj.address,ai.address);strcpy(tempj.age,ai.age);strcpy(tempj.tele,ai.tele);strcpy(tempj.e_

7、mail,ai.e_mail);j+;else s+;printf(你要刪除得人得信息是:n);printf(-n);printf(名字地址 年齡 電話郵箱n);printf(-n);printf(%-8s%-10s%-8s%-15s%-20sn,,ai.address,ai.age,ai.tele,ai.e_mail);file *fp;if(fp=fopen(通訊錄.txt,w)=null)printf(無法打開文件,按任意鍵退出!n);char a;scanf(%c,&a);exit(0);for(i=0;ij;i+)fprintf(fp,n);fprintf(fp,%s%

8、s%s%s%s,,tempi.address,tempi.age,tempi.tele,tempi.e_mail);if(s!=0) printf(*刪除成功!*n);else printf(您所要刪除的聯(lián)系人不存在,請核查拼寫及大小寫n);fclose(fp);print( )輸入模塊將最終想要保留的數(shù)據(jù)信息保存于文件中。void print(struct lianxiren t,int n)if(n=0)printf(*文件為空!*n);return;int i;printf(*通訊錄*n);printf(名字地址 年齡 電話郵箱n);printf(_n);for(i=

9、0;iname,p-address,p-age,p-tele,p-e_mail);p+;n+;switch(caidan()case 1:add();break;case 2:print(tongxunlu,n);break;case 3:dele(tongxunlu,n);break;case 4:chazhao(tongxunlu,n);break;case 5:exit(0);char caidan()char choose5;printf(n*n);printf( n); printf( 通 訊 錄n);printf( _n);printf(1,增 加 聯(lián) 系 人 信 息 n);pri

10、ntf(2,輸 出 所 有 聯(lián) 系 人 n);printf(3,刪 除 聯(lián) 系 人 n);printf(4,查 找 聯(lián) 系 人 n);printf(5,退 出 通 訊 了 n); printf(n);printf(*nn);doprintf(請輸入您的選擇(1-5):);scanf(%s,choose);while(strcmp(choose,1)&strcmp(choose,2)&strcmp(choose,3)&strcmp(choose,4)&strcmp(choose,5);return choose0;2 主要功能能實現(xiàn)通訊錄管理系統(tǒng)中增加新記錄, 刪除記錄, 顯示通訊錄的所有信息,

11、 按名字查詢信息, 保存通訊錄,退出系統(tǒng)等功能。輸入模塊實現(xiàn)功能:按順序將有姓名(name )、地址(address)、年齡(age)、電話(tel)、電子郵箱(e-mail)依次輸入,并建立鏈表將其連接。當輸入數(shù)據(jù)完畢時enter,輸入結束。刪除模塊實現(xiàn)功能:在已經(jīng)存儲的文件中刪除指定的通信錄信息,并釋放內存空間。刪除所有相關通信錄信息。查找模塊實現(xiàn)功能:在已經(jīng)存儲的文件中查找指定的通信錄信息。可以按照查找姓名或方法進行。輸出模塊實現(xiàn)功能:在輸入特定的文件名之后,輸出該文件中所包含的全部通信錄信息。添加模塊實現(xiàn)功能:添加相應信息保存操作,鏈表中的信息以文件形式被長期。保存。主序模塊實現(xiàn)功能:

12、完成系統(tǒng)的界面處理,包括開始界面和主菜單界面。2.3 函數(shù)實現(xiàn)主要函數(shù)原型char caidan();/菜單void add();/增加聯(lián)系人函數(shù)void print(struct lianxiren a,int);/輸入所有聯(lián)系人void dele(struct lianxiren a,int);/刪除聯(lián)系人void chazhao(struct lianxiren a,int);/查找聯(lián)系人void chazhao_name(struct lianxiren a,int n);/用名字查找void chazhao_age(struct lianxiren a,int n);/用年齡查找調用

13、到的函數(shù)通過switch(表達式)case 常量表達式1:語句1case 常量表達式2:語句2case 常量表達式n:語句n調用六個函數(shù)。void add();void print(struct lianxiren a,int);void dele(struct lianxiren a,int);void chazhao(struct lianxiren a,int);void chazhao_name(struct lianxiren a,int n);void chazhao_age(struct lianxiren a,int n);信息錄入函數(shù):dnode *enter() /*信息錄

14、入函數(shù)*/dnode *p,*rear; /*定義結點指針*/char flag=y;head=(dnode *)malloc(sizeof(dnode); /*分配頭結點內存空間*/rear=head; /*保存head指針到rear指針中*/head-next=head;head-prior=head; /*建立雙鏈表空頭結點*/while(flag=y flag=y) p=(dnode *)malloc(sizeof(dnode); /*分配結點空間*/ printf(“please input name,street,city,postcode,countryn”);/*輸入結點各數(shù)據(jù)

15、域的值*/ scanf(“%s%s%s%s%s,&,&p-data.street,&p-data.city,&p-data.eip,&p-data.state);rear-next=p;p-prior=rear;rear=p;p-next=head;printf(“-n”);printf(“continue?(y/n)n”);scanf(“%s,&flag); /*是否繼續(xù)輸入*/printf(“n”);return head; /*返回鏈表頭指針*/信息輸出函數(shù)void display(dnode *head) /*信息輸出函數(shù) dnode *p; /*定義結點指針*/

16、 p=head-next; printf(“l(fā)ist all data:n);printf(“-n”); /*畫出輸出樣式*/printf(“ name street city postcode countryn);printf(“-n”);while(p!=head) printf(“ %s %s %s %s %s”,,p-data,street,p-data.city,p-data.eip,p-data.state);printf(“n”);printf(“-nn”);p=p-next; /*循環(huán)變量指向下一個結點*/為驗證兩個函數(shù)的正確性,在這兩個函數(shù)前增加數(shù)據(jù)類型

17、的定義,在其后增加main函數(shù),調用這兩個函數(shù),代碼: #include /*包含頭文件*/#include typedef struct tx1char name15;char street30;char city20;char eip20;char state20;dtxl; /*建立通訊錄信息結構體*/typedef struct dlnodedtxl data;struct dlnode *prior;struct dlnode *next;dnode; /*定義信息錄入函數(shù)*/dnode *head;dnode *enter() /*定義信息錄入函數(shù)*/.void display(d

18、node *dead) /*定義信息輸出函數(shù)*/.void main()dnode *head() /*定義結點指針并分配空間*/head=(dnode *)malloc(sizeof(dnode);head=enter(); /*調用信息錄入函數(shù)*/display(head); /*調用信息輸出函數(shù)輸出鏈表*/信息查詢函數(shù)dnode *search(dnode *head) /*信息查詢函數(shù)*/ dnode *p; /*定義結點指針*/ char name9; p=head-next;scanf(“%s”,name); /*輸入查詢關鍵字*/while(p!=head&p&strcmp(p-

19、,name)!=0)p=p-next;return p; /*返回指針p*/2.4 開發(fā)日志程序開發(fā)從構思到完成共歷時十天左右,基本過程如下:6.146.17 開始基本構思,考慮大體的程序算法,并分段編寫、調試部分程序,設計優(yōu)化界面。6.17-6.18編寫主要程序,并且不斷調試6.186.20完善演示功能,加入更多的描述性語句和控制語句。完善函數(shù)的引用和對函數(shù)的注釋。6.206.22加入信息添加模塊和刪除模塊,增加程序的可讀性與可操作性。623優(yōu)化演示效果,簡化程序,修補程序功能6.24完善源代碼,將部分程序從主函數(shù)剝離,寫進子函數(shù),將程序工程變?yōu)槎辔募こ?,增加頭文件,使程

20、序更易維護。6.24總體調試檢查程序。6.25完成開發(fā)報告。3 程序調試及運行3.1 程序運行結果3.2 程序使用說明本程序使用較為簡單,只需要按照程序提示做符合要求的操作,就可以完成各種程序具備的功能,若不小心做了錯誤的操作,在程序允許的范圍內可以重新操作,因此要仔細閱讀程序說明部分和運行中的相關提示,按要求操作。3.3 程序開發(fā)總結通過這次課程設計使我們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的

21、,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體,指針,鏈表通過這次課程設計之后,我們把前面所學過的知識又重新溫故了一遍。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學分的壓力,還必須強破自己堅持下去,按照老師所說的模塊化思想,分部分的進行編寫。而且編程是一件高精度、模范化的事情,稍有疏乎都會影響全局,也可能因為某一處的小的錯誤而導致整個程序的無法運行。所以認真仔細就是非常重要的了。開始的時候真的感覺編程是一件很無聊的事情,不過當一個程序運行成功的時候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)

22、過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學習c語言的一次實踐作業(yè),自己進步的證明。 通過這次課程設計,使我對c語言有了更進一步的認識和了解,要想學好它要重在實踐,要通過不斷的上機操作才能更好地學習它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學習也有所改進;再有對c語言的一些標準庫函數(shù)不太了解,還有對函數(shù)調用的正確使用不夠熟悉,還有對c語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學習,我認識到學好計算機要重視實踐操作,不僅僅是學習c語言,還是其它的語言,以及其它的計算機方

23、面的知識都要重在實踐,所以后在學習過程中,我會更加注視實踐操作,使自己便好地學好計算機。 在課程設計過程中,收獲知識,提高能力的同時,我也學到了很多人生的哲理,懂得怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學習的過程中,我一定會把課程設計的精神帶到生活中,不畏艱難,勇往直前4 附件(源程序)#include#include#includestruct lianxiren/聯(lián)系人信息;char name20;char address50;char age5;char tele20;char e_mail30;char caidan

24、();/菜單void add();/增加聯(lián)系人函數(shù)void print(struct lianxiren a,int);/輸入所有聯(lián)系人void dele(struct lianxiren a,int);void chazhao(struct lianxiren a,int);void chazhao_name(struct lianxiren a,int n);void chazhao_age(struct lianxiren a,int n);void main()file *fp;if(fp=fopen(通訊錄.txt,a)=null)printf(無法打開文件,按任意鍵退出!n);ch

25、ar a;scanf(%c,&a);exit(0);fclose(fp);for(;)int n=0;char ch;struct lianxiren tongxunlu100;struct lianxiren *p;p=tongxunlu;file *fp;if(fp=fopen(通訊錄.txt,r)=null)printf(無法打開文件,按任意鍵退出!n);char a;scanf(%c,&a);exit(0);elsewhile(ch=fgetc(fp)!=eof)fscanf(fp,%s%s%s%s%s,p-name,p-address,p-age,p-tele,p-e_mail);p

26、+;n+;switch(caidan()case 1:add();break;case 2:print(tongxunlu,n);break;case 3:dele(tongxunlu,n);break;case 4:chazhao(tongxunlu,n);break;case 5:exit(0);char caidan()char choose5;printf(n*n);printf( n); printf( 通 訊 錄n);printf( _n);printf(1,增 加 聯(lián) 系 人 信 息 n);printf(2,輸 出 所 有 聯(lián) 系 人 n);printf(3,刪 除 聯(lián) 系 人

27、n);printf(4,查 找 聯(lián) 系 人 n);printf(5,退 出 通 訊 了 n); printf(n);printf(*nn);doprintf(請輸入您的選擇(1-5):);scanf(%s,choose);while(strcmp(choose,1)&strcmp(choose,2)&strcmp(choose,3)&strcmp(choose,4)&strcmp(choose,5);return choose0;void add()int i;file *fp;if(fp=fopen(通訊錄.txt,a)=null)printf(無法打開文件,按任意鍵退出!n);char a

28、;scanf(%c,&a);exit(0);int num;printf(您想要增加幾個聯(lián)系人:n);scanf(%d,&num);struct lianxiren t50;printf(請輸入聯(lián)系人信息n);printf(名字地址年齡電話電子郵箱n);printf(-n);for(i=0;inum;i+)scanf(%s%s%s%s%s, ,ti.address ,ti.age ,ti.tele ,ti.e_mail );printf(_n);for(i=0;inum;i+)fprintf(fp,n);fprintf(fp,%s%s%s%s%s, ,ti.addr

29、ess ,ti.age ,ti.tele ,ti.e_mail);printf(*已成功添加%d個聯(lián)系人*n,num);fclose(fp);void dele(struct lianxiren a,int n)struct lianxiren temp5;char mingzi20;int i,j=0,s=0;printf(輸入你要刪除人得名字:);scanf(%s,mingzi);printf(n);for(i=0;in;i+)if(strcmp(mingzi,)!=0)strcpy(,);strcpy(tempj.address,ai.ad

30、dress);strcpy(tempj.age,ai.age);strcpy(tempj.tele,ai.tele);strcpy(tempj.e_mail,ai.e_mail);j+;else s+;printf(你要刪除得人得信息是:n);printf(-n);printf(名字地址 年齡 電話郵箱n);printf(-n);printf(%-8s%-10s%-8s%-15s%-20sn,,ai.address,ai.age,ai.tele,ai.e_mail);file *fp;if(fp=fopen(通訊錄.txt,w)=null)printf(無法打開文件,按任意鍵退出!n);char a;scanf(%c,&a);exit(0);for(i=0;ij;i+)fprintf(fp,n);fprintf(fp,%s%s%s%s%s,,tempi.address,tempi.age,tempi.tele,tempi.e_mail);if(s!=0) printf(*刪除成功!*n);else printf(您所要刪除的聯(lián)系人不存在

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論