C语言结构体和共用体实验报告Word文件下载.docx
《C语言结构体和共用体实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言结构体和共用体实验报告Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
*1021冰箱1024。
000。
95
*1022空调2058。
500。
90
*1023电视3001。
880.95
****************************************************************/
#include〈stdio.h>
typedefstruct_PRODUCT
{
intiNumber;
charstrName[32];
floatfPrice;
floatfDiscount;
}PRODUCT,*PPRODUCT;
voidinput(PRODUCT*pProduct);
voiddisplay(PPRODUCTpProduct);
voidmain()
inti;
PRODUCTkyeboard;
PRODUCTelec_device[3];
input(&kyeboard);
for(i=0;
i<
3;
i++)
{
input(&
elec_device[i]);
}
display(&
kyeboard);
3;
{
display(&
elec_device[i]);
}
/****************************************************************
*函数名称:
input()
*参数:
PRODUCT*pProduct-PRODUCT结构体指针,用来存放输入数据
*返回值:
无
*说明:
*该函数用来完成PRODUCT结构体数据的输入.
**************************************************************/
voidinput(PRODUCT*pProduct)
printf("
\n请输入商品的编号:
\n”);
scanf("
%d”,&pProduct—〉iNumber);
请输入商品的名称:
\n"
);
scanf(”%s"
,pProduct->
strName);
请输入商品的价格:
scanf(”%f”,&
pProduct—>
fPrice);
请输入商品的折扣:
scanf(”%f"
,&
pProduct—〉fDiscount);
/**************************************************************
display()
PRODUCTpProduct—PRODUCT结构体数据
*返回值:
*说明:
*该函数用来完成PRODUCT结构体数据的显示。
****************************************************************/
voiddisplay(PPRODUCTpProduct)
{
\n商品的编号:
%d\n”,pProduct—〉iNumber);
printf(”商品的名称:
%s\n”,pProduct->
strName);
商品的价格:
%.2f\n"
pProduct->
商品的折扣:
%。
2f\n"
pProduct-〉fDiscount);
实验9-2
/****************************************************************
*实验9。
2
*
(1)利用链表结构(PLAY_LIST),为某媒体播放器建立一个播放列表(playList),
*该链表的每一个节点包括:
歌曲编号(number)、歌曲名称(name)、歌手姓名(artist)、歌曲长度(time),见表9—2。
*
(2)建立4个函数,以实现对播放列表操作.函数的原型如下:
*创建播放列表PLAY_LIST*createList();
*在播放列表中添加一首歌曲PLAY_LIST*insertItem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList);
*在播放列表中删除编号为iItemNumber的歌曲PLAY_LIST*deleteItem(PLAY_LIST*pPlayList,intiItemNumber);
*显示整个播放列表中的所有信息voiddisplayIList(PLAY_LIST*pPlayList);
*(3)在主函数中定义一个链表playList。
*A)利用函数createList创建播放列表playList,并在其节点上依次存储编号为1100、1102、1103的3首歌曲,
*并调用displayList函数显示此时整个播放列表中的所有信息。
*B)调用insertItem函数将编号为1101的歌曲添加到playList中,并显示整个播放列表中的所有信息。
*C)调用deleteItem函数将编号为1102的歌曲从playList中删除,并显示整个播放列表中的所有信息。
*表9-2
*歌曲编号歌曲名称歌手姓名歌曲长度
*1100落叶归根王力宏05:
16
*1101风吹麦浪李健04:
07
*1102往事随风齐秦04:
38
*1103天空王菲03:
42
****************************************************************/
#include〈stdio。
h〉
typedefstruct_PLAY_LIST
charstrName[64];
charstrArtist[32];
struct_TIME
intiMinutes;
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,intiItemNumber);
voiddisplayList(PLAY_LIST*pPlayList);
intinputItem(PLAY_LIST*pPlayList);
PLAY_LIST*pPlayList=NULL;
PLAY_LIST*pNewPlayList=NULL;
pPlayList=createList();
printf(”播放列表:
);
displayList(pPlayList);
\n播放列表插入曲目:
\n”);
pNewPlayList=createList();
pPlayList=insertItem(pPlayList,pNewPlayList);
printf(”插入新的曲目之后的播放列表:
printf(”\n播放列表删除曲目:
pPlayList=deleteItem(pPlayList,1102);
删除编号为1102的曲目之后的播放列表:
/****************************************************************
createList()
PLAY_LIST*-返回创建好的播放列表链表
*说明:
*该函数用来创建播放列表链表.
***************************************************************/
PLAY_LIST*createList()
intiResult=0;
PLAY_LIST*pListHead,*pTemp,*pNewList;
pTemp=pNewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST));
pNewList—>
pNext=NULL;
pListHead=NULL;
printf(”创建新播放列表\n"
iResult=inputItem(pNewList);
if(iResult)
pListHead=pNewList;
while(iResult)
pNewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST));
pNewList—>
iResult=inputItem(pNewList);
if(iResult)
{
pTemp->
pNext=pNewList;
pTemp=pNewList;
}
}
returnpListHead;
}
/***************************************************************
*函数名称:
insertItem()
*参数:
PLAY_LIST*pPlayList—操作的播放列表链表
*PLAY_LIST*pNewPlayList-插入的新项目
PLAY_LIST*-返回操作后的播放列表链表
*该函数用来完成播放列表链表的新项目插入.
****************************************************************/
PLAY_