版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、共享知識分享快樂實驗九參考程序?qū)嶒?91/* 實驗 9.1* (1 )為某商店的商品設(shè)計合適的結(jié)構(gòu)體(PRODUCT) 。每一種商品包含編號 (number)、*名稱 (name) 、價格 (price)、折扣 (discount)4項信息,根據(jù)表 9-1 ,為這些信息選擇合適的數(shù)據(jù)類型。* (2 )建立 2 個函數(shù),以實現(xiàn)對商品的操作。 input 函數(shù)實現(xiàn)商品的輸入;* display 函數(shù)顯示商品信息。要求這 2 個函數(shù)都以商品的結(jié)構(gòu)體 (PRODUCT) 指針為參數(shù)。* (3 )在主函數(shù)中為商品鍵盤定義一個結(jié)構(gòu)體變量(keyboard),利用 input函數(shù)實現(xiàn)鍵盤信息的輸入;*定義一
2、個結(jié)構(gòu)體數(shù)組 (elec_device3),利用 input函數(shù)實現(xiàn)冰箱、 空調(diào)、電視信息的輸入;* 最后利用 display 函數(shù)顯示 4種商品的信息。*表 9-1* 編號名稱價格折扣*1010鍵盤89.50 0.85*1021冰箱1024.000.95*1022空調(diào)2058.500.90*1023電視3001.880.95*/#includetypedefstruct_PRODUCT頁眉內(nèi)容共享知識分享快樂intiNumber;charstrName32;floatfPrice;floatfDiscount;PRODUCT,*PPRODUCT;voidinput(PRODUCT *pPro
3、duct);voiddisplay(PPRODUCT pProduct);voidmain()inti ;PRODUCT kyeboard;PRODUCT elec_device3;input(&kyeboard);for ( i =0; i 3; i +)input(&elec_devicei );display(&kyeboard);for ( i =0; i iNumber);printf( 請輸入商品的名稱 :n);scanf( %s ,pProduct-strName);printf( 請輸入商品的價格 :n);scanf ( %f ,&pProduct-fPrice);printf
4、( 請輸入商品的折扣 :n);scanf( %f ,&pProduct-fDiscount);/* * 函數(shù)名稱: display()* 參數(shù): PRODUCT pProduct-PRODUCT結(jié)構(gòu)體數(shù)據(jù)* 返回值:無* 說明:* 該函數(shù)用來完成 PRODUCT結(jié)構(gòu)體數(shù)據(jù)的顯示。*/voiddisplay(PPRODUCT pProduct)printf( n 商品的編號 :%dn,pProduct-iNumber);printf( 商品的名稱 :%sn,pProduct-strName);頁眉內(nèi)容共享知識分享快樂printf( 商品的價格 :%.2fn,pProduct-fPrice);pr
5、intf( 商品的折扣 :%.2fn,pProduct-fDiscount);實驗 92/* 實驗 9.2* (1 )利用鏈表結(jié)構(gòu) (PLAY_LIST),為某媒體播放器建立一個播放列表(playList),* 該鏈表的每一個節(jié)點包括:歌曲編號 (number) 、歌曲名稱 (name) 、歌手姓名(artist)、歌曲長度 (time),見表 9-2 。* (2 )建立 4 個函數(shù),以實現(xiàn)對播放列表操作。函數(shù)的原型如下:*創(chuàng)建播放列表PLAY_LIST* createList();*在播放列表中添加一首歌曲PLAY_LIST*insertItem(PLAY_LIST* pPlayList,P
6、LAY_LIST* pNewPlayList);* 在播放列表中刪除編號為 iItemNumber 的歌曲 PLAY_LIST* deleteItem(PLAY_LIST* pPlayList, int iItemNumber);* 顯示整個播放列表中的所有信息 void displayIList(PLAY_LIST* pPlayList);* (3 )在主函數(shù)中定義一個鏈表playList。*A)利用函數(shù) createList創(chuàng)建播放列表 playList,并在其節(jié)點上依次存儲編號為1100 、 1102 、1103 的 3首歌曲,*并調(diào)用 displayList函數(shù)顯示此時整個播放列表中的
7、所有信息。*B)調(diào)用 insertItem函數(shù)將編號為 1101 的歌曲添加到 playList中,并顯示整個播放列表中的所有信息。*C)調(diào)用 deleteItem函數(shù)將編號為 1102 的歌曲從 playList中刪除,并顯示整個播放列表中的所有信息。*頁眉內(nèi)容共享知識分享快樂*表9-2* 歌曲編號歌曲名稱歌手姓名歌曲長度*1100落葉歸根王力宏05:16*1101風(fēng)吹麥浪李健04:07*1102往事隨風(fēng)齊秦04:38*1103天空王菲03:42*/#includetypedefstruct_PLAY_LISTintiNumber;charstrName64;charstrArtist32;
8、struct_TIMEintiMinutes;intiSeconds; sTime;struct_PLAY_LIST *pNext ;PLAY_LIST,*PPLAY_LIST;PLAY_LIST* createList();PLAY_LIST* insertItem(PLAY_LIST* pPlayList,PLAY_LIST* pNewPlayList);PLAY_LIST* deleteItem(PLAY_LIST* pPlayList, int iItemNumber); void displayList(PLAY_LIST* pPlayList);intinputItem(PLAY_
9、LIST* pPlayList);voidmain()PLAY_LIST *pPlayList=NULL;PLAY_LIST *pNewPlayList=NULL;頁眉內(nèi)容共享知識分享快樂pPlayList=createList();printf( 播放列表 :n);displayList(pPlayList);printf( n 播放列表插入曲目 :n);pNewPlayList=createList();pPlayList=insertItem(pPlayList,pNewPlayList);printf( 插入新的曲目之后的播放列表:n);displayList(pPlayList);p
10、rintf( n 播放列表刪除曲目 :n);pPlayList=deleteItem(pPlayList,1102);printf( 刪除編號為 1102 的曲目之后的播放列表 :n);displayList(pPlayList);/* * 函數(shù)名稱: createList()* 參數(shù):無* 返回值: PLAY_LIST*-返回創(chuàng)建好的播放列表鏈表* 說明:* 該函數(shù)用來創(chuàng)建播放列表鏈表。*/頁眉內(nèi)容共享知識分享快樂PLAY_LIST* createList()intiResult=0;PLAY_LIST *pListHead,*pTemp,*pNewList;pTemp=pNewList=(
11、PLAY_LIST*)malloc( sizeof(PLAY_LIST);pNewList-pNext =NULL;pListHead=NULL;printf( 創(chuàng)建新播放列表 n );iResult=inputItem(pNewList);if (iResult)pListHead=pNewList;while(iResult)pNewList=(PLAY_LIST*)malloc( sizeof(PLAY_LIST);pNewList-pNext =NULL;iResult=inputItem(pNewList);if(iResult)pTemp- pNext =pNewList;pTem
12、p=pNewList;returnpListHead;/* * 函數(shù)名稱: insertItem()*頁眉內(nèi)容共享知識分享快樂* 參數(shù): PLAY_LIST* pPlayList-操作的播放列表鏈表*PLAY_LIST* pNewPlayList -插入的新項目* 返回值: PLAY_LIST*-返回操作后的播放列表鏈表* 說明:* 該函數(shù)用來完成播放列表鏈表的新項目插入。*/PLAY_LIST*insertItem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList)PLAY_LIST* pTemp;if ( NULL=pPlayList|NULL=pNew
13、PlayList)if(pPlayList)returnpPlayList;if(pNewPlayList)returnpNewPlayList;returnNULL;pTemp=pPlayList;if (pTemp-iNumberpNewPlayList-iNumber)pNewPlayList-pNext =pTemp;returnpNewPlayList;while(1)if(pTemp-pNext =NULL)pTemp- pNext =pNewPlayList;頁眉內(nèi)容共享知識分享快樂break ;if(pTemp-pNext -iNumberpNewPlayList-iNumbe
14、r)pNewPlayList-pNext =pTemp- pNext ;pTemp- pNext =pNewPlayList;break ;pTemp=pTemp- pNext ;returnpPlayList;/* * 函數(shù)名稱: deleteItem()* 參數(shù): PLAY_LIST* pPlayList-操作的播放列表鏈表*int iItemNumber-刪除項目的編號* 返回值: PLAY_LIST*-返回操作后的播放列表鏈表* 說明:* 該函數(shù)用來完成播放列表鏈表的項目刪除。*/PLAY_LIST * deleteItem(PLAY_LIST* pPlayList,intiItemN
15、umber)PLAY_LIST* pTemp;if ( NULL=pPlayList)returnNULL;pTemp=pPlayList;頁眉內(nèi)容共享知識分享快樂if (pTemp-iNumber=iItemNumber)returnpTemp-pNext ;while(1)if(pTemp-pNext =NULL)break ;if(pTemp-pNext -iNumber=iItemNumber)pTemp- pNext =pTemp- pNext - pNext ;break ;pTemp=pTemp- pNext ;returnpPlayList;/* * 函數(shù)名稱: display
16、List()* 參數(shù): PLAY_LIST* pPlayList-顯示的播放列表鏈表* 返回值:無* 說明:* 該函數(shù)用來完成播放列表鏈表的內(nèi)容顯示。*頁眉內(nèi)容共享知識分享快樂*/voiddisplayList(PLAY_LIST* pPlayList)PLAY_LIST * pTemp;printf( n 歌曲編號 t 歌曲名稱 t歌手姓名 t歌曲時間長度 (mm:ss)n);if ( NULL=pPlayList)return;pTemp=pPlayList;while(pTemp)printf ( %-8dt%-8st%-8st%02d:%02dn , pTemp-iNumber,pTe
17、mp-strName,pTemp-strArtist,pTemp-sTime.iMinutes,pTemp-sTime.iSeconds);pTemp=pTemp- pNext ;/* * 函數(shù)名稱: inputItem()* 參數(shù): PLAY_LIST* pPlayList-操作的播放列表鏈表* 返回值: int-正常返回 1 ,不正常返回 0* 說明:* 該函數(shù)用來完成播放列表鏈表的內(nèi)容輸入。頁眉內(nèi)容共享知識分享快樂*/intinputItem(PLAY_LIST* pPlayList)printf ( 請輸入歌曲編號,編號小于 0結(jié)束輸入: n ); scanf ( %d ,&pPlay
18、List-iNumber);if (pPlayList-iNumberstrName);printf( 請輸入歌手姓名: n );scanf( %s ,pPlayList-strArtist);printf( 請輸入歌曲時間長度 (mm:ss):n);scanf ( %d:%d ,&pPlayList-sTime.iMinutes,&pPlayList-sTime.iSe conds);return1;實驗 93#includeuniondataintiData2;floatfData;charstrData4;unsignedintuData;myUnion;voidmain()頁眉內(nèi)容共享
19、知識分享快樂intiTemp;charstrTemp;floatfTemp;unsignedintuTemp;/* 第一部分 */printf( 第一部分 n );myUnion.iData0=-1;myUnion.iData1=1;iTemp=myUnion.iData0;printf( iTemp=%dn,iTemp);/*iTemp的值是多少 */uTemp=myUnion.uData;printf( uTemp=%un,uTemp);/*uTemp 的值是多少 */strTemp=myUnion.strData0;printf( strTemp=%d(ASCII:%C)n,strTem
20、p,strTemp);/*strTemp的值是多少 */fTemp=myUnion.fData;printf( fTemp=%fnn,fTemp);/*fTemp的值是多少 */* 第二部分 */printf( 第二部分 n);myUnion.strData0=A;myUnion.strData1=B;iTemp=myUnion.iData0;printf( iTemp=%dn,iTemp); /*iTemp 的值是多少 */uTemp=myUnion.uData;頁眉內(nèi)容共享知識分享快樂printf( uTemp=%un,uTemp);/*uTemp 的值是多少 */strTemp=myUn
21、ion.strData0;printf( strTemp=%d(ASCII:%C)n,strTemp,strTemp);/*strTemp的值是多少 */fTemp=myUnion.fData;printf( fTemp=%fnn,fTemp);/*fTemp的值是多少 */* 第三部分 */printf( 第三部分 n );myUnion.fData=0.1f;iTemp=myUnion.iData0;printf( iTemp=%dn,iTemp);/*iTemp的值是多少 */uTemp=myUnion.uData;printf( uTemp=%un,uTemp);/*uTemp 的值是
22、多少 */strTemp=myUnion.strData0;printf( strTemp=%d(ASCII:%C)n,strTemp,strTemp);/*strTemp的值是多少 */fTemp=myUnion.fData;printf( fTemp=%fnn,fTemp);/*fTemp的值是多少 */實驗 94/* 實驗 9.4* (1 )在一個顯示系統(tǒng)中, 需要在任意位置顯示一個中文或者英文字符, 為此請根據(jù)表 9-4頁眉內(nèi)容共享知識分享快樂設(shè)計一種數(shù)據(jù)結(jié)構(gòu)。*其中當(dāng) label=0時,content的16 位數(shù)據(jù)中低 8 位為英文字符,高 8 位的數(shù)據(jù)丟棄。*當(dāng) label=1時,
23、 content的 16 位數(shù)據(jù)為中文數(shù)據(jù)。* (2 )建立 2 個函數(shù),函數(shù)的原型如下:* 封裝數(shù)據(jù),即將中英文字符按照表 9-4 方式存儲* PACK_DATA packData(unsigned uRow,unsigned uCol,unsigned uLabel,char * pContent);* 將封裝的數(shù)據(jù)提取出來,并安裝要求顯示在屏幕上* void unpackData(PACK_DATA data);* (3 )只考慮字符 (content)為英文的情況。在主函數(shù)中,調(diào)用函數(shù) packData ,將信息(在第 2 行第 3列顯示英文字符 X)封裝好;* 然后調(diào)用函數(shù) unpa
24、ckData 將上一步封裝好的數(shù)據(jù)提取并顯示出來。* (4 )考慮字符 (content)可能是英文也可能是中文的情況。* 在主函數(shù)中, 2 次調(diào)用函數(shù) packData ,將信息 1 (在第 2 行第 3 列顯示英文字符 X)和信息 2 (在第 3 行第 4 列顯示中文字符 “中”)封裝好;* 然后 2 次調(diào)用函數(shù) unpackData 將上一步封裝好的數(shù)據(jù)提取并顯示出來。*表 9-4* 行號 (row):3bit列號 (col) :3bit中英文標識 (label):2bit字符(content):16bit*/#include/* 聲明結(jié)構(gòu)體并定義結(jié)構(gòu)體類型*/typedefstruct
25、_PACK_DATA頁眉內(nèi)容共享知識分享快樂unsigneduRow:3;unsigneduCol:3;unsigneduLabel:2;unsignedshortuContent:16;PACK_DATA,*PPACK_DATA;/* 函數(shù)聲明 */* 封裝數(shù)據(jù),只考慮英文情況 */PACK_DATA packData(unsigneduRow, unsigneduCol, unsigned uLabel, char* pContent);/* 提取數(shù)據(jù),只考慮英文情況 */voidunpackData(PACK_DATAdata );/* 封裝數(shù)據(jù),包含中英文情況 */PACK_DATA
26、packData1(unsigned uRow, unsigneduCol, unsigneduLabel, char * pContent);/* 提取數(shù)據(jù),包含中英文情況 */voidunpackData1(PACK_DATAdata );voidmain()PACK_DATA data ;data =packData1(1,2,1, 中 );unpackData1(data );data =packData1(1,2,0,A );unpackData1(data );/* * 函數(shù)名稱:*packData()頁眉內(nèi)容共享知識分享快樂* 參數(shù):*unsigned uRow-字符所在的行號*
27、unsigned uCol-字符所在的列號*unsigned uLabel-中英文標志位*char * pContent-字符數(shù)據(jù)* 返回值:* PACK_DATA-封裝好的 PACK_DATA結(jié)構(gòu)體* 說明:* 該函數(shù)用來封裝英文字符。*/PACK_DATA packData(unsigneduRow, unsigneduCol,unsigneduLabel,char* pContent)PACK_DATA data ;data .uCol=uCol;data .uRow=uRow;data .uLabel=uLabel;data .uContent=pContent0;returndata ;/* * 函數(shù)名稱:頁眉內(nèi)容共享知識分享快樂*unpackData()* 參數(shù):*PACK_DATA data-封裝好的 PACK_DATA結(jié)構(gòu)體數(shù)據(jù)* 返
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國夜光燙花紙行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國車庫門塑料件數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國羊尾平筆數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度汽車銷售代理承包協(xié)議2篇
- 二零二五版事業(yè)單位臨聘員工勞務(wù)合同修訂范本9篇
- 二零二五年度離婚協(xié)議書:夫妻共同債務(wù)處理與子女撫養(yǎng)協(xié)議2篇
- 二零二五年度店面租賃合同簽訂流程詳解2篇
- 二零二五版衛(wèi)浴建材行業(yè)標準化服務(wù)合同3篇
- 二零二五年度個人對公司文化旅游借款合同(文化旅游產(chǎn)業(yè)升級版)3篇
- 二零二五年大型展會展品搬運與布置合同3篇
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 電力溝施工組織設(shè)計-電纜溝
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計)(人教版2024)八年級物理下冊
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 鍋爐本體安裝單位工程驗收表格
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計-畢業(yè)論文
- 高危妊娠的評估和護理
- 妊娠合并強直性脊柱炎的護理查房
- 2024年山東鐵投集團招聘筆試參考題庫含答案解析
- 兒童10歲生日-百日宴-滿月酒生日會成長相冊展示(共二篇)
評論
0/150
提交評論