


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗九參考程序實驗9-1/*實驗9.1*(1)為某商店的商品設計合適的結構體(PRODUCT)每一種商品包含編號(number)、名稱(name)、價格(price)、折扣(discount)4項信息,根據表9-1,為這些信息選擇合適的數據類型(2)建立2個函數,以實現對商品的操作。input函數實現商品的輸入;display函數顯示商品信息。要求這2個函數都以商品的結構體(PRODUCT)針為參(3)在主函數中為商品鍵盤定義一個結構體變量(keyboard),利用input函數實現鍵盤信息的輸入;定義一個結構體數組(elec_device3),利用input函數實現冰箱、空調、電視信息的輸入
2、;函數顯示4種商品的信息。最后利用display*編號名稱價格折扣*1010鍵盤89.500.85*1021冰箱1024.000.95*1022空調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);/*函數名稱:input()*參數:PRODUCT*pProduct-PRODUCT結構體指針,用來存放輸入數據*返回值:無*說明:*該函數用來完成PRODUCT構體數據的輸入。*/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);/*函數名稱:dis
5、play()*-PRODUCT結構體數據*參數:PRODUCTpProduct*返回值:無*說明:*該函數用來完成PRODUCT構體數據的顯示。*/voiddisplay(PPRODUCTpProduct)("n商品的編號:%dn”,pProduct->iNumber);(”商品的名稱:%sn",pProduct->strName);(”商品的價格:.2fn”,pProduct->fPrice);(”商品的折扣:%.2fn",pProduct->fDiscount);printfprintfprintfprintf實驗9-2/*實驗9.2*
6、(1)利用鏈表結構(PLAY_LIST),為某媒體播放器建立一個播放列表(playList),該鏈表的每一個節(jié)點包括:歌曲編號(number)、歌曲名稱(name)、歌手姓名(artist)歌曲長度(time),見表9-2。(2)建立4個函數,以實現對播放列表操作。函數的原型如下:創(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*在主函數中定義一個鏈表playList。利用函數createList創(chuàng)建播放列表playList,并在其節(jié)點上依次存儲編號為1100、1103的3首歌曲,并調用displayList函數顯示此時整個播放歹U表中的所有信息。調用insertItem函數將編號為1101的歌曲添加到playList中,并顯示整個播放歹UpPlayList);(3)A)1102、*B)表中的所有信息。C)調用deleteItem函數將編號為1102的歌曲從playList中刪除
8、,并顯示整個播放歹U表中的所有信息。*表9-2*歌曲編號歌曲名稱歌手姓名歌曲長度*1100落葉歸根王力宏05:16*1101風吹麥浪李健04:07*1102往事隨風齊秦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);/*函數名稱:createList()*參數:無*返回值:PLAY_LIST*-返回創(chuàng)建好的播放列表鏈表*說明:*該函數用來創(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;/*函數名稱:insertItem()*參數:PLAY_LIST*pPlayList-操作的播放列表鏈表PLAY_LIST*pNew
13、PlayList-插入的新項目*返回值:PLAY_LIST*-返回操作后的播放列表鏈表*說明:*該函數用來完成播放列表鏈表的新項目插入。*/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;/*函數名稱:d
15、eleteItem()*參數:PLAY_LIST*pPlayList-操作的播放列表鏈表intiltemNumber-刪除項目的編號*返回值:PLAY_LIST*-返回操作后的播放列表鏈表*說明:*該函數用來完成播放列表鏈表的項目刪除。*/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;/*函數名稱:displayList()*參數:PLAY_LIST*pPlayList-顯示的播放列表鏈表*返回值:無*說明:*該函數用來完成播放列表鏈表的內容顯示。*/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;/*函數名稱:inputItem()*參數:PLAY_LI
18、ST*pPlayList-操作的播放列表鏈表*返回值:int-正常返回1,不正常返回0*說明:*該函數用來完成播放列表鏈表的內容輸入。*/intinputItem(PLAY_LIST*pPlayList)printf("請輸入歌曲編號,編號小丁0結束輸入: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)中,需要在任意位置顯示一個中文或者英文字符,為此請根據表9-4設計一種數據結構。其中當label=0時,content的16位數據中低8位為英文字符,高8位的數據丟棄。當label=1時,content的16位數據為中文數據(2)建立2個函數,函數的原型如下:封裝數據,即將中英文字符按照表9-4方式存儲* PACK_DATApackData(unsigneduRow,unsigneduCol,unsigneduLabel,charpContent);將封裝的數據提取出來,并安裝要求顯示在屏幕上voidunpackData(PACK_DATAdata);(3)只考慮字符(conte
25、nt)為英文的情況。在主函數中,調用函數packData,將信息(在第2行第3列顯示英文字符X)封裝好;然后調用函數unpackData將上一步封裝好的數據提取并顯示出來。(4)考慮字符(content)可能是英文也可能是中文的情況。* 在主函數中,2次調用函數packData,將信息1(在第2行第3歹0顯示英文字符X)和信息2(在第3行第4列顯示中文字符“中”)封裝好;然后2次調用函數unpackData將上一步封裝好的數據提取并顯示出來。表9-4中英文標識(label):2bit字符行號(row):3bit歹0號(col):3bit(content):16bit*/#include<
26、stdio.h>/*聲明結構體并定義結構體類型*/typedefstruct_PACK_DATA(unsigneduRow:3;unsigneduCol:3;unsigneduLabel:2;unsignedshortuContent:16;PACK_DATA,*PPACK_DATA;/*函數聲明*/*封裝數據,只考慮英文情況*/PACK_DATpackData(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);/*提心據,只考慮英文情況*/voidunpackData(PACK_DATAdata);/*封裝數據,包含中英文情
27、況*/PACK_DATpackData1(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);/*提取數據,包含中英文情況*/voidunpackData1(PACK_DATAdata);voidmain()(PACK_DATAata;data=packData1(1,2,1,"中");unpackData1(data);data=packData1(1,2,0,"A");unpackData1(data);/*函數名稱:*packData()*參數:*unsigneduRow-字符所在的行號*
28、unsigneduCol-字符所在的歹0號*unsigneduLabel-中英文標志位*char*pContent-字符數據*返回值:*PACK_DATA-封裝好的PACK_DATA構體*說明:*該函數用來封裝英文字符。*/PACK_DATApackData(nsigneduRow,unsigneduCol,unsigneduLabel,char*pContent)(PACK_DATAata;data.uCol=uCol;data.uRow=uRow;data.uLabel=uLabel;data.uContent=pContent0;returndata;/*函數名稱:*unpackData()*參數:*PACK_DATAdata-封裝好的PACK_DATA構體數據*返回值:*無*說明:*該函數用來提取并顯示封裝的英文字符。*/voidunpackData(PACK_DATAdata)(inti;for(i=0;i<da
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于多源數據的高效特征表達與匹配集成方法-洞察及研究
- 長春醫(yī)學高等??茖W?!稄V西民族文化概況》2023-2024學年第一學期期末試卷
- 福建電力職業(yè)技術學院《重彩畫》2023-2024學年第一學期期末試卷
- 駐馬店職業(yè)技術學院《世界紀錄片史話》2023-2024學年第一學期期末試卷
- 南京農業(yè)大學《裝配式建筑施工技術實訓》2023-2024學年第一學期期末試卷
- 上海視覺藝術學院《綠化技術與設計》2023-2024學年第一學期期末試卷
- 廣州珠江職業(yè)技術學院《商業(yè)電影賞析》2023-2024學年第一學期期末試卷
- 智能監(jiān)控系統(tǒng)研發(fā)-洞察及研究
- 2025年制造業(yè)綠色供應鏈優(yōu)化策略與案例分析報告
- 城市生態(tài)心理效應-洞察及研究
- 經濟師考試知識產權高級經濟實務新考綱題庫詳解(2025年)
- 新課標(水平三)體育與健康《籃球》大單元教學計劃及配套教案(18課時)
- 醫(yī)院培訓課件:《失血性休克的急救護理》
- 2024年北京市中考生物真題卷及答案解析
- 華東理工大學《藥物設計與新藥發(fā)現-小分子藥物》2023-2024學年第一學期期末試卷
- 新質生產力促進遼寧經濟高質量發(fā)展研究
- 《LNG基本知識培訓》課件
- 《化工安全技術》教學設計(教學教案)
- 《OPPLE歐普照明》課件
- 國家開放大學電大??啤督ㄖこ添椖抗芾怼菲谀┰囶}及答案
- 醫(yī)療設備器材供貨安裝、調試及售后服務方案
評論
0/150
提交評論