c語言課程設(shè)計-通訊錄管理系統(tǒng)_第1頁
c語言課程設(shè)計-通訊錄管理系統(tǒng)_第2頁
c語言課程設(shè)計-通訊錄管理系統(tǒng)_第3頁
c語言課程設(shè)計-通訊錄管理系統(tǒng)_第4頁
c語言課程設(shè)計-通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1-5.4《C語言程序設(shè)計》課程設(shè)計實驗報告封面南京航空航天大學(xué)金城學(xué)院《C語言程序設(shè)計》課程設(shè)計實驗報告題目:班級:學(xué)號:姓名:成績:指導(dǎo)教師:完成日期:年月日目錄1.第一章:前言……………………22.第二章:概述……………………33.第三章:主要流程圖……………44.第四章:算法分析………………55.第五章:測試及輸出結(jié)果………96.第六章:課程設(shè)計體會…………7.第七章:參考文獻……………8.第八章:程序源代碼………………第一章:前言通過一個學(xué)期的學(xué)習(xí),我認為要學(xué)好C語言程序這門課程,不僅要認真學(xué)習(xí)課本知識,更重要的是要通過上機實踐實現(xiàn)對知識的強化與鞏固。C語言博大精深,需要我們認真體會,小心求證,不斷實踐。C語言課程設(shè)計則對我們有以下幾點幫助:1.進一步掌握和利用C語言進行程序設(shè)計的能力;

2.進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;3.

初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4.

學(xué)會調(diào)試一個較長程序的基本方法;

5.

學(xué)會利用流程圖或N-S圖表示算法;

6.

