




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1-5.4《C語言程序設(shè)計(jì)》課程設(shè)計(jì)實(shí)驗(yàn)報告封面南京航空航天大學(xué)金城學(xué)院《C語言程序設(shè)計(jì)》課程設(shè)計(jì)實(shí)驗(yàn)報告題目:班級:學(xué)號:姓名:成績:指導(dǎo)教師:完成日期:年月日目錄1.第一章:前言……………………22.第二章:概述……………………33.第三章:主要流程圖……………44.第四章:算法分析………………55.第五章:測試及輸出結(jié)果………96.第六章:課程設(shè)計(jì)體會…………7.第七章:參考文獻(xiàn)……………8.第八章:程序源代碼………………第一章:前言通過一個學(xué)期的學(xué)習(xí),我認(rèn)為要學(xué)好C語言程序這門課程,不僅要認(rèn)真學(xué)習(xí)課本知識,更重要的是要通過上機(jī)實(shí)踐實(shí)現(xiàn)對知識的強(qiáng)化與鞏固。C語言博大精深,需要我們認(rèn)真體會,小心求證,不斷實(shí)踐。C語言課程設(shè)計(jì)則對我們有以下幾點(diǎn)幫助:1.進(jìn)一步掌握和利用C語言進(jìn)行程序設(shè)計(jì)的能力;
2.進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;3.
初步掌握開發(fā)一個小型實(shí)用系統(tǒng)的基本方法;4.
學(xué)會調(diào)試一個較長程序的基本方法;
5.
學(xué)會利用流程圖或N-S圖表示算法;
6.
掌握書寫程設(shè)計(jì)開發(fā)文檔的能力(書寫課程設(shè)計(jì)報告)。第二章:概述目的和意義:本課程設(shè)計(jì)可加深對課堂理論學(xué)習(xí)的理解,增強(qiáng)動手能力,以培養(yǎng)學(xué)生合作的能力,為畢業(yè)設(shè)計(jì)作好實(shí)踐環(huán)節(jié)上的準(zhǔn)備。通訊錄系統(tǒng)是在學(xué)校常見的計(jì)算機(jī)信息管理系統(tǒng)。它的主要任務(wù)是對學(xué)生信息進(jìn)行管理,如學(xué)生信息的輸入、查詢、修改、增加、刪除,迅速準(zhǔn)確地完成各種學(xué)生信息的統(tǒng)計(jì)和查詢。主要內(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語言知識來實(shí)現(xiàn)。1.添加數(shù)據(jù):輸入姓名、電話號碼及地址,即可添加數(shù)據(jù)。2.查詢數(shù)據(jù):輸入所要查詢的姓名即可查詢。3.修改數(shù)據(jù):輸入所要修改的姓名,進(jìn)行修改,保存后即成功。4.刪除數(shù)據(jù):輸入所要刪除的姓名,確定后即成功。5.輸出數(shù)據(jù):點(diǎn)擊后即可查看所有保存的通訊錄數(shù)據(jù)。0.退出程序。第三章:主要流程圖模塊化設(shè)計(jì)為實(shí)現(xiàn)系統(tǒng)功能,本程序主要分為五個模塊。它們分別為:添加數(shù)據(jù),查詢數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù),全部輸出和退出。這五個函數(shù)再通過主函數(shù)調(diào)用分別得以實(shí)現(xiàn)。主函數(shù),首先提供了程序運(yùn)行時的友好界面,列出了清單,提供用戶做出選擇,以便決定使用通訊錄的哪種功能。系統(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ù):開始開始輸入要運(yùn)行的功能的序號判斷用戶的輸入添加數(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ù)進(jìn)行修改結(jié)束判斷輸入的數(shù)據(jù)是否正確否是全部輸出開始開始全部輸出輸入數(shù)字結(jié)束判斷輸入的數(shù)字是否正確NY第五章:測試及輸出結(jié)果主界面:添加界面:查詢界面:按姓名:按號碼:刪除界面:按姓名:按號碼:修改界面:按姓名:按號碼:輸出界面:退出界面:第六章:課程設(shè)計(jì)體會一、對實(shí)驗(yàn)原理有更深的理解通過該課程設(shè)計(jì),掌握了什么是C語言程序設(shè)計(jì),C語言程序設(shè)計(jì)的基本過程及其各階段的基本任務(wù),熟悉了C語言程序設(shè)計(jì)的流程圖,了解了與C語言程序設(shè)計(jì)相關(guān)的技術(shù),對課本上的知識有了更深的理解,課本上的知識是機(jī)械的,表面的。通過把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),把原來以為很深奧的書本知識變的更為簡單,對實(shí)驗(yàn)原理有更深的理解。二、激發(fā)了學(xué)習(xí)的積極性通過該課程設(shè)計(jì),全面系統(tǒng)的理解了C語言程序設(shè)計(jì)構(gòu)造的一般原理和基本實(shí)現(xiàn)方法。把死板的課本知識變得生動有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過的C語言程序設(shè)計(jì)的知識強(qiáng)化,能夠把課堂上學(xué)的知識通過自己設(shè)計(jì)的程序表示出來,加深了對理論知識的理解。以前對于C語言程序設(shè)計(jì)的認(rèn)識是模糊的,概念上的,現(xiàn)在通過自己動手做實(shí)驗(yàn),對C語言程序設(shè)計(jì)的認(rèn)識更加深刻。課程設(shè)計(jì)中程序比較復(fù)雜,在調(diào)試時應(yīng)該仔細(xì),在程序調(diào)試時,將不必要的命令去除。在這次課程設(shè)計(jì)中,我就是按照實(shí)驗(yàn)指導(dǎo)的思想來完成。加深了理解VC的內(nèi)部功能及內(nèi)部實(shí)現(xiàn),培養(yǎng)實(shí)踐動手能力和程序設(shè)計(jì)能力的目的。總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對我們的實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強(qiáng)大的一種高級語言,因此做好C語言課程設(shè)計(jì)是十分必要的?;仡櫰鸫舜握n程設(shè)計(jì),至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實(shí)踐,在整整半個月的日子里,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體,指針,鏈表……通過這次課程設(shè)計(jì)之后,我們把前面所學(xué)過的知識又重新溫故了一遍。我做的是通訊錄系統(tǒng),雖然是很簡單的一個小的程序,但對我一個初學(xué)者來說卻是一個很大的困難。更加是第一次做課程設(shè)計(jì),所以第一天下午在機(jī)房做了一個下午卻絲毫沒有進(jìn)展,最主要是不知從何開始,這個時候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個時候才后悔上課的時候沒有認(rèn)真的聽講??墒乾F(xiàn)在一切都晚了,還好時間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。特別是結(jié)構(gòu)體,指針的部分,幾乎是一片空白。不過經(jīng)過幾天的努力,大體上把課本上的知識點(diǎn)看了一遍,知識點(diǎn)也都基本是撐握了,所以下一步就是開始正式的編程序了。不過畢竟是個新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類似的程序,經(jīng)過仔細(xì)的研究,終于讀懂了C語言編程的基本過程和方法。經(jīng)過一波三折,終于開始正式編程。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強(qiáng)迫自己堅(jiān)持下去,按照老師所說的模塊化思想,分部分的進(jìn)行編寫。而且編程是一件高精度、模范化的事情,稍有疏乎都會影響全局,也可能因?yàn)槟骋惶幍男〉腻e誤而導(dǎo)致整個程序的無法運(yùn)行。所以認(rèn)真仔細(xì)就是非常重要的了。開始的時候真的感覺編程是一件很無聊的事情,不過當(dāng)一個程序運(yùn)行成功的時候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實(shí)踐作業(yè),自己進(jìn)步的證明。通過這次課程設(shè)計(jì),使我對C語言有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實(shí)踐的學(xué)習(xí),我認(rèn)識到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計(jì)算機(jī)方面的知識都要重在實(shí)踐,所以后在學(xué)習(xí)過程中,我會更加注視實(shí)踐操作,使自己便好地學(xué)好計(jì)算機(jī)。在課程設(shè)計(jì)過程中,收獲知識,提高能力的同時,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會把課程設(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個通訊錄,當(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("請輸入學(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年紡織品檢驗(yàn)員考后總結(jié)試題及答案
- 塔吊施工考試題及答案
- 廣告設(shè)計(jì)師證書考試傳播媒介選擇考題及答案
- 團(tuán)課能力測試題及答案
- 康復(fù)考試題及答案
- 廣告設(shè)計(jì)中的用戶心理因素分析試題及答案
- 在線學(xué)考試試題及答案
- 快消品行業(yè)中的設(shè)計(jì)策略與應(yīng)用案例試題及答案
- 政協(xié)遴選考試題及答案
- 社會責(zé)任感對廣告設(shè)計(jì)的影響試題及答案
- 小學(xué)期中家長會活動方案及流程
- GB/T 43824-2024村鎮(zhèn)供水工程技術(shù)規(guī)范
- 教育行業(yè)選址分析
- 2024年安徽國元農(nóng)業(yè)保險滁州中心支公司招聘筆試參考題庫含答案解析
- 類風(fēng)濕性關(guān)節(jié)炎的早期跡象與治療方式
- 冷庫制冷負(fù)荷計(jì)算表
- 迅雷網(wǎng)盤最最最全影視資源-持續(xù)更新7.26
- 管理者與員工溝通技巧
- GB/T 19510.213-2023光源控制裝置第2-13部分:LED模塊用直流或交流電子控制裝置的特殊要求
- 2024年橋式起重機(jī)司機(jī)(中級)職業(yè)技能考試題庫(職校培訓(xùn))
- 孕產(chǎn)婦妊娠風(fēng)險篩查與評估
評論
0/150
提交評論