C语言结构体和共用体实验报告材料Word文档格式.docx

上传人:b****2 文档编号:4551225 上传时间:2023-05-03 格式:DOCX 页数:26 大小:19.38KB
下载 相关 举报
C语言结构体和共用体实验报告材料Word文档格式.docx_第1页
第1页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第2页
第2页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第3页
第3页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第4页
第4页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第5页
第5页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第6页
第6页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第7页
第7页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第8页
第8页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第9页
第9页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第10页
第10页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第11页
第11页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第12页
第12页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第13页
第13页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第14页
第14页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第15页
第15页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第16页
第16页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第17页
第17页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第18页
第18页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第19页
第19页 / 共26页
C语言结构体和共用体实验报告材料Word文档格式.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言结构体和共用体实验报告材料Word文档格式.docx

《C语言结构体和共用体实验报告材料Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言结构体和共用体实验报告材料Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。

C语言结构体和共用体实验报告材料Word文档格式.docx

voidinput(PRODUCT*pProduct);

voiddisplay(PPRODUCTpProduct);

voidmain()

inti;

PRODUCTkyeboard;

PRODUCTelec_device[3];

input(&

kyeboard);

for(i=0;

i<

3;

i++)

{

input(&

elec_device[i]);

}

display(&

display(&

}

*函数名称:

input()

*参数:

PRODUCT*pProduct-PRODUCT结构体指针,用来存放输入数据

*返回值:

*说明:

*该函数用来完成PRODUCT结构体数据的输入。

**************************************************************/

voidinput(PRODUCT*pProduct)

printf("

\n请输入商品的编号:

\n"

);

scanf("

%d"

&

pProduct->

iNumber);

请输入商品的名称:

%s"

pProduct->

strName);

请输入商品的价格:

%f"

fPrice);

请输入商品的折扣:

fDiscount);

/**************************************************************

display()

PRODUCTpProduct-PRODUCT结构体数据

*该函数用来完成PRODUCT结构体数据的显示。

voiddisplay(PPRODUCTpProduct)

\n商品的编号:

%d\n"

商品的名称:

%s\n"

商品的价格:

%.2f\n"

商品的折扣:

实验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

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();

播放列表:

displayList(pPlayList);

\n播放列表插入曲目:

pNewPlayList=createList();

pPlayList=insertItem(pPlayList,pNewPlayList);

插入新的曲目之后的播放列表:

\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;

创建新播放列表\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_LIST*insertItem(PLAY_LIST*pPlayList,PLAY_LIST*pNewPlayList)

PLAY_LIST*pTemp;

if(NULL==pPlayList||NULL==pNewPlayList)

if(pPlayList)

returnpPlayList;

if(pNewPlayList)

returnpNewPlayList;

returnNULL;

pTemp=pPlayList;

if(pTemp->

iNumber>

pNewPlayList->

iNumber)

pNewPlayList->

pNext=pTemp;

returnpNewPlayList;

while

(1)

if(pTemp->

pNext==NULL)

pNext=pNewPlayList;

break;

pNext->

iNumber)

pNewPlayList->

pNext=pTemp->

pNext;

pTemp=pTemp->

returnpPlayList;

deleteItem()

*intiItemNumber-删除项目的编号

*该函数用来完成播放列表链表的项目删除。

PLAY_LIST*deleteItem(PLAY_LIST*pPlayList,intiItemNumber)

if(NULL==pPlayList)

iNumber==iItemNumber)

returnpTemp->

}

displayList()

PLAY_LIST*pPlayList-显示的播放列表链表

*该函数用来完成播放列表链表的内容显示。

voiddisplayList(PLAY_LIST*pPlayList)

PLAY_LIST*pTemp;

\n歌曲编号\t歌曲名称\t歌手姓名\t歌曲时间长度(mm:

ss)\n"

return;

while(pTemp)

printf("

%-8d\t%-8s\t%-8s\t%02d:

%02d\n"

iNumber,

strName,

strArtist,

sTime.iMinutes,

sTime.iSeconds);

inputItem()

int-正常返回1,不正常返回0

*该函数用来完成播放列表链表的内容输入。

intinputItem(PLAY_LIST*pPlayList)

请输入歌曲编号,编号小于0结束输入:

pPlayList->

if(pPlayList->

iNumber<

0)

return0;

请输入歌曲名称:

pPlayList->

请输入歌手姓名:

strArtist);

请输入歌曲时间长度(mm:

ss):

%d:

sTime.iMinutes,&

return1;

实验9-3

uniondata

intiData[2];

floatfData;

charstrData[4];

unsignedintuData;

}myUnion;

intiTemp;

charstrTemp;

floatfTemp;

unsignedintuTemp;

/*第一部分*/

第一部分\n"

myUnion.iData[0]=-1;

myUnion.iData[1]=1;

iTemp=myUnion.iData[0];

iTemp=%d\n"

iTemp);

/*iTemp的值是多少*/

uTemp=myUnion.uData;

uTemp=%u\n"

uTemp);

/*uTemp的值是多少*/

strTemp=myUnion.strData[0];

strTemp=%d(ASCII:

%C)\n"

strTemp,strTemp);

/*strTemp的值是多少*/

fTemp=myUnion.fData;

fTemp=%f\n\n"

fTemp);

/*fTemp的值是多少*/

/*第二部分*/

第二部分\n"

myUnion.strData[0]='

A'

;

myUnion.strData[1]='

B'

/*第三部分*/

第三部分\n"

myUnion.fData=0.1f;

实验9-4

*实验9.4

*

(1)在一个显示系统中,需要在任意位置显示一个中文或者英文字符,为此请根据表9-4设计一种数据结构。

*其中当label=0时,content的16位数据中低8位为英文字符,高8位的数据丢弃。

*当label=1时,content的16位数据为中文数据。

*

(2)建立2个函数,函数的原型如下:

*封装数据,即将中英文字符按照表9-4方式存储

*PACK_DATApackData(unsigneduRow,unsigneduCol,unsigneduLabel,char*pContent);

*将封装的数据提取出来,并安装要求显示在屏幕上

*voidunpackData(PACK_DATAdata);

*(3)只考虑字符(content)为英文的情况。

在主函数中,调用函数packData,将信息(在第2行第3列显示英文字符X)封装好;

*然后调用函数unpackData将上一步封装好的数据提取并显示出来。

*(4)考虑字符(content)可能是英文也可能是中文的情况。

*在主函数中,2次调用函数packData,将信息1(在第2行第3列显示英文字符X)和信息2(在第3行第4列显示中文字符“中”)封装好;

*然后2次调用函数unpackData将上一步封装好的数据提取并显示出来。

*表9-4

*行号(row):

3bit列号(col):

3bit中英文标识(label):

2bit字符(content):

16bit

/*声明结构体并定义结构体类型*/

typedefstruct_PACK_DATA

unsigneduRow:

unsigneduCol:

unsigneduLabel:

2;

un

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2