掌握書寫程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)。第二章:概述目的和意義:本課程設(shè)計可加深對課堂理論學(xué)習(xí)的理解,增強動手能力,以培養(yǎng)學(xué)生合作的能力,為畢業(yè)設(shè)計作好實踐環(huán)節(jié)上的準備。通訊錄系統(tǒng)是在學(xué)校常見的計算機信息管理系統(tǒng)。它的主要任務(wù)是對學(xué)生信息進行管理,如學(xué)生信息的輸入、查詢、修改、增加、刪除,迅速準確地完成各種學(xué)生信息的統(tǒng)計和查詢。主要內(nèi)容:本系統(tǒng)有分6個功能:(1)添加數(shù)據(jù)(2)查詢數(shù)據(jù)(3)刪除數(shù)據(jù)(4)修改數(shù)據(jù)(5)全部輸出(6)退出其主要利用結(jié)構(gòu)類型,指針,數(shù)組,函數(shù)等C語言知識來實現(xiàn)。1.添加數(shù)據(jù):輸入姓名、電話號碼及地址,即可添加數(shù)據(jù)。2.查詢數(shù)據(jù):輸入所要查詢的姓名即可查詢。3.修改數(shù)據(jù):輸入所要修改的姓名,進行修改,保存后即成功。4.刪除數(shù)據(jù):輸入所要刪除的姓名,確定后即成功。5.輸出數(shù)據(jù):點擊后即可查看所有保存的通訊錄數(shù)據(jù)。0.退出程序。第三章:主要流程圖模塊化設(shè)計為實現(xiàn)系統(tǒng)功能,本程序主要分為五個模塊。它們分別為:添加數(shù)據(jù),查詢數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù),全部輸出和退出。這五個函數(shù)再通過主函數(shù)調(diào)用分別得以實現(xiàn)。主函數(shù),首先提供了程序運行時的友好界面,列出了清單,提供用戶做出選擇,以便決定使用通訊錄的哪種功能。系統(tǒng)功能模塊結(jié)構(gòu)圖:添加數(shù)據(jù)主函數(shù)添加數(shù)據(jù)主函數(shù)查詢數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)全部輸出退出第四章:算法分析整個系統(tǒng)主要包括五大模塊:添加數(shù)據(jù),查詢數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù)和全部輸出。各個算法分析如下:主main函數(shù):開始開始輸入要運行的功能的序號判斷用戶的輸入添加數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)查找數(shù)據(jù)刪除數(shù)據(jù)結(jié)束Voidinput函數(shù)主要利用if函數(shù)開始開始輸入y或n用if判斷輸入了y還是nyn輸入要輸入的資料將數(shù)據(jù)保存到指定的文件里結(jié)束查找數(shù)據(jù)開始開始輸入要查找的名字或號碼for(i=0;i<數(shù)據(jù)的行數(shù);i++)判斷是否是所需結(jié)果YN輸出該行數(shù)據(jù)結(jié)束刪除數(shù)據(jù)判斷是否是輸入的數(shù)據(jù)判斷是否是輸入的數(shù)據(jù)Y開始for(i=0;i<數(shù)據(jù)的行數(shù);i++)輸入要刪除的名字或號碼N顯示記錄已刪除結(jié)束修改數(shù)據(jù)voidmodify函數(shù)開始開始輸入姓名或號碼對數(shù)據(jù)進行修改結(jié)束判斷輸入的數(shù)據(jù)是否正確否是全部輸出開始開始全部輸出輸入數(shù)字結(jié)束判斷輸入的數(shù)字是否正確NY第五章:測試及輸出結(jié)果主界面:添加界面:查詢界面:按姓名:按號碼:刪除界面:按姓名:按號碼:修改界面:按姓名:按號碼:輸出界面:退出界面:第六章:課程設(shè)計體會一、對實驗原理有更深的理解通過該課程設(shè)計,掌握了什么是C語言程序設(shè)計,C語言程序設(shè)計的基本過程及其各階段的基本任務(wù),熟悉了C語言程序設(shè)計的流程圖,了解了與C語言程序設(shè)計相關(guān)的技術(shù),對課本上的知識有了更深的理解,課本上的知識是機械的,表面的。通過把該算法的內(nèi)容,算法的執(zhí)行順序在計算機上實現(xiàn),把原來以為很深奧的書本知識變的更為簡單,對實驗原理有更深的理解。二、激發(fā)了學(xué)習(xí)的積極性通過該課程設(shè)計,全面系統(tǒng)的理解了C語言程序設(shè)計構(gòu)造的一般原理和基本實現(xiàn)方法。把死板的課本知識變得生動有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過的C語言程序設(shè)計的知識強化,能夠把課堂上學(xué)的知識通過自己設(shè)計的程序表示出來,加深了對理論知識的理解。以前對于C語言程序設(shè)計的認識是模糊的,概念上的,現(xiàn)在通過自己動手做實驗,對C語言程序設(shè)計的認識更加深刻。課程設(shè)計中程序比較復(fù)雜,在調(diào)試時應(yīng)該仔細,在程序調(diào)試時,將不必要的命令去除。在這次課程設(shè)計中,我就是按照實驗指導(dǎo)的思想來完成。加深了理解VC的內(nèi)部功能及內(nèi)部實現(xiàn),培養(yǎng)實踐動手能力和程序設(shè)計能力的目的??偨Y(jié)課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們的實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設(shè)計是十分必要的。回顧起此次課程設(shè)計,至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整半個月的日子里,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體,指針,鏈表……通過這次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。我做的是通訊錄系統(tǒng),雖然是很簡單的一個小的程序,但對我一個初學(xué)者來說卻是一個很大的困難。更加是第一次做課程設(shè)計,所以第一天下午在機房做了一個下午卻絲毫沒有進展,最主要是不知從何開始,這個時候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個時候才后悔上課的時候沒有認真的聽講??墒乾F(xiàn)在一切都晚了,還好時間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。特別是結(jié)構(gòu)體,指針的部分,幾乎是一片空白。不過經(jīng)過幾天的努力,大體上把課本上的知識點看了一遍,知識點也都基本是撐握了,所以下一步就是開始正式的編程序了。不過畢竟是個新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類似的程序,經(jīng)過仔細的研究,終于讀懂了C語言編程的基本過程和方法。經(jīng)過一波三折,終于開始正式編程。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強迫自己堅持下去,按照老師所說的模塊化思想,分部分的進行編寫。而且編程是一件高精度、模范化的事情,稍有疏乎都會影響全局,也可能因為某一處的小的錯誤而導(dǎo)致整個程序的無法運行。所以認真仔細就是非常重要的了。開始的時候真的感覺編程是一件很無聊的事情,不過當一個程序運行成功的時候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實踐作業(yè),自己進步的證明。通過這次課程設(shè)計,使我對C語言有了更進一步的認識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進;再有對C語言的一些標準庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學(xué)習(xí),我認識到學(xué)好計算機要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機方面的知識都要重在實踐,所以后在學(xué)習(xí)過程中,我會更加注視實踐操作,使自己便好地學(xué)好計算機。在課程設(shè)計過程中,收獲知識,提高能力的同時,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會把課程設(shè)計的精神帶到生活中,不畏艱難,勇往直前。第七章:參考文獻1、C程序設(shè)計(第四版)譚浩強著2、收集的各種網(wǎng)絡(luò)資料第八章:程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#defineszSTR64/*指可以記錄并保存64個通訊錄,當然,可以再設(shè)置增加或減少*/#definefileDB"c:\\contact.txt"/*指保存的目錄*/structCONTACT{charname[szSTR];/*姓名*/charunit[szSTR];/*工作單位*/chartele[szSTR];/*電話*/charmail[szSTR];/*mail*/};typedefstructCONTACTCON;#defineBNAME1#defineBUNIT2#defineBTELE4#defineBMAIL8#defineBFULL0xFFintOPER[5]={BFULL,BNAME,BUNIT,BTELE,BMAIL};voidinput(CON*s,intmask){if(mask&BNAME){printf("請輸入學(xué)生姓名:");scanf("%s",s->name);}if(mask&BUNIT){printf("請輸入工作單位:");scanf("%s",s->unit);}if(mask&BTELE){printf("請輸入聯(lián)系電話:");scanf("%s",s->tele);}if(mask&BMAIL){printf("請輸入電子郵件:");scanf("%s",s->mail);}}/*endinput*/voidshow(intid,CON*s){if(!s)return;if(id)printf("%d\t%s\t%s\t%s\t%s\n",id,s->name,s->unit,s->tele,s->mail);elseprintf("【姓名】%s【工作單位】%s【電話】%s【電郵】%s\n",s->name,s->unit,s->tele,s->mail);/*endif*/}/*endshow*/voidregist(void){CONs;FILE*f=0;input(&s,BFULL);f=fopen(fileDB,"ab");fwrite(&s,sizeof(s),1,f);fclose(f);printf("資料已保存!\n");}/*endregist*/intbrowse(char*key,fpos_t*p,CON*s){FILE*f=0;inti=0,r=0;CONt;char*a=0,*b=0;fpos_tq;if(!s)return0;f=fopen(fileDB,"rb");if(!f){printf("數(shù)據(jù)庫暫無記錄\n");return0;}/*endif*/printf("編號\t姓名\t單位\t電話\t電郵\n");printf("\n");while(!feof(f)){fgetpos(f,&q);r=fread(&t,sizeof(t),1,f);if(r<1)break;if([0]==0)continue;if(key){a=strstr(,key);b=strstr(t.tele,key);if(a==0&&b==0)continue;}/*endif*/if(p)*p=q;if(s)memcpy(s,&t,sizeof(t));i++;show(i,&t);}/*endwhile*/fclose(f);printf("\n");returni;}/*endbrowse*/fpos_tquery(CON*s){charkey[szSTR]="";fpos_tp=0;intr=0;printf("請輸入姓名或者電話號碼:");scanf("%s",key);r=browse(key,&p,s);returnr?p:-1;}/*endquery*/voidclear(void){FILE*f=0;CONs;fpos_tp=query(&s);if(p<0)return;f=fopen(fileDB,"rb+");fsetpos(f,&p);memset(&s,0,sizeof(s));fwrite(&s,sizeof(s),1,f);fclose(f);printf("記錄已刪除!\n");}/*endclear*/voidmodify(void){FILE*f=0;CONs;intcmd=0;fpos_tp=query(&s);if(p<0)return;f=fopen(fileDB,"rb+");fsetpos(f,&p);for(;;){show(0,&s);printf("請選擇:1-姓名;2-工作單位;3-電話;4-電郵;5-保存并退出;6-放棄修改并退出\n");scanf("%d",&cmd);switch(cmd){case1:case2:case3:case4:input(&s,OPER[cmd]);break;case5:fsetpos(f,&p);fwrite(&s,sizeof(s),1,f);case6:fclose(f);return;default:

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論