编程

阅读 / 问答 / 标签

等离子切割机是如何自动编程?

首先打开安装界面,单击安装FASFCAM---选择EDGE( 这个是必须的不然产生的不是TXT文件)再按照软件安装的提示做就可以做好了。先在CAD当中画好需要的图,保存其文件格式为AUTOCAD 2000/LT2000 . DWG 或 DXF 两种格式都可以。再编程时FASTNEST设置输入文件类型DXF。然后把设置穿孔设好就可以了,下面套料的时候注意:DWG格式的需要把选择的文件类型对应不然你是看不到,保存的文件的。DXF格式的则是软件默认的文件类型直接编程及可。

C语言编程,题:输入M个不同的字符,从中选出N个字符,输出所有可能的方案。M,N由键盘输入.xie

是随机出现吗???组合问题??

C语言编程,要将100元钱换成1元,2元,5元的零钱.每种钱数大于0,而且为5的倍数,编程计算有多少种换法?

#include<stdio.h>void main(){ int a,b,c,count=0; for(a=5;a<100;a+=5) for(b=5;b<50;b+=5) if((100-a-2*b)%5==0 && ((100-a-2*b)/5)%5==0) count++; printf("%d ",count);}

SIEMENS数控系统编程指令详解及综合实例的目录

第1章 基本概念1.1 插补功能1.2 进给功能1.3 参考点1.4 机床零点1.5 坐标系1.5.1 机床坐标系1.5.2 工件坐标系1.6 主轴功能1.7 切削速度1.8 辅助功能1.9 主程序和子程序1.10 准备机能1.11 刀具长度与半径补偿功能1.11.1 对刀仪测量法1.11.2 手动测量法1.12 极坐标1.13 绝对尺寸/增量尺寸1.14 模态/非模态第2章 编程语言详解2.1 准备功能(G指令)2.1.1 GOO快速定位(模态指令)2.1.2 G01直线插补(模态指令)2.1.3 G02/G03圆弧插补(模态指令)2.1.4 G02/G03 TURN螺旋线插补2.1.5 G04暂停时间(非模态指令)2.1.6 G17、G18、G19平面选择(模态指令)2.1.7 G40、G41、G42刀具半径补偿功能(模态指令)2.1.8 G33恒螺距螺纹切削(模态指令)2.1.9 G53、G153、SUPA(非模态)、(3-500(模态指令)2.1.10 G54、G65、G56、G57工件坐标系(模态指令)2.1.11 G09(非模态指令)、G60(模态指令)准确停止2.1.12 G63攻螺纹方式(非模态指令)2.1.13 G64/G641连续切削加工方式(模态指令)2.1.14 G70/G7l/G700/G7lO公制/英制编程单位选择(模态指令)2.1.15 G74自动返回到参考点(非模态指令)2.1.16 G90/G91绝对/增量尺寸(模态指令)2.1.17 G94/G95进给速度单位变换(模态指令)2.1.18 G110、G111、G112定义极坐标极点(非模态指令)2.1.19 G331/G332刚性攻螺纹(模态指令)2.1.20 G450/G451拐角外部补偿(模态指令)2.1.21 CHF/CHR倒斜线角功能(非模态指令)2.1.22 RND/RNDM倒圆弧角功能2.1.23 CIP过中间点的圆弧插补2.1.24 G25/G26工作区域及主轴转速限定(非模态指令)2.2 辅助功能(M功能)2.3 标准循环2.3.1 MCALL CYCLE812.3.2 MCALL CYCLE822.3.3 MCALL CYCLE832.3.4 MCALL CYCLE842.3.5 MCALL CYCLE8402.3.6 MCALL CYCLE852.3.7 MCALL CYCLE862.3.8 MCALL CYCLE872.3.9 MCALL CYCLE882.3.1 MCALL CYCLE892.3.11 MCALL CYCLE902.3.12 HOLES12.3.13 HOLES22.3.14 CYCLE8012.3.15 LONGHOLE2.3.16 SLOT12.3.17 SLOT22.4 FRAME功能概述2.4.1 TRANS、ATRANS可编程零点偏移(非模态指令)2.4.2 ROT、AROT坐标系旋转(非模态指令)2.4.3 SCALE、ASCALE可编程比例系数缩放(非模态指令)2.4.4 MIRROR、AMIRROR镜像功能(非模态指令)2.5 参数编程与程序跳跃2.5.1 参数编程2.5.2 程序跳跃2.6 子程序与重复语句2.6.1 子程序调用2.6.2 重复语句2.7 特殊功能2.7.1 TRAILON联动指令打开2.7.2 TRAILOF联动指令关闭2.7.3 GEOAX几何轴给定第3章 编程实例与习题3.1 基础篇编程实例3.1.1 钻孔编程实例3.1.2 圆弧铣削编程实例3.1.3 整圆编程实例3.1.4 直线、圆、圆弧综合编程实例3.1.5 极坐标编程实例13.1.6 极坐标编程实例23.1.7 坐标旋转编程实例3.1.8 螺旋线插补编程实例3.1.9 均布圆周孔加工编程实例3.1.10 均布直线孔排列编程实例3.1.11 绝对坐标平移与附加坐标平移编程实例3.1.12 倒斜角编程实例3.1.13 倒圆弧角编程实例3.1.14 比例缩放编程实例3.1.15 镜像功能编程实例3.1.16 网状孔排列加工编程实例3.1.17 重复语句编程实例3.1.18 G18平面编程实例3.2 特殊篇编程实例3.2.1 主程序调用子程序编程实例3.2.2 条件语句编程实例3.2.3 凸轮加工编程实例3.2.4 椭圆加工编程实例3.2.5 链轮式加工编程实例3.2.6 三维斜面加工编程实例3.2.7 三维曲面加工编程实例3.2.8 球面加工编程实例3.2.9 标轴旋转编程实例3.2.10 联动指令编程实例3.2.11 圆柱面加工编程实例3.2.12 钻圆盘孔编程实例3.2.13 半椭圆球加工实例3.3 综合编程实例3.3.1 钻、铣、攻螺纹综合编程实例3.3.2 钻、铰、铣综合编程实例3.3.3 铣削综合编程实例3.3.4 综合铣削实例3.3.5 钻、镗、铣、攻螺纹综合编程实例附录一西门子系统通信简易使用说明一、PCIN软件参数设置二、机床NC中通信参数设置三、通信电缆线四、数据传输、DNC的操作方法与步骤五、常见问题及解决办法附录二常用国产刀具切削用量附录三A ISO标准中的G代码B SIEMENS 840D系统中G功能/预备条件C SIEMENS 840D系统开机默认功能参考文献

mfc编程,当鼠标左键按下后,拖动鼠标可以在视图上画出一系列点来,鼠标抬起则停止

用一个数组记录鼠标移动过程中的坐标;用两个变量分别记录线的颜色和粗细值;添加两个菜单,对应修改颜色和粗细值的变量;响应OnMouserMove,把鼠标移动过程中的每个点记录在数组中;在OnPaint中绘制数组中记录的点,用那个颜色和粗细变量

从零开始学编程要看哪些书

不知道你想学习编程的哪个语言?给你推荐2本适合Java入门的书籍:1、《Head First Java, 2nd Edition(中文版》Head First Java是所有编程或者Java初学者最适合的书籍,轻松和寓教于乐的Head First风格,这应该是最有意思的关于Java的书。无论是初级,中级还是高级都能从中有所收获。学习本书,你可以了解到类,对象,线程,集合等编程知识,还可以了解到泛型,枚举,可变参数和自动装箱等语言特性。本书中还涉及到了Java高级编程中的Swing,网络编程,IO操作等,可以让初学者对Java有比较完整地概念。如果你是一位Java初学者,不要犹豫,这本书最适合你了。2、《Java 核心技术(卷1、2)》Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。)根据Java SE 7全面更新,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。写作风格相比 Head First 趣味性来说更显传统,所涵盖的内容包括 Java 基础知识及高级应用,是对于入门来说的另一种选择。

初学计算机编程语言推荐几本书

易语言中文的很简单

请问 大话设计模式 这本书讲的是什么编程语言?我学C#和C++能看这本书吗?

有关“设计模式”的啊世界上第一本设计模式书,堪称经典的GOF《设计模式》基于C++的。不过我推荐你看《HeadFirst设计模式》,虽然基于java语言,但是这本书写的比较简单生动一些,比较好理解。有关“设计模式”的比较经典的书有:GOF《设计模式》、《HeadFirst设计模式》、《设计模式解析2》《大话设计模式》。这几本书只有第一个GOF《设计模式》是基于C++的。这几本书按难易程度是《大话设计模式》最简单,《HeadFirst设计模式》次之,《设计模式解析2》第三简单,GOF《设计模式》最枯燥但也可能是最深入的。如果你非要C#的,也有,库珀(JamesW.Cooper)编著,叶斌翻译的《C#设计模式》。

Vb编程:输入5*5矩阵,求出每列元素之和,并把最大值的那一列上的个元素和第一列上个元素进行对调。救急!

做了一个类 Matrix.clsOption ExplicitDim mMatrix(0 To 4, 0 To 4) As DoubleDim mSum(0 To 4) As DoublePublic Sub InitMatrix() Dim i As Integer Dim j As Integer For i = 0 To 4 For j = 0 To 4 mMatrix(i, j) = i + j Next j Next iEnd SubPublic Sub GetMSum() Dim i As Integer Dim j As Integer For i = 0 To 4 mSum(i) = 0 For j = 0 To 4 mSum(i) = mSum(i) + mMatrix(j, i) Next j Next iEnd SubPublic Sub ChgMatrix() "get max column Dim i As Integer Dim iMaxIdx As Integer Dim dMax As Double dMax = mSum(0) For i = 0 To 4 If mSum(i) > dMax Then iMaxIdx = i dMax = mSum(i) End If Next i Debug.Print "max = " & iMaxIdx "exchange the column with first column Dim j As Integer Dim dTemp As Double For i = 0 To 4 dTemp = mMatrix(i, iMaxIdx) mMatrix(i, iMaxIdx) = mMatrix(i, 0) mMatrix(i, 0) = dTemp Next iEnd SubPublic Sub PrintMatrix() Dim i As Integer Dim j As Integer Dim sLine As String Debug.Print "print matrix====== " For i = 0 To 4 sLine = "" For j = 0 To 4 sLine = sLine & mMatrix(i, j) & " " Next j Debug.Print sLine Next iEnd SubPublic Sub PrintSum() Dim i As Integer Dim j As Integer Dim sLine As String Debug.Print "print Sum====== " sLine = "" For i = 0 To 4 sLine = sLine & mSum(i) & " " Next i Debug.Print sLineEnd Sub调用该类Private Sub Command1_Click() Dim mMatrix As New Matrix mMatrix.InitMatrix mMatrix.PrintMatrix mMatrix.GetMSum mMatrix.PrintSum mMatrix.ChgMatrix mMatrix.PrintMatrixEnd Sub结果输出print matrix====== 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 print Sum====== 10 15 20 25 30 max = 4print matrix====== 4 1 2 3 0 5 2 3 4 1 6 3 4 5 2 7 4 5 6 3 8 5 6 7 4

编程 微机原理

1.DATA SEGMENTX DB -5Y DB ?DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,0JGE DYDYNEG ALDYDY:ADD AL,5MOV Y,ALMOV AH,4CHINT 21HCODE ENDSEND START2.DATA SEGMENTBUFF DB 100 DUP(?)COUNT1 DB ?COUNT2 DB ?COUNT3 DB ?DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXLEA SI,BUFFMOV CX,100 NEXT:CMP BYTE PTR [SI],0JG GREATERJL LESSINC COUNT2JMP NEXT1GREATER:INC COUNT1JMP NEXT1LESS:INC COUNT3NEXT1:INC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START3.NEXT:IN AL,26HTEST AL,01HJNZ NEXTMOV SI,1000HMOV CX,10NEXT1:MOV AL,[SI]OUT 20H,ALINC SILOOP NEXT1RET

java编程如何获取本地ip并显示在文本框中

jsp中:request方法客户端IP: request.getRemoteAddr()输出:192.168.0.106客户端主机名:request.getRemoteHost()输出:abcrequest.getHeader("Host") 输出:192.168.0.1:8080Web服务器名字:request.getServerName()输出:192.168.0.1服务器监听的端口:request.getServerPort()输出:8080 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪 原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp 文件,而是先由代理服务器去访问index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。于是可得出获得客户端真实IP地址的方法一:public String getRemortIP(HttpServletRequest request) {if (request.getHeader("x-forwarded-for") == null) {return request.getRemoteAddr();}return request.getHeader("x-forwarded-for");}获得客户端真实IP地址的方法二:public String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100用户真实IP为: 192.168.1.110

Java编程题 查询高考录取分数线?

import java.util.Scanner; public class test{public static void main(String[] args) {String choose="";int score=0;boolean bFlag = false; //只打印正确的选择System.out.println("请输入要查询的分数线(比如民办本科、艺术类本科、体育类本科、二本、一本):");choose = new Scanner(System.in).next();if (choose.trim().equalsIgnoreCase("民办本科")) {bFlag = true;score = 350;}else if (choose.trim().equalsIgnoreCase("艺术类本科")) {bFlag = true;score = 290;}else if (choose.trim().equalsIgnoreCase("体育类本科")) {bFlag = true;score = 280;}else if (choose.trim().equalsIgnoreCase("二本")) {bFlag = true;score = 445;}else if (choose.trim().equalsIgnoreCase("一本")) {bFlag = true;score = 555;}if (bFlag==true) {System.out.println(choose+"录取分数线: "+score+"分");}else {System.out.println("对不起,你的输入不正确!");}}}

C语言 编程

楼主可以先编写一下,之后我给你修改一下,看一下你的问题所在,我感觉比直接给你好

单片机原理及应用:编程实现四个整数45,90,128,79由小到大排列,并由P1端口依次输出结果。

单片机原理及应用这方面的我可以帮你的,

ATM128单片机编程应用。

发串了……

单片机原理与应用及C51编程技术/高玉芹/机械工业出版社 课后答案

吴鉴鹰单片机实战精讲中有相关问题的解释。在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的2/3,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。本文结合作者在单片机开发过程中体会,讨论硬件调试的技巧。  当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。  1 硬件静态的调试  1.1排除逻辑故障  这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。  1.2排除元器件失效  造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。  1.3排除电源故障  在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。  2 联机仿真调试  联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。  信号线是联络8031和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。  MAIN:MOVDPTR,#DPTR  ;将地址送入DPTR  MOVXA,@DPTR  ;将译码地址外RAM中的内容送入ACC  NOP;适当延时  SJMPMAIN;循环  执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1μs/每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。  对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到8031的复位引脚将变为高电平;一旦松开,电平将变低。  总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。  下面结合在自动配料控制系统中键盘、显示部分的调试过程来加以说明。本系统中的键盘、显示部分都是由并行口芯片8155扩展而成的。8155属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。

Java编程——求解几何图形的周长、面积的程序。

//Dynamic.javainterface MyShape{ public double area(); public double circum();}class MyRectangle implements MyShape{ private double height; private double width;public MyRectangle(double height,double width){ this.height = height; this.width = width; }public double area(){ return height * width; }public double circum(){ return 2 * (height + width); }}class MyCircle implements MyShape{ private double radius;public MyCircle(double radius){ this.radius = radius; }public double area(){ return Math.PI * radius * radius; }public double circum(){ return 2 * Math.PI * radius; }}class MyTriangle implements MyShape{ private double a; private double b; private double c;public MyTriangle(double a,double b,double c){ this.a = a; this.b = b; this.c = c; }public double area(){ return Math.sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4; }public double circum(){ return a + b + c; }}public class Dynamic{ public static void main(String[] args){ MyShape myShape; if(args.length == 1) myShape = new MyCircle(Double.parseDouble(args[0])); else if(args.length == 2) myShape = new MyRectangle(Double.parseDouble(args[0]), Double.parseDouble(args[1])); else if(args.length == 3) myShape = new MyTriangle(Double.parseDouble(args[0]), Double.parseDouble(args[1]),Double.parseDouble(args[2])); else{ System.out.println("运行出错,应该以1个或两个或三个的命令行参数" + "来运行程序"); return; }System.out.println(myShape.area()); System.out.println(myShape.circum()); }}向楼上的很多set get 方法我都没写。并且 我的三角形面积百分百准确,他那个不行

网页编程表单form和事件onblur的用法,就是不能弹出V对话框,代码如下

修改下面几行就可以了<form action="2.asp" method="post" name="form1"><input type="text" name="xm" /><script for="xm" event=onblur language=vbscript> if len(document.form1.xm.value)=0 then msgbox "姓名不能为空!" document.form1.xm.focus end if </script>

急求89c51单片机万年历汇编程序DS1302的

typedef struct __SYSTEMTIME__{ unsigned char Second; unsigned char Minute; unsigned char Hour; unsigned char Week; unsigned char Day; unsigned char Month; unsigned char Year; unsigned char DateString[11]; unsigned char TimeString[9];}SYSTEMTIME; //定义的时间类型SYSTEMTIME CurrentTime;#define AM(X) X#define PM(X) (X+12) // 转成24小时制#define DS1302_SECOND 0x80 //时钟芯片的寄存器位置,存放时间#define DS1302_MINUTE 0x82#define DS1302_HOUR 0x84 #define DS1302_WEEK 0x8A#define DS1302_DAY 0x86#define DS1302_MONTH 0x88#define DS1302_YEAR 0x8C void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数){ unsigned char i; ACC = d; for(i=8; i>0; i--) { DS1302_IO = ACC0; //相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC >> 1; } }unsigned char DS1302OutputByte(void) //实时时钟读取一字节(内部函数){ unsigned char i; for(i=8; i>0; i--) { ACC = ACC >>1; //相当于汇编中的 RRC ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; } return(ACC); }void Write1302(unsigned char ucAddr, unsigned char ucDa) //ucAddr: DS1302地址, ucData: 要写的数据{ DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); // 地址,命令 DS1302InputByte(ucDa); // 写1Byte数据 DS1302_CLK = 1; DS1302_RST = 0;} unsigned char Read1302(unsigned char ucAddr) //读取DS1302某地址的数据{ unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); // 地址,命令 ucData = DS1302OutputByte(); // 读1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; return(ucData);}void DS1302_GetTime(SYSTEMTIME *Time) //获取时钟芯片的时钟数据到自定义的结构型数组{ unsigned char ReadValue; ReadValue = Read1302(DS1302_SECOND); Time->Second = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MINUTE); Time->Minute = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_HOUR); Time->Hour = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_DAY); Time->Day = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_WEEK); Time->Week = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MONTH); Time->Month = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_YEAR); Time->Year = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); }void DateToStr(SYSTEMTIME *Time) //将时间年,月,日,星期数据转换成液晶显示字符串,放到数组里DateString[]{ if(hide_year<2) //这里的if,else语句都是判断位闪烁,<2显示数据,>2就不显示,输出字符串为 2007/07/22 { Time->DateString[0] = "2"; Time->DateString[1] = "0"; Time->DateString[2] = Time->Year/10 + "0"; Time->DateString[3] = Time->Year%10 + "0"; } else { Time->DateString[0] = " "; Time->DateString[1] = " "; Time->DateString[2] = " "; Time->DateString[3] = " "; } Time->DateString[4] = "/"; if(hide_month<2) { Time->DateString[5] = Time->Month/10 + "0"; Time->DateString[6] = Time->Month%10 + "0"; } else { Time->DateString[5] = " "; Time->DateString[6] = " "; } Time->DateString[7] = "/"; if(hide_day<2) { Time->DateString[8] = Time->Day/10 + "0"; Time->DateString[9] = Time->Day%10 + "0"; } else { Time->DateString[8] = " "; Time->DateString[9] = " "; } if(hide_week<2) { week_value[0] = Time->Week%10 + "0"; //星期的数据另外放到 week_value[]数组里,跟年,月,日的分开存放,因为等一下要在最后显示 } else { week_value[0] = " "; } week_value[1] = ""; Time->DateString[10] = ""; //字符串末尾加 "" ,判断结束字符}void TimeToStr(SYSTEMTIME *Time) //将时,分,秒数据转换成液晶显示字符放到数组 TimeString[];{ if(hide_hour<2) { Time->TimeString[0] = Time->Hour/10 + "0"; Time->TimeString[1] = Time->Hour%10 + "0"; } else { Time->TimeString[0] = " "; Time->TimeString[1] = " "; } Time->TimeString[2] = ":"; if(hide_min<2) { Time->TimeString[3] = Time->Minute/10 + "0"; Time->TimeString[4] = Time->Minute%10 + "0"; } else { Time->TimeString[3] = " "; Time->TimeString[4] = " "; } Time->TimeString[5] = ":"; if(hide_sec<2) { Time->TimeString[6] = Time->Second/10 + "0"; Time->TimeString[7] = Time->Second%10 + "0"; } else { Time->TimeString[6] = " "; Time->TimeString[7] = " "; } Time->DateString[8] = "";}void Initial_DS1302(void) //时钟芯片初始化{ unsigned char Second=Read1302(DS1302_SECOND); if(Second&0x80) //判断时钟芯片是否关闭 { Write1302(0x8e,0x00); //写入允许 Write1302(0x8c,0x07); //以下写入初始化时间 日期:07/07/25.星期: 3. 时间: 23:59:55 Write1302(0x88,0x07); Write1302(0x86,0x25); Write1302(0x8a,0x07); Write1302(0x84,0x23); Write1302(0x82,0x59); Write1302(0x80,0x55); Write1302(0x8e,0x80); //禁止写入 }}

零基础编程入门自学先学什么?

javaSE一句话概括一切皆对象。可惜基本类型不是对象。2、数据库数据库种类挺多。关系型的付费的有Oracle 这个介绍的书挺多挺厚要是想当DB,可以深挖。要是为了学java web 那学会基础的增删改查就行了。这个会了 其它的关系型数据库就都能触类旁通了。网站的对象型数据库暂时你也用不上。什么都存一串上。挺好玩的。要免费的就用 mysql 下载社区版的自己安装就行了。建议先学这个再学java 你信心能多点。建议:买薄的数据库书看。厚的太的你看没什么用 自己多动手敲!3、HTML CSS JShtml 网页解释语言你要是小白看到这上面的东西最少你要学俩月。要不就看看热闹,HTML这是逐行解释语言 JAVA学好了。这个就能好懂的。语法简单,容易上手。学精通也很难 我画布那用不到我直接跳过了。要学UI自己看着学吧。css 辅助样式js 脚本语言 号称安全 网上挺多病毒就这个写的。不到我说的对不对。错了就当没看见吧上面这三东东 买一本java web 就都讲了。书我就不推荐了。你自己喜欢什么风格的书买一本即可。建议别买太厚的。可能你没耐性看完。薄的上下班通勤路上就看完了。4、jsp 一个上边都学会,网上找个ppt 10分钟就能学会的东西。基本网站你就会做了。自己下载阿贾克斯 学学就能写出像样的网站了。。。。

信奥赛和少儿编程的区别是什么?

1,看师资团队一个好的少儿编程机构,对于师资团队是十分的重视的。一个好的师资团队的组成对于少儿编程方面的研究肯定是非常的厉害的。他们不仅仅有着扎实的理论基础,对于教学经验也是十分丰富的。好的老师对于孩子们的学习来说,是有着非常大的影响的。2,看教学设备一个好的少儿编程机构,对于教学设备来说,也是非常的完善的,完善的教学设备对于孩子的学习也是十分的必要的。能够让孩子在学习的时候,寓教于乐。有一个好的学习过程。从而能够有一个好的学习效果。

信奥赛和少儿编程的区别是什么?

针对不同年龄层,学习的少儿编程课程也不同。而信奥赛对于培养孩子逻辑思维能力、多学科融合能力以及升学更是发挥了举足轻重的作用。青少年信息学(计算机)奥林匹克竞赛(早期称为青少年计算机程序设计竞赛)是指在广大青少年中普及计算机教育,推广计算机应用的一项学科性竞赛活动。介绍全国青少年信息学奥林匹克竞赛自1984年至2019年,已组织了36次竞赛活动。每年经各省选拔产生省队,A类、B类、C类选手参加正式比赛,D类、E类选手将参加同步举办的夏令营。NOI将从正式选手中选出成绩前50名,作为中国国家集训队,集训队队员将获得高校保送资格。全国青少年信息学奥林匹克夏令营为NOI的扩大赛,自2019年开始举办。夏令营采取与正赛完全相同的赛制,包括时间、地点、题目与分数线。各省省队D类、E类选手参加夏令营,获奖选手不能获得奖状,但具有中国计算机学会颁发的成绩证明。

c语言编程实现统计字符串中英文单词的个数。并按出现频次升序排序显示每个单词出现的次数

#include <stdio.h>#include <string.h>#include <stdlib.h>/*定义结构体word内存放单词和个数*/typedef struct{ char *str1[20]; int strC; }WordAndCnt;//定义total函数计算总的单词个数void total(char* str,WordAndCnt* wac){ //int sum=0,i; int i,j; wac->strC=0; for(i=0,j=0;str[i]!="#" && str[i]/*避免忘记输#的尴尬*/;i++) //你程序的输入是以字符"#"结尾的吧?不管了,你写的是这样,我就默认"#"结尾 { if((str[i]>="a" && str[i]<="z") || (str[i]>="A" && str[i]<="Z"))//确定起始字符的位置 { if(i==0 || !((str[i-1]>="a" && str[i-1]<="z") || (str[i-1]>="A" && str[i-1]<="Z"))) { j=i; } //j++; } if(i>0 && !((str[i]>="a" && str[i]<="z") || (str[i]>="A" && str[i]<="Z")) && ((str[i-1]>="a" && str[i-1]<="z") || (str[i-1]>="A" && str[i-1]<="Z")))//结束字母的位置 { wac->str1[wac->strC]=(char*)calloc(i-j+1,sizeof(char));//分配空间 并初始化 strncpy(wac->str1[wac->strC],str+j,i-j); wac->strC++; } } if(i!=j)//把最后一个字符串也拷贝到str1里 { wac->str1[wac->strC]=(char*)calloc(i-j+1,sizeof(char));//分配空间 并初始化 strncpy(wac->str1[wac->strC],str+j,i-j); wac->strC++; } printf("total=%d ",wac->strC); //return(sum);}void main(){ char str[1000]; WordAndCnt wac; memset(str,0,1000); printf("输入一串英文: "); gets(str); total(str,&wac); printf(" "); if(wac.strC>0) { for(int i=0;i<wac.strC;i++) { printf("输入的第%d个单词是:%s ",i+1,wac.str1[i]); } }}

h个和尚h个馒头,一大和尚能吃四个馒头,四小和尚能吃一个馒头,求大小和尚人数,画出框图写出编程。

因为你的前两个数知不知道 ,但全都让你写成了相同的小h代表,也许是我的电脑有问题,所以改一下和尚的数改为H而馒头数为h设大和尚有x人,因为大小和尚一共有h人,所以小和尚有(和尚总数H-x)人可以列个等量关系:大和尚吃的馒头为 4*x 小和尚吃的馒头为1/4 *(H-x)因为大和尚吃的馒头+小和尚吃的馒头=h所以4*x+1/4*(H-x)=h

[编程]lua有暂停运行的函数吗?

LUA没有任何停顿/睡眠功能。 这是因为Lua是在ANSI C,ANSI C实现,没有停顿,没有LUA内。 以下是CPU密集型的方法:本地时钟= os.clock 功能休眠(N) - 秒当地T0 =时钟() />时钟() - T0 = N年底结束下面的视窗功能休眠通过调用Windows主机脚本:(N)当地VB =“Test.vbs的”当地F =(io.open(VB,“W”))传真:写(“WScript.Sleep(”..(tonumber(N)* 1000 )..“) n”)传真:关闭() os.execute(VB)结束 此外,还可以调用ping命令实现这样的功能:功能休眠(N)如果n> 0,则 os.execute(“平-N .. tonumber(N +1)的”localhost> NUL “)的末尾结束

C语言编程:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和

void strcat(char s1[],char s2[]){int i,j; for(i=0;s1[i]!="";i++); for(j=0;s2[j]!="";j++) s1[i++]=s2[j]; s1[i]="";}void strcpy(char a[],char b[]){ int i=0,j=0; while((a[i++]=b[j++])!="");}int strcmp(char s1[],char s2[]){int i;for(i=0;s1[i]!=""&&s2[i]!="";i++){ if(s1[i]>s2[i]) return 1; else if(s1[i]<s2[i]) return -1;}if(s1[i]==""&&s2[i]=="") return 0;else if(s1[i]=="") return -1;else return 1;}int strlen(char s[]){ int len=0 ,i; for(i=0;s[i]!="";i++) len++;return len;}

C语言用指针编程实现strcat函数的功能

#include <stdio.h>char *strcopy(char *str1,char *str2){ char *p = str1; while((*str1)!="") str1++; while((*str2)!="") { *str1++=*str2++; } *str1=""; return p;}void main(){ char str1[20],str2[10]; //开辟大一点的空间 printf("str1: "); gets(str1); printf("str2: "); gets(str2); printf("连接后:%s ",strcopy(str1,str2));}

C语言编程:输入2个字符串,将其连接后输出.

#include<stdio.h>char *my_strcat(char *target,const char *source) { char *original=target; while(*original != "") original++; // Find the end of the string while(*source) *original++=*source++; *original=""; return(target); } int main(){ char a[81],b[81]; gets(a); gets(b); my_strcat(a,b); printf("a+b=%s ",a); return 0;}

从键盘输入两个字符串a和b,要求不用库函数strcat把字符串b连接到字符串a之后,请用c需要编程

#include <stdio.h>#include <string.h>int main(){ char a[123],b[123]; scanf("%s %s",a,b); int i,la=strlen(a),lb=strlen(b); for(i=0;i<lb;i++) //这里开始链接 a[la+i]=b[i]; a[la+i]=""; printf("%s ",a); return 0;}

在C++平台编程:输入两个字符串(长度

我先做个记号 吃完饭回来做

c++编程Stack(类与对象)

可以用链表形式实现,每个节点是一个结构体。栈的深度就是节点个数。组数可控制循环次数。

学习机器人编程可以勇平板电脑嘛

一般是不可以的。编程机器人用到的软件一般是不可以在平板电脑上运行的。机器人编程为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现,可以通过示教盒示教和导引式示教两种途径实现。由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。

编程机器人有必要学吗

编程机器人有一定的必要。机器人编程【robot programming】为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现。可以通过示教盒示教和导引式示教两种途径实现。由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。

学习机器人编程可以勇平板电脑嘛

一般是不可以的。编程机器人用到的软件一般是不可以在平板电脑上运行的。机器人编程为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现,可以通过示教盒示教和导引式示教两种途径实现。由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。

机器人编程的SIGLA语言

SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。

机器人编程有必要学吗

机器人编程有必要学吗如下:编程机器人有一定的必要。机器人编程【robot programming】为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现。可以通过示教盒示教和导引式示教两种途径实现。由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用计算机图形学成果,借助图形处理工具建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。

有一个编程软件里面有个放大镜

是ZoomIn软件,ZoomIn是一个Windows 9X下的放大镜程序,它可将鼠标附近区域的屏幕内容放大显示,如果用户平常很少涉及文字操作,则完全可以将屏幕分辨率设高一点,以增加屏幕显示内容,而在偶尔碰到看不清除屏幕内容时再使用ZoomIn将看不清的内容放大显示即可,效果非常好。ZoomIn的使用非常简单,我们在启动其主程序ZoomIn.EXE之后,Windows 95的系统托盘(即任务栏最右边显示系统时钟的区域)中就会出现一个放大镜形状的系统图标,我们只需双击该图标或按下快捷键Ctrl-[`],鼠标右下方就会出现一个方框,这就是ZoomIn所提供的放大镜,它会将鼠标附近区域的内容放大显示出来,并随着鼠标的移动而移动,从而满足了广大用户要求放大显示屏幕内容的需要。

C语言编程中“static”是什么意思?

是静态的意思就是在那里边儿只有这个static方法才可以调用静态变量,静态方法里面也可以调用静态方法

c++编程里用到的“std”的英文全称是什么?

standard

帮我解一下这道VB编程题:“随机产生10个两位整数,找出其中的最大值、最小值和平均值”帮帮忙啦!

望采纳Private Sub Command1_Click()RandomizeMax = 0Min = 100Print "10个随机整数为:"For i = 1 To 10x = Int(Rnd * 90) + 10Print x;If x > Max Then Max = xIf x < Min Then Min = xNext iPrintPrint "最大值:"; MaxPrint "最小值:"; MinEnd Sub

ug编程建立刀具库问题?

一团糟所以我不解决但是我给你讲讲我们做事情的真正方法第一,可以肯定不是用你的这个方法去做刀库的第二,我们是使用模板制作刀库第三,制作方法就是把你需要的刀具做好,单独储存到一个文件内,下次你需要的时候直接导入如果你会宏录制,那你还可以做很多分类导入。其他不多说了,望自己多关注一些现实的问题,一些工程师工作中的实际方法

线程编程的线程同步

即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,目前实现线程同步的方法有很多,例如:临界区(critical section)、事件(event)、信号量(semaphore)、互斥量(mutex)。1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。2、互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享3、信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目4、事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作临界区对象定义在数据段中的一个SECURITY_ATTRIBUTES结构体,Windows内部使用这个结构记录一些信息,确保在同一时间只有一个线程访问该数据段中的数据。临界区的使用步骤1.初始化一个SECURITY_ATTRIBUTES结构,在临界区对象之前,需要定于全局SECURITY_ATTRIBUTES结构体变量,在调用CreateThread函数前调用InitializeCriticalSection(LPC RITICAL_SECTION lpCriticalSection)函数初始化临界区对象。2.申请进入一个临界区。在线程函数中要对保护的数据进行操作前,可以通过调用 EnterCriticalSection(LPC RITICAL_SECTION lpCriticalSection)函数申请进入临界区,由于在同一时间内,只允许一个线程进入临界区,所以在申请的时候如果有一个线程进入到临界区,则该函数就会一直等到那个线程执行完临界区代码。3.离开临界区。当执行完临界区代码后,需要调用LeaveCriticalSection(LPC RITICAL_SECTION lpCriticalSection)函数吧临界区交还给系统。4.删除临界区,当不需要临界区是可以调用DeleteCriticalSection(LPC RITICAL_SECTION lpCriticalSection)函数将临界区对象删除。

C++语言编程 程序多线程的问题!

我没有安装VS2010,所以的话尽可能我告诉你怎么改,你反馈结果给我好吗?程序一看好像没问题,但是你要注意细节问题。在main函数中你创建两个线程后,关闭句柄也没有错,但是你注意了,你为什么要删除临界区对象?(DeleteCriticalSection(&SS);)?恰好你的线程要用SS,你又把他删了不就出问题了吗?错误里给出_unock函数出现错误,明显就是说临界区对象不存在或已被销毁了。所以你应该把这句话放在gethar()函数的后面。当两个线程访问完后你按下一个按键,这时才能删除临界区对象。有不明白的欢迎提问。 主要的不是楼下说的什么主线程退出了,而是因为在你的子线程使用临界区对象时发现错误了,原因是你在main中过早的把临界区对象删除了。

Debug Assertion Failed! 我用VS2008编程,运行时点击菜单选项报错(悬赏80分,在另一个位置)

程序里用线程锁CComSafeDeleteCriticalSection了吗,出错位置指向了CComSafeDeleteCriticalSection的Lock函数,出错原因好像是说在运行Lock前没有运行Init初始化函数。HRESULT Lock(){ // CComSafeDeleteCriticalSection::Init or CComAutoDeleteCriticalSection::Init // not called or failed. // m_critsec member of CComObjectRootEx is now of type // CComAutoDeleteCriticalSection. It has to be initialized // by calling CComObjectRootEx::_AtlInitialConstruct ATLASSUME(m_bInitialized); return CComCriticalSection::Lock();}

c语言编程:输入两个正整数,求最大公约数和最小公倍数

int main(int argc, const char * argv[]){printf("输入两个数 ,找最大公约数,和最小公倍数 :"); int a = 0,b = 0,temp = 0,i = 0,mix = 0;scanf("%d%d",&a,&b); if (a < b) { temp = a; a = b; b = temp;} for (i = b; i >= 1; i--) { if (a % i == 0 && b % i ==0) { printf("最大公约数为 %d ",i); break;} } if (mix = (a * b) / i) { printf("最小公倍数 %d",mix); } return 0;}===============================================================好久没做过了 不知道对不对! 你自己试试吧!!!!!

计算机编程方面比较权威的证书

微软认证考试 微软认证考试介绍微软认证考试是微软公司推出的计算机高级技术人员认证考试,是全球公认的计算机软件高级人才认证,由比尔-盖茨签发的证书在全球90多个国家均得到承认。微软认证证书代表着企业及个人的技术实力,其拥有者在全球各地均可享有高就业机会、高薪、相关学业免学分的待遇,甚至在北美的一些国家可以作为外来移民的技术评估标准。目前微软在我国国内有120多家授权考试中心,国内的微软认证有四种:微软认证产品专家(MCP)、微软认证系统工程师(MCSE)、微软认证软件开发专家(MCSD)、微软认证数据库管理员(MCDBA)。 考试特点: 微软认证考试不同于一般的计算机普及考试,它的目的主要在于培养高级计算机专门人才。微软认证考试的内容科目具有很强的针对性,都是针对微软各个不同阶段的产品来进行考试的,产品升级了,考试的内容、题型甚至题量也要相应地改变。考试也没有固定的时间,随时可以到各授权考试中心报名,如果是第一次参加考试,报名时必须提供详细的个人信息,如姓名、姓名的汉语拼音、英文公司名、英文地址、电话、邮编、身份证号等;提供考试信息,如考试号码、考试名称、考试语种和考试日期等;交纳考试费用。证书的发放一般由各认证公司负责,部分认证公司的主页上有成绩及证书查询功能,可以用考生身份证号登陆查询。证书发放周期各公司稍有出入,一般为一个月。 考试内容: 微软认证考试的内容非常专业化,主要有以下几个方面:一、操作系统(WindowsNT4.0的安装,系统配置,账户管理,文件、打印机资源管理,远程访问服务、域的规划建立及管理、企业的域模型设计,对NT的网络分析和优化及故障排除等)二、Windows2000(Windows2000平台系列,安装、DNS、活动目录,远程安装服务、组策略,终端服务、文件与磁盘管理、灾难保护,目录服务基础、命名策略、权限委派,活动目录逻辑结构、物结构、实施等)三、网络技术课程(网络设计,协议连网的实现,网络的连接、规划、配置、管理、监测等)四、数据库(数据库的安装、配置、管理,安全性管理,数据库的备份和恢复,性能调整,用户账户管理,多表查询,事务处理,视图,存储进程实施等)五、开发工程师(数据库的开发,COM的开发,MFC的开发,收集、分析商业需求,设计商业方案,设计数据服务和数据模型等)六、电子商务(创建网业,创建COM构件及MTS的使用,建立、维护、优化电子商务站点等)。 考试对象: 微软认证考试对考生要求比较高,必须掌握相当的计算机基础知识,具备一定的计算机操作技能才能报考。目前的参考人员多为三类人,一是准备出国、移民、留学的年轻人,如果有一张微软认证证书,在国外找工作相对容易些,待遇也要高些,在国外的一些学校还可以免修部分学分;二是在IT行业工作或准备从事IT行业的人。产品升级或技术提高都要求员工的水平要提高。另外还有一小部分是在校学生,为将来找工作做准备。 业界评说: 一位业内人士说,微软认证在国外IT认证中知名度是最高的,参加考试和通过认证的人数也是最多的,因为在计算机操作系统中微软所占的市场份额是最大的,所以,通过微软认证相对而言更具有普遍意义。中国科学院软件研究所博士生导师仲萃豪研究员说,一些跨国企业、外资企业对它的员工要求比较高,特别是从事IT行业的工作,微软证书几乎成了应聘的通行证,没有它的证书就做不好它的产品。所以要想从事微软公司的工作,必须获得微软的证书。 微软资格认证考试是由全球软件业的龙头--美国微软公司(Microsoft)主持的,对计算机技术工作者使用微软公司软件产品的能力、水平的一种测试。考试前由微软公司设在各地的微软认证高级技术教育中心(CTEC)对学员进行培训,以提高技术人员以及微软公司的用户在软件开发和应用等领域的技术水平,引导学员掌握微软应用软件的关键技术,同时提高他们的软件开发和使用能力。经过微软授权培训,并且通过了微软资格认证考试的计算机科技人员,将获得由微软公司颁发的相应软件领域的微软技术认证证书,此证书可以证明持有者在相应领域的工作技能,有较高的权威性,并且在全球范围内有效。

编程语言python怎么读

编程语言python怎么读介绍如下:python英 [u02c8pau026aθu0259n]美 [u02c8pau026aθɑu02d0n]。Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python的创始人为荷兰人吉多·范罗苏姆(GuidovanRossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(MontyPython'sFlyingCircus)。扩展资料:python中文就是蟒蛇的意思。在计算机中,它是一种编程语言。Python(英语发音:/u02c8pau026aθu0259n/),是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C++重写。1发展历程编辑自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python已经成为最受欢迎的程序设计语言之一。

c语言编程:字符串中大小写字母转换

大小写字母对应的ASCII码值不同,大写的在65—90之间,小写在97—122之间,同一字母的大小写相差32。根据这就很容易实现转换了。

C#编程:Regex.Split方面的问题。

1,是的2。它是用来匹配字符串用的,RegexOptions.IgnoreCase是一个静态的参数后面的Split(new char[] {"/"}); 可以这样写Split("/"); 3。[1]是第一个分组4,在2里说了整句是:用,"/_",匹配qurystr(RegexOptions.IgnoreCase是忽略大小写的意思)取第一个组的字符串,以‘/"把取出来的字符串分成一个字符数组

网络游戏数据编程修改

SELECT GAME选择目前在记忆体中您想拦截的程式,您只需双击该程式名称即可。 TRACE追踪功能。用来追踪撷取程式送收的封包。WPE必须先完成点选欲追踪的程式名称,才可以使用此项目。 按下Play键开始撷取程式收送的封包。您可以随时按下 | | 暂停追踪,想继续时请再按下 | | 。按下正方形可以停止撷取封包并且显示所有已撷取封包内容。若您没按下正方形停止键,追踪的动作将依照OPTION里的设定值自动停止。如果您没有撷取到资料,试试将OPTION里调整为Winsock Version 2。WPE 及 Trainers 是设定在显示至少16 bits 颜色下才可执行。 FILTER过滤功能。用来分析所撷取到的封包,并且予以修改。 SEND PACKET送出封包功能。能够让您送出假造的封包。 TRAINER MAKER制作修改器。 OPTIONS设定功能。让您调整WPE的一些设定值。 FILTER的详细教学 - 当FILTER在启动状态时 ,ON的按钮会呈现红色。- 当您启动FILTER时,您随时可以关闭这个视窗。FILTER将会保留在原来的状态,直到您再按一次 on / off 钮。- 只有FILTER启用钮在OFF的状态下,才可以勾选Filter前的方框来编辑修改。- 当您想编辑某个Filter,只要双击该Filter的名字即可。 NORMAL MODE: 范例: 当您在 Street Fighter Online ﹝快打旋风线上版﹞游戏中,您使用了两次火球而且击中了对方,这时您会撷取到以下的封包:SEND-> 0000 08 14 21 06 01 04 SEND-> 0000 02 09 87 00 67 FF A4 AA 11 22 00 00 00 00 SEND-> 0000 03 84 11 09 11 09 SEND-> 0000 0A 09 C1 10 00 00 FF 52 44 SEND-> 0000 0A 09 C1 10 00 00 66 52 44 您的第一个火球让对方减了16滴﹝16 = 10h﹞的生命值,而您观察到第4跟第5个封包的位置4有10h的值出现,应该就是这里了。 您观察10h前的0A 09 C1在两个封包中都没改变,可见得这3个数值是发出火球的关键。 因此您将0A 09 C1 10填在搜寻列﹝SEARCH﹞,然后在修改列﹝MODIFY﹞的位置4填上FF。如此一来,当您再度发出火球时,FF会取代之前的10,也就是攻击力为255的火球了! ADVANCED MODE: 范例: 当您在一个游戏中,您不想要用真实姓名,您想用修改过的假名传送给对方。在您使用TRACE后,您会发现有些封包里面有您的名字出现。假设您的名字是Shadow,换算成16进位则是﹝53 68 61 64 6F 77﹞;而您打算用moon﹝6D 6F 6F 6E 20 20﹞来取代他。1) SEND-> 0000 08 14 21 06 01 042) SEND-> 0000 01 06 99 53 68 61 64 6F 77 00 01 05 3) SEND-> 0000 03 84 11 09 11 094) SEND-> 0000 0A 09 C1 10 00 53 68 61 64 6F 77 00 11 5) SEND-> 0000 0A 09 C1 10 00 00 66 52 44 但是您仔细看,您的名字在每个封包中并不是出现在相同的位置上 - 在第2个封包里,名字是出现在第4个位置上- 在第4个封包里,名字是出现在第6个位置上 在这种情况下,您就需要使用ADVANCED MODE- 您在搜寻列﹝SEARCH﹞填上:53 68 61 64 6F 77 ﹝请务必从位置1开始填﹞- 您想要从原来名字Shadow的第一个字母开始置换新名字,因此您要选择从数值被发现的位置开始替代连续数值﹝from the position of the chain found﹞。- 现在,在修改列﹝MODIFY﹞000的位置填上:6D 6F 6F 6E 20 20 ﹝此为相对应位置,也就是从原来搜寻栏的+001位置开始递换﹞- 如果您想从封包的第一个位置就修改数值,请选择﹝from the beginning of the packet﹞ 了解一点TCP/IP协议常识的人都知道,互联网是将信息数据打包之后再传送出去的。每个数据包分为头部信息和数据信息两部分。头部信息包括数据包的发送地址和到达地址等。数据信息包括我们在游戏中相关操作的各项信息。那么在做截获封包的过程之前我们先要知道游戏服务器的IP地址和端口号等各种信息,实际上最简单的是看看我们游戏目录下,是否有一个SERVER.INI的配置文件,这个文件里你可以查看到个游戏服务器的IP地址,比如金庸群侠传就是如此,那么除了这个我们还可以在DOS下使用NETSTAT这个命令, NETSTAT命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。或者你可以使用木马客星等工具来查看网络连接。工具是很多的,看你喜欢用哪一种了。 NETSTAT命令的一般格式为:NETSTAT [选项] 命令中各选项的含义如下:-a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息。-n 以网络IP地址代替名称,显示出网络连接情形。-r 显示核心路由表,格式同"route -e"。-t 显示TCP协议的连接情况。-u 显示UDP协议的连接情况。-v 显示正在进行的工作。 -------------------------------------------------------------------------------- 三:怎么来分析我们截获的封包? 首先我们将WPE截获的封包保存为文本文件,然后打开它,这时会看到如下的数据(这里我们以金庸群侠传里PK店小二客户端发送的数据为例来讲解): 第一个文件:SEND-> 0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1BSEND-> 0010 17 12 DD 34 12 12 12 12 17 12 0E 12 12 12 9BSEND-> 0000 E6 56 1E F1 29 06 17 12 3B 0E 17 1ASEND-> 0000 E6 56 1B C0 68 12 12 12 5ASEND-> 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12SEND-> 0000 E6 56 17 C9 12 第二个文件:SEND-> 0000 83 33 68 47 1B 0E 81 72 76 76 77 76 77 76 02 7ESEND-> 0010 72 77 07 1C 77 77 77 77 72 77 72 77 77 77 6DSEND-> 0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3SEND-> 0000 83 33 7E A5 21 77 77 77 3FSEND-> 0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77SEND-> 0000 83 33 72 AC 77 我们发现两次PK店小二的数据格式一样,但是内容却不相同,我们是PK的同一个NPC,为什么会不同呢? 原来金庸群侠传的封包是经过了加密运算才在网路上传输的,那么我们面临的问题就是如何将密文解密成明文再分析了。 因为一般的数据包加密都是异或运算,所以这里先讲一下什么是异或。 简单的说,异或就是"相同为0,不同为1"(这是针对二进制按位来讲的),举个例子,0001和0010异或,我们按位对比,得到异或结果是0011,计算的方法是:0001的第4位为0,0010的第4位为0,它们相同,则异或结果的第4位按照"相同为0,不同为1"的原则得到0,0001的第3位为0,0010的第3位为0,则异或结果的第3位得到0,0001的第2位为0,0010的第2位为1,则异或结果的第2位得到1,0001的第1位为1,0010的第1位为0,则异或结果的第1位得到1,组合起来就是0011。异或运算今后会遇到很多,大家可以先熟悉熟悉,熟练了对分析很有帮助的。 下面我们继续看看上面的两个文件,按照常理,数据包的数据不会全部都有值的,游戏开发时会预留一些字节空间来便于日后的扩充,也就是说数据包里会存在一些"00"的字节,观察上面的文件,我们会发现文件一里很多"12",文件二里很多"77",那么这是不是代表我们说的"00"呢?推理到这里,我们就开始行动吧! 我们把文件一与"12"异或,文件二与"77"异或,当然用手算很费事,我们使用"M2M 1.0 加密封包分析工具"来计算就方便多了。得到下面的结果: 第一个文件:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09SEND-> 0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 892 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 083 SEND-> 0000 F4 44 09 D2 7A 00 00 00 484 SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 005 SEND-> 0000 F4 44 05 DB 00 第二个文件:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09SEND-> 0010 05 00 70 6B 00 00 00 00 05 00 05 00 00 00 1A2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 843 SEND-> 0000 F4 44 09 D2 56 00 00 00 484 SEND-> 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 005 SEND-> 0000 F4 44 05 DB 00 哈,这一下两个文件大部分都一样啦,说明我们的推理是正确的,上面就是我们需要的明文! 接下来就是搞清楚一些关键的字节所代表的含义,这就需要截获大量的数据来分析。 首先我们会发现每个数据包都是"F4 44"开头,第3个字节是变化的,但是变化很有规律。我们来看看各个包的长度,发现什么没有?对了,第3个字节就是包的长度! 通过截获大量的数据包,我们判断第4个字节代表指令,也就是说客户端告诉服务器进行的是什么操作。例如向服务器请求战斗指令为"30",战斗中移动指令为"D4"等。 接下来,我们就需要分析一下上面第一个包"F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89",在这个包里包含什么信息呢?应该有通知服务器你PK的哪个NPC吧,我们就先来找找这个店小二的代码在什么地方。 我们再PK一个小喽罗(就是大理客栈外的那个咯):SEND-> 0000 F4 44 1F 30 D4 75 F6 05 01 01 00 01 00 01 75 09SEND-> 0010 05 00 8A 19 00 00 00 00 11 00 02 00 00 00 C0 我们根据常理分析,游戏里的NPC种类虽然不会超过65535(FFFF),但开发时不会把自己限制在字的范围,那样不利于游戏的扩充,所以我们在双字里看看。通过"店小二"和"小喽罗"两个包的对比,我们把目标放在"6C 79 F6 05"和"CF 26 00 00"上。(对比一下很容易的,但你不能太迟钝咯,呵呵)我们再看看后面的包,在后面的包里应该还会出现NPC的代码,比如移动的包,游戏允许观战,服务器必然需要知道NPC的移动坐标,再广播给观战的其他玩家。在后面第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00"里我们又看到了"6C 79 F6 05",初步断定店小二的代码就是它了!(这分析里边包含了很多工作的,大家可以用WPE截下数据来自己分析分析) 第一个包的分析暂时就到这里(里面还有的信息我们暂时不需要完全清楚了) 我们看看第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00",再截获PK黄狗的包,(狗会出来2只哦)看看包的格式:SEND-> 0000 F4 44 1A DA 02 0B 4B 7D F6 05 02 27 35 01 00 00SEND-> 0010 EB 03 F8 05 02 27 36 01 00 00 根据上面的分析,黄狗的代码为"4B 7D F6 05"(100040011),不过两只黄狗服务器怎样分辨呢?看看"EB 03 F8 05"(100140011),是上一个代码加上100000,呵呵,这样服务器就可以认出两只黄狗了。我们再通过野外遇敌截获的数据包来证实,果然如此。 那么,这个包的格式应该比较清楚了:第3个字节为包的长度,"DA"为指令,第5个字节为NPC个数,从第7个字节开始的10个字节代表一个NPC的信息,多一个NPC就多10个字节来表示。 大家如果玩过网金,必然知道随机遇敌有时会出现增援,我们就利用游戏这个增援来让每次战斗都会出现增援的NPC吧。 通过在战斗中出现增援截获的数据包,我们会发现服务器端发送了这样一个包:F4 44 12 E9 EB 03 F8 05 02 00 00 03 00 00 00 00 00 00 第5-第8个字节为增援NPC的代码(这里我们就简单的以黄狗的代码来举例)。 那么,我们就利用单机代理技术来同时欺骗客户端和服务器吧! 好了,呼叫NPC的工作到这里算是完成了一小半,接下来的事情,怎样修改封包和发送封包,我们下节继续讲解吧。 -------------------------------------------------------------------------------- 四:怎么冒充"客户端"向"服务器"发我们需要的封包? 这里我们需要使用一个工具,它位于客户端和服务器端之间,它的工作就是进行数据包的接收和转发,这个工具我们称为代理。如果代理的工作单纯就是接收和转发的话,这就毫无意义了,但是请注意:所有的数据包都要通过它来传输,这里的意义就重大了。我们可以分析接收到的数据包,或者直接转发,或者修改后转发,或者压住不转发,甚至伪造我们需要的封包来发送。 下面我们继续讲怎样来同时欺骗服务器和客户端,也就是修改封包和伪造封包。 通过我们上节的分析,我们已经知道了打多个NPC的封包格式,那么我们就动手吧! 首先我们要查找客户端发送的包,找到战斗的特征,就是请求战斗的第1个包,我们找"F4 44 1F 30"这个特征,这是不会改变的,当然是要解密后来查找哦。 找到后,表示客户端在向服务器请求战斗,我们不动这个包,转发。 继续向下查找,这时需要查找的特征码不太好办,我们先查找"DA",这是客户端发送NPC信息的数据包的指令,那么可能其他包也有"DA",没关系,我们看前3个字节有没有"F4 44"就行了。找到后,我们的工作就开始了! 我们确定要打的NPC数量。这个数量不能很大,原因在于网金的封包长度用一个字节表示,那么一个包可以有255个字节,我们上面分析过,增加一个NPC要增加10个字节,所以大家算算就知道,打20个NPC比较合适。 然后我们要把客户端原来的NPC代码分析计算出来,因为增加的NPC代码要加上100000哦。再把我们增加的NPC代码计算出来,并且组合成新的封包,注意代表包长度的字节要修改啊,然后转发到服务器,这一步在编写程序的时候要注意算法,不要造成较大延迟。 上面我们欺骗服务器端完成了,欺骗客户端就简单了,^-^ 发送了上面的封包后,我们根据新增NPC代码构造封包马上发给客户端,格式就是"F4 44 12 E9 NPC代码 02 00 00 03 00 00 00 00 00 00",把每个新增的NPC都构造这样一个包,按顺序连在一起发送给客户端,客户端也就被我们骗过了,很简单吧。 以后战斗中其他的事我们就不管了,尽情地开打吧,呵呵。 本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( ProgramFan.Com )

小弟刚刚学习shell脚本编程3天,好多东西不懂,如在鸟哥私房菜上看到的一题,问第三点怎么解决???

没有楼上说的那么麻烦,只需要一句话,用ll 或 ls -l 得到文件权限并把子字符串取出即可ls -l $filename | awk "{print substr($1, 2, 3)}"管道前是得到当前文件信息 -rw-r--r-- 1 simon simon 153 2011-11-15 03:10 filename由于当前用户的权限信息显示在是第一个字段的[2~4]个字符,管道后用awk取出。 rw-三个字符分别表示:可读、可写、不可执行

C++编程题

#include <iostream.h>#include <fstream.h>#include <string.h>#include <conio.h>class Animal{protected:char* m_pName;public:Animal(){ m_pName = 0;}Animal(char* p){ m_pName = new char [strlen(p)+1]; strcpy(m_pName, p);}virtual ~Animal(){ if (m_pName) delete m_pName;}const char* getName() {return m_pName;}virtual char animalType()=0;// 纯虚函数-接口,子类必须实现virtual void WhoAmI()=0; // 纯虚函数-接口,子类必须实现};class Cat: public Animal{public:Cat():Animal() {}Cat(char* p):Animal(p){}virtual void WhoAmI(){ cout << "动物类型:猫 名字:" << m_pName;}virtual char animalType(){ return "c";}};class Dog: public Animal{public:Dog():Animal() {}Dog(char* p):Animal(p){}virtual void WhoAmI(){ cout << "动物类型:狗 名字:" << m_pName;}virtual char animalType(){ return "d";}virtual ~Dog(){}};class Monkey: public Animal{public:Monkey():Animal() {}Monkey(char* p):Animal(p){}virtual void WhoAmI(){ cout << "动物类型:猴 名字:" << m_pName;}virtual char animalType(){ return "m";}};class Zoo{private:unsigned int m_MaxAnimals;unsigned int m_NumAnimals;Animal* *m_pResidents;char m_szfileName[256];public:Zoo(unsigned int max){ m_MaxAnimals = max; m_NumAnimals = 0; m_pResidents = new Animal* [m_MaxAnimals]; memset(m_pResidents, 0, sizeof(Animal*)*m_MaxAnimals); m_szfileName[0] =0;};void freeAllAnimals(){ for (unsigned int i=0; i<m_MaxAnimals; ++i) { if (m_pResidents) { delete m_pResidents; m_pResidents = 0; } } m_NumAnimals = 0;}~Zoo(){ freeAllAnimals(); delete m_pResidents;}unsigned int Accept(Animal* d); // 找空栏void Release(unsigned int pos); // 放出动物void ListAnimals(); // 显示Zoo中的动物void SetFileName(const char* pFName); // 设置文件名bool Save(); // 向文件中写入动物数据bool Load(); // 从文件中载入动物数据};unsigned int Zoo::Accept(Animal* d){if (m_NumAnimals == m_MaxAnimals) return 0; // 返回栏号为零说明这种动物没有放到栏中++m_NumAnimals;int i=0;while (m_pResidents != NULL){ ++i;}*m_pResidents = d;return ++i; // 栏号从1开始}void Zoo::Release(unsigned int pos){if (pos > m_MaxAnimals) return;--pos; // 获得数组中的序号if (m_pResidents[pos]){ Animal* p = m_pResidents[pos]; m_pResidents[pos] = 0; --m_NumAnimals; cout << " 释放了栏" << pos << "中的动物, 该动物的信息:"; p->WhoAmI(); delete p;}else cout<<"指定的栏中没有动物,释放操作失败 "; // 未放出动物}void Zoo::ListAnimals(){if (m_NumAnimals > 0){ for (unsigned int i=0; i<m_MaxAnimals; ++i) { if (m_pResidents) { cout << i+1 << "号栏中的动物信息:"; m_pResidents[i]->WhoAmI(); cout << endl; } }}else cout << "<动物园中没有动物!>" << endl;}void Zoo::SetFileName(const char* pFName) //设置文件名{strcpy(m_szfileName, pFName);}bool Zoo::Save(){if (m_szfileName[0] ==0) strcpy (m_szfileName, "zootmp.zdt");ofstream fout(m_szfileName);if (fout.is_open() == false) return false;// 先保存总的个数fout << m_NumAnimals << endl;for (unsigned int i=0; i<m_MaxAnimals; ++i){ if (m_pResidents) { // 依次保存 栏号 动物类型 动物名 fout << i << " " << m_pResidents[i]->animalType(); fout << " " << m_pResidents[i]->getName() << endl; }}fout.close();return true;}bool Zoo::Load(){if (m_szfileName[0] ==0) strcpy (m_szfileName, "zootmp.zdt");ifstream fin(m_szfileName);if (fin.is_open() == false) return false;bool bRet = true;unsigned int count = 0;fin >> count;if (count > m_MaxAnimals) // 错误数据 bRet = false;else{ for (unsigned int i=0; i<count; ++i) { unsigned int index = 0; fin >> index; // 读该动物所在的栏号 if (index >= m_MaxAnimals) // 栏号校验 { bRet = false; break; // break for循环 } Animal* p = 0; char AnimalType; char szAnimalName[64]; fin >> AnimalType >> szAnimalName; switch (AnimalType) { case "c": p = new Cat(szAnimalName); break; case "d": p = new Dog(szAnimalName); break; case "m": p = new Monkey(szAnimalName); break; default: break; } if (p == 0) { bRet = false; break; // break for循环 } m_pResidents[index] = p; }}fin.close();if (bRet == false) // 读取失败,释放所有已建立的对象 freeAllAnimals();else m_NumAnimals = count;return bRet;}int main(int argc, char* argv[]){Animal* p;Zoo zoo(20);bool bExit = false;while (bExit==false){bool bGoodCommand=true; char command[128]; char Name[64]; char AnimalType; unsigned int pos = 0; cout << "选择命令,并按回车确认:" << endl; cout << " :x - 退出" << endl; cout << " :i - 增加一个动物" << endl; cout << " :r - 释放一个动物" << endl; cout << " :l - 列出动物园中的动物" << endl; cin >> command; switch(command[0]) { case "x": case "X": bExit = true; break; case "i": // 输入一个动物的信息并增加到栏中 case "I": cout << "输入动物类型[c代表猫,d代表狗,m代表猴]和名字(最多64字节),用空格分开 "; cin >> AnimalType >> Name; p = 0; switch (AnimalType) { case "c": case "C": p = new Cat(Name); break; case "d": case "D": p = new Dog(Name); break; case "m": case "M": p = new Monkey(Name); break; default: break; } if (p!=0) // 输入了有效的动物信息 { pos = zoo.Accept(p); if (pos !=0) cout << "放置到" << pos << "栏中" <<endl; else { cout << "没有空栏了,无法安置该动物" << endl; delete p; } } else cout << "输入信息不正确,请重新选择命令" << endl; break; case "r": // 输入栏的位置,并将该栏中的动物释放出来 case "R": cout << "请问要将哪个栏中的动物放出(输入1-20间的一个数):" ; cin >> pos; if (pos >= 1 && pos <=20) zoo.Release(pos); else cout << "输入信息不正确,请重新选择命令" << endl; break; case "l": // 直接列出动物园信息 case "L": cout << "动物园信息:" << endl; zoo.ListAnimals(); break; default: cout << "输入信息不正确,请重新选择命令" << endl; bGoodCommand = false; break; } if (!bExit && bGoodCommand) { cout << "按任意键继续选择命令" << endl; getch(); // C函数,等待一个输入 }}// zoo.Save();return 0;}

VC编程出现内存错误:处未处理的异常: 0xC00000FD: Stack overflow

frameWnd的父指针是不是不能是frameWnd

大数据需要学编程吗?

第一章:初识Hadoop第二章:更高效的WordCount第三章:把别处的数据搞到Hadoop上第四章:把Hadoop上的数据搞到别处去第五章:快一点吧,我的SQL第六章:一夫多妻制第七章:越来越多的分析任务第八章:我的数据要实时第九章:我的数据要对外第十章:牛逼高大上的机器学习

网页建设ASP和PHP学习哪种编程语言比较好?PHP程序网站建设 PHP购物商城网页设计 PHP商城系统

网页建设ASP和PHP学习哪种编程语言比较好?PHP程序网站建设 PHP购物商城网页设计 PHP商城系统?多语种建站是近年来的热点,毕竟海外一半流量来自非英语的小语种哦。直接去海外营销,注意优化关键词和提高视频质量,当下有用的,比如海外短视频站vimeo(适合分享引用), YOU-tube(能进GOOGLE首页), GO-FAIR(小语种自动转发YOU-tube)等等。多语种视频营销,相当于您在全球每个国家天天开展会,突破了语言和时空的限制,流量询盘精准。

请问德国通快激光机用的是什么操作和编程系统?

我操作的那个系统是西门子840D的系统,但是中间辅助机器还要有开关机顺序,挺繁琐的

哪款键盘非常适合编程写代码

如果编程写代码的话,最好就是购买机械键盘,青轴的,因为打起来会很舒适。我自己也是程序员,所以可以推荐你这几款键盘,IKBC G104、腹灵TT104、酷冷烈焰枪、RAPOO V510pro、技嘉K83等等,都是很不错的机械键盘。纯手打,求采纳。

学C语言现在最好用的编程软件

DC 我喜欢DC

如何在XP下进入BASIC的编程环境

下载QBASIC,解压后运行QB.EXE即可编辑、调试BASIC程序。http://www.s0575.net/soft/1306.htmhttp://www.uhq.cn/soft/qxdown_com349/6984.htm

输入3个数,输出其中最大数的算法与流程图和程序,要求使用qbasic来编程。

clsinput"diyigeshu=";ainput"diergeshu=";binput"disangeshu=";c以上语句是输入三个数max=-999ifa>maxthenmax=aifb>maxthenmax=bifc>maxthenmax=c以上语句是找出最大数:先设最大数是max,设最大数的值为-999,当a,b,c中的任意一个比最大数大,就让最大数max等于它。print"zuidashu=";max以上语句输出最大数end

qbasic是用 直接执行的 A编译程序B汇编程序C解释程序D编辑程序

C解释程序

QBasic编程题:装球,设8个盒子,分别编1,2……同时13个小球进将13个小球装盒中去。

CLS DIM a(8) INPUT k FOR i = 1 TO k a(i) = i + 1 s = s + a(i) v = v + 1 IF s >= k THEN EXIT FOR NEXT i s = 0 FOR i = 1 TO v a(i) = i s = s + a(i) NEXT i x = ABS(s - k) i = v FOR j = 1 TO x a(i) = a(i) + 1 i = i - 1 NEXT j FOR i = 1 TO v PRINT a(i); NEXT i

编程是什么?什么都可以编吗?

只有你想不到的,没有你做不到的~

请用qbasic编程,非常急!!!

凡事都要靠自己,不能那个老依靠别人,我有个网址,没事去走走!http://ent.daqi.com/bbsnew/01/42925.html

用QBASIC编程:用枚举法找出1000以内所有素数

我想可能是应该把if放到for循环结构里。

人们通常所说的编程指的是什么?能教我一下吗?

就是用一堆指令控制定义好的变量为你工作!一天两天也讲不明白!

QBASIC编程语言和C语言有什么不同?

定义C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。 常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C等等..QB即Quick Basic语言.QBasic语言是Quick Basic语言的子集,它只有解释执行功能。属DOS平台下的编程语言,其精髓是当前VB及VB.NET编程语言的基础,只能说QBASIC编的程序不能在WIDOWS平台上运行。DOS发展到后期,出现了Quick Basic语言,它将BASICA,LINK以及DEBUG等软件合并在一起,在同一环境下对用户的源程序自动进行处理--编辑,进行语法检查,编译连接,执行,调试等,最终生成在DOS下的可执行EXE文件.Quick Basic兼容以往的Basic,大多以往Basica开发的源程序不作修改就可在Quick Basic环境下运行或编译.但要注意必须是Basica下以ASCII码存盘的源文件. Visual Basic是可视化Basic编程语言,有4.0,5.0和6.0,发展到现在有.NET BASIC,其中Visual Basic 6.0是应用最广泛的初学者编程语言,它基本兼容大多数BASIC下的源代码或稍加改动就能应用于Visual Basic的代码内,Visual Basic是编译型语言,所生成的EXE文件能在具有VB同版本运行库文件的WINDOWS环境下运行. 学好QBASIC语言对学好VB或C语言都有帮助,就象古汉语现在不用,但古汉语是学习现代汉语的基础一样。

vc编程中的thread什么意思

是线程多线程概述 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。 线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。 每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。 多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。要说明的一点是,目前大多数的计算机都是单处理器(CPU)的,为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,这就给人一种假象,好象这些线程都在同时运行。由此可见,如果两个非常活跃的线程为了抢夺对CPU的控制权,在线程切换时会消耗很多的CPU资源,反而会降低系统的性能。这一点在多线程编程时应该注意。 Win32 SDK函数支持进行多线程的程序设计,并提供了操作系统原理中的各种同步、互斥和临界区等操作。Visual C++ 6.0中,使用MFC类库也实现了多线程的程序设计,使得多线程编程更加方便。三、Win32 API对多线程编程的支持 Win32 提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作。下面将选取其中的一些重要函数进行说明。1、HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); 该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄,其中各参数说明如下: lpThreadAttributes:指向一个 SECURITY_ATTRIBUTES 结构的指针,该结构决定了线程的安全属性,一般置为 NULL; dwStackSize:指定了线程的堆栈深度,一般都设置为0; lpStartAddress:表示新线程开始执行时代码所在函数的地址,即线程的起始地址。一般情况为(LPTHREAD_START_ROUTINE)ThreadFunc,ThreadFunc 是线程函数名; lpParameter:指定了线程执行时传送给线程的32位参数,即线程函数的参数; dwCreationFlags:控制线程创建的附加标志,可以取两种值。如果该参数为0,线程在被创建后就会立即开始执行;如果该参数为CREATE_SUSPENDED,则系统产生线程后,该线程处于挂起状态,并不马上执行,直至函数ResumeThread被调用; lpThreadId:该参数返回所创建线程的ID;如果创建成功则返回线程的句柄,否则返回NULL。2、DWORD SuspendThread(HANDLE hThread); 该函数用于挂起指定的线程,如果函数执行成功,则线程的执行被终止。3、DWORD ResumeThread(HANDLE hThread); 该函数用于结束线程的挂起状态,执行线程。4、VOID ExitThread(DWORD dwExitCode); 该函数用于线程终结自身的执行,主要在线程的执行函数中被调用。其中参数dwExitCode用来设置线程的退出码。5、BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode); 一般情况下,线程运行结束之后,线程函数正常返回,但是应用程序可以调用TerminateThread强行终止某一线程的执行。各参数含义如下: hThread:将被终结的线程的句柄; dwExitCode:用于指定线程的退出码。 使用TerminateThread()终止某个线程的执行是不安全的,可能会引起系统不稳定;虽然该函数立即终止线程的执行,但并不释放线程所占用的资源。因此,一般不建议使用该函数。6、BOOL PostThreadMessage(DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam); 该函数将一条消息放入到指定线程的消息队列中,并且不等到消息被该线程处理时便返回。 idThread:将接收消息的线程的ID; Msg:指定用来发送的消息; wParam:同消息有关的字参数; lParam:同消息有关的长参数; 调用该函数时,如果即将接收消息的线程没有创建消息循环,则该函数执行失败。

ARM/Thumb指令集的汇编程序

一种方法是在编译器中加上-thumb选项,在编译器中进行设置好了之后编译下,采用的指令集就是Thumb指令集了。二是可以直接在ARM汇编里实现。具体的切换是通过Branch Exchange-即BX 指令来实现的。指令格式为:Thumb状态 BX RnARM状态 BX<condition> Rn其中Rn可以是寄存器R0-R15中的任意一个。指令可以通过将寄存器Rn的内容拷贝到程序计数器PC来完成在4Gbyte地址空间中的绝对跳转,而状态切换是由寄存器Rn的最低位来指定的,如果操作数寄存器的状态位Bit0=0,则进入ARM状态,如果Bit0=1,则进入Thumb状态,以下是一个用例:CODE32 //表示以下使用ARM状态下的代码,32位对齐LDR R0, =Into_Thumb+1 //将Into_Thumb地址值加1,再赋给R0//产生跳转地址并且设置最低位BX R0 //地址值位0为1,将进入THUMB状态//Branch Exchange 进入Thumb状态… CODE16 //Thumb状态下的子函数,16位对齐…LDR R3, =Back_to_ARM //将Back_to_ARM 地址值赋给R0//产生字对齐的跳转地址,最低位被清除,即bit0为0BX R3//Branch Exchange 返回到ARM状态,此时运行在ARM指令集环境里 CODE32 //ARM状态下的子函数Bach_to_ARM

请编程高手向我介绍一下C语言的历史,谢谢!!!

//检查x是否为素数,如果为素数返回1,否则返回0 int check(int x) { int i=0; for(i=2;i<x;i++) //如果存在一个能被2到x-1的数整除的话,,wgHoTU

查询目前使用的计算机编程语言,谁发明的,有什么特点;

C语言的祖先是BCPL语言。   1967年,剑桥大学的Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Pogramming Language)语言。   1970年,美国贝尔实验室的Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。   在1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。   为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。   1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。   K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,它意味着一个认可的正式标准是重要的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。   1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。   1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO有对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。   2001年和2004年先后进行了两次技术修正。   目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则有略有差别。

C语言编程问题:题目计算圆的面积。

你这个怎么看都是错的第一,主函数是这样定义的吗第二,这里乘法运算需要把float型转化为double型最后,没有返还函数,了return 0;改正如下:#include <stdio.h>#define PI 3.14159int main(){ float r,s; scanf("%f",&r); s=float(PI*r*r); printf("面积=%f ",s); return 0;}

C++语言 windows编程:关于鼠标坐标与屏幕如何对应起来的问题。

响应鼠标点击消息的是窗体客户区,所以在这个窗体内的客户区你无论点击那里都会触发鼠标点击的消息(貌似是WM_LBUTTONDOWN?记不清了).WM_PAINT只是绘制上了小方格而不是将窗体划分成了若干个子窗体.

求MPPT(太阳能最大功率点跟踪)扰动法算法的完整源程序,最好是基于avr编程的。

采集电压和电流,分别计为Current和VoltageMPPT_Old=Current*Vlotage;MPPT_New=Current*Vlotage;if(MPPT_Old<MPPT_New){ MPPT=MPPT_New;}else{ MPPT=MPPT_Old;}.........return(MPPT_parameter) 我* 我20号回答的怎么22号又多了一个?

在哪些网站可以自学编程?自学编程是不是很难精进呢?

是可以通过虎课网来进行相关资料的学习,而且他的视频内容比较丰富;我个人认为自学编程的难度是比较大的,可以报考一些相关的培训班来进行相应的学习,达到事半功倍的效果,提升自己的学习能力以及各方面能力.

Authorware共有多少个编程图标?每个编程图标的功能和作用是什么?

共十三个图标下面就是2.多媒体元素图标这一类图标是最基本的多媒体元素图标,用于装入文本、图片、动画和声音,属于这一类功 能的图标有:显示图标、声音图标和动画图标。(1)显示图标显示图标用于显示文本和图形。许多显示选项可通过[属性]莱单中的“效果”命令来获得。(2)声音图标声音图标允许你将各类声音集成到应用文件中使其更加有效和吸引人,你可以在应用文 件的任何地方快速而方便地放置声音图标,并从各种声源装载声音,然后调整播放选项以适合 你的需要。Authorware软件中包含一些录制好的样本音效和音乐文件,你可以将它们集成到 应用文件中体验其效果。(3)动画图标动画图标允许你将其他应用软件制作的动画(Movie)文件调入到你的Authorware文件之中。可让动画在一个位置上固定显示,也可用一运动图标让它移动。你能够简便地控制一个动画的选项,比如它播放的次数和播放的速度。根据动画的类型,一个动画可以内装载或外部查找,内装载的动画被装入到Authorware 文件之中,增加了文件的数量。外部查找的动画未被装入到Authorware文件之中。当Autbor ware在流程线上遇到一个动画图标时,你必须保证外部查找的动画放在Authorware能够访 问到的目录路径下。如果因为某种原因,你必须将打包的Authorw8re应用文件与动画文件分 开存储到不同的目录之下,则必须利用相关的函数和变量指定所要查找的目录。在AuthorwareStar中文版中可以使用以下类型的动画文件:rector3.1 Player for Windows(.mmm), Microsoft Video for Wirldows(.AVI),QuickTirne for Windows (.MOV)、AutodeskAnimator和AutodeskAnimatorPro(.FLC、.FLI和.CEL)文件。3.等待图标与组图标这一类图标的功能比较单一,没有太多的变化选项,使用也相对比较简单。(1)等待图标等待图标使文件暂停执行,等待用户按一个键或敲击鼠标,或等待指定的一段时间过后继 续运行。双击该图标可打开它,其选项对话框出现。等待图标不像许多其他图标那样,在Authorware运行文件中遇到一个新等待图标时它 并不自动打开。但是你可以人为地打开它,如果选择显示等待图标的计时钟,双击计时钟便可 打开它。(2)组图标一个组图标表示着一组有相关功能的其他图标的组合。双击一个组图标可打开一个窗口 和它自己的流程线以及该组图标包含的其他图标。你可将流程线上连续的图标组合成一个组图标,只要你先选中它们然后用[编辑]菜单中 的“建组”命令。4.运动图标与擦除图标这一类图标需要对其指定所要操作的对象。(1)运动图标运动图标并不演示或包含显示对象,而是在给定的时间内或以指定的速度将显示内容(包 括动画),从一个地方移动到另一个地方。运动图标使前面的某一显示、动画或交互图标中的显 示内容一起运动。用鼠标右键单击一个运动图标可预览运动图标移动的内容。再敲击其他的地方可使预览 消失。在Authorware中共有5种类型的运动:.固定目的地运动.固定路径运动.刻度轨迹运动.线性刻度轨迹运动.X—Y刻度运动(2)擦除图标擦除图标可擦除文本和图形显示内容。擦除一个显示,将擦除它所在图标中包含的所有物 体。如果你只想擦除一个特定的物体,可将这个物体放在一个独立的图标中。在你运行文件时,如果Authorware遇到一个未定义的擦除图标,它将自动打开擦除选项对话框。如果你用鼠标双击流程线中擦除图标的方式把它打开时,擦除对话框打开,展示窗口出现,并显示它以前显示的内容。5.结构类图标通过这一类图标,可以实现复杂的分支、交互结构。(l)分支图标当Authorware遇到一个分支图标时,它决定着程序将向挂在分支图标下的哪一个图标运行。Aurhorware根据以下两个因素决定选择哪一个图标分支的设定,它决定着哪一个图标该被选中。重复的设定,它决定着Authorware返回此分支图标并循环多少次。这两个选项均在分支选项对话框中设定,你可双击分支图标显示此对话框,因为分支图标 没有显示功能、你可以从显示窗口进入。分支选项对话框的标题栏中标记着图标的名称。⑵交互图标交互图标结合了显示图标和分支图标的功能。.显示功能可以向用户显示一些内容,而用户则需要作出某种响应,如敲击一个物体,按一个按钮、输入文本及其他。.分支功能当用户对显示内容作出响应(交互)时,Authorware选取一个挂接在交互图标下的图标作为分支。用户做的每类响应对应着下面挂接的一个图标,下挂的图标包含着你根 据用户如何响应而给他们相应的信息。例如,若用户输入文本,你大慨希望告诉他们输入的文本是否正确,如果不正确,你可以给出一个提示或要求他们再试一次。6.计算图标与模拟视频图标(1)计算图标计算图标允许你在流程线的任何点上插入一个计算式。双击一个计算图标可以打开一个 计算编辑窗口。在此窗口内可以输入计算表达式和注释。(2)模拟视频图标模拟视频图标允许在应用文件中播放激光视盘的视频片段。将激光视盘机与计算机连接 起来,然后在Authorware文件中你需要的地方加入一个视频图标,播放视频片段。

编程里auto是什么意思?怎么用?

auto是自动的意思。用法:(auto)intb;括号表示可省定义b是自动的整型变量但是,常见的intb;实际上是省去了auto

编程开发,前台后台专业名词是什么,英文

"前台" 和 "后台" 本身就是不专业的说法....哪来专业的每词

Excel VBA编程中有哪些常用的英文词汇

VBA对英文肯定是有需求的,因为代码输入时都有联想功能,你只需要去选择就行,不一定要求会读会写,但肯定要认得,不认得会困难很多,认得它就需要去记了,所以学它还是有点英语基础好点。

QT编程读取歌词

给网
 首页 上一页  3 4 5 6 7 8 9 10 11 12 13  下一页  尾页