freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言課程設(shè)計(jì)指導(dǎo)書(shū)(編輯修改稿)

2025-07-11 10:04 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 節(jié)點(diǎn)。 一旦需要添加記錄,就讓尾指針指向新節(jié)點(diǎn) (稱(chēng)為節(jié)點(diǎn) 1),而后把節(jié)點(diǎn) 1 的指針域賦給尾指針。由于尾指針為頭節(jié)點(diǎn)的指針域,這樣含頭節(jié)點(diǎn)就鏈接了節(jié)點(diǎn) 1,即頭節(jié)點(diǎn)的指針指向節(jié)點(diǎn) 1,形成了鏈的初始模型。當(dāng)增加第二個(gè)節(jié)點(diǎn) (稱(chēng)為節(jié)點(diǎn) 2)時(shí),仍然修改尾指針,讓其指向節(jié)點(diǎn) 2,而后把節(jié)點(diǎn) 2 的指針域賦給尾指針。由于原來(lái)尾指針為節(jié)點(diǎn) 1 的指針域,因此節(jié)點(diǎn) 1 和節(jié)點(diǎn) 2 又鏈接在一起?,F(xiàn)在的隊(duì) 列由頭節(jié)點(diǎn)、節(jié)點(diǎn) 1 和節(jié)點(diǎn) 2 相互鏈接而成。依此類(lèi)推,鏈隊(duì)就通過(guò)修改尾指針的值形成了。 入隊(duì)操作的基本算法如下所示: void queue_add(struct element *rear,struct element *p) { pnext=NULL。 rearnext=p。 rear=p。 } 其中 rear 即為尾指針,而指針 p 指向新增的節(jié)點(diǎn)。算法的流程和上述完全一樣。 錄入留言記錄的函數(shù)代碼如下所示: void Data_Input(struct record *p) { struct data *d。 struct time *t。 front++。 getdate(t)。 /*取系統(tǒng)時(shí)間 */ p=ti_hour。 p=ti_min。 p=ti_sec。 printf(\n\n\nDate:%4d %2d %2d,p,p,p)。 printf(\nTime: %2d: %2d: %2d,p,p,p)。 printf(\n\n\tPlease input record:)。 gets(pevent)。 /*輸入留言?xún)?nèi)容 */ pnext=NULL。 } 上述函數(shù)中,采用了 getdate()和 gettime()兩個(gè)函數(shù)用來(lái)獲取系統(tǒng)的日期和時(shí)間。這兩個(gè)函數(shù)只 返回指向當(dāng)前日期和時(shí)間的兩個(gè)指針,還需要將值立即賦給留言記錄中的結(jié)構(gòu)成員。 出隊(duì)操作 留言記錄的刪除 和入隊(duì)操作相反的是出隊(duì)操作,即在隊(duì)頭將記錄刪除,這也是符合 “先進(jìn)先出 ”的原則的。 由于設(shè)置了頭節(jié)點(diǎn),因此出隊(duì)操作顯得非常簡(jiǎn)單。只需要修改頭節(jié)點(diǎn)的指針域,讓其指向第二個(gè)節(jié)點(diǎn)即可。而第一個(gè)節(jié)點(diǎn)則將其釋放掉。其余節(jié)點(diǎn),包括尾指針都不必做任何修改操作。 例如一個(gè)隊(duì)列原本由頭節(jié)點(diǎn)、節(jié)點(diǎn) 1 和節(jié)點(diǎn) 2 相鏈而成,執(zhí)行出隊(duì)操作時(shí),相當(dāng)于將頭節(jié)點(diǎn)和節(jié)點(diǎn) 節(jié)點(diǎn) 1 和節(jié)點(diǎn) 2 之間的兩條鏈斷開(kāi),而用斷鏈將 頭節(jié)點(diǎn)和節(jié)點(diǎn) 2 鏈上,多出來(lái)的節(jié)點(diǎn) 1 將其釋放掉。 11 典型的出隊(duì)操作算法如下: void queue_delete(struct element head) { struct element *temp。 temp=next。 =temp。 } 在執(zhí)行出隊(duì)操作時(shí),一定要記住需要將出隊(duì)的節(jié)點(diǎn)釋放。由于采用鏈?zhǔn)酱鎯?chǔ),事先無(wú)法估計(jì)需要多大的存銷(xiāo)售市場(chǎng)空間,也不必去估計(jì)。每次新增一個(gè)節(jié)點(diǎn)時(shí),都是調(diào)用內(nèi)存分配函數(shù)為新節(jié)點(diǎn)申請(qǐng)一塊內(nèi)存,如下所示: p=malloc(sizeof(struct record) 函數(shù) malloc 開(kāi)辟了一塊大小為 record 結(jié)構(gòu)元素的內(nèi)存區(qū)域,把掻向該區(qū)域的指針賦給指針 p,這塊內(nèi)存單元的所有權(quán)就從系統(tǒng)轉(zhuǎn)移到了指針 p。當(dāng) p 指向的數(shù)據(jù)元素被刪除 (出隊(duì) )時(shí),一定要用如下方式將內(nèi)存單 所有權(quán)還給系統(tǒng): free(p)。 函數(shù) free()的作用和 malloc()剛好相反,它將指定的內(nèi)存單元還給了系統(tǒng)。因?yàn)橄到y(tǒng)的內(nèi)存單元是有限的,如果不及時(shí)釋放占用的內(nèi)存,會(huì)造成內(nèi)存資源耗盡或由于內(nèi)存的減少導(dǎo)致程序執(zhí)行速度下 降。 記錄的存取的讀取 void Data_Save(struct record *p) /*記錄文件的存取 */ { int j。 fp=fopen(,w)。 /*以可寫(xiě)方式打開(kāi)記錄文件 */ while(p!=NULL) /*若未到隊(duì)尾,徨將記錄存儲(chǔ)到文件中 */ { fwrite((struct record),1,fp)。 p=pnext。 } fclose(fp)。 /*關(guān)閉指定的文件 */ } struct event *Data_Load() /*從記錄文件中讀取記錄 */ { long k。 struct record *p,*q。 p=。 fp=fopen(,r+t)。 /*以讀方式打開(kāi)記錄文件 */ if(fp!=NULL) { while(!feof(fp)) /*依次讀取記錄并執(zhí)行入隊(duì)操作 */ { fread(q,sizeof(struct record),1,fp)。 pnext=q。 /*這里 p 為尾指針, q 為指向新節(jié)點(diǎn)的指針 */ p=q。 } 12 pnext=NULL。 event_end=p。 } else { fp=fopen(,w)。 /*若文件不存在,創(chuàng)建指定文件名的新文件 */ =NULL。 event_end=。 } } 六、 【總體 設(shè)計(jì) 】 在前面五個(gè)步聚的基礎(chǔ)上開(kāi)始進(jìn)行程序主函數(shù)的設(shè)計(jì)。主函數(shù)首先調(diào)用初始化函數(shù) /*留言簿代碼如下 */ include include include struct record { struct date t_date。 /*定義留言日期 */ struct time t_time。 /*定義留言時(shí)間 */ char event[100]。 /*定義電話(huà)內(nèi)容 */ struct record *next。 /*指向下一個(gè)節(jié)點(diǎn)的指針 */ }event_head。 struct record *event_end。 int front。 FILE *fp。 void Data_Save(struct record *p) /*記錄文件的存儲(chǔ) */ { int j。 fp=fopen(,w)。 /*以可寫(xiě)方式打開(kāi)記錄文件 */ while(p!=NULL) /*若未到隊(duì)尾,循環(huán)將記錄存儲(chǔ)到文件中 */ { fwrite(p,sizeof(struct record),1,fp)。 p=pnext。 } fclose(fp)。 /*關(guān)閉指定的記錄文件 */ } struct event *Data_Load() /*從記錄文件中讀取記錄 */ { long k。 struct record *p,*q。 p=。 fp=fopen(,r+t)。 /*以讀方式打開(kāi)文件 */ if(fp!=NULL) { while(!feof(fp)) /*依次讀入記錄并執(zhí)行入隊(duì)操作 */ { fread(q,sizeof(struct record),1,fp)。 pnext=q。 /*這里 p 為尾指針, q 為指向新節(jié)點(diǎn)的指針 */ p=q。 13 } pnext=NULL。 event_end=p。 } else { fp=fopen(,w)。 /*若該文件不存在,創(chuàng)建指定文件名的新文件 */ =NULL。 event_end=。 } } void Data_Input(struct record *p) { struct data *d。 struct time *t。 front++。 getdate(d)。 /*取系統(tǒng)日期 */ p=dda_year。 p=dda_mon。 p=dda_day。 gettime(t)。 /*取系統(tǒng)時(shí)間 */ p=tti_hour。 p=tti_min。 p=tti_sec。 printf(\n\n\nDate:%4d %2d %2d,p,p,p)。 printf(\nTime: %2d: %2d: %2d,p,p,pt_)。 printf(\n\n\tPlease input record:)。 gets(pevent)。 /*輸入留言?xún)?nèi)容 */ pnext=NULL。 } void main() { int j,k。 char ch。 char *search_name。 struct record *p,*q。 clrscr()。 Date_Load()。 do{ printf(\n\n\n\tFunction choose:)。 printf(\n\)。 printf(\n\)。 printf(\n\)。 printf(\n\)。 printf(\n\n)。 printf(\tChoice:)。 ch=getche()。 switch(ch) { case 39。139。: /*閱讀留言?xún)?nèi)容 */ if(front==rear) { printf(\n\tNo records.)。 break。 14 } p=event_frontnext。 while(getch()!=0x1bamp。amp。p!=NULL) { Data_Show(p)。 p=pnext。 } break。 case 39。239。: /*添加留言記錄 */ p=malloc(sizeof(struct record))。 Data_Input(p)。 event_endnext=p。 event_end=p。 while(getch()!=0x1bamp。amp。(front+1)!=rear) { p=malloc(sizeof(struct record))。 Data_Input(p)。 event_endnext=p。 event_end=p。 } break。 case 39。339。: p=。 /*刪除留言記錄 */ =pnext。 free(p)。 exit(0)。 break。 case 39。439。: printf(\n\tDo you want to save e_note:(y/n))。 ch=getch()。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1