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

下載本文檔

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

文檔簡介

PAGEPAGE25課程設(shè)計報告課程名稱C語言程序設(shè)計課題名稱通訊錄管理系統(tǒng)專業(yè)汽車服務(wù)班級0901班學(xué)號200902180114姓名伏鑠臻指導(dǎo)教師王寧陳多2010年9月12日

湖南工程學(xué)院課程設(shè)計任務(wù)書課程名稱C語言程序設(shè)計課題通訊錄管理系統(tǒng)專業(yè)班級汽車服務(wù)0901學(xué)生姓名伏鑠臻學(xué)號200902180114指導(dǎo)老師王寧陳多審批王寧陳多任務(wù)書下達(dá)日期2010年9月12日任務(wù)完成日期2010年9月13日通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)要求分析及其主要功能1、問題描述:通過該系統(tǒng)實現(xiàn)對通訊錄信息進(jìn)行錄入、顯示、修改、刪除、插入、排序、保存等操作的管理。2、功能要求:1)、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:編號、姓名、電話號碼。2)本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項:通訊信息錄入通訊信息顯示通訊信息保存通訊信息刪除通訊信息修改通訊信息查詢按編號查詢按姓名查詢按電話號碼查詢g.退出系統(tǒng)3)、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。4)、將通訊信息保存到文件中。3、算法提示:1)、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組2)、數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。編號姓名電話號碼charcharChar4、測試數(shù)據(jù):紀(jì)錄數(shù)205、其它對該系統(tǒng)有興趣的同可以在實現(xiàn)上述基本功能后,完善系統(tǒng)的其它功能功能模塊的劃分系統(tǒng)功能模塊圖:主菜單錄入顯示主菜單錄入顯示刪除修改保存查詢C查詢hacha查詢編號查詢姓名查詢電話查詢編號查詢姓名查詢電話查詢錄入:可以添加通訊錄記錄,依次輸入編號、姓名、電話號碼后,會提示是否繼續(xù)添加。顯示:可以以橫排形式輸出所有通訊錄里的記錄刪除:輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容查詢:可以選擇用姓名、電話、編號三種方式查詢修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、即可完成修改保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件主要功能的實現(xiàn)詳細(xì)設(shè)計主函數(shù)voidemain()通過主函數(shù)main()利用無限次循環(huán)結(jié)構(gòu)for(;;)和switch()結(jié)構(gòu)實現(xiàn)各函數(shù)的調(diào)用。系統(tǒng)根據(jù)數(shù)字選項來調(diào)用函數(shù)。菜單選擇函數(shù)intmenu_select()這是一個無參函數(shù),主要實現(xiàn)“功能選擇”的界面,在這個界面里有顯示系統(tǒng)的九大功能,根據(jù)每個功能前面的序號進(jìn)行選擇。等執(zhí)行完每一個函數(shù)功能后,再自行返回該函數(shù)。輸入記錄函數(shù)intInput()這是一個無參函數(shù),用數(shù)組函數(shù)輸入所需記錄人員的信息。用字符sign來標(biāo)記是否將繼續(xù)記錄輸入信息。顯示記錄函數(shù)Display();此函數(shù)利用for循環(huán)從輸入第一個人的信息至最后一個人的信息全都顯示出來。使用if語句。刪除記錄函數(shù)Delete_a_record()用比較字符串處理函數(shù)strcmp()逐一比較輸入的字符串,是否相同,無相同,則顯示無此人,若輸入的字符串和s【】中的某一個相同,則用函數(shù)strcpy(),只取字符串1的地址,即刪去了字符串2的內(nèi)容,從而刪除記錄。流程圖如圖一。查詢記錄函數(shù)Query_a_record()該函數(shù)先用while循環(huán)來判斷查詢方式是否正確,再用if語句來判斷輸入的m的值,從而選擇查詢方式。如姓名查詢,同樣用strcmp()函數(shù)將輸入的姓名與s【】比較,若匹配則顯示此人信息,不匹配則顯示無此人。其它查詢方式類似。流程圖如圖二所示。輸入刪除的姓名輸入刪除的姓名輸出“通訊錄沒有此人”刪除該記錄YN輸入查詢的名稱判斷是否有此人判斷是否有此人輸出“通訊錄中沒此人”顯示此人所有信息YN開始開始結(jié)束結(jié)束圖一圖二修改數(shù)據(jù)函數(shù)Change()該函數(shù)先是調(diào)用strcmp()函數(shù)進(jìn)行匹配,若無匹配顯示無此人,若有則對該人的信息通過scanf()重新記錄,即對該人信息進(jìn)行修改。開始開始輸入修改的姓名判斷是否有此人輸出“通訊錄中無此人”依次輸入修改的內(nèi)容YN結(jié)束保存數(shù)據(jù)函數(shù)WritetoText(pe,n)通過文件指針來保存所要保存的文件。四、程序調(diào)試程序調(diào)試與分析在程序運(yùn)行前總有一些錯誤或警告,最開始顯示主菜單函數(shù)后,當(dāng)進(jìn)入其他功能項時主菜單在TC屏幕上消失,后了解到用system(“c\s)可以控該現(xiàn)象使主菜單一直顯示。與此相似的還有system(“pause”)都是有關(guān)的函數(shù)。文件的保存沒有涉及了解,經(jīng)過查尋料了解到(fp=fopen(filename,"w"))==NULL這句話是說打開文件,打開只寫文件,若文件存在則文件長度為0,即該文件消失,若文件不存在則建立該文件。而fprintf是寫數(shù)據(jù)到打開的文件中,調(diào)試過程中經(jīng)常因排版不太整齊而多次去修改,Printf和字符所在寬度影響排版。在通訊信息查詢這一模塊中,特別是對按編號查詢這一項與電話查詢和姓名查詢不一樣不能用strcmp()函數(shù)配對查找因為沒有留意字符串?dāng)?shù)組來定義數(shù)編號。運(yùn)行時程序出現(xiàn)了錯誤后經(jīng)該正將子符串?dāng)?shù)組改為字符型。程序雖能運(yùn)行但按編號查詢時運(yùn)行結(jié)果不能正常輸出查詢信息還自動終止程序。經(jīng)過再次檢測原來是最基本scanf()函程序數(shù)中取地址的&沒有寫。當(dāng)加上程序正常運(yùn)行。測試:1).顯示的主菜單界面在開始由于錄入界面通訊信息顯示在函數(shù)中寫成了保存而出現(xiàn)下面界面,經(jīng)過修改后正確顯示。2).錄入界面:在錄入的時候經(jīng)常因為按下ENTER鍵太快,而導(dǎo)致一些信息的錄入損失,后檢測是因為編號的查詢方式有誤導(dǎo)致,修改后無次現(xiàn)象,程序正常運(yùn)行。3).顯示界面:由于受字符串的寬度影響,姓名過長時導(dǎo)致年齡不能對齊顯示,增加域?qū)捄蟠爽F(xiàn)象可避免。4).刪除界面:5).查詢界面:以姓名查詢方式為例:由于程序在編號查詢時的程序代碼編寫錯誤,程序雖然能運(yùn)行,但是按編號查詢時顯示無此人,經(jīng)過對程序的修改最終正常運(yùn)行。6).修改界面:7).保存界面:8)退出系統(tǒng):總結(jié)在這一次C語言別課程設(shè)計,通過對程序的設(shè)計進(jìn)一步提高了自己對程序的認(rèn)識,也收獲了各方面許多東西在課程設(shè)計方面,加深了已有知識的了解和鞏固,如對字符串處理函數(shù)的認(rèn)識,對for循環(huán)與while循環(huán)的認(rèn)識與使用。更加了解了自己的模糊概念,在此次程序設(shè)計中清晰明了。像reture語句,在此次設(shè)計中可以了解到可以將整個函數(shù)賦給n,即將return中的返回值賦給n。了解到一些新的知識,如與系統(tǒng)有關(guān)的函數(shù)system()。還有文件的保存,以前從未涉及的知識這次得以擴(kuò)充。還有有重新體會到了文檔的編版,受益匪淺。不僅在學(xué)習(xí)方面在與同學(xué)合作過程中體會到了同學(xué)間合作的快樂。在設(shè)計過程中相互請教,相互討論如何使程序正確運(yùn)行。經(jīng)不斷的合作修改終將程序運(yùn)行出來。不僅如此,我還在老師要求的基礎(chǔ)上,參考其它資料,在此次設(shè)計中對于信息的錄入還添加了年齡這一信息的記錄,完善程序。同時讓我體會到在電腦上一個簡單的記錄運(yùn)行之后所付出的努力,可想而之,復(fù)雜的運(yùn)行操作后會有更大更復(fù)雜的一系列程序構(gòu)成。讓我體會到程序的博大精深和奧妙無窮。在剛開始接受這個程序設(shè)計課題時,原本以為自己什么也不會做,但隨著對其它程序的理解,和對相關(guān)資料的查找了解,慢慢的加深了對該課題的了解與掌握,直至和大家一起把程序運(yùn)行出來。同時發(fā)現(xiàn)了許多缺點(diǎn),一不小心就出現(xiàn)錯誤。像scanf()函數(shù)的使用,既然忘了寫&,而且越簡單卻越難找出錯誤,所以一定要細(xì)心,而且要有耐心??傊@次程序設(shè)計使我得到了巨大的收獲。附件主要原程序代碼/*10.3.2源程序*//******頭文件(.h)***********/#include"stdio.h"/*I/O函數(shù)*/#include"stdlib.h"/*標(biāo)準(zhǔn)庫函數(shù)*/#include"string.h"/*字符串函數(shù)*/#include"ctype.h"/*字符操作函數(shù)*/#defineM50/*定義常數(shù)表示記錄數(shù)*/typedefstruct/*定義數(shù)據(jù)結(jié)構(gòu)*/{charname[20];/*姓名*/charunits[30];/*單位*/chartele[10];/*電話*/}ADDRESS;/******以下是函數(shù)原型*******/intenter(ADDRESSt[]);/*輸入記錄*/voidlist(ADDRESSt[],intn);/*顯示記錄*/voidsearch(ADDRESSt[],intn);/*按姓名查找顯示記錄*/intdelete(ADDRESSt[],intn);/*刪除記錄*/intadd(ADDRESSt[],intn);/*插入記錄*/voidsave(ADDRESSt[],intn);/*記錄保存為文件*/intload(ADDRESSt[]);/*從文件中讀記錄*/voiddisplay(ADDRESSt[]);/*按序號查找顯示記錄*/voidsort(ADDRESSt[],intn);/*按姓名排序*/voidqseek(ADDRESSt[],intn);/*快速查找記錄*/voidcopy();/*文件復(fù)制*/voidprint(ADDRESStemp);/*顯示單條記錄*/intfind(ADDRESSt[],intn,char*s);/*查找函數(shù)*/intmenu_select();/*主菜單函數(shù)*//******主函數(shù)開始*******/main(){inti;ADDRESSadr[M];/*定義結(jié)構(gòu)體數(shù)組*/intlength;/*保存記錄長度*/clrscr();/*清屏*/for(;;)/*無限循環(huán)*/{switch(menu_select())/*調(diào)用主菜單函數(shù),返回值整數(shù)作開關(guān)語句的條件*/{case0:length=enter(adr);break;/*輸入記錄*/case1:list(adr,length);break;/*顯示全部記錄*/case2:search(adr,length);break;/*查找記錄*/case3:length=delete(adr,length);break;/*刪除記錄*/case4:length=add(adr,length);break;/*插入記錄*/case5:save(adr,length);break;/*保存文件*/case6:length=load(adr);break;/*讀文件*/case7:display(adr);break;/*按序號顯示記錄*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找記錄*/case10:copy();break;/*復(fù)制文件*/case11:exit(0);/*如返回值為11則程序結(jié)束*/}}}/*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項*/menu_select(){chars[80];intc;gotoxy(1,25);/*將光標(biāo)定為在第25行,第1列*/printf("pressanykeyentermenu\n");/*提示壓任意鍵繼續(xù)*/getch();/*讀入任意字符*/clrscr();/*清屏*/gotoxy(1,1);printf("********************MENU*********************\n\n");printf("0.Enterrecord\n");printf("1.Listthefile\n");printf("2.Searchrecordonname\n");printf("3.Deletearecord\n");printf("4.addrecord\n");printf("5.Savethefile\n");printf("6.Loadthefile\n");printf("7.displayrecordonorder\n");printf("8.sorttomakenewfile\n");printf("9.Quickseekrecord\n");printf("10.copythefiletonewfile\n");printf("11.Quit\n");printf("***********************************************\n");do{printf("\nEnteryouchoice(0~11):");/*提示輸入選項*/scanf("%s",s);/*輸入選擇項*/c=atoi(s);/*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/}while(c<0||c>11);/*選擇項不在0~11之間重輸*/returnc;/*返回選擇項,主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/}/***輸入記錄,形參為結(jié)構(gòu)體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/intenter(ADDRESSt[]){inti,n;char*s;clrscr();/*清屏*/printf("\npleaseinputnum\n");/*提示信息*/scanf("%d",&n);/*輸入記錄數(shù)*/printf("pleaseinputrecord\n");/*提示輸入記錄*/printf("nameunittelephone\n");printf("\n");for(i=0;i<n;i++){scanf("%s%s%s",t[i].name,t[i].units,t[i].tele);/*輸入記錄*/printf("\n");}returnn;/*返回記錄條數(shù)*/}/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/voidlist(ADDRESSt[],intn){inti;clrscr();printf("\n\n*******************ADDRESS******************\n");printf("nameunittelephone\n");printf("\n");for(i=0;i<n;i++)printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);if((i+1)%10==0)/*判斷輸出是否達(dá)到10條記錄*/{printf("Pressanykeycontinue...\n");/*提示信息*/getch();/*壓任意鍵繼續(xù)*/}printf("************************end*******************\n");}/*查找記錄*/voidsearch(ADDRESSt[],intn){chars[20];/*保存待查找姓名字符串*/inti;/*保存查找到結(jié)點(diǎn)的序號*/clrscr();/*清屏*/printf("pleasesearchname\n");scanf("%s",s);/*輸入待查找姓名*/i=find(t,n,s);/*調(diào)用find函數(shù),得到一個整數(shù)*/if(i>n-1)/*如果整數(shù)i值大于n-1,說明沒找到*/printf("notfound\n");elseprint(t[i]);/*找到,調(diào)用顯示函數(shù)顯示記錄*/}/*顯示指定的一條記錄*/voidprint(ADDRESStemp){clrscr();printf("\n\n********************************************\n");printf("nameunittelephone\n");printf("\n");printf("%-20s%-30s%-10s\n",,temp.units,temp.tele);printf("**********************end***********************\n");}/*查找函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)以及姓名s*/intfind(ADDRESSt[],intn,char*s){inti;for(i=0;i<n;i++)/*從第一條記錄開始,直到最后一條*/{if(strcmp(s,t[i].name)==0)/*記錄中的姓名和待比較的姓名是否相等*/returni;/*相等,則返回該記錄的下標(biāo)號,程序提前結(jié)結(jié)束*/}returni;/*返回i值*/}/*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/intdelete(ADDRESSt[],intn){chars[20];/*要刪除記錄的姓名*/intch=0;inti,j;printf("pleasedeletedname\n");/*提示信息*/scanf("%s",s);/*輸入姓名*/i=find(t,n,s);/*調(diào)用find函數(shù)*/if(i>n-1)/*如果i>n-1超過了數(shù)組的長度*/printf("nofoundnotdeleted\n");/*顯示沒找到要刪除的記錄*/else{print(t[i]);/*調(diào)用輸出函數(shù)顯示該條記錄信息*/printf("Areyousuredeleteit(1/0)\n");/*確認(rèn)是否要刪除*/scanf("%d",&ch);/*輸入一個整數(shù)0或1*/if(ch==1)/*如果確認(rèn)刪除整數(shù)為1*/{for(j=i+1;j<n;j++)/*刪除該記錄,實際后續(xù)記錄前移*/{strcpy(t[j-1].name,t[j].name);/*將后一條記錄的姓名拷貝到前一條*/strcpy(t[j-1].units,t[j].units);/*將后一條記錄的單位拷貝到前一條*/strcpy(t[j-1].tele,t[j].tele);/*將后一條記錄的電話拷貝到前一條*/}n--;/*記錄數(shù)減1*/}}returnn;/*返回記錄數(shù)*/}/*插入記錄函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/intadd(ADDRESSt[],intn)/*插入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/{ADDRESStemp;/*新插入記錄信息*/inti,j;chars[20];/*確定插入在哪個記錄之前*/printf("pleaseinputrecord\n");printf("************************************************\n");printf("nameunittelephone\n");printf("\n");scanf("%s%s%s",,temp.units,temp.tele);/*輸入插入信息*/printf("\n");printf("pleaseinputlocatename\n");scanf("%s",s);/*輸入插入位置的姓名*/i=find(t,n,s);/*調(diào)用find,確定插入位置*/for(j=n-1;j>=i;j--)/*從最后一個結(jié)點(diǎn)開始向后移動一條*/{strcpy(t[j+1].name,t[j].name);/*當(dāng)前記錄的姓名拷貝到后一條*/strcpy(t[j+1].units,t[j].units);/*當(dāng)前記錄的單位拷貝到后一條*/strcpy(t[j+1].tele,t[j].tele);/*當(dāng)前記錄的電話拷貝到后一條*/}strcpy(t[i].name,);/*將新插入記錄的姓名拷貝到第i個位置*/strcpy(t[i].units,temp.units);/*將新插入記錄的單位拷貝到第i個位置*/strcpy(t[i].tele,temp.tele);/*將新插入記錄的電話拷貝到第i個位置*/n++;/*記錄數(shù)加1*/returnn;/*返回記錄數(shù)*/}/*保存函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/voidsave(ADDRESSt[],intn){inti;FILE*fp;/*指向文件的指針*/if((fp=fopen("record.txt","wb"))==NULL)/*打開文件,并判斷打開是否正常*/{printf("cannotopenfile\n");/*沒打開*/exit(1);/*退出*/}printf("\nSavingfile\n");/*輸出提示信息*/fprintf(fp,"%d",n);/*將記錄數(shù)寫入文件*/fprintf(fp,"\r\n");/*將換行符號寫入文件*/for(i=0;i<n;i++){fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);/*格式寫入記錄*/fprintf(fp,"\r\n");/*將換行符號寫入文件*/}fclose(fp);/*關(guān)閉文件*/printf("****savesuccess***\n");/*顯示保存成功*/}/*讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/intload(ADDRESSt[]){inti,n;FILE*fp;/*指向文件的指針*/if((fp=fopen("record.txt","rb"))==NULL)/*打開文件*/{printf("cannotopenfile\n");/*不能打開*/exit(1);/*退出*/}fscanf(fp,"%d",&n);/*讀入記錄數(shù)*/for(i=0;i<n;i++)fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele);/*按格式讀入記錄*/fclose(fp);/*關(guān)閉文件*/printf("Youhavesuccessreaddatafromfile!!!\n");/*顯示保存成功*/returnn;/*返回記錄數(shù)*/}/*按序號顯示記錄函數(shù)*/voiddisplay(ADDRESSt[]){intid,n;FILE*fp;/*指向文件的指針*/if((fp=fopen("record.txt","rb"))==NULL)/*打開文件*/{printf("cannotopenfile\n");/*不能打開文件*/exit(1);/*退出*/}printf("Enterordernumber...\n");/*顯示信息*/scanf("%d",&id);/*輸入序號*/fscanf(fp,"%d",&n);/*從文件讀入記錄數(shù)*/if(id>=0&&id<n)/*判斷序號是否在記錄范圍內(nèi)*/{fseek(fp,(id-1)*sizeof(ADDRESS),1);/*移動文件指針到該記錄位置*/print(t[id]);/*調(diào)用輸出函數(shù)顯示該記錄*/printf("\r\n");}elseprintf("no%dnumberrecord!!!\n",id);/*如果序號不合理顯示信息*/fclose(fp);/*關(guān)閉文件*/}/*排序函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/voidsort(ADDRESSt[],intn){inti,j,flag;ADDRESStemp;/*臨時變量做交換數(shù)據(jù)用*/for(i=0;i<n;i++){flag=0;/*設(shè)標(biāo)志判斷是否發(fā)生過交換*/for(j=0;j<n-1;j++)if((strcmp(t[j].name,t[j+1].name))>0)/*比較大小*/{flag=1;strcpy(,t[j].name);/*交換記錄*/strcpy(temp.units,t[j].units);strcpy(temp.tele,t[j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,);strcpy(t[j+1].units,temp.units);strcpy(t[j+1].tele,temp.tele);}if(flag==0)break;/*如果標(biāo)志為0,說明沒有發(fā)生過交換循環(huán)結(jié)束*/}printf("sortsucess!!!\n");/*顯示排序成功*/}/*快速查找,參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/voidqseek(ADDRESSt[],intn){chars[20];intl,r,m;printf("\nPleasesortbeforeqseek!\n");/*提示確認(rèn)在查找之前,記錄是否已排序*/printf("pleaseenternameforqseek\n");/*提示輸入*/scanf("%s",s);/*輸入待查找的姓名*/l=0;r=n-1;/*設(shè)置左邊界與右邊界的初值*/while(l<=r)/*當(dāng)左邊界<=右邊界時*/{m=(l+r)/2;/*計算中間位置*/if(strcmp(t[m].name,s)==0)/*與中間結(jié)點(diǎn)姓名字段做比較判是否相等*/{print(t[m]);/*如果相等,則調(diào)用print函數(shù)顯示記錄信息*/return;/*返回*/}if(strcmp(t[m].name,s)<0)/*如果中間結(jié)點(diǎn)小*/l=m+1;/*修改左邊界*/elser=m-1;/*否則,中間結(jié)點(diǎn)大,修改右邊界*/}if(l>r)/*如果左邊界大于右邊界時*/printf("notfound\n");/*顯示沒找到*/}/*復(fù)制文件*/voidcopy(){charoutfile[20];/*目標(biāo)文件名*/inti,n;ADDRESStemp[M];/*定義臨時變量*/FILE*sfp,*tfp;/*定義指向文件的指針*/clrscr();/*清屏*/if((sfp=fopen("record.txt","rb"))==NULL)/*打開記錄文件*/{printf("cannotopenfile\n");/*顯示不能打開文件信息*/exit(1);/*退出*/}printf("Enteroutfilename,forexamplec:\\f1\\te.txt:\n");/*提示信息*/scanf("%s",outfile);/*輸入目標(biāo)文件名*/if((tfp=fopen(outfile,"wb"))==NULL)/*打開目標(biāo)文件*/{printf("cannotopenfile\n");/*顯示不能打開文件信息*/exit(1);/*退出*/}fscanf(sfp,"%d",&n);/*讀出文件記錄數(shù)*/fprintf(tfp,"%d",n);/*寫入目標(biāo)文件數(shù)*/fprintf(tfp,"\r\n");/*寫入換行符*/for(i=0;i<n;i++){fscanf(sfp,"%20s%30s%10s\n",temp[i].name,temp[i].units,temp[i].tele);/*讀入記錄*/fprintf(tfp,"%-20s%-30s%-10s\n",temp[i].name,temp[i].units,temp[i].tele);/*寫入記錄*/fprintf(tfp,"\r\n");/*寫入換行符*/}fclose(sfp);/*關(guān)閉源文件*/fclose(tfp);/*關(guān)閉目標(biāo)文件*/printf("youhavesuccesscopyfile!!!\n");/*顯示復(fù)制成功*/} }}參考文獻(xiàn)1、C語言程序設(shè)計教程,譚浩強(qiáng),張基溫清華大學(xué)出版社,20062、C程序設(shè)計題解與上機(jī)指導(dǎo),譚浩強(qiáng),清華大學(xué)出版社,20063、零起點(diǎn)一本通天合教育電子科技大學(xué)出版社,20094、C語言實用程序薈萃,西安電子科技大學(xué)出版社,19935、C語言函數(shù)手冊,機(jī)械工業(yè)出版社,19996、C語言的實際應(yīng)用,安徽科學(xué)技術(shù)出版社,2000:機(jī)械工程學(xué)院課程設(shè)計評分表課題名稱:通訊錄管理系統(tǒng)項目評價設(shè)計方案的合理性與創(chuàng)造性設(shè)計與調(diào)試結(jié)果設(shè)計說明書的質(zhì)量答辯陳述與回答問題情況課程設(shè)計周表現(xiàn)情況綜合成績教師簽名:日期:(注:1.此頁附在課程設(shè)計報告最后一頁;2.綜合成績按優(yōu)、良、中、及格和不及格五級評定。)基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實現(xiàn)基于單片機(jī)的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗臺控制器的研制基于單片機(jī)的軟起動器的研究和設(shè)計基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運(yùn)動控制系統(tǒng)設(shè)計Pico專用單片機(jī)核的可測性設(shè)計研究基于MCS-51單片機(jī)的熱量計基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實驗中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機(jī)與Internet互聯(lián)的研究與實現(xiàn)變頻調(diào)速液壓電梯單片機(jī)控制器的研究基于單片機(jī)γ-免疫計數(shù)器自動換樣功能的研究與實現(xiàn)HYPERLINK"/detail.htm

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論