C語言實(shí)訓(xùn)報(bào)告
在這個(gè)星期里,我們?cè)趯I(yè)老師帶領(lǐng)下進(jìn)行了C語言程序?qū)嵱?xùn)練習(xí)。一周的C語言實(shí)訓(xùn),雖然時(shí)間略顯倉促,但卻讓我學(xué)到了很多實(shí)際運(yùn)用的技能!
首先,在實(shí)訓(xùn)中的第一步是編寫一個(gè)圖書管理系統(tǒng)的程序,雖然我們已經(jīng)對(duì)C語言這門課學(xué)習(xí)了一學(xué)期,對(duì)其有一定了解,但運(yùn)用起來十分困難,通過到網(wǎng)上查資料,調(diào)試等,終于編寫好此程序。雖然只是一個(gè)程序,但所用的知識(shí)卻都是我們本學(xué)期學(xué)習(xí)的重點(diǎn)知識(shí)。在做題的過程中讓我們把這些知識(shí)復(fù)習(xí)了一遍,強(qiáng)化了知識(shí)!
其次,平時(shí)我們學(xué)C語言幾乎都是為了考試或者做一些比較常規(guī)的題目,而這次實(shí)訓(xùn)卻給我們將所學(xué)知識(shí)運(yùn)用于解決實(shí)際問題的機(jī)會(huì),也讓我們感受到了編寫軟件程序的樂趣。但是不僅僅是如此,更為重要的是在運(yùn)用所學(xué)知識(shí)的過程中,記住這些知識(shí),并能夠廣泛的運(yùn)用!再次,通過實(shí)訓(xùn),讓我了解到在編寫程序中,真的是細(xì)節(jié)決定成敗,因?yàn)椴还艹绦虻恼Z句是多是少,但是只要有一條語句或語法不正確,就不能使程序得到所需要的結(jié)果。沒能夠使自己編寫出來的程序運(yùn)行出想要的結(jié)果,意味著這是一個(gè)不理想的程序,對(duì)于本次編寫來說則是失敗的。同時(shí),我也了解到了編程需要很大的耐心,因?yàn)槠綍r(shí)練習(xí)的都是小程序,所以句段比較少,一些錯(cuò)誤都很容易被檢查出來,但是這次實(shí)訓(xùn)卻是上百段的語句,難以檢查,似乎也沒有經(jīng)驗(yàn)去怎么檢查,所以每次我們都需要一點(diǎn)點(diǎn)去調(diào)試,然后找到正確的方法、格式。雖然為了編寫這個(gè)程序浪費(fèi)了很多時(shí)間,也很累。但是卻讓我了解了圖書的管理系統(tǒng),不再像以前那樣感覺好奇。而且也學(xué)會(huì)了簡(jiǎn)單的編程,對(duì)以后生活有很大的用處。通過實(shí)訓(xùn),我們有能力自己確定其他的專題進(jìn)行編程,可以豐富我們的知識(shí)以及見識(shí)。
通過這次為數(shù)幾天的C語言實(shí)訓(xùn),讓我們了解了更多知識(shí)。也鞏固了我們的知識(shí)理論,熟練的掌握了C語言開發(fā)環(huán)境,為以后真正編寫計(jì)算機(jī)程序解決實(shí)際問題打下基礎(chǔ)。同時(shí),在今后遇到其它開發(fā)環(huán)境時(shí)就會(huì)觸類旁通,很快掌握系統(tǒng)使用。對(duì)我們將來到社會(huì)工作有很大的幫助。同時(shí)他也讓我知道,只要努力,任何東西都不會(huì)太難。
擴(kuò)展閱讀:C語言實(shí)訓(xùn)報(bào)告
《C語言程序設(shè)計(jì)》實(shí)訓(xùn)報(bào)告
課題名稱:通訊錄管理系統(tǒng)
專業(yè):計(jì)算機(jī)信息管理班級(jí):09信管(1)班學(xué)號(hào):姓名:指導(dǎo)教師:
201*年7月1日
目錄
1課程設(shè)計(jì)目的12課程設(shè)計(jì)題目13課程設(shè)計(jì)報(bào)告內(nèi)容14結(jié)論105結(jié)束語106參考書目107程序運(yùn)行108附錄:(源程序清單)實(shí)訓(xùn)報(bào)告
一、課程設(shè)計(jì)題目
《通訊錄管理系統(tǒng)》
二、實(shí)訓(xùn)目的
(1)掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法。(2)掌握C的基本概念和基礎(chǔ)知識(shí)。
(3)通過訓(xùn)練能夠讀懂較為復(fù)雜的C語言源程序并具備基本C語言程序設(shè)計(jì)的能力。(4)熟練掌握各種常用類的定義,繼承,文件的應(yīng)用,為更好的理解面向?qū)ο蟠蛳赂玫幕A(chǔ)。
(5)通過實(shí)訓(xùn),培養(yǎng)自己編寫、調(diào)試、分析大型應(yīng)用程序的能力。(6)掌握面向?qū)ο蟮幕驹,提高學(xué)生綜合程序設(shè)計(jì)的能力。
(7)培養(yǎng)自己獨(dú)立解決問題,查找資料的能力。同學(xué)之間相互幫助,相互交流,相互合作的團(tuán)隊(duì)精神。
(8)培養(yǎng)自己良好的學(xué)習(xí)興趣,獨(dú)立的編程風(fēng)格。
(9)通過實(shí)訓(xùn)檢查自己學(xué)習(xí)上的不足,達(dá)到熟練掌握C語言的基本知識(shí)和技能。
三、課程設(shè)計(jì)報(bào)告內(nèi)容
3.1功能要求
該系統(tǒng)運(yùn)行在DOS環(huán)境下,人機(jī)界面為命令行文本界面。完成的任務(wù)是對(duì)若干人的通信錄信息進(jìn)行管理,且數(shù)據(jù)保存到文件中。實(shí)現(xiàn)的主要功能是:
添加:增加一個(gè)或幾個(gè)人的通信錄信息。刪除:刪除已輸入的通信錄信息。查詢:根據(jù)輸入的姓名查找通信錄信息。修改:根據(jù)輸入的姓名修改通信錄信息。顯示:輸出所有通信錄信息。3.2設(shè)計(jì)環(huán)境
所使用的語言采用標(biāo)準(zhǔn)C,開發(fā)工具選用在Windows環(huán)境下的C-free、Win-TC或者VisualC++6.0。3.3數(shù)據(jù)結(jié)構(gòu)
實(shí)訓(xùn)報(bào)告
本系統(tǒng)是對(duì)通信錄的信息進(jìn)行管理,通信錄記錄的信息采用C的結(jié)構(gòu)體數(shù)據(jù)類型描述,定義如下:
structren/*定義個(gè)人資料結(jié)構(gòu)體類型*/{
charname[10];/*姓名*/intage;/*年齡*/chartel[12];/*電話號(hào)碼*/charcity[20];/*城市*/charunits[30];/*所在單位*/charnote[20];/*備注*/};
3.4實(shí)現(xiàn)方法及主要算法分析
(1)主界面的設(shè)計(jì):主界面采用文本菜單的形式,各功能調(diào)用通過菜單進(jìn)行選擇。采用循環(huán)處理,以便執(zhí)行完某項(xiàng)處理后,仍可選擇其他項(xiàng)處理。在循環(huán)內(nèi)先顯示提示信息,然后讀取用戶輸入,使用switch語句對(duì)用戶的輸入進(jìn)行判斷,分別調(diào)用相應(yīng)的模塊,當(dāng)某模塊結(jié)束后再次回到文本菜單,直到用戶選擇結(jié)束程序菜單,才退出循環(huán),從而退出系統(tǒng)。(2)外部文件的類型:文件采用的二進(jìn)制的文件,對(duì)文件的讀寫采用順序文件的方式,并使用fread和fwrite等函數(shù)對(duì)文件進(jìn)行操作。
(3)清屏函數(shù):一般由上一級(jí)菜單屏幕進(jìn)入下一級(jí)菜單屏幕或由下一級(jí)菜單屏幕返回上一級(jí)菜單屏幕都需要清除屏幕原來顯示的內(nèi)容。同時(shí)在調(diào)用程序的過程中,記錄需要清屏的位置,然后修改代碼,加入clrscr()函數(shù)清屏。
(4)提示信息:一般的輸入與輸出需有相應(yīng)的提示信息,以增加用戶的交互性,增加輸出的可讀性,以幫助用戶使用程序。
(5)設(shè)置顏色:textbackground()、textcolor()函數(shù)設(shè)置背景和前景顏色(6)光標(biāo)定位:gotoxy(列,行);光標(biāo)定位
實(shí)訓(xùn)報(bào)告
3.5模塊設(shè)計(jì)
根據(jù)功能要求,本系統(tǒng)為五大主要模塊,具體模塊如表所示。
表通訊錄管理管理系統(tǒng)的模塊
main()add()del()edit()search()display()pause()pause2()load_rec()search_name()search_city()
3.6處理流程
-3-
主控函數(shù)增加個(gè)人資料刪除個(gè)人資料修改個(gè)人資料查找個(gè)人資料主函數(shù)瀏覽所有信息等待"Y"、"y"、"n"、‘Y’鍵輸入等待任意鍵輸入統(tǒng)計(jì)記錄數(shù)按姓名查找個(gè)人資料按城市查找個(gè)人資料實(shí)訓(xùn)報(bào)告
(1)通訊錄主界面模塊
開始清屏顯示菜單輸入選項(xiàng)至select增加記錄刪除記錄修改記錄顯示所有記錄查找記錄結(jié)束
(2)增加記錄模塊(3)顯示記錄模塊
實(shí)訓(xùn)報(bào)告
開始函數(shù)清屏提示輸入輸入通信錄數(shù)據(jù)打開數(shù)據(jù)文件移動(dòng)指針到文件尾部將所輸出數(shù)據(jù)寫到文件關(guān)閉文件是否繼續(xù)返回
(4)刪除記錄
開始函數(shù)清屏打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件顯示ren中所有記錄返回-5-
實(shí)訓(xùn)報(bào)告
開始函數(shù)清屏提示輸入姓名輸入姓名打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件在數(shù)組ren中搜索姓名相同的字段
(5)修改記錄
-6-
查找到?顯示該記錄刪除?刪除該記錄打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件返回實(shí)訓(xùn)報(bào)告
開始函數(shù)清屏提示輸入姓名輸入姓名打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件在數(shù)組ren中搜索姓名相同的字段
-7-
查找到?顯示該記錄修改?修改該記錄打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件返回實(shí)訓(xùn)報(bào)告
(6)查找主模塊開始函數(shù)清屏顯示菜單輸入選項(xiàng)至按姓名查找按城市查找返回(7)按姓名查找,按城市查找開始函數(shù)開始函數(shù)清屏提示輸入姓名清屏提示輸入城市輸入姓名打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中輸入城市打開數(shù)據(jù)文件將所有記錄讀入到數(shù)組ren中關(guān)閉文件在數(shù)組ren中搜索姓名相同的字段并顯示關(guān)閉文件在數(shù)組ren中搜索城市相同的字段并顯示返回返回
實(shí)訓(xùn)報(bào)告
四、結(jié)論
通信錄管理系統(tǒng)的編寫,看似雜亂無頭緒,實(shí)際上卻并不如此。它的每一個(gè)功能都能分成模塊,有句話說的好,大事化小,小事化了。C語言編程也正式如此,把一個(gè)大的程序分為若干相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,這樣不僅降低了難度還使得思路清晰,很容易編寫出要做的程序,從而為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
分析問題:
通訊錄管理的整體功能都包括登陸限制、增加成員、刪除成員、查看成員、修改成員、登陸口令五大板塊,而查看有包括姓名查看,城市查看,年齡查看三個(gè)模塊。
(1)設(shè)計(jì)的數(shù)據(jù)對(duì)象包括整形:年齡。字符型:姓名、電話、城市、所在單位、備注。(2)數(shù)據(jù)結(jié)構(gòu)線性數(shù)據(jù)結(jié)構(gòu),定義人數(shù)上限為100.
算法的設(shè)計(jì):(1)自頂向下
現(xiàn)有全局,在進(jìn)行整體設(shè)計(jì),然后再進(jìn)行下層的設(shè)計(jì),逐步實(shí)現(xiàn)精細(xì)化。采用這種方法能夠做到胸有全局,能全盤考慮,不至于顧此失彼,頭重腳輕。(2)逐步細(xì)化
一步步地將上層的任務(wù)分解成較小的、易于實(shí)現(xiàn)的任務(wù),知道可以很簡(jiǎn)單實(shí)現(xiàn)為止。
編寫源程序:
(1)不求速度,但求質(zhì)量!一步一個(gè)腳印,編寫程序時(shí)候?qū)幙伤俣嚷┮惨M量保證質(zhì)
量,做到盡量不出錯(cuò)。
(2)精力集中,全神貫注!寫程序時(shí)候最忌諱三心二意,這樣才能思路清晰保證質(zhì)量。(3)保持一個(gè)良好的編程心態(tài),不要被長(zhǎng)長(zhǎng)的代碼嚇到,更不要厭煩,既然同樣都是寫,
為什么不仲滿激情的去寫那?程序的編譯與運(yùn)行:
(1)查找錯(cuò)誤是一件讓人鬧心的事,但是要注重技巧,注意平時(shí)經(jīng)驗(yàn)的積累。才能在
最快的時(shí)間找出錯(cuò)誤
(2)用心去查找,也許你會(huì)發(fā)現(xiàn)錯(cuò)誤并不是很難找
(3)程序編譯成功不要滿足現(xiàn)狀,要積極測(cè)試程序的可用性,對(duì)功能不理想,存在缺
點(diǎn)的地方,積極的改進(jìn),完善。
實(shí)訓(xùn)報(bào)告
五、結(jié)束語
在實(shí)訓(xùn)過程中,使我良好的鍛煉了自己,首先是興趣方面,通過編寫通訊錄管理系統(tǒng)使我更加喜歡編程,使我從以前的迷茫狀態(tài)中解脫出來,使我了解了編程的真正意義。我想這對(duì)我以后的人生有著很大的幫助。其次通過編寫通訊錄管理系統(tǒng)使我對(duì)寫程序有了一定的思路,不像以前無從下手,使我理解了算法的意義,使我懂得了模塊化思想的好處。通過一個(gè)星期的編寫代碼,使我對(duì)書本上的知識(shí)有了更深的理解,甚至有很多不懂的問題在這過程中自然而然的理解了。對(duì)期末考試更有了信心。在方建文老師的悉心指導(dǎo)下,我對(duì)C語言有了更深刻的理解,對(duì)程序的算法,數(shù)據(jù)的定義,程序的改錯(cuò)等方面的能力有了很大提高,自身的注意力,耐心,和對(duì)編程的興趣有了很大增長(zhǎng),使我獲益匪淺。
六、參考書目:
[1]周成義,湯德俊,鐘菊,《C語言程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》,中國鐵道出版社,北京,201*年8月[2](美)克尼漢,(美)里奇著,徐寶文,李志譯,《C程序設(shè)計(jì)語言》,機(jī)械工業(yè)出版社201*年01月
七、程序運(yùn)行
系統(tǒng)各個(gè)模塊運(yùn)行調(diào)試,并附上運(yùn)行結(jié)果截圖。
實(shí)訓(xùn)報(bào)告
實(shí)訓(xùn)報(bào)告
八、附錄:(源程序清單)
/*通訊錄程序*/
實(shí)訓(xùn)報(bào)告
#defineM100#include#include#includestructrecord{};
voidmodi_seq(structrecordinfo[],intn);voidcreat();voidappend();voiddisplay();voidlocate();voidmodify();voiddele();
voiddisp_arr(structrecord*,int);voiddisp_row(structrecord);voiddisp_table();
voidmodi_sep(structrecord[],int);voiddisp_str(char,int);
voidsort(structrecord[],int);
voidsort_name(structrecord[],int);voidsort_city(structrecord[],int);voiddele_name(structrecord[],int*);voiddele_sequ(structrecord[],int*);#includevoidmain(){
charname[20];intage;chartele[15];charcity[20];charunits[30];charnote[20];
charchoice;while(1){
printf("\\n\\n");disp_str("",18);
printf("通訊錄管理程序\\n");disp_str("*",50);putchar("\\n");disp_str("",16);
printf("1.通訊錄信息輸入\\n");disp_str("",16);
printf("2.顯示通訊錄信息\\n");disp_str("",16);
實(shí)訓(xùn)報(bào)告
printf("3.通訊錄記錄查詢\\n");
disp_str("",16);
printf("4.修改通訊錄信息\\n");disp_str("",16);printf("5.通訊錄記錄刪除\\n");disp_str("",16);printf("6.建立通訊錄文件\\n");disp_str("",16);
printf("7.退出通訊錄程序\\n");disp_str("*",50);putchar("\\n");disp_str("",14);
printf("請(qǐng)輸入代碼選擇(1~7)");choice=getchar();getchar();switch(choice){case"1":append();
break;
case"2":display();break;case"3":locate();break;
case"4":
modify();break;case"5":dele();break;case"6":creat();break;case"7":return1;default:continue;
}}}voiddisp_str(charch,intn){inti;
for(i=1;i實(shí)訓(xùn)報(bào)告
printf("%c",ch);
return;
}voidappend(){structrecordinfo[M];
FILE*fp;charask;
inti=0;
if((fp=fopen("address.txl","rb+wb"))==NULL){printf("can"topenfile!\\n");return;}
while(!feof(fp))fread(&info[i++],sizeof(structrecord),1,fp);while(1){
if(i==M){
printf("紀(jì)錄已滿!");break;
i--;
}printf("\\n\\n");disp_str("",10);
printf("添加通訊錄信息(共有%d條記錄)\\n",i);disp_str("*",50);
putchar("\\n");disp_str("",17);
printf("1.添加新的通訊紀(jì)錄\\n");disp_str("",17);
printf("2.退出添加程序\\n");disp_str("*",50);
putchar("\\n");disp_str("",16);
printf("請(qǐng)輸入代碼選擇(1~2)");ask=getchar();getchar();if(ask=="2")break;
elseif(ask=="1"){
printf("開始添加新的紀(jì)錄信息:\\n");putchar("\\n");
printf("清輸入一下信息:\\n");printf("姓名:");
實(shí)訓(xùn)報(bào)告
}gets(info[i].name);printf("\\n年齡:");scanf("%d",&info[i].age);getchar();
printf("\\n電話:");gets(info[i].tele);printf("\\n所在城市:");gets(info[i].city);printf("\\n所在單位:");gets(info[i].units);printf("\\n備注:");gets(info[i].note);i++;
fwrite(&info[i],sizeof(structrecord),1,fp);
}//while(1)fclose(fp);return;
}voidcreat(){FILE*fp;
if((fp=fopen("address.txl","wb"))==NULL){printf("can"topenfile!\\n");return;}
fclose(fp);
printf("\\n\\n文件成功建立,請(qǐng)使用“通訊錄信息輸入功能”輸入信息!");getchar();return;
}voiddisplay(){
structrecordinfo[M];FILE*fp;charask;inti=0;
if((fp=fopen("address.txl","rb"))==NULL){}
while(!feof(fp))fread(&info[i++],sizeof(structrecord),1,fp);i--;
-16-
printf("can"topenfile!\\n");
return;實(shí)訓(xùn)報(bào)告
while(1){printf("\\n\\n");disp_str("",10);
printf("顯示通訊錄信息(共有%d條記錄)\\n",i);disp_str("*",50);putchar("\\n");disp_str("",17);
printf("1.按自然順序顯示\\n");disp_str("",17);
printf("2.按排序順序顯示\\n");disp_str("",17);
printf("3.退出顯示程序\\n");disp_str("*",50);putchar("\\n");disp_str("",16);
printf("請(qǐng)輸入代碼選擇1-3");ask=getchar();getchar();if(ask=="3"){
fclose(fp);
return;}
elseif(ask=="1")
disp_arr(info,i);elseif(ask=="2")sort(info,i);}
fclose(fp);
return;
}voiddisp_arr(structrecordinfo[],intn){charpress;inti;
for(i=0;i實(shí)訓(xùn)報(bào)告
}disp_table();
printf("%-7d",i+1);disp_row(info[i]);if((i+1)%20==0){
printf("\\n");
disp_str("*",78);
printf("按回車鍵繼續(xù)顯示下屏,按其他鍵結(jié)束顯示!\\n");printf("請(qǐng)按鍵");press=getchar();}
disp_str("*",78);printf("\\n");
printf("按任意鍵繼續(xù)......");getchar();getchar();if(press!="\\n"){}}
break;
return;}
voiddisp_row(structrecordrow){
printf("%-12s%-12s%-15s%-16s%-4d%-s\\n",row.name,row.tele,row.city,row.units,row.age,row.note);return;}voidsort(structrecordinfo[],intn){
charask;while(1){
printf("\\n\\n");disp_str("",16);printf("通訊錄排序\\n");disp_str("*",50);putchar("\\n");disp_str("",17);
printf("1.按姓名排序\\n");disp_str("",17);
printf("2.按城市排序\\n");disp_str("",17);
實(shí)訓(xùn)報(bào)告
}printf("3.返回上一層\\n");disp_str("*",50);
putchar("\\n");disp_str("",16);
printf("請(qǐng)輸入號(hào)碼選擇(1-3)");ask=getchar();getchar();if(ask=="3")
break;
elseif(ask=="1")sort_name(info,n);elseif(ask=="2")
sort_city(info,n);
}return;
voidsort_name(structrecordinfo[],intn){
inti,j;
structrecordinfo_t[M],temp;
for(i=0;i實(shí)訓(xùn)報(bào)告
}}}temp=info_t[j];info_t[j]=info_t[j+1];info_t[j+1]=temp;
disp_arr(info_t,n);return;
voiddisp_table(){printf("姓名");
disp_str("",8);printf("電話");disp_str("",8);printf("城市");disp_str("",12);printf("單位");disp_str("",10);printf("年齡");disp_str("",2);printf("備注\\n");return;
}voidlocate(){
structrecordtemp,info[M];charask,name[20],city[20];
intn=0,i,flag;FILE*fp;
if((fp=fopen("address.txl","rb"))==NULL){
printf("can"topenfile!\\n");return;
}while(fread(&temp,sizeof(structrecord),1,fp)==1)info[n++]=temp;while(1){
flag=0;
disp_str("",20);printf("查詢通訊錄\\n");disp_str("*",50);putchar("\\n");
disp_str("",17);
printf("1.按姓名查詢\\n");disp_str("",17);
實(shí)訓(xùn)報(bào)告
}}printf("2.按城市查詢\\n");disp_str("",17);
printf("3.返回上一層\\n");disp_str("*",50);putchar("\\n");disp_str("",16);
printf("請(qǐng)輸入代碼選擇(1~3)");ask=getchar();getchar();if(ask=="1"){
printf("請(qǐng)輸入要查詢的姓名:");gets(name);
for(i=0;i實(shí)訓(xùn)報(bào)告
voidmodify(){
charask;structrecordtemp,info[M];FILE*fp;inti=0;
if((fp=fopen("address.txl","rb"))==NULL){}
printf("can"topenfile!\\n");return;
while(fread(&temp,sizeof(structrecord),1,fp)==1)
info[i++]=temp;while(1){}
disp_str("",20);
printf("編輯修改通訊錄\\n");disp_str("*",50);putchar("\\n");disp_str("",17);
printf("1.瀏覽顯示通訊錄\\n");disp_str("",17);
printf("2.編輯修改通訊錄\\n");disp_str("",17);
printf("3.返回上一層\\n");disp_str("*",50);putchar("\\n");
disp_str("",16);
printf("請(qǐng)輸入號(hào)碼選擇(1-3)");ask=getchar();getchar();if(ask=="3")break;
elseif(ask=="1")disp_arr(info,i);elseif(ask=="2")
modi_seq(info,i);
fclose(fp);
fp=fopen("address.txl","wb");
fwrite(info,sizeof(structrecord),i,fp);fclose(fp);return;
}voidmodi_seq(structrecordinfo[],intn){
實(shí)訓(xùn)報(bào)告
}intsequence;charask;
while(1){printf("請(qǐng)輸入序號(hào):");scanf("%d",&sequence);
getchar();
if(sequencen){}
printf("當(dāng)前要修改的記錄信息:\\n");disp_table();
disp_row(info[sequence-1]);printf("請(qǐng)重新輸入以下的信息:\\n");printf("姓名:");
gets(info[sequence-1].name);printf("年齡:");
scanf("%d",&info[sequence-1].age);getchar();
printf("電話:");
gets(info[sequence-1].tele);printf("所在城市:");
gets(info[sequence-1].city);printf("所在單位:");
printf("序號(hào)超出范圍,請(qǐng)重新輸入!\\n");getchar();continue;
gets(info[sequence-1].units);printf("備注:");gets(info[sequence-1].note);printf("繼續(xù)修改請(qǐng)按y,否則按其他鍵......");}
ask=getchar();getchar();
if(ask!="y"&&ask!="Y")break;
return;
voiddele()
{structrecordtemp,info[M];charask;
inti=0,lenth;
FILE*fp;if((fp=fopen("address.txl","rb"))==NULL)
{實(shí)訓(xùn)報(bào)告
printf("can"topenfile!\\n");return;
}while(fread(&temp,sizeof(structrecord),1,fp)==1)info[i++]=temp;lenth=i;while(1){
disp_str("",18);printf("記錄的刪除\\n");disp_str("*",50);
}{putchar("\\n");disp_str("",17);
printf("1.按姓名刪除\\n");disp_str("",17);
printf("2.按序號(hào)刪除\\n");disp_str("",17);
printf("3.返回上一層\\n");disp_str("*",50);putchar("\\n");
disp_str("",14);
printf("請(qǐng)輸入號(hào)碼選擇(1-3)");ask=getchar();getchar();if(ask=="3")break;
elseif(ask=="1")dele_name(info,&i);elseif(ask=="2")dele_sequ(info,&i);if(lenth>i){}
fclose(fp);
fp=fopen("address.txl","wb");
fwrite(info,sizeof(structrecord),lenth-1,fp);fclose(fp);
fp=fopen("address.txl","rb");
}fclose(fp);return;
voiddele_name(structrecordinfo[],int*n)
chard_name[20],sure;inti;
實(shí)訓(xùn)報(bào)告
}printf("請(qǐng)輸入姓名:");gets(d_name);
getchar();
for(i=0;i實(shí)訓(xùn)報(bào)告
disp_row(info[d_sequence-1]);
printf("確定刪除-y,否則按其他鍵......");sure=getchar();getchar();
if(sure!="y"&&sure!="Y")return;for(i=d_sequence-1;i
友情提示:本文中關(guān)于《C語言實(shí)訓(xùn)報(bào)告》給出的范例僅供您參考拓展思維使用,C語言實(shí)訓(xùn)報(bào)告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。