C语言结构体和共用体实验报告范本模板.docx
《C语言结构体和共用体实验报告范本模板.docx》由会员分享,可在线阅读,更多相关《C语言结构体和共用体实验报告范本模板.docx(23页珍藏版)》请在冰豆网上搜索。
C语言结构体和共用体实验报告范本模板
实验九参考程序
实验9-1
/****************************************************************
*实验9。
1
*
*
(1)为某商店的商品设计合适的结构体(PRODUCT)。
每一种商品包含编号(number)、
*名称(name)、价格(price)、折扣(discount)4项信息,根据表9—1,为这些信息选择合适的数据类型。
*
(2)建立2个函数,以实现对商品的操作。
input函数实现商品的输入;
*display函数显示商品信息。
要求这2个函数都以商品的结构体(PRODUCT)指针为参数。
*(3)在主函数中为商品键盘定义一个结构体变量(keyboard),利用input函数实现键盘信息的输入;
*定义一个结构体数组(elec_device[3]),利用input函数实现冰箱、空调、电视信息的输入;
*最后利用display函数显示4种商品的信息。
*
*表9—1
*
*编号名称价格折扣
*1010键盘89.500。
85
*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);
for(i=0;i〈3;i++)
{
display(&elec_device[i]);
}
}
/****************************************************************
*
*函数名称:
input()
*
*参数:
PRODUCT*pProduct—PRODUCT结构体指针,用来存放输入数据
*
*
*返回值:
无
*
*说明:
*该函数用来完成PRODUCT结构体数据的输入。
*
*
*
**************************************************************/
voidinput(PRODUCT*pProduct)
{
printf(”\n请输入商品的编号:
\n");
scanf(”%d",&pProduct—〉iNumber);
printf(”请输入商品的名称:
\n”);
scanf("%s”,pProduct->strName);
printf("请输入商品的价格:
\n”);
scanf("%f",&pProduct—〉fPrice);
printf(”请输入商品的折扣:
\n");
scanf(”%f",&pProduct->fDiscount);
}
/**************************************************************
*
*函数名称:
display()
*
*参数:
PRODUCTpProduct-PRODUCT结构体数据
*
*
*返回值:
无
*
*说明:
*该函数用来完成PRODUCT结构体数据的显示。
*
****************************************************************/
voiddisplay(PPRODUCTpProduct)
{
printf("\n商品的编号:
%d\n”,pProduct-〉iNumber);
printf(”商品的名称:
%s\n",pProduct-〉strName);
printf("商品的价格:
%.2f\n”,pProduct->fPrice);
printf(”商品的折扣:
%。
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
{
intiNumber;
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);
voidmain()
{
PLAY_LIST*pPlayList=NULL;
PLAY_LIST*pNewPlayList=NULL;
pPlayList=createList();
printf("播放列表:
\n");
displayList(pPlayList);
printf("\n播放列表插入曲目:
\n");
pNewPlayList=createList();
pPlayList=insertItem(pPlayList,pNewPlayList);
printf(”插入新的曲目之后的播放列表:
\n”);
displayList(pPlayList);
printf("\n播放列表删除曲目:
\n");
pPlayList=deleteItem(pPlayList,1102);
printf("删除编号为1102的曲目之后的播放列表:
\n”);
displayList(pPlayList);
}
/****************************************************************
*
*函数名称:
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->pNext=NULL;
iResult=inputItem(pNewList);
if(iResult)
{
pTemp-〉pNext=pNewList;
pTemp=pNewList;
}
}
returnpListHead;
}
/***************************************************************
*
*函数名称:
insertItem()
*
*参数:
PLAY_LIST*pPlayList—操作的播放列表链表
*PLAY_LIST*pNewPlayList-插入的新项目
*
*
*
*返回值:
PLAY_LIST*-返回操作后的播放列表链表
*
*说明:
*该函数用来完成播放列表链表的新项目插入。
*
*
*
****************************************************************/
P