经典的缓冲区溢出实验,buflab,CMU大学(卡耐基梅隆大学)经典计算机课程实验之一,里面含有实验完整内容及其源程序,还有详细的解答过程,很多国内大学的计算机课程都选用此实验作为其课程设计之一!
2024/10/23 19:47:13 2.24MB buflab CSAPP 缓冲区溢出
1
生产者—消费者:在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。
消费者线程从缓冲区中获得物品,然后释放缓冲区。
当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。
当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。
生产者—消费者问题:(1)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者进程的标识符。
说明:有界缓冲区(提示:有界缓冲区可用数组实现)内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。
(2)生产者和消费者各有两个以上。
(3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。
代码可以运行的,放心使用。
2024/10/20 0:58:52 450KB C++
1
实验一:词法分析一、实验目的通过设计一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的内部编码及单词符号自身值。
二、实验预习提示1、 词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。
词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。
本实验中,采用的是一类符号对应一个种别码的方式。
2、 单词的BNF表示---_----_----_-+---_--等等3、 模块结构(见课本P95-96)(可根据自己的理解适当修改)三、实验过程和指导:(一) 准备:1. 阅读课本有关章节,明确语言的语法,写出基本保留字、标识符、常数、运算符、分隔符和程序例。
2. 初步编制好程序。
3. 准备好多组测试数据。
(二) 上机:(三) 程序要求:1. 要求用C++Builder或者Dephi或者VC、VB等可视化编程工具编写;
要求有界面(即一般windows下应用程序界面)。
2. 输入为某语言源代码。
程序输入/输出示例:如源程序为C语言。
输入如下一段:main(){inta,b;a=10;b=a+20;}要求输出如下(并以文件形式输出)。
(2,”main”)(5,”(“)(5,”)“)(5,”{“}(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”}“)注:为右大括号要求(可根据实际情况加以扩充和修改):识别保留字:if、int、for、while、do、return、break、continue等等,单词种别码为1。
其他的标识符,单词种别码为2。
常数为无符号数,单词种别码为3。
运算符包括:+、-、*、/、=、>、=、<=、!=;
单词种别码为4。
分隔符包括:“,”“;
”“(”“)”“{”“}”等等,单词种别码为5。
(四) 程序思路(仅供参考):0. 定义部分:定义常量、变量、数据结构。
1. 初始化:从文件将源程序输入到字符缓冲区中。
2. 取单词前:去掉多余空白。
调用过程GETNB();3. 提取字符组成单词,利用课本P97图4.5转换图构造单词扫描过程SCAN(),需要根据实际情况加以修改。
4. 判断单词的种别码,调用过程LOOKUP();5. 显示(导出)结果。
2024/10/19 0:44:54 433KB 编译原理 词法分析实验
1
这是一篇完整的毕业设计论文且功能全部实现,并带有源程序。
该信号发生器主要由TMS320C5410和TLC320AD50C两大部分组成。
在DSP芯片上完成对波形的编程,通过多通道缓冲串口向TLC320AD50C(数模转换器)发送波形数据,通过TLC320AD50C的插值滤波等措施产生模拟波形输出。
该信号发生器的硬件设计中TMS3205410和TLC320AD50C的连接采用SPI协议,TLC320AD50C作为SPI主器件,提供帧同步和时钟信号,多通道缓冲串口作为SPI从器件。
该信号发生器的软件编程主要采用模块化的设计思想,把程序细化成易于实现的小模块。
编程的语言主要采用执行效率高的汇编语言,C和汇编语言混合使用的方式灵活的编写程序。
通过软硬件的联合调试最终实现了矩形波、三角波、锯齿波和正弦波等波形的产生,并成功的实现了其波形的幅度和频率的可调性。
1
假设M个生产者和N个消费者共享一个具有K(K大于1)个缓冲区的循环缓冲结构BUFFER(提示:可以用一个循环队列或一个整型数组来表示),并设置两个指针IN和OUT,其中IN指向生产者线程当前可用的空缓冲区的在BUFFER中的下标,OUT指向消费者线程当前可用的满缓冲区在BUFFER中的下标。
生产者线程和消费者线程并发执行,当无空缓冲区时,生产者线程阻塞;
当无满缓冲区时消费者线程阻塞,并且多个生产者线程对IN的使用必须互斥,多个消费者线程对OUT的使用也必须互斥
2024/10/18 17:47:39 5KB 生产者消费者
1
ENVI  ENVI(TheEnvironmentforVisualizingImages)是美国ITTVisualInformationSolutions公司的旗舰产品。
ENVI由遥感领域的科学家采用IDL开发的一套功能强大的遥感图像处理软件;
它是快速、便捷、准确地从地理空间影像中提取信息的首屈一指的软件解决方案,它提供先进的,人性化的使用工具来方便用户读取、准备、探测、分析和共享影像中的信息。
今天,众多的影像分析师和科学家选择ENVI来从地理空间影像中提取信息。
已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、国防&安全、地球科学、公用设施管理、遥感工程、水利、海洋,测绘勘察和城市与区域规划等行业。
  创建于1977年的RSI(现为ITTVisualInformationSolutions公司)已经成功地为其用户提供了超过30年的科学可视化软件服务。
目前ITTVisualInformationSolutions的用户数超过150,000,遍布于80个国家与地区。
从2000年开始连续三年,ENVI被美国国家影像制图局(NIMA)等权威机构组织的Passfind项目遥感影像系统评比当中被评为“最佳的遥感目标识别软件”。
2004年RSI公司并入上市公司ITT公司,并于2006年5月正式成立ITTVisualInformationSolutions公司,ENVI&IDL的发展步伐更加有利与快捷,更多的新功能与算法加进到新版本中。
  强大的影像显示、处理和分析系统  ENVI包含齐全的遥感影像处理功能:常规处理、几何校正、定标、多光谱分析、高光谱分析、雷达分析、地形地貌分析、矢量应用、神经网络分析、区域分析、GPS联接、正射影象图生成、三维图像生成、丰富的可供二次开发调用的函数库、制图、数据输入/输出等功能组成了图像处理软件中非常全面的系统。
  ENVI对于要处理的图像波段数没有限制,可以处理最先进的卫星格式,如Landsat7、IKONOS、SPOT,RADARSAT,NASA,NOAA,EROS和TERRA,并准备接受未来所有传感器的信息。
  强大的多光谱影像处理功能  ENVI能够充分提取图像信息,具备全套完整的遥感影像处理工具,能够进行文件处理、图像增强、掩膜、预处理、图像计算和统计,完整的分类及后处理工具,及图像变换和滤波工具、图像镶嵌、融合等功能。
ENVI遥感影像处理软件具有丰富完备的投影软件包,可支持各种投影类型。
同时,ENVI还创造性地将一些高光谱数据处理方法用于多光谱影像处理,可更有效地进行知识分类、土地利用动态监测。
  更便捷地集成栅格和矢量数据  ENVI包含所有基本的遥感影像处理功能,如:校正、定标、波段运算、分类、对比增强、滤波、变换、边缘检测及制图输出功能,并可以加注汉字。
ENVI具有对遥感影像进行配准和正射校正的功能,可以给影像添加地图投影,并与各种GIS数据套合。
ENVI的矢量工具可以进行屏幕数字化、栅格和矢量叠合,建立新的矢量层、编辑点、线、多边形数据,缓冲区分析,创建并编辑属性并进行相关矢量层的属性查询。
  ENVI的集成雷达分析工具助您快速处理雷达数据  用ENVI完整的集成式雷达分析工具可以快速处理雷达SAR数据,提取CEOS信息并浏览RADARSAT和ERS-1数据。
用天线阵列校正、斜距校正、自适应滤波等功能提高数据的利用率。
纹理分析功能还可以分段分析SAR数据。
ENVI还可以处理极化雷达数据,用户可以从SIR-C和AIRSAR压缩数据中选择极化和工作频率,用户还可以浏览和比较感兴趣区的极化信号,并创建幅度图像和相位图像。
  地形分析工具  ENVI具有三维地形可视分析及动画飞行功能,能按用户制定路径飞行,并能将动画序列输出为MPEG文件格式,便于用户演示成果。
  准备您的影像  ENVI提供了自动预处理工具,可以快速、轻松地预处理影像,以便进行查看浏览或其他分析。
通过ENVI,您可以对影像进行以下处理:  •正射校正  •影像配准  •影像定标  •大气校正  •创建矢量叠加  •确定感兴趣区域(ROIs)  •创建数字高程模型(DEMs)  •影像融合,掩膜和镶嵌  •调整大小,旋转,或数据类型转换  探测影像  ENVI提供了一个直观的用户界面和易用的工具,让您轻松、快速地浏览和探测影像。
您可以使用ENVI完成的工作包括:浏览大型数据集和元数据,对影像进行视觉对比,创建强大的3D场景,创建散点图,探测像素特征等。
  分析影像  ENVI提供了业界领先的图像处理功能,方便您从事各种用途的信息提取。
ENVI提供了一套完整的经科学实践证明的成熟工具来帮助您分析影像。
  数据分析工具  ENVI包括一套综合数据分析工具,通过实践证明的成熟算法快速、便捷、准确地分析图像。
  •创建地理空间统计资料,如自相关系数和协方差  •计算影像统计信息,如平均值、最小/最大值、标准差  •提取线性特征  •合成雷达影像  •主成分计算  •变化检测  •空间特征测量  •地形建模和特征提取  •应用通用或自定义的滤波器  •执行自定义的波段和光谱数学函数  光谱分析工具  光谱分析通过像素在不同波长范围上的反应,来获取有关物质的信息。
ENVI拥有目前最先进的,易于使用的光谱分析工具,能够很容易地进行科学的影像分析。
ENVI的光谱分析工具包括以下功能:  •监督和非监督方法进行影像分类  •使用强大的光谱库识别光谱特征  •检测和识别目标  •识别感兴趣的特征  •对感兴趣物质的分析和制图  •执行像素级和亚像素级的分析  •使用分类后处理工具完善分类结果  •使用植被分析工具计算森林健康度  共享您的信息  ENVI能轻松地整合现有的工作流,让您能在任何环境中与同事们分享地图和报告。
所处理的图像可以输出成常见的矢量格式和栅格影像便于协同和演示。
  自定义您的地理空间影像应用  ENVI建立于一个强大的开发语言—IDL之上。
IDL允许对其特性和功能进行扩展或自定义,以符合用户的具体要求。
这个强大而灵活的平台,可以让您创建批处理、自定义菜单、添加自己的算法和工具,甚至将C++和Java代码集成到您的工具中等。
  自2007年起,与著名的GIS厂商ESRI公司开展全面战略合作,ENVIReaderforArcGIS模块让ArcGIS系列软件全面支持ENVI的数据格式,最新版本ENVI4.5完全支持ArcGIS的Geodatabase等。
2024/10/15 19:08:32 2.72MB envi
1
有界缓冲区内设有20个存储单元,放入/取出的数据项设定为1~20这20个整型数。
1.每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者线程的标识符;
2.生产者和消费者各有两个以上;
3.多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代码。
1
GDI+SDK参考(翻译版本)序言 4目标 4适用范围 4适用读者 4运行环境 4文档组织 4相关主题 4GDI+的安全考虑 6检验构造函数调用成功与否 6分配缓冲区 6错误校验 8线程同步 9相关主题 10关于GDI+ 11GDI+介绍 11GDI+概览 11GDI+的三个组成部分 11基于类的接口架构 12GDI+提供了哪些新东西? 12新特征 12编程模式的改变 15线条、曲线和图形 19矢量图概览 19钢笔、线条和矩形 20椭圆和弧 22多边形 22基数样条 23贝塞尔样条 24路径 25画刷和填充图形 27开放与闭合曲线 29区域 30裁剪 31路径平直化 32线条和曲线的抗锯齿功能 32图象、位图和图元文件 33位图类型 34图元文件 37绘制、定位和复制图片 39裁剪和缩放图象 40坐标系统和转换 42坐标系统类型 42以矩阵来表示转换 44全局和局部转换 48图形容器 51使用GDI+ 56使用入门 56绘制线条 56绘制字符串 58使用钢笔绘制线条和形状 59使用钢笔绘制线条和矩形 59设置钢笔的宽度和对齐方式 60绘制具有线帽的线条 61联接线条 62绘制自定义虚线 62绘制用纹理填充的线条 63使用画笔填充形状 63用纯色填充形状 64用阴影图案填充形状 64用图像纹理填充形状 64在形状中平铺图像 65用渐变色填充形状 68使用图像、位图和图元文件 68加载和显示位图 68加载和显示图元文件 69记录图元文件 69剪裁和缩放图像 71旋转、反射和扭曲图像 72缩放时使用插值模式控制图像质量 73创建缩略图像 75采用高速缓存位图来提高性能 76通过避免自动缩放改善性能 76读取图像元数据 77使用图像编码器和解码器 83列出已安装的编码器 83列出已安装的解码器 84获取解码器的类标识符 86获取编码器的参数列表 88将BMP图像转换为PNG图像 100设定JPEG的压缩等级 101对JPEG图像进行无损变换 102创建和保存多帧图像 105从多帧图像中复制单帧 107Alpha混合线条和填充 109绘制不透明和半透明的线条 109用不透明和半透明的画笔绘制 110使用复合模式控制Alpha混合 111使用颜色矩阵设置图像中的Alpha值 112设置单个象素的alpha值 114使用字体和文本 115构造字体系列和字体 115绘制文本 116格式化文本 117枚举已安装的字体 120创建专用的字体集合 122获取字体规格 126对文本使用消除锯齿效果 130构造并绘制曲线 131绘制基数样条曲线 131绘制贝塞尔样条 133用渐变画刷填充形状 134创建线性渐变 134创建路径渐变 137将Gamma校正应用于渐变 144构造并绘制路径 145使用线条、曲线和形状创建图形 145填充开放式图形 147使用图形容器 147管理Graphics对象的状态 148使用嵌套的Graphics容器 151变换 154使用世界变换 154为什么变换顺序非常重要 155使用区域 156对区域使用点击检测 156对区域使用剪辑 157对图像重新着色 158使用颜色矩阵对单色进行变换 158转换图像颜色 160缩放颜色 161旋转颜色 164剪取颜色 166使用颜色重映射表 168打印 169将GDI+输出至打印机 169显示一个打印对话框 172通过提供打印机句柄优化打印 173附录:GDI+参考 176
2024/10/10 11:31:03 1.75MB GDI+ GDI+中文 GDI+帮助
1
C#源代码如何实现点对点的聊天,一个比较详尽的实现点对点聊天的源代码核心代码:stringMyMessage=this.textBox2.Text+":"+this.richTextBox1.Text+"\n"; //根据目标计算机地址建立连接 TcpClientMyTcpClient=newTcpClient(this.textBox1.Text,888); //获得用于网络访问的数据流 NetworkStreamMyTcpStream=MyTcpClient.GetStream(); StreamWriterMyStream=newStreamWriter(MyTcpStream); //将字符串写入流 MyStream.Write(MyMessage); //将缓冲数据写入基础流 MyStream.Flush(); //关闭网络流 MyStream.Close(); MyTcpClient.Close(); this.richTextBox3.AppendText(this.richTextBox1.Text+"\n"); this.richTextBox1.Clear();
2024/9/23 13:02:27 56KB C#源代码 点对点 聊天
1
MFC实现俄罗斯方块,基于对话框,添加过BGM,没能实现双缓冲技术
2024/9/19 0:08:29 1.24MB MFC C++ tetris
1
共 248 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