ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:19.42KB ,
资源ID:4217355      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4217355.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言结构体和共用体实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言结构体和共用体实验报告.docx

1、C语言结构体和共用体实验报告实验九参考程序实验91/*实验9.1*(1)为某商店的商品设计合适的结构体 (PRODUCT)。每一种商品包含编号(number)、* 名称(name)、价格(price)、折扣(discount)4项信息,根据表9-1,为这些信息选择合适的数据类型。*(2)建立2个函数,以实现对商品的操作。input函数实现商品的输入;* display函数显示商品信息。要求这2个函数都以商品的结构体(PRODUCT)指针为参数。*(3)在主函数中为商品键盘定义一个结构体变量(keyboard),利用input函数实现键盘信息的输入;* 定义一个结构体数组(elec_device

2、3),利用input函数实现冰箱、空调、电视信息的输入;* 最后利用display函数显示4种商品的信息。* 表9-1*编号 名称 价格 折扣*1010 键盘 89.50 0.85*1021 冰箱 1024.00 0.95*1022 空调 2058.50 0.90*1023 电视 3001.88 0.95*/#include typedef struct _PRODUCT int iNumber; char strName32; float fPrice; float fDiscount;PRODUCT,*PPRODUCT;void input(PRODUCT *pProduct);void

3、display(PPRODUCT pProduct);void main() int i; PRODUCT kyeboard; PRODUCT elec_device3; input(&kyeboard); for(i=0;i3;i+) input(&elec_devicei); display(&kyeboard); for(i=0;iiNumber); printf(请输入商品的名称:n); scanf(%s,pProduct-strName); printf(请输入商品的价格:n); scanf(%f,&pProduct-fPrice); printf(请输入商品的折扣:n); scan

4、f(%f,&pProduct-fDiscount);/*函数名称:display()*参数:PRODUCT pProduct -PRODUCT结构体数据*返回值:无*说明:*该函数用来完成PRODUCT结构体数据的显示。*/void display(PPRODUCT pProduct) printf(n商品的编号:%dn,pProduct-iNumber); printf(商品的名称:%sn,pProduct-strName); printf(商品的价格:%.2fn,pProduct-fPrice); printf(商品的折扣:%.2fn,pProduct-fDiscount);实验92/*实

5、验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

6、_LIST* deleteItem(PLAY_LIST* pPlayList, int iItemNumber); * 显示整个播放列表中的所有信息 void displayIList(PLAY_LIST* pPlayList); *(3)在主函数中定义一个链表playList。* A)利用函数createList创建播放列表playList,并在其节点上依次存储编号为1100、1102、1103的3首歌曲,* 并调用displayList函数显示此时整个播放列表中的所有信息。* B)调用insertItem函数将编号为1101的歌曲添加到playList中,并显示整个播放列表中的所有信息。*

7、 C)调用deleteItem函数将编号为1102的歌曲从playList中删除,并显示整个播放列表中的所有信息。* 表9-2*歌曲编号 歌曲名称 歌手姓名 歌曲长度*1100 落叶归根 王力宏 05:16*1101 风吹麦浪 李健 04:07*1102 往事随风 齐秦 04:38*1103 天空 王菲 03:42*/#include typedef struct _PLAY_LIST int iNumber; char strName64; char strArtist32; struct _TIME int iMinutes; int iSeconds; sTime; struct _PL

8、AY_LIST *pNext;PLAY_LIST,*PPLAY_LIST;PLAY_LIST* createList();PLAY_LIST* insertItem(PLAY_LIST* pPlayList,PLAY_LIST* pNewPlayList);PLAY_LIST* deleteItem(PLAY_LIST* pPlayList,int iItemNumber);void displayList(PLAY_LIST* pPlayList);int inputItem(PLAY_LIST* pPlayList);void main() PLAY_LIST *pPlayList=NUL

9、L; 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); p

