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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;

5.

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

6.

掌握書(shū)寫(xiě)程設(shè)計(jì)開(kāi)發(fā)文檔的能力(書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告)。第二章:概述目的和意義:本課程設(shè)計(jì)可加深對(duì)課堂理論學(xué)習(xí)的理解,增強(qiáng)動(dòng)手能力,以培養(yǎng)學(xué)生合作的能力,為畢業(yè)設(shè)計(jì)作好實(shí)踐環(huán)節(jié)上的準(zhǔn)備。通訊錄系統(tǒng)是在學(xué)校常見(jiàn)的計(jì)算機(jī)信息管理系統(tǒng)。它的主要任務(wù)是對(duì)學(xué)生信息進(jìn)行管理,如學(xué)生信息的輸入、查詢(xún)、修改、增加、刪除,迅速準(zhǔn)確地完成各種學(xué)生信息的統(tǒng)計(jì)和查詢(xún)。主要內(nèi)容:本系統(tǒng)有分6個(gè)功能:(1)添加數(shù)據(jù)(2)查詢(xún)數(shù)據(jù)(3)刪除數(shù)據(jù)(4)修改數(shù)據(jù)(5)全部輸出(6)退出其主要利用結(jié)構(gòu)類(lèi)型,指針,數(shù)組,函數(shù)等C語(yǔ)言知識(shí)來(lái)實(shí)現(xiàn)。1.添加數(shù)據(jù):輸入姓名、電話號(hào)碼及地址,即可添加數(shù)據(jù)。2.查詢(xún)數(shù)據(jù):輸入所要查詢(xún)的姓名即可查詢(xún)。3.修改數(shù)據(jù):輸入所要修改的姓名,進(jìn)行修改,保存后即成功。4.刪除數(shù)據(jù):輸入所要?jiǎng)h除的姓名,確定后即成功。5.輸出數(shù)據(jù):點(diǎn)擊后即可查看所有保存的通訊錄數(shù)據(jù)。0.退出程序。第三章:主要流程圖模塊化設(shè)計(jì)為實(shí)現(xiàn)系統(tǒng)功能,本程序主要分為五個(gè)模塊。它們分別為:添加數(shù)據(jù),查詢(xún)數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù),全部輸出和退出。這五個(gè)函數(shù)再通過(guò)主函數(shù)調(diào)用分別得以實(shí)現(xiàn)。主函數(shù),首先提供了程序運(yùn)行時(shí)的友好界面,列出了清單,提供用戶(hù)做出選擇,以便決定使用通訊錄的哪種功能。系統(tǒng)功能模塊結(jié)構(gòu)圖:添加數(shù)據(jù)主函數(shù)添加數(shù)據(jù)主函數(shù)查詢(xún)數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)全部輸出退出第四章:算法分析整個(gè)系統(tǒng)主要包括五大模塊:添加數(shù)據(jù),查詢(xún)數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù)和全部輸出。各個(gè)算法分析如下:主main函數(shù):開(kāi)始開(kāi)始輸入要運(yùn)行的功能的序號(hào)判斷用戶(hù)的輸入添加數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)查找數(shù)據(jù)刪除數(shù)據(jù)結(jié)束Voidinput函數(shù)主要利用if函數(shù)開(kāi)始開(kāi)始輸入y或n用if判斷輸入了y還是nyn輸入要輸入的資料將數(shù)據(jù)保存到指定的文件里結(jié)束查找數(shù)據(jù)開(kāi)始開(kāi)始輸入要查找的名字或號(hào)碼for(i=0;i<數(shù)據(jù)的行數(shù);i++)判斷是否是所需結(jié)果YN輸出該行數(shù)據(jù)結(jié)束刪除數(shù)據(jù)判斷是否是輸入的數(shù)據(jù)判斷是否是輸入的數(shù)據(jù)Y開(kāi)始for(i=0;i<數(shù)據(jù)的行數(shù);i++)輸入要?jiǎng)h除的名字或號(hào)碼N顯示記錄已刪除結(jié)束修改數(shù)據(jù)voidmodify函數(shù)開(kāi)始開(kāi)始輸入姓名或號(hào)碼對(duì)數(shù)據(jù)進(jìn)行修改結(jié)束判斷輸入的數(shù)據(jù)是否正確否是全部輸出開(kāi)始開(kāi)始全部輸出輸入數(shù)字結(jié)束判斷輸入的數(shù)字是否正確NY第五章:測(cè)試及輸出結(jié)果主界面:添加界面:查詢(xún)界面:按姓名:按號(hào)碼:刪除界面:按姓名:按號(hào)碼:修改界面:按姓名:按號(hào)碼:輸出界面:退出界面:第六章:課程設(shè)計(jì)體會(huì)一、對(duì)實(shí)驗(yàn)原理有更深的理解通過(guò)該課程設(shè)計(jì),掌握了什么是C語(yǔ)言程序設(shè)計(jì),C語(yǔ)言程序設(shè)計(jì)的基本過(guò)程及其各階段的基本任務(wù),熟悉了C語(yǔ)言程序設(shè)計(jì)的流程圖,了解了與C語(yǔ)言程序設(shè)計(jì)相關(guān)的技術(shù),對(duì)課本上的知識(shí)有了更深的理解,課本上的知識(shí)是機(jī)械的,表面的。通過(guò)把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),把原來(lái)以為很深?yuàn)W的書(shū)本知識(shí)變的更為簡(jiǎn)單,對(duì)實(shí)驗(yàn)原理有更深的理解。二、激發(fā)了學(xué)習(xí)的積極性通過(guò)該課程設(shè)計(jì),全面系統(tǒng)的理解了C語(yǔ)言程序設(shè)計(jì)構(gòu)造的一般原理和基本實(shí)現(xiàn)方法。把死板的課本知識(shí)變得生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過(guò)的C語(yǔ)言程序設(shè)計(jì)的知識(shí)強(qiáng)化,能夠把課堂上學(xué)的知識(shí)通過(guò)自己設(shè)計(jì)的程序表示出來(lái),加深了對(duì)理論知識(shí)的理解。以前對(duì)于C語(yǔ)言程序設(shè)計(jì)的認(rèn)識(shí)是模糊的,概念上的,現(xiàn)在通過(guò)自己動(dòng)手做實(shí)驗(yàn),對(duì)C語(yǔ)言程序設(shè)計(jì)的認(rèn)識(shí)更加深刻。課程設(shè)計(jì)中程序比較復(fù)雜,在調(diào)試時(shí)應(yīng)該仔細(xì),在程序調(diào)試時(shí),將不必要的命令去除。在這次課程設(shè)計(jì)中,我就是按照實(shí)驗(yàn)指導(dǎo)的思想來(lái)完成。加深了理解VC的內(nèi)部功能及內(nèi)部實(shí)現(xiàn),培養(yǎng)實(shí)踐動(dòng)手能力和程序設(shè)計(jì)能力的目的。總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們的實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握程序開(kāi)發(fā)技術(shù)是十分重要的,而C語(yǔ)言又是最常見(jiàn),功能最強(qiáng)大的一種高級(jí)語(yǔ)言,因此做好C語(yǔ)言課程設(shè)計(jì)是十分必要的?;仡櫰鸫舜握n程設(shè)計(jì),至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)月的日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體,指針,鏈表……通過(guò)這次課程設(shè)計(jì)之后,我們把前面所學(xué)過(guò)的知識(shí)又重新溫故了一遍。我做的是通訊錄系統(tǒng),雖然是很簡(jiǎn)單的一個(gè)小的程序,但對(duì)我一個(gè)初學(xué)者來(lái)說(shuō)卻是一個(gè)很大的困難。更加是第一次做課程設(shè)計(jì),所以第一天下午在機(jī)房做了一個(gè)下午卻絲毫沒(méi)有進(jìn)展,最主要是不知從何開(kāi)始,這個(gè)時(shí)候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個(gè)時(shí)候才后悔上課的時(shí)候沒(méi)有認(rèn)真的聽(tīng)講??墒乾F(xiàn)在一切都晚了,還好時(shí)間還算是充裕,只好拿出書(shū)本重新復(fù)習(xí)一下。特別是結(jié)構(gòu)體,指針的部分,幾乎是一片空白。不過(guò)經(jīng)過(guò)幾天的努力,大體上把課本上的知識(shí)點(diǎn)看了一遍,知識(shí)點(diǎn)也都基本是撐握了,所以下一步就是開(kāi)始正式的編程序了。不過(guò)畢竟是個(gè)新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類(lèi)似的程序,經(jīng)過(guò)仔細(xì)的研究,終于讀懂了C語(yǔ)言編程的基本過(guò)程和方法。經(jīng)過(guò)一波三折,終于開(kāi)始正式編程。編程是一件很枯燥很無(wú)聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強(qiáng)迫自己堅(jiān)持下去,按照老師所說(shuō)的模塊化思想,分部分的進(jìn)行編寫(xiě)。而且編程是一件高精度、模范化的事情,稍有疏乎都會(huì)影響全局,也可能因?yàn)槟骋惶幍男〉腻e(cuò)誤而導(dǎo)致整個(gè)程序的無(wú)法運(yùn)行。所以認(rèn)真仔細(xì)就是非常重要的了。開(kāi)始的時(shí)候真的感覺(jué)編程是一件很無(wú)聊的事情,不過(guò)當(dāng)一個(gè)程序運(yùn)行成功的時(shí)候那種喜悅是無(wú)法言語(yǔ)的,那種成就感是無(wú)法比擬的。又經(jīng)過(guò)幾天的努力,終于把程序完成了,盡管程序還是有很多錯(cuò)誤和漏洞,不過(guò)還是很高興的。無(wú)論如何是自己的勞動(dòng)成果,是自己經(jīng)過(guò)努力得到的成績(jī),同時(shí)也是學(xué)習(xí)C語(yǔ)言的一次實(shí)踐作業(yè),自己進(jìn)步的證明。通過(guò)這次課程設(shè)計(jì),使我對(duì)C語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯(cuò)字母,通過(guò)學(xué)習(xí)也有所改進(jìn);再有對(duì)C語(yǔ)言的一些標(biāo)準(zhǔn)庫(kù)函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)C語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過(guò)實(shí)踐的學(xué)習(xí),我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C語(yǔ)言,還是其它的語(yǔ)言,以及其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,所以后在學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作,使自己便好地學(xué)好計(jì)算機(jī)。在課程設(shè)計(jì)過(guò)程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過(guò)程中,我一定會(huì)把課程設(shè)計(jì)的精神帶到生活中,不畏艱難,勇往直前。第七章:參考文獻(xiàn)1、C程序設(shè)計(jì)(第四版)譚浩強(qiáng)著2、收集的各種網(wǎng)絡(luò)資料第八章:程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#defineszSTR64/*指可以記錄并保存64個(gè)通訊錄,當(dāng)然,可以再設(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("請(qǐng)輸入學(xué)生姓名:");scanf("%s",s->name);}if(mask&BUNIT){printf("請(qǐng)輸入工作單位:");scanf("%s",s->unit);}if(mask&BTELE){printf("請(qǐng)輸入聯(lián)系電話:");scanf("%s",s->tele);}if(mask&BMAIL){printf("請(qǐng)輸入電子郵件:");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ù)庫(kù)暫無(wú)記錄\n");return0;}/*endif*/printf("編號(hào)\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("請(qǐng)輸入姓名或者電話號(hào)碼:");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("請(qǐng)選擇: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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論