


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗九參考程序?qū)嶒?-1/*實驗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)針為參(3)在主函數(shù)中為商品鍵盤定義一個結(jié)構(gòu)體變量(keyboard),利用input函數(shù)實現(xiàn)鍵盤信息的輸入;定義一個結(jié)構(gòu)體數(shù)組(elec_device3),利用input函數(shù)實現(xiàn)冰箱、空調(diào)、電視信息的輸入
2、;函數(shù)顯示4種商品的信息。最后利用display*編號名稱價格折扣*1010鍵盤89.500.85*1021冰箱1024.000.95*1022空調(diào)2058.500.90*1023電視3001.880.95表9-1*/#include<stdio.h>typedefstruct_PRODUCTintiNumber;charstrName32;floatfPrice;floatfDiscount;PRODUCT,*PPRODUCT;voidinput(PRODUCT*pProduct);voiddisplay(PPRODUCTpProduct);voidmain()inti;PROD
3、UCTkyeboard;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ù)名稱:input()*參數(shù):PRODUCT*pProduct-PRODUCT結(jié)構(gòu)體指針,用來存放輸入數(shù)據(jù)*返回值:無*說明:*該函數(shù)用來完成PRODUCT構(gòu)體數(shù)據(jù)的輸入。*/voidinput(PRODUCT*pProduct)printf("n請輸入商
4、品的編號:n");scanf("%d",&pProduct->iNumber);printf("請輸入商品的名稱:n");scanf("%s”,pProduct->strName);printf("請輸入商品的價格:n");scanf("%f",&pProduct->fPrice);printf("請輸入商品的折扣:n");scanf("%f",&pProduct->fDiscount);/*函數(shù)名稱:dis
5、play()*-PRODUCT結(jié)構(gòu)體數(shù)據(jù)*參數(shù):PRODUCTpProduct*返回值:無*說明:*該函數(shù)用來完成PRODUCT構(gòu)體數(shù)據(jù)的顯示。*/voiddisplay(PPRODUCTpProduct)("n商品的編號:%dn”,pProduct->iNumber);(”商品的名稱:%sn",pProduct->strName);(”商品的價格:.2fn”,pProduct->fPrice);(”商品的折扣:%.2fn",pProduct->fDiscount);printfprintfprintfprintf實驗9-2/*實驗9.2*
6、(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,PLAY_LIST*pNewPlayList);在播放列N中刪除編號為iItemNumber的歌曲PLAY_LIST*deleteItem(PLAY_LI
7、ST*pPlayList,intiItemNumber);顯示整個播放歹0表中的所有信息voiddisplayIList(PLAY_LIST*在主函數(shù)中定義一個鏈表playList。利用函數(shù)createList創(chuàng)建播放列表playList,并在其節(jié)點上依次存儲編號為1100、1103的3首歌曲,并調(diào)用displayList函數(shù)顯示此時整個播放歹U表中的所有信息。調(diào)用insertItem函數(shù)將編號為1101的歌曲添加到playList中,并顯示整個播放歹UpPlayList);(3)A)1102、*B)表中的所有信息。C)調(diào)用deleteItem函數(shù)將編號為1102的歌曲從playList中刪除
8、,并顯示整個播放歹U表中的所有信息。*表9-2*歌曲編號歌曲名稱歌手姓名歌曲長度*1100落葉歸根王力宏05:16*1101風(fēng)吹麥浪李健04:07*1102往事隨風(fēng)齊秦04:38*1103天空王菲03:42*/#include<stdio.h>typedefstruct_PLAY_LIST(一一intiNumber;charstrName64;charstrArtist32;struct_TIME(intiMinutes;intiSeconds;sTime;struct_PLAY_LIST*pNext;PLAY_LIST,*PPLAY_LIST;PLAY_LIST*createLi
9、st();PLAY_LIST*insertItem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList);PLAY_LIST*deleteItem(PLAY_LIST*pPlayList,intiItemNumber);voiddisplayList(PLAY_LIST*pPlayList);intinputItem(PLAY_LIST*pPlayList);voidmain()(PLAY_LIST*pPlayList=NULLPLAY_LIST*pNewPlayList=NULLpPlayList=createList();printf("播放歹U
10、表:n");displayList(pPlayList);printf("n播放歹0表插入曲目:n");pNewPlayList=createList();pPlayList=insertItem(pPlayList,pNewPlayList);printf("插入新的曲目之后的播放列表:n");displayList(pPlayList);printf("n播放歹0表刪除曲目:n");pPlayList=deleteItem(pPlayList,1102);printf("刪除編號為1102的曲目之后的播放列表:
11、n");displayList(pPlayList);/*函數(shù)名稱:createList()*參數(shù):無*返回值:PLAY_LIST*-返回創(chuàng)建好的播放列表鏈表*說明:*該函數(shù)用來創(chuàng)建播放列表鏈表。*/PLAY_LIST*createList()intiResult=0;PLAY_LIST*pListHead,*pTemp,*pNewList;pTemp=pNewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST);pNewList->pNext=NULLpListHead=NULLprintf("創(chuàng)建新播放歹U表n");iRes
12、ult=inputItem(pNewList);if(iResult)pListHead=pNewList;while(iResult)(pNewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST);pNewList->pNext=NULLiResult=inputItem(pNewList);if(iResult)(pTemp->DNext=pNewList;pTemp=pNewList;returnpListHead;/*函數(shù)名稱:insertItem()*參數(shù):PLAY_LIST*pPlayList-操作的播放列表鏈表PLAY_LIST*pNew
13、PlayList-插入的新項目*返回值:PLAY_LIST*-返回操作后的播放列表鏈表*說明:*該函數(shù)用來完成播放列表鏈表的新項目插入。*/PLAY_LIST*insertItem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList)(PLAY_LIST*pTemp;if(NUL=pPlayList|NUL=pNewPlayList)(if(pPlayList)returnpPlayList;if(pNewPlayList)returnpNewPlayList;returnNULLpTemp=pPlayList;if(pTemp->iNumber>
14、pNewPlayList->iNumber)pNewPlayList->pNext=pTemp;returnpNewPlayList;while(1)if(pTemp->pNext=NULLpTemp*Next=pNewPlayList;break;if(pTemp->pNext->iNumber>pNewPlayList->iNumber)pNewPlayList-pNext=pTemp->)Next;pTemp*Next=pNewPlayList;break;pTemp=pTemp-pNext;returnpPlayList;/*函數(shù)名稱:d
15、eleteItem()*參數(shù):PLAY_LIST*pPlayList-操作的播放列表鏈表intiltemNumber-刪除項目的編號*返回值:PLAY_LIST*-返回操作后的播放列表鏈表*說明:*該函數(shù)用來完成播放列表鏈表的項目刪除。*/PLAY_LIST*deleteItem(PLAY_LIST*pPlayList,intiltemNumber)(PLAY_LIST*pTemp;if(NUL=pPlayList)(returnNULLpTemp=pPlayList;if(pTemp->iNumber=iItemNumber)(returnpTemp->pNext;while(1
16、)(if(pTemp->pNext=NULL(break;if(pTemp->pNext->iNumber=iItemNumber)(pTemp->DNext=pTemp->)Next->pNext;break;pTemp=pTemp-pNext;returnpPlayList;/*函數(shù)名稱:displayList()*參數(shù):PLAY_LIST*pPlayList-顯示的播放列表鏈表*返回值:無*說明:*該函數(shù)用來完成播放列表鏈表的內(nèi)容顯示。*/voiddisplayList(PLAY_LIST*pPlayList)(PLAY_LIST*pTemp;prin
17、tf("n歌曲編號t歌曲名稱t歌手姓名t歌曲時間長度(mm:ss)n");if(NUL=pPlayList)(return;pTemp=pPlayList;while(pTemp)(printf("%-8dt%-8st%-8st%02d:%02dn",pTemp->iNumber,pTemp->strName,pTemp->strArtist,pTemp->sTime.iMinutes,pTemp->sTime.iSeconds);pTemp=pTemp-pNext;/*函數(shù)名稱:inputItem()*參數(shù):PLAY_LI
18、ST*pPlayList-操作的播放列表鏈表*返回值:int-正常返回1,不正常返回0*說明:*該函數(shù)用來完成播放列表鏈表的內(nèi)容輸入。*/intinputItem(PLAY_LIST*pPlayList)printf("請輸入歌曲編號,編號小丁0結(jié)束輸入:n");scanf("%d”,&pPlayList->iNumber);if(pPlayList->iNumber<0)return0;printf("請輸入歌曲名稱:n");scanf("%s”,pPlayList->strName);printf(
19、"請輸入歌手姓名:n");scanf("%s",pPlayList->strArtist);printf("請輸入歌曲時間長度(mm:ss):n");scanf("%d:%d”,&pPlayList->sTime.iMinutes,&pPlayList->sTime.iSeconds);return1;實驗9-3#include<stdio.h>uniondataintiData2;floatfData;charstrData4;unsignedintuData;myUnion;
20、voidmain()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("
21、;strTemp=%d(ASCII:%C)n",strTemp,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=myUnio
22、n.uData;printf("uTemp=%un"uTemp);/*uTemp的值是多少*/strTemp=myUnion.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;print
23、f("iTemp=%dn",iTemp);/*iTemp的值是多少*/uTemp=myUnion.uData;printf("uTemp=%un"uTemp);/*uTemp的值是多少*/strTemp=myUnion.strData0;printf("strTemp=%d(ASCII:%C)n",strTemp,strTemp);/*strTemp的值是多少*/fTemp=myUnion.fData;printf("fTemp=%fnn",fTemp);/*fTemp的值是多少*/實驗9-4/*實驗9.4*(1)
24、在一個顯示系統(tǒng)中,需要在任意位置顯示一個中文或者英文字符,為此請根據(jù)表9-4設(shè)計一種數(shù)據(jù)結(jié)構(gòu)。其中當(dāng)label=0時,content的16位數(shù)據(jù)中低8位為英文字符,高8位的數(shù)據(jù)丟棄。當(dāng)label=1時,content的16位數(shù)據(jù)為中文數(shù)據(jù)(2)建立2個函數(shù),函數(shù)的原型如下:封裝數(shù)據(jù),即將中英文字符按照表9-4方式存儲* PACK_DATApackData(unsigneduRow,unsigneduCol,unsigneduLabel,charpContent);將封裝的數(shù)據(jù)提取出來,并安裝要求顯示在屏幕上voidunpackData(PACK_DATAdata);(3)只考慮字符(conte
25、nt)為英文的情況。在主函數(shù)中,調(diào)用函數(shù)packData,將信息(在第2行第3列顯示英文字符X)封裝好;然后調(diào)用函數(shù)unpackData將上一步封裝好的數(shù)據(jù)提取并顯示出來。(4)考慮字符(content)可能是英文也可能是中文的情況。* 在主函數(shù)中,2次調(diào)用函數(shù)packData,將信息1(在第2行第3歹0顯示英文字符X)和信息2(在第3行第4列顯示中文字符“中”)封裝好;然后2次調(diào)用函數(shù)unpackData將上一步封裝好的數(shù)據(jù)提取并顯示出來。表9-4中英文標識(label):2bit字符行號(row):3bit歹0號(col):3bit(content):16bit*/#include<
26、stdio.h>/*聲明結(jié)構(gòu)體并定義結(jié)構(gòu)體類型*/typedefstruct_PACK_DATA(unsigneduRow:3;unsigneduCol:3;unsigneduLabel:2;unsignedshortuContent:16;PACK_DATA,*PPACK_DATA;/*函數(shù)聲明*/*封裝數(shù)據(jù),只考慮英文情況*/PACK_DATpackData(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);/*提心據(jù),只考慮英文情況*/voidunpackData(PACK_DATAdata);/*封裝數(shù)據(jù),包含中英文情
27、況*/PACK_DATpackData1(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);/*提取數(shù)據(jù),包含中英文情況*/voidunpackData1(PACK_DATAdata);voidmain()(PACK_DATAata;data=packData1(1,2,1,"中");unpackData1(data);data=packData1(1,2,0,"A");unpackData1(data);/*函數(shù)名稱:*packData()*參數(shù):*unsigneduRow-字符所在的行號*
28、unsigneduCol-字符所在的歹0號*unsigneduLabel-中英文標志位*char*pContent-字符數(shù)據(jù)*返回值:*PACK_DATA-封裝好的PACK_DATA構(gòu)體*說明:*該函數(shù)用來封裝英文字符。*/PACK_DATApackData(nsigneduRow,unsigneduCol,unsigneduLabel,char*pContent)(PACK_DATAata;data.uCol=uCol;data.uRow=uRow;data.uLabel=uLabel;data.uContent=pContent0;returndata;/*函數(shù)名稱:*unpackData()*參數(shù):*PACK_DATAdata-封裝好的PACK_DATA構(gòu)體數(shù)據(jù)*返回值:*無*說明:*該函數(shù)用來提取并顯示封裝的英文字符。*/voidunpackData(PACK_DATAdata)(inti;for(i=0;i<da
溫馨提示
- 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年 云南省危險化學(xué)品經(jīng)營單位安全管理人員考試練習(xí)題附答案
- 美發(fā)師五級試題及答案
- 新課標(水平三)體育與健康《籃球》大單元教學(xué)計劃及配套教案(18課時)
- 《生物安全培訓(xùn)》課件-2024鮮版
- 工程材料與應(yīng)用完整版教學(xué)課件全書電子講義(最新)
- 消防工程擬投入主要施工設(shè)備機具表
- (完整版)形式發(fā)票模版(國際件通用)
- 橋梁工程支座智能化發(fā)展
- BIM技術(shù)在施工項目管理中的應(yīng)用
- 25公斤級平焊法蘭及螺栓規(guī)格尺寸
- 中文版EN-12546
評論
0/150
提交評論