基于c++的词法分析器。
实现了识别保留字、标识符、常量、科学计数法、识别注释、负号的识别、标识符、分隔符、和大小括号的匹配(利用出入栈)
2024/10/18 7:03:06 2KB c++
1
《C和指针》提供与C语言编程相关的全面资源和深入讨论。
《C和指针》通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。
全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。
书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
第1章 快速上手1.1 简介1.1.1 空白和注释1.1.2 预处理指令1.1.3 main函数1.1.4 read_column_numbers函数1.1.5 rearrange函数1.2 补充说明1.3 编译1.4 总结第2章 基本概念2.1 环境2.1.1 翻译2.1.2 执行2.2 词法规则2.2.1 字符2.2.2 注释2.2.3 自由形式的源代码2.2.4 标识符2.2.5 程序的形式2.3 程序风格2.4 总结第3章 数据3.1 基本数据类型3.1.1 整型家族3.1.2 浮点类型3.1.3 指针3.2 基本声明3.2.1 初始化3.2.2 声明简单数组3.2.3 声明指针3.2.4 隐式声明3.3 typedef3.4 常量3.5 作用域3.5.1 代码块作用域3.5.2 文件作用域3.5.3 原型作用域3.5.4 函数作用域3.6 链接属性3.7 存储类型3.8 static关键字3.9 作用域、存储类型示例3.10 总结第4章 语句4.1 空语句4.2 表达式语句4.3 代码块4.4 if语句4.5 while语句4.5.1 break和continue语句4.5.2 while语句的执行过程4.6 for语句4.7 do语句4.8 switch语句4.8.1 switch中的break语句4.8.2 default子句4.8.3 switch语句的执行过程4.9 goto语句4.10 总结第5章 操作符和表达式5.1 操作符5.1.1 算术操作符5.1.2 移位操作符5.1.3 位操作符5.1.4 赋值5.1.5 单目操作符5.1.6 关系操作符5.1.7 逻辑操作符5.1.8 条件操作符5.1.9 逗号操作符5.1.10 下标引用、函数调用和结构成员5.2 布尔值5.3 左值和右值5.4 表达式求值5.4.1 隐式类型转换5.4.2 算术转换5.4.3 操作符的属性5.4.4 优先级和求值的顺序5.5 总结第6章 指针6.1 内存和地址6.2 值和类型6.3 指针变量的内容6.4 间接访问操作符6.5 未初始化和非法的指针6.6 NULL指针6.7 指针、间接访问和左值6.8 指针、间接访问和变量6.9 指针常量6.10 指针的指针6.11 指针表达式6.12 实例6.13 指针运算6.13.1 算术运算6.13.2 关系运算6.14 总结第7章 函数7.1 函数定义7.2 函数声明7.2.1 原型7.2.2 函数的缺省认定7.3 函数的参数7.4 ADT和黑盒7.5 递归7.5.1 追踪递归函数7.5.2 递归与迭代7.6 可变参数列表7.6.1 stdarg宏7.6.2 可变参数的限制7.7 总结第8章 数组8.1 一维数组8.1.1 数组名8.1.2 下标引用8.1.3 指针与下标8.1.4 指针的效率8.1.5 数组和指针8.1.6 作为函数参数的数组名8.1.7 声明数组参数8.1.8 初始化8.1.9 不完整的初始化8.1.10 自动计算数组长度8.1.11 字符数组的初始化8.2 多维数组8.2.1 存储顺序8.2.2 数组名8.2.3 下标8.2.4 指向数组的指针8.2.5 作为函数参数的多维数组8.2.6 初始化8.2.7 数组长度自动计算8.3 指针数组8.4 总结第9章 字符串、字符和字节9.1 字符串基础9.2 字符串长度9.3 不受限制的字符串函数9.3.1 复制字符串9.3.2 连接字符串9.3.3 函数的返回值9.3.4 字符串比较9.4 长度受限的字符串函数9.5 字符串查找基础9.5.1 查找一个字符9.5.2 查找任何几个字符9.5.3 查找一个子串9.6 高级字符串查找9.6.1 查找一个字符串前缀9.6.2 查找标记9.7 错误信息9.8 字符操作9.8.1 字符分类9.8.2 字符转换9.9 内存操作9.10 总结第10章 结构和联合10.1 结构基础知识10.1.1 结构声明10.1.2 结构成
2024/10/13 3:32:42 29.13MB c和指针 pdf 下载 编程
1
本框架提供了有关粒子群算法(PSO)和遗传算法(GA)的完整实现,以及一套关于改进、应用、测试、结果输出的完整框架。
本框架对粒子群算法与遗传算法进行逻辑解耦,对其中的改进点予以封装,进行模块化,使用者可以采取自己对该模块的改进替换默认实现组成新的改进算法与已有算法进行对比试验。
试验结果基于Excel文件输出,并可通过设定不同的迭代结束方式选择试验数据的输出方式,包括:1.输出随迭代次数变化的平均达优率数据(设定终止条件区间大于0)。
2.输出随迭代次数变化的平均最优值数据(设定终止条件区间等于0)。
本框架了包含了常用基准函数的实现以及遗传算法与粒子群算法对其的求解方案实现和对比,如TSP,01背包,Banana函数,Griewank函数等。
并提供大量工具方法,如KMeans,随机序列生成与无效序列修补方法等等。
对遗传算法的二进制编码,整数编码,实数编码,整数序列编码(用于求解TSP等),粒子群算法的各种拓扑结构,以及两种算法的参数各种更新方式均有实现,并提供接口供使用者实现新的改进方式并整合入框架进行试验。
其中还包括对PSO进行离散化的支持接口,和自己的设计一种离散PSO方法及其用以求解01背包问题的实现样例。
欢迎参考并提出宝贵意见,特别欢迎愿意协同更新修补代码的朋友(邮箱starffly@foxmail.com)。
代码已作为lakeast项目托管在GoogleCode:http://code.google.com/p/lakeasthttp://code.google.com/p/lakeast/downloads/list某些类的功能说明:org.lakest.common中:BoundaryType定义了一个枚举,表示变量超出约束范围时为恢复到约束范围所采用的处理方式,分别是NONE(不处理),WRAP(加减若干整数个区间长度),BOUNCE(超出部分向区间内部折叠),STICK(取超出方向的最大限定值)。
Constraint定义了一个代表变量约束范围的类。
Functions定义了一系列基准函数的具体实现以供其他类统一调用。
InitializeException定义了一个代表程序初始化出现错误的异常类。
Randoms类的各个静态方法用以产生各种类型的随机数以及随机序列的快速产生。
Range类的实现了用以判断变量是否超出约束范围以及将超出约束范围的变量根据一定原则修补到约束范围的方法。
ToStringBuffer是一个将数组转换为其字符串表示的类。
org.lakeast.ga.skeleton中:AbstractChromosome定义了染色体的公共方法。
AbstractDomain是定义问题域有关的计算与参数的抽象类。
AbstractFactorGenerator定义产生交叉概率和变异概率的共同方法。
BinaryChromosome是采用二进制编码的染色体的具体实现类。
ConstantFactorGenerator是一个把交叉概率和变异概率定义为常量的参数产生器。
ConstraintSet用于在计算过程中保存和获取应用问题的各个维度的约束。
Domain是遗传算法求解中所有问题域必须实现的接口。
EncodingType是一个表明染色体编码类型的枚举,包括BINARY(二进制),REAL(实数),INTEGER(整型)。
Factor是交叉概率和变异概率的封装。
IFactorGenerator参数产生器的公共接口。
Population定义了染色体种群的行为,包括种群的迭代,轮盘赌选择和交叉以及最优个体的保存。
org.lakeast.ga.chromosome中:BinaryChromosome二进制编码染色体实现。
IntegerChromosome整数编码染色体实现。
RealChromosome实数编码染色体实现。
SequenceIntegerChromosome整数序列染色体实现。
org.lakeast.pso.skeleton中:AbstractDomain提供一个接口,将粒子的位置向量解释到离散空间,同时不干扰粒子的更新方式。
AbstractF
2024/10/11 21:51:28 1.42MB 遗传算法 粒子群算法 GA PSO
1
E6术的研究和自动测试实例的设计与实现摘要随着计算机软件的规模越来越大,软件测试成为了软件质量保障的关键环节,软件测试自动化也成为了软件测试领域所无法逾越的发展阶段....第一章引言1.1选题背景软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保障的关键步骤。
其定义可简略概括为:为了发现错误而运行程序的过程。
随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一......1.2本文的目标和主要工作第二章性能测试研究2.1软件测试概述2.2.1性能测试2.2.2测试工具2.2主流性能测试工具比较第三章项目分析与规划测试3.1《学生XX管理系统1.3版》项目分析3.1.2功能概述3.1.3系统组件与配置3.1.4分析使用模型及任务分布3.2定义负载测试目标3.3测试思路与测试方案设计3.3.1设计压力应用思路3.3.2测试方案设计3.3.3性能测试用例第四章学生XX管理系统性能测试实例的实现4.1创建用户脚本4.2完善测试脚本4.2.1事务设置4.2.2用参数化取代常量值4.2.3集合点4.2.4脚本检验4.3方案执行4.3.1场景创建4.3.2加压计划4.3.3多IP地址4.4运行结果处理分析4.4.1Throughput4.4.2TransactionResponseTime4.4.3分解界面4.4.4针对测试用例3的图表分析第五章测试总结致谢参考文献
1
KAREL是一种与Pascal非常相似的低级语言。
它具有强类型变量,常量,自定义类型,过程,函数,并且可以访问您可能无法使用TP的各种有用的内置函数。
KAREL是一种编译语言; 源必须从KAREL源文件(.KL)转换为p-code(.PC),然后才能在控制器上加载和执行。
一旦您的KAREL程序加载到控制器上,它就像一个黑匣子 ; 您不能像TP程序一样看到源代码或步骤。
作为R-30iB控制器,您的机器人必须具有KAREL软件选项才能加载您自己的自定义KAREL程序。
2024/10/7 8:04:22 6.11MB FANUC KAREL 机器人
1
设计一个包含学生基本信息(学号,姓名,成绩)的顺序表,编程完成如下功能:⑴初始化顺序表L:根据用户指定的学生数,逐个输入学生信息;
⑵打印表中所有学生信息:逐个显示表中所有学生的基本信息;
⑶判断L是否为空表;
⑷查找指定学生:根据姓名进行查找,返回学生的位序,并输出学生的学号和成绩;
⑸根据指定的位置,返回并输出相应学生的基本信息;
⑹给定一个学生信息,将其插入到表中指定的位置;
⑺删除指定位置的学生记录;
⑻统计表中学生个数(求表长度);
⑼销毁表L;
以上为必做题,下面为附加题(选做)。
⑽建立两个有序(学号)的学生顺序表La和Lb:分别向顺序表La和Lb逐个输入m个和n个学生的信息(并不一定按学号大小顺序输入);
⑾打印表La和Lb中的学生信息;
⑿将La和Lb归并为新的有序表Lc;
⒀打印表Lc中的学生信息;
⒁销毁顺序表La、Lb和Lc。
其他要求:⑴将所需要的标准头文件以及一些符号常量的定义等放在Common.h头文件中;
⑵顺序表类型定义(采用定义二)和基本操作函数声明放在Sqlist.h头文件中;
⑶基本操作函数的实现放在Sqlist.cpp文件中;
⑷测试应用程序放在SqlistTestApp.cpp文件中(可以任意重复测试)。
2024/9/22 21:16:40 768KB 顺序表
1
利用二维光子晶体仿真设计了四信道光滤波器.首先根据时域耦合模理论导出了实现100%信道耦合的条件;然后根据该条件设计了四信道滤波器,并利用时域有限差分法进行了仿真.仿真结果显示,四信道耦合效率均超过96%,当晶格常量取570nm时,四信道的中心频率在1520nm到1580nm之间,信道间隔均小于20nm,信道间窜扰很小。
505KB 11
1
VisualBasic.NET提供了大量的工具和语言方面的功能。
当然,不可能用一本书包含VisualBasic.NET的所有内容,这些内容要用一个书库来容纳。
本书的目的是让您尽快入门,它相当于一个路标,可以指导您的学习。
在介绍完创建应用程序的基础知识后(如创建窗口和对话框,如何用代码处理突发事件,什么是面向对象的程序设计,以及如何在应用程序中使用它等)。
目录:第1章初识VisualBasic.NET11.1Windows和DOS编程11.2安装VisualBasic.NET31.3VisualBasic.NET集成开发环境71.3.1配置文件设置页71.3.2Projects选项卡71.3.3菜单81.3.4工具栏91.4创建简单的应用程序101.4.1VisualStudio.NET集成开发环境中的窗口121.4.2工具箱141.4.3改进型匈牙利表示法171.4.4代码编辑器181.5使用帮助系统211.6小结231.7练习23第2章Microsoft.NETFramework242.1Microsoft的信心来自于Windows242.1.1MSN1.0252.1.2.NET理念252.1.3.NET与Java有些类似262.1.4现在所处的阶段272.2为Windows编写软件272.2.1.NETFramework类282.2.2执行代码292.3公共语言运行库302.3.1载入并执行代码312.3.2应用程序隔离312.3.3安全性312.3.4互操作322.3.5异常处理322.4通用类型系统和公共语言规范322.5小结332.6练习33第3章编写软件343.1信息和数据343.1.1算法343.1.2编程语言353.2变量363.3注释和空白383.3.1注释383.3.2空白393.4数据类型393.4.1使用数字393.4.2使用字符串453.4.3使用日期523.4.4布尔型583.5存储变量583.5.1二进制593.5.2位和字节593.5.3值的表示603.5.4值的转换613.6方法633.6.1使用方法的原因633.6.2创建方法673.6.3选择方法名称693.6.4作用域703.7小结723.8练习72第4章流程控制734.1做出决策734.2If语句734.2.1Else语句754.2.2可进行多重选择的ElseIf语句764.2.3嵌套的If语句774.2.4单行If语句784.2.5比较运算符784.2.6字符串比较864.3SelectCase语句874.3.1使用SelectCase语句884.3.2不区分大小写的SelectCase语句914.3.3多重选择934.3.4CaseElse语句954.3.5SelectCase中的不同数据类型964.4循环964.4.1For…Next循环964.4.2ForEach…Next循环1004.4.3Do…Loop循环1014.4.4嵌套循环1074.4.5提前退出循环1084.4.6死循环1104.5小结1114.6练习111第5章处理数据结构1125.1数组1125.1.1定义和使用数组1125.1.2用值初始化数组1205.2枚举1215.2.1使用枚举1215.2.2确定状态1245.2.3设置无效值1275.3常量1275.3.1使用常量1285.3.2改变常量1295.3.3各种常量类型1305.4结构1305.4.1创建结构1305.4.2为结构添加属性1335.5集合和列表1335.5.1使用数组列表1345.5.2从数组列表中进行删除操作1375.5.3显示数组列表中的项1405.5.4集合1415.6用散列表创建查询表1445.6.1使用散列表1455.6.2Remove.RemoveAt和Clear方法1485.6.3区分大小写1505.7高级数组操作1525.8小结1545.9练习155第6章构建Windo
2024/8/26 10:30:34 11.93MB VB.NET 入门经典 (第三版) vb.net
1
参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。
有个亮点是利用字符在dos界面显示二叉树的结构形态。
里面包含了完整的源程序和实验报告文档。
实验报告包含了完整的步骤包括:一.抽象数据类型二叉树的定义二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现三.测试方案。
包括详细的测试函数四.测试结果。
对所有操作的测试过程中二叉树的变化截图。
五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。
六.实验总结和体会实现的基本操作如下:InitBiTree(&T)DestroyBiTree(&T)CreateBiTree(&T)ClearBiTree(&T)BiTreeEmpty(T)BiTreeDepth(T)Root(T)Value(T,e)Assign(T,&e,value)Parent(T,e)LeftChild(T,e)RightChild(T,e)LeftSibling(T,e)RightSibling(T,e)InsertChild(T,p,LR,c)DeleteChild(T,p,LR)PreOrderTraverse(T,Visit())InOrderTraverse(T,Visit())PostOrderTraverse(T,Visit())LevelOrderTraverse(T,Visit())下载清单:Base.h//全局常量、公共变量、公共函数等BiTree.h//二叉链表二叉树实现BiTree_Main.cpp//二叉链表二叉树测试程序SqBiTree.h//顺序存储二叉树实现SqBiTree_Main.cpp//顺序存储二叉树测试程序抽象数据类型实现-二叉树-实验报告.doc
1
谭浩强-C++程序设计内容目录:第1篇基本知识第1章C++的初步知识*1.1从C到C++*1.2最简单的C++程序1.3C++程序的构成和书写形式1.4C++程序的编写和实现1.5关于C++上机实践第2章数据类型与表达式2.1C++的数据类型2.2常量2.3变量2.4C++的运算符2.5算术运算符与算术表达式2.6赋值运算符与赋值表达式2.7逗号运算符与逗号表达式第2篇面向过程的程序设计第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序和语句3.3赋值语句3.4C++的输入与输出3.5编写顺序结构的程序3.6关系运算和逻辑运算3.7选择结构和if语句3.8条件运算符和条件表达式3.9多分支选择结构和switch语句3.10编写选择结构的程序3.11循环结构和循环语句3.12循环的嵌套3.13break语句和continue语句3.14编写循环结构的程序第4章函数与预处理4.1概述4.2定义函数的一般形式4.3函数参数和函数的值4.4函数的调用*4.5内置函数*4.6函数的重载*4.7函数模板*4.8有默认参数的函数4.9函数的嵌套调用4.10函数的递归调用4.11局部变量和全局变量4.12变量的存储类别4.13变量属性小结4.14关于变量的声明和定义4.15内部函数和外部函数4.16预处理命令第5章数组5.1数组的概念5.2一维数组的定义和引用5.3二维数组的定义和引用5.4用数组名作函数参数5.5字符数组*5.6C++处理字符串的方法——字符串类与字符串变第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8有关指针的数据类型和指针运算的小结*6.9引用第7章自定义数据类型7.1结构体类型7.2共用体7.3枚举类型7.4用typedef声明类型第3篇基于对象的程序设计第8章类和对象8.1面向对象程序设计方法概述8.2类的声明和对象的定义8.3类的成员函数8.4对象成员的引用8.5类的封装性和信息隐蔽8.6类和对象的简单应用举例第9章关于类和对象的进一步讨论9.1构造函数9.2析构函数9.3调用构造函数和析构函数的顺序9.4对象数组9.5对象指针9.6共用数据的保护9.7对象的动态建立和释放9.8对象的赋值和复制9.9静态成员9.10友元9.11类模板第10章运算符重载10.1什么是运算符重载10.2运算符重载的方法10.3重载运算符的规则10.4运算符重载函数作为类成员函数和友元函数10.5重载双目运算符10.6重载单目运算符10.7重载流插入运算符和流提取运算符10.8不同类型数据间的转换第4篇面向对象的程序设计第11章继承与派生11.1继承与派生的概念11.2派生类的声明方式11.3派生类的构成11.4派生类成员的访问属性11.5派生类的构造函数和析构函数11.6多重继承11.7基类与派生类的转换11.8继承与组合11.9继承在软件开发中的重要意义第12章多态性与虚函数12.1多态性的概念12.2一个典型的例子12.3虚函数12.4纯虚函数与抽象类第13章输入输出流13.1C++的输入和输出13.2标准输出流13.3标准输入流13.4文件操作与文件流13.5字符串流
1
共 109 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