三、内存管理应用程序设计内容摘要:
进行显示。 使用完成后,需要清除位图对象 m_Bitmap和内存显示设备 MemDC。 下一页 上一页 停止放映 第 39/76 页 程序步骤 ① 建立单文档 /视图框架程序,工程名为“ Example3_9”; ② 在文件“ ”的 OnDraw(CDC* pDC) 函数中添加如下代码: CDC MemDC。 //首先定义一个显示设备对象 CBitmap m_Bitmap。 //定义一个位图对象 int nWidth=500。 //绘图宽度 int nHeight=500。 //绘图高度 (NULL)。 //建立与屏幕显示兼容的内存显示设备 (pDC,nWidth,nHeight)。 //建立一个与屏幕显示兼容的位图 (amp。 m_Bitmap)。 //将位图选入到内存显示设备中 (0,0,nWidth,nHeight,RGB(192,192,192))。 //画实心矩形 (100,100,400,400)。 //画圆 (100,100)。 //移动到指定位置 (400,400)。 //画直线 (220,250,“欢迎” )。 //显示文字 pDCBitBlt(0,0,nWidth,nHeight,amp。 MemDC,0,0,SRCCOPY)。 //将内存中的图拷贝到屏幕上进行显示 ()。 //清除位图对象 ()。 //清除内存显示设备 ③程序运行即可得到结果 . 下一页 上一页 停止放映 第 40/76 页 程序运行结果 例 39执行代码 下一页 上一页 停止放映 第 41/76 页 2. 文件管理与程序设计 主要任务 – 有效地管理文件的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段,并把这种存储、检索、共享和保护文件的手段提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 下一页 上一页 停止放映 第 42/76 页 文件 有关概念 文件 – 一组相关信息的集合,文件具有一定的数据结构、数据、分类属性和访问权限。 – 文件从物理上,由位( bit)、字节( byte)、块( block)、页( page)和盘( disk)等组成; 物理结构有连续文件结构、串联文件结构和索引文件结构。 – 从逻辑上,有字( word)、字段( segment)、记录( record)、虚拟块( virtual block)、文件( file)、文件目录( file directory)、文件夹( folder)和文件卷( volume)等。 逻辑结构可分为两大类:字符流式的无结构文件和记录式的有结构文件。 下一页 上一页 停止放映 第 43/76 页 文件系统 文件管理程序和所管理的全部文件(文件与目录的集合)。 最常用的一些文件类型是: .exe 可执行文件 .wav 声音文件 .lib静态库文件 .jpg 图片文件 .dll动态库文件 .doc Word文件 .ocx 组件文件 .mdb Access数据库文件 .cpp C++源程序文件 .log日志文件 .java Java源程序文件 .bmp 位图文件 .html 网页文件 .ini初始化文件 .chk磁盘整理文件等等 下一页 上一页 停止放映 第 44/76 页 文件保护 文件的保护可以通过改变文件属性为可读、可写、可执行、隐藏和归挡来进行。 下一页 上一页 停止放映 第 45/76 页 文件系统格式 Windows操作系统采用 FAT32和 NTFS两种文件系统格式: – 其中 FAT32采用 文件目录表 ( file directory table,FDT)和 文件分配表 ( file allocate table,FAT)相结合的方式来管理文件。 FAT32的文件分配表是 32位的,增强了对磁盘的管理能力,减少了磁盘空间的浪费。 – NTFS采用压缩存储方式,具有文件权限的管理功能,能够更好地管理文件。 下一页 上一页 停止放映 第 46/76 页 文件结构 文件的结构包括 物理结构 和 逻辑结构。 文件的物理结构又称为文件的存储结构,它是指文件在外存上的存储组织形式,与存储介质的存储性能有关。 常用的物理结构有 连续文件 结构、 串联 文件结构和 索引 文件结构。 文件的逻辑结构是用户所观察到的文件组织形式,是用户可以直接处理的数据及结构,它独立于物理特性,又称为文件组织( FILE ORGANIZATION)。 文件的逻辑结构可分为两大类: 字符流式 的无结构文件和 记录式 的有结构文件。 下一页 上一页 停止放映 第 47/76 页 文件的逻辑结构 文件的逻辑结构分为两种形式: – 一种是有结构的 记录式文件 ,它由一组相关记录组成。 文件中的记录可按顺序编号为记录 记录 … 、记录 n。 例如,数据库文件。 – 另一种是无结构的 流式文件 ,它是指由字符序列集合组成的文件。 例如,一个 Word文件。 – 在 UNIX中,所有文件都被看作是流式文件,包括打印机、显示器等 I/O设备。 示例 示例 下一页 上一页 停止放映 第 48/76 页 文件的物理结构 是指文件在存储设备上的存放形式。 文件在逻辑上是连续的 , 但在存储设备上存放时却有几种不同形式: – 连续文件。 又称顺序文件。 其特点是文件存放在存储设备的相临的物理块中,即连续存放。 – 串联文件。 又称链表文件。 它采用非连续的物理块来存放文件信息,将文件的所有物理块串联组成一个链表,块之间通过指针链接。 – 索引文件。 索引文件要求系统为每一个文件创建一张索引表,索引表的表项给出文件的逻辑块号和物理块号的对应关系。 – Hash(散列)文件。 它采用计算寻址方法,将记录键值通过 Hash函数计算转换成相应记录的地址。 示例 下一页 上一页 停止放映 第 49/76 页 文件的目录结构 文件组织体系中还包括文件的目录结构。 用户使用的是文件的逻辑结构 , 系统使用的是文件的物理结构 , 在两种不同的组织结构之间似乎应该有衔接的纽带。 衔接的纽带就是 ——文件的目录结构。 通过文件的目录结构 , 将文件的逻辑结构和文件的物理结构联系在了一起。 下一页 上一页 停止放映 第 50/76 页 例 310 驱动器浏览程序 解题思路: 本程序显示操作系统中的所有盘符,程序中用到MFC和 Windows API函数; CString代表一个字符串对象; SetAt 函数改变字符串某个位置的字符; GetLength函数取得字符的长度; GetBuffer函数将一个 CString型的字符串转换为LPTSTR类型的指定长度的字符串; 宏变量 DRIVE_REMOVABLE、 DRIVE_FIXED、DRIVE_REMOTE、 DRIVE_CDROM和DRIVE_RAMDISK分别表示不同类型的盘,在程序代码中有说明。 下一页 上一页 停止放映 第 51/76 页 程序步骤 ① 调用 API函数 GetLogicalDrives取得“我的电脑”中的所有逻辑盘,并得到一个 DWORD类型的数,其中的某一位为 1时表示该位代表的盘存在。 其中GetLogicalDrives函数的格式为: DWORD GetLogicalDrives(VOID); ②通过提取 dwDriveList的每一位,得到所有盘符; ③调用 API函数 GetDriveType判别每一盘符的类型,其中 GetDriveType函数的格式为: UINT GetDriveType(int nDrive) 下一页 上一页 停止放映 第 52/76 页 程序 include include void main() { int nPos = 0。 UINT nCount = 0。 CString strDrive = ?:\\。 DWORD dwDriveList = GetLogicalDrives ()。 //取得我的电脑的所有盘 CString cTmp。 UINT nType。 cout我的电脑包含如下盘 : endl。 while (dwDriveList) { if (dwDriveList amp。 1) { cTmp = strDrive。 (0, 0x41 + nPos)。 //将数字表示的盘符转换为字母 cout(())。 //将字符串转换为指定格式 nType = GetDriveType ((LPCTSTR) strDrive)。 //取得每个盘的类型 switch (nType) { case DRIVE_REMOVABLE:{ cout可移动盘 endl。 break。 } case DRIVE_FIXED: { cout逻辑硬盘 endl。 break。 } case DRIVE_REMOTE:{ cout网络盘 endl。 break。 } case DRIVE_CDROM:{ coutCDROM盘 endl。 break。 } case DRIVE_RAMDISK:{coutRAM盘 endl。 break。 } default:{ cout未知类型盘 endl。 break。 } } nCount++。 } dwDriveList = 1。 //准备取得下一个盘符 nPos++。 } cout共: nCount个盘 endl。 } 下一页 上一页 停止放映 第 53/76 页 程序运行结果 例 310执行代码 下一页 上一页 停止放映 第 54/76 页 例 311 判别指定文件或文件夹属性 算法分析 1. 从命令行输入指定的文件或目录名称,可以包含通配符 ( “*” 和“ ?”)。 命令格式为: 命令 文件名 1. 使用 FMC的 CFileFind类的 FindFile函数对指定文件进行查找。 2. CFileFind类的 FindNextFile函数对指定文件继续进行查找(因指定的文件可能含有通配符)。三、内存管理应用程序设计
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
三、tms320c54x的指令系统
右向左。 间接寻址中 *Arn+0B/0B表示位倒序寻址。 8点的 FFT蝶型结运算 W0W0W2W0W2W0W1W2W3x(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7) X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)W0W0W00000 0100 0010 0110 0001 0101 0011 0111 FFT中混序就是位倒序 FFT运算时输出
万里长城在我国古代社会主要起什么作用?想一想,到了近代
武器研制成功。 原子弹被装在导弹上: 导弹弹头为原子弹 氢弹爆炸成功: 1967年 6月 17日 继原子弹之后,我国科学家邓稼先(两弹元勋)等人艰苦奋斗,又以最快的速度,研制出了爆炸威力远远高于原子弹的氢弹 现在我们能造什么。 能造桌子椅子,能造茶碗茶壶,能种粮食,还能磨成面粉,还能造纸,但是,一辆汽车、一架飞机、一辆拖拉机都不能造。 我国为什么要下决心研制核武器。 我们取得的成就有什么意义呢。