10、rintf(删除编号为1102的曲目之后的播放列表:n); displayList(pPlayList);/*函数名称:createList()*参数:无*返回值:PLAY_LIST* -返回创建好的播放列表链表*说明:*该函数用来创建播放列表链表。*/PLAY_LIST* createList() int iResult=0; PLAY_LIST *pListHead,*pTemp,*pNewList; pTemp=pNewList=(PLAY_LIST*)malloc(sizeof(PLAY_LIST); pNewList-pNext=NULL; pListHead=NULL; print

11、f(创建新播放列表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; return pListHead;/*函数名称:insertItem()*参数:PLAY_LIST* pPlayList -操作

12、的播放列表链表* PLAY_LIST* pNewPlayList -插入的新项目*返回值:PLAY_LIST* -返回操作后的播放列表链表*说明:*该函数用来完成播放列表链表的新项目插入。*/PLAY_LIST* insertItem(PLAY_LIST* pPlayList,PLAY_LIST* pNewPlayList) PLAY_LIST* pTemp; if(NULL=pPlayList|NULL=pNewPlayList) if(pPlayList) return pPlayList; if(pNewPlayList) return pNewPlayList; return NULL

13、; pTemp=pPlayList; if(pTemp-iNumberpNewPlayList-iNumber) pNewPlayList-pNext=pTemp; return pNewPlayList; while(1) if(pTemp-pNext=NULL) pTemp-pNext=pNewPlayList; break; if(pTemp-pNext-iNumberpNewPlayList-iNumber) pNewPlayList-pNext=pTemp-pNext; pTemp-pNext=pNewPlayList; break; pTemp=pTemp-pNext; retur

14、n pPlayList;/*函数名称:deleteItem()*参数:PLAY_LIST* pPlayList -操作的播放列表链表* int iItemNumber -删除项目的编号*返回值:PLAY_LIST* -返回操作后的播放列表链表*说明:*该函数用来完成播放列表链表的项目删除。*/PLAY_LIST * deleteItem(PLAY_LIST* pPlayList,int iItemNumber) PLAY_LIST* pTemp; if(NULL=pPlayList) return NULL; pTemp=pPlayList; if(pTemp-iNumber=iItemNum

15、ber) return pTemp-pNext; while(1) if(pTemp-pNext=NULL) break; if(pTemp-pNext-iNumber=iItemNumber) pTemp-pNext=pTemp-pNext-pNext; break; pTemp=pTemp-pNext; return pPlayList;/*函数名称:displayList()*参数:PLAY_LIST* pPlayList -显示的播放列表链表*返回值:无*说明:*该函数用来完成播放列表链表的内容显示。*/void displayList(PLAY_LIST* pPlayList) PL

16、AY_LIST * pTemp; printf(n歌曲编号t歌曲名称t歌手姓名t歌曲时间长度(mm:ss)n); if(NULL=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_LIST* pPlayLi

17、st -操作的播放列表链表*返回值:int -正常返回1,不正常返回0*说明:*该函数用来完成播放列表链表的内容输入。*/int inputItem(PLAY_LIST* pPlayList) printf(请输入歌曲编号,编号小于0结束输入:n); scanf(%d,&pPlayList-iNumber); if(pPlayList-iNumberstrName); printf(请输入歌手姓名:n); scanf(%s,pPlayList-strArtist); printf(请输入歌曲时间长度(mm:ss):n); scanf(%d:%d,&pPlayList-sTime.iMinute

18、s,&pPlayList-sTime.iSeconds); return 1;实验93#include union data int iData2; float fData; char strData4; unsigned int uData;myUnion;void main() int iTemp; char strTemp; float fTemp; unsigned int uTemp; /*第一部分*/ printf(第一部分n); myUnion.iData0=-1; myUnion.iData1=1; iTemp=myUnion.iData0; printf(iTemp=%dn,

19、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的值是多少*/ /*第二部分*/ printf(第二部分n); myUnion.strData0=A; myUnion.strData1=B; iTem

20、p=myUnion.iData0; printf(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的值是多少*/ /*第三部分*/ printf(第三部分n); myUnion.f

21、Data=0.1f; iTemp=myUnion.iData0; printf(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的值是多少*/实验94/*实验9.4*(1)在一个显

22、示系统中,需要在任意位置显示一个中文或者英文字符,为此请根据表9-4设计一种数据结构。* 其中当label=0时,content的16位数据中低8位为英文字符,高8位的数据丢弃。* 当label=1时,content的16位数据为中文数据。*(2)建立2个函数,函数的原型如下:* 封装数据,即将中英文字符按照表9-4方式存储* PACK_DATA packData(unsigned uRow,unsigned uCol,unsigned uLabel,char * pContent); * 将封装的数据提取出来,并安装要求显示在屏幕上* void unpackData(PACK_DATA da

23、ta);*(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*/#include /*声明结构体并定义结构体类型*/typedef struct _PACK_DATA unsigned uRow:3; unsigned uCol:3; unsigned uLabel:2; unsi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1