




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)九參考程序?qū)嶒?yàn)9 1/*實(shí)驗(yàn)9.1* (1)為某商店的商品設(shè)計(jì)合適的結(jié)構(gòu)體(PRODUCT)。每一種商品包含編號(hào)(number)、* 名稱(name)、價(jià)格(price)、折扣(discount項(xiàng)信息,根據(jù)表9-1,為這些信息選擇合適的數(shù)據(jù)類型。* (2)建立2個(gè)函數(shù),以實(shí)現(xiàn)對(duì)商品的操作。input函數(shù)實(shí)現(xiàn)商品的輸入;文display函數(shù)顯示商品信息。要求這2個(gè)函數(shù)都以商品的結(jié)構(gòu)體(PRODUCT)指針為參數(shù)。* (3)在主函數(shù)中為商品鍵盤(pán)定義一個(gè)結(jié)構(gòu)體變量(keyboard),利用input函數(shù)實(shí)現(xiàn)鍵盤(pán)信息的輸入;* 定義一個(gè)結(jié)構(gòu)體數(shù)組(elec_device3),利用input函數(shù)實(shí)現(xiàn)
2、冰箱、空調(diào)、電視信息的輸入;* 最后利用display函數(shù)顯示4種商品的信息。*表9-1*編號(hào)名稱價(jià)格折扣*1021冰箱1024.00*1022空調(diào)2058.50*1023電視3001.880.950.900.95*/*#include<stdio.h>typedefstruct_PRODUCTintiNumber;charstrName32;floatfPrice;floatfDiscount;PRODUCT,返回值:無(wú)*說(shuō)明:PPRODUCT;voidinput(PRODUCT*pProduct);voiddisplay(PPRODUCTpProduct);voidmain()
3、inti;PRODUCTkyeboard;PRODUCTelec_device3;input(&kyeboard);for(i=0;i<3;i+)input(&elec_devicei);display(&kyeboard);for(i=0;i<3;i+)display(&elec_devicei);/*該函數(shù)用來(lái)完成PRODUCT吉構(gòu)體數(shù)據(jù)的輸入*函數(shù)名稱:input()參數(shù):PRODUCT*pProduct-PRODUCT結(jié)構(gòu)體指針,用來(lái)存放輸入數(shù)據(jù)*說(shuō)明: 該函數(shù)用來(lái)完成PRODUCT吉構(gòu)體數(shù)據(jù)的顯示。* void display(PPRODU
4、CT pProduct)printf (,fn 商品的編號(hào):%dnn ,pProduct->iNumber);printf (n 商品的名稱:%snn 5pProduct->strName);*voidinput(PRODUCTfpProduct)(printf("n請(qǐng)輸入商品的編號(hào):nn);scant(H%d",&pProduct->iNumber);printf("請(qǐng)輸入商品的名稱:n”);scant("s”,pProduct->strName);printf("請(qǐng)輸入商品的價(jià)格:n");scant
5、(“f”,&pProduct->fPrice);printf(”請(qǐng)輸入商品的折扣:n");scant("f”,&pProduct->fDiscount);i/*函數(shù)名稱:display()結(jié)構(gòu)體數(shù)據(jù)5pProduct->fPrice);參數(shù):PRODUCTpProduct-PRODUCTprintf("商品的價(jià)格:.2fn”printf("商品的折扣:%.2fn”,pProduct->fDiscount);)田口4人/*實(shí)驗(yàn)9.21返回值:無(wú)*(1)利用鏈表結(jié)構(gòu)(PLAYJJST),為某媒體播放器建立一個(gè)播放列表(
6、playList),*該鏈表的每一個(gè)節(jié)點(diǎn)包括:歌曲編號(hào)(number)、歌曲名稱(name)、歌手姓名(artist)、歌曲長(zhǎng)度(time),見(jiàn)表9-2。* (2)建立4個(gè)函數(shù),以實(shí)現(xiàn)對(duì)播放列表操作。函數(shù)的原型如下:* 創(chuàng)建播放列表PLAYJJST*createList();* 在播放列表中添力口一首歌曲PLAY_LIST*insertltem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList);* 在播放列表中刪除編號(hào)為iltemNumber的歌曲PLAY_LIST*deleteltem(PLAY_LIST*pPIayList,intiltemNumber
7、);* 顯示整個(gè)播放列表中的所有信息voiddisplaylList(PLAY_LIST*pPIayList);* (3)在主函數(shù)中定義一個(gè)鏈表playListo* A)利用函數(shù)createList創(chuàng)建播放列表playList,并在其節(jié)點(diǎn)上依次存儲(chǔ)編號(hào)為1100、1102、1103的3首歌曲,* 并調(diào)用displayList函數(shù)顯示此時(shí)整個(gè)播放列表中的所有信息。* B)調(diào)用insertitem函數(shù)將編號(hào)為1101的歌曲添加到playList中,并顯示整個(gè)播放列表中的所有信息。* C)調(diào)用deleteltem函數(shù)將編號(hào)為1102的歌曲從playList中刪除,并顯示整個(gè)播放列表中的所有信息。表9
8、-2歌曲編號(hào)歌曲名稱歌手姓名歌曲長(zhǎng)度1100落葉歸根王力宏05:161101風(fēng)吹麥浪李健04:071102往事隨風(fēng)齊秦04:381103天空王菲03:42*#include<stdio.h>typedefstruct_PLAY_LISTintiNumber;charstrName64;charstrArtist32;struct_TIMEintiMinutes;intiSeconds;sTime;struct_PLAY_LIST*pNext;PLAY_LIST,*PPLAY_LIST;PLAY_LIST*createList();PLAY_LIST*insertltem(PLAY_
9、LIST*pPlayList,PLAY_LIST*pNewPlayList);PLAYLIST*deleteltem(PLAY_LIST*pPIayList,intvoidiltemNumber);displayList(PLAY_LIST*pPIayList);intinputltem(PLAY_LIST*pPIayList);voidmain()(PLAY_LIST*pPlayList=NULL;PLAY_LIST*pNewPlayList=NULL;pPlayList=createList();printf("播放列表:nH);displayList(pPlayList);pr
10、intf("n播放列表插入曲目:n");pNewPlayList=createList();pPlayList=insertltem(pPlayList,pNewPlayUst);printf("插入新的曲目之后的播放列表:n");displayList(pPlayList);printf("n播放列表刪除曲目:n“);pPlayList=deleteltem(pPlayList,1102);printf("刪除編號(hào)為1102的曲目之后的播放列表:n“);displayList(pPlayList);*函數(shù)名稱:createList(
11、)*參數(shù):無(wú)返回創(chuàng)建好的播放列表鏈表說(shuō)明:該函數(shù)用來(lái)創(chuàng)建播放列表鏈表*劉PLAY_LIST*createList()intiResult=O;PLAYLIST*pListHead,*pTemp,*pNewList;pTemp=pNewList=(PLAY_L1ST*)malloc(sizeof(PLAYLIST);pNewList->pNext=NULL;pListHead=NULL;printf("創(chuàng)建新播放列表n");iResult=inputltem(pNewList);if(iResult)pListHead=pNewList;while(iResult)pN
12、ewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST);pNewList->pNext=NULL;iResult=inputltem(pNewList);if(iResult)pTemp->pNext=pNewList;pTemp=pNewList;)returnpListHead;函數(shù)名稱:insertltem。參數(shù):PLAY_LIST*pPIayList-操作的播放列表鏈表PLAY_LIST*pNewPlayList-插入的新項(xiàng)目*返回值:PLAYLIST*-返回操作后的播放列表鏈表*說(shuō)明:該函數(shù)用來(lái)完成播放列表鏈表的新項(xiàng)目插入。*/PLAY_L
13、IST*insertltem(PLAY_LIST*pPIayList,PLAY_LIST*PLAY_LIST*pTemp;if(NULL=pPlayList|NULL=pNewPlayList)pNewPlayList)if(pPIayList)returnpPIayList;if(pNewPlayList)returnpNewPlayList;returnNULL;pTemp=pPlayList;if(pTemp->iNumber>pNewPlayList->iNumber)pNewPlayList->pNext=pTemp;returnpNewPlayList;wh
14、ile(1)if(pTemp->pNext=NULL)pTemp->pNext=pNewPlayList;breakif(pTemp->pNext->iNumber>pNewPlayList->iNumber)pNewPlayList->pNext=pTemp->pNext;pTemp->pNext=pNewPlayList;break;1pTemp=pTemp->pNext;)returnpPIayList;函數(shù)名稱:deleteltem()參數(shù):PLAY_LIST*pPIayList-操作的播放列表鏈表intiltemNumber
15、-刪除項(xiàng)目的編號(hào)*返回值:PLAYJJST*返回操作后的播放列表鏈表*說(shuō)明:該函數(shù)用來(lái)完成播放列表鏈表的項(xiàng)目刪除。*PLAYLIST*deleteltem(PLAY_LIST*pPIayList,intiltemNumber)PLAY_LIST*pTemp;一if(NULL=pPlayList)returnNULL;1pTemp=pPlayList;if(pTemp->iNumber=iltemNumber):returnpTemp->pNext;while(1)if(pTemp->pNext=NULL)break;if(pTemp->pNext->iNumber
16、=iltemNumber)pTemp->pNext=pTemp->pNext->pNextbreak;pTemp=pTemp->pNext;1returnpPIayList;函數(shù)名稱:displayList()參數(shù):PLAYJJST*pPIayList-顯示的播放列表鏈表voiddisplayList(PLAY_LIST§pPIayList)PLAY_LISTpTemp;printf(”n歌曲編號(hào)t歌曲名稱t歌手姓名t歌曲時(shí)間長(zhǎng)度(mm:ss)n");*返回值:無(wú)*說(shuō)明:該函數(shù)用來(lái)完成播放列表鏈表的內(nèi)容顯示§返回值:int -正常返回1 ,
17、不正常返回0說(shuō)明:該函數(shù)用來(lái)完成播放列表鏈表的內(nèi)容輸入1111if(NULL=pPlayList)return;pTemp=pPlayList;while(pTemp)printf(,'%-8dt%-8st%-8st%02d:%02cln,pTemp->iNumber,pTemp->strName,pTemp->strArtist,pTemp->sTime.iMinutes,pTemp->sTime.iSeconds);pTemp=pTemp->pNext;*文函數(shù)名稱:inputltem()參數(shù):PLAYJJST*pPIayList-操作的播放列表
18、鏈表intinputltem(PLAY_LIST*pPIayList)(printf("請(qǐng)輸入歌曲編號(hào),編號(hào)小于0結(jié)束輸入:n");scant("cT,&pPlayList>iNumber);if(pPlayList->iNumber<O)return0;printf("請(qǐng)輸入歌曲名稱:n“);scant(n%sn,pPlayList->strName);printf("請(qǐng)輸入歌手姓名:n“);scant("s",pPlayList->strArtist);printf("請(qǐng)輸
19、入歌曲時(shí)間長(zhǎng)度(mm:ss):nH);scant("%d:%dn,&pPlayList->sTime.iMinutes,&pPlayList->sTime.iSeconds);return1;)實(shí)驗(yàn)93#include<stdio.h>uniondata(intiData2;floatfData;charstrData4;unsignedintuData;myllnion;voidmain()intiTemp;charstrTemp;floatfTemp;unsignedintuTemp;/*第一部分7printf(n第一部分n”);mylln
20、ion.iData0=-1;myllnion.iData1=1;iTemp=myllnion.iData0;printf(HiTemp=%dnHJTemp);/*iTemp的值是多少*/uTemp=myllnion.uData;printf("uTemp=%unH,uTemp);/*uTemp的值是多少*/strTemp=myllnion.strData0;printf("strTemp=%d(ASCII:%C)nn,strTemp,strTemp);/*strTemp是多少*/的值fTemp=myUnion.fData;printf(,'fTemp=%fnnH,f
21、Temp);/*fTemp的值是多少*/*第二部分7printf(第二部分n”);myllnion.strData0=*A'myllnion.strData1=B;iTemp=myllnion.iData0;printf(niTemp=%dnnJTemp);/*iTemp的值是多少*/uTemp=myllnion.uData;printf(HuTemp=%unn,uTemp);/*uTemp的值是多少*/strTemp=myllnion.strData0;/*strTemp的值printf(nstrTemp=%d(ASCII:%C)nH,strTemp,strTemp);是多少*/fT
22、emp=myllnion.fData;printf(',fTemp=%fnnM,fTemp);/*fTemp的值是多少*/*第三部分7printf("第三部分nn);myllnion.fData=0.1f;iTemp=myllnion.iData0;printf(niTemp=%dnnJTemp);/*iTemp的值是多少*/uTemp=myllnion.uData;printf(HuTemp=%unH,uTemp);/*uTemp的值是多少*/strTemp=myllnion.strData0;printf(,strTemp=%d(ASCII:%C)n,',strT
23、emp,strTemp);是多少*/*strTemp的值fTemp=myllnion.fData;printf(TTemp=%fnn”,fTemp);/*fTemp的值是多少)實(shí)驗(yàn)94/* 實(shí)驗(yàn)9.4* (1)在一個(gè)顯示系統(tǒng)中,需要在任意位置顯示一個(gè)中文或者英文字符,設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu) 其中當(dāng)label=O時(shí),content的16位數(shù)據(jù)中低8位為英文字符,高 位的數(shù)據(jù)丟棄。為此請(qǐng)根據(jù)表9-4 當(dāng)label=1時(shí),content的16位數(shù)據(jù)為中文數(shù)據(jù)。 (2)建立2個(gè)函數(shù),函數(shù)的原型如下: 封裝數(shù)據(jù),即將中英文字符按照表9-4方式存儲(chǔ) PACK_DATApackData(unsigneduRow,
24、unsigneduCol,unsignedLabel,char*pContent); 將封裝的數(shù)據(jù)提取出來(lái),并安裝要求顯示在屏幕上 voidunpackData(PACK_DATAdata); (3)只考慮字符(content)為英文的情況。在主函數(shù)中,調(diào)用函數(shù)packData,將信息(在第2行第3列顯示英文字符X)封裝好; 然后調(diào)用函數(shù)unpackData將上一步封裝好的數(shù)據(jù)提取并顯示出來(lái)。 (4)考慮字符(content)可能是英文也可能是中文的情況。 在主函數(shù)中,2次調(diào)用函數(shù)packData,將信息1(在第2行第3列顯示英文字符X)和信息2(在第3行第4列顯示中文字符“中”)封裝好; 然
25、后2次調(diào)用函數(shù)unpackData將上一步封裝好的數(shù)據(jù)提取并顯示出來(lái)。*表9-4行號(hào)(row):3bit列號(hào)(col):3bit中英文標(biāo)識(shí)(|abel):2bit字符(content):16bit*/#include<stdio.h>/*聲明結(jié)構(gòu)體并定義結(jié)構(gòu)體類型*/typedefstruct_PACK_DATAunsigneduRow:3;unsigneduCol:3;unsigneduLabel:2;unsignedshortuContent:16;PACK_DATA,*PPACK_DATA;/*函數(shù)聲明7/*封裝數(shù)據(jù),只考慮英文情況/PACK_DATApackData(uns
26、igneduRow,unsigneduCol,unsigneduLabel,*pContent);char/*提取數(shù)據(jù),只考慮英文情況/voidunpackData(PACK_DATAdata);/*封裝數(shù)據(jù),包含中英文情況/PACK_DATApackDatal(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);/*提取數(shù)據(jù),包含中英文情況/voidunpackDatal(PACK_DATAdata);voidmain()PACK_DATAdata;data=packData1(1,2,1,“中");unpackDatal
27、(data);data=packData1(1,2,0,"A");unpackDatal(data);/*函數(shù)名稱:*packData()參數(shù):*unsigned uRow -*unsigned uCol -*unsigned uLabel -* char * pContent - * 返回值:* PACK_DATA -*說(shuō)明:*該函數(shù)用來(lái)封裝英文字符字符所在的行號(hào)字符所在的列號(hào)中英文標(biāo)志位字符數(shù)據(jù)圭寸裝好的PACK_DATA吉構(gòu)*/charPACKDATApackData(unsigneduRow,unsigneduCol,unsigneduLabel,*pContent)(PACK_DATAdata;data.uCol=uCol;data.uRow=uRow;data.uLabel=uLabel;data.uContent=pContent0;returndata;函數(shù)名稱:unpackData()參數(shù):*PACK_DATAdata-圭寸裝好的PACK_DATA吉構(gòu)體數(shù)據(jù)* 返回值:* 無(wú)* 說(shuō)明:* 該函數(shù)用來(lái)提取并顯示封裝的英文字符*/voidunpackData(PACK_DATAd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《機(jī)械加工》任務(wù)三:學(xué)習(xí)活動(dòng)2、傳動(dòng)軸的裝夾方法
- 菱形課件教學(xué)實(shí)踐
- 梅花的教學(xué)課件
- 展會(huì)服務(wù)方案(3篇)
- 復(fù)工懷舊裝修方案(3篇)
- 院子地面翻修方案(3篇)
- 購(gòu)房相關(guān)方案模板(3篇)
- 老街施工改造方案(3篇)
- 承租集體商鋪方案(3篇)
- 外墻防水補(bǔ)方案(3篇)
- 道路保潔臺(tái)賬管理制度
- 全國(guó)衛(wèi)生健康系統(tǒng)職業(yè)技能競(jìng)賽(預(yù)防接種項(xiàng)目)備考試題庫(kù)-上(單選題部分)
- 模切安全生產(chǎn)培訓(xùn)
- 2025-2030中國(guó)互聯(lián)網(wǎng)行業(yè)市場(chǎng)前景趨勢(shì)及競(jìng)爭(zhēng)格局與投資研究報(bào)告
- 扶貧資產(chǎn)入股協(xié)議書(shū)
- 安寧療護(hù)之疼痛管理
- DBJ51T-041-2015-四川省-建筑節(jié)能門(mén)窗應(yīng)用技術(shù)規(guī)程
- 中國(guó)中鐵股份有限公司內(nèi)部控制運(yùn)行管理辦法試行
- 酒后違紀(jì)違法警示教育
- 四川省 2025屆高考?xì)v史全真模擬試題(含解析)
- 華一光谷2024-2025學(xué)年度9月七年級(jí)英語(yǔ)試題(含答案)
評(píng)論
0/150
提交評(píng)論