第一篇:(BIT小学期编程题解)9~12经验总结
【经验总结】9~12题小总结
在各位大神的提醒和帮助下终于做完了,下面小小的总结一下。第9题《千字文》 大体思路:
主要就是数据的读入和输出,进行UTF-8和unicodo以及十进制之间的转换,转换完成进行计数然后输出。其实题目的主体并不难,难的是数据的读入和输出。但是需要判断一下这个字符是用几个字节表示的,如果读入的值在0~127之间说明是用一个字节表示的,如果在192~223之间就表示是用两个字节表示的,根据题意,其他的情况就是用三个字节表示的。具体实现:
输入用getchar()读入,然后结束的标记就用!=255,因为getchar()是一个字节一个字节读的,而UTF-8刚好又是以字节的形式存储的,所以正好搭配。
至于运用位运算还不是很熟练,所以就先不说位运算那种方法了,说一下一个暴力计算Unicode的方法:对于一个字节表示的字符其UTF-8的表示方式是0×××××××;对于两个字节表示的字符其表示方式是110×××××
10××××××;对于三个字节表示的字符其表示方式就是1110××××
10××××××
10××××××;依次类推。然后Unicode就是将上面的×号所在的位上的0或1字串链接起来所得到的一个大的二进制串的值。下面就是计算了,可以这样运用纯数学的方式计算。比如说对于二进制的符号来说假设第一个字节表示的数是a,第二个字节表示的数是b,那么将后面的×号所在位上的数字链接起来所得到的二进制字符串的十进制表示就是(a-2^7-2^6)*2^6+(b-2^7)这个主要就是运用了二进制与十进制的转化。计算出字符相应的Unicode值之后就把其作为计数数组的下标,然后进行计数,这样也省去了最后字符要按Unicode的大小进行输出时的排序那一步。三个字节的计算方法和两个字节的计算方法一样就不再说了。然后就是输出汉字,输出的时候需要判断一下Unicode的值以确定该字符是用三个字节表示的还是用两个字节表示的,两个字节可以表示的范围是128~2047,输出的时候可以采用这样的输出方式(“%c%c”,a,b)a,b,就是前面我们读入时的a,b的值。这里那,对于啊a,b可以有两种方式来计算,第一种就是在最开始计算的时候就把每一个字符所用的字节表示的数给记录下来;第二种就是再将Unicode的十进制形式转换为UTF-8以字节表示的形式,具体转换时这样的,假设Unicode的值是t(对于两个字节表示的字符来说),那么b=t%2^6+2^8,a=t/2^6+2^6+2^7,这样也可以计算出来啊a,b的值。这样一个汉字就输出来了,剩下的就是输出其十六进制表示就用printf(“0x%04x”,unicode);然后再输出大于1的字符的个数就好。
第10题找9.整体思路:
整体思路就是以高精度算法为工具,以黄轩成大神的结论:(0,a)中 含9的数字的个数是(a[0]*10^4 + a[1]*10^3 + a[2]*10^2 + a[3]*10 + a[4])减去(a[0]*9^4 + a[1]*9^3 + a[2]*9^2 + 0 + 0)为导向进行计算。分别计算出小于a和小于b的数中含9的数的多少,然后相减就可以了。具体方法:
首先是数据读入,可以用getchar()读入然后一位一位的处理,也可以用%s读入然后再一位一位的处理。中间的一位一位的处理过程主要就运用到了秦九韶算法,(a[0]*10^4 + a[1]*10^3 + a[2]*10^2 + a[3]*10 + a[4])=((((a[0]*10+a[1])*10+a[2])*10+a[3])*10+a[4])也就是每读一位就 *10+x(a[0]*9^4 + a[1]*9^3 + a[2]*9^2 + 0 + 0)=((((a[0]*9+a[1])*9+a[2])*9+0)*9+0);对于上面的第一步,其实本质含义就是把字符串转化为整形的数,对于第二个计算式就是用一个数组来计数,每读一位就进行一次数组乘9然后加上这一位的数值。注意中间需要判断一下,如果读入的数里面有9那么以后就只用乘9不用再加每一位上的数字了,这个标记一下就好。这样就可以把小于a,小于b的数中含9 的数找到相减就可以了,注意一下如果b中含有9那么最后的结果要+1.然后就是编写高精度加法,减法,高精度乘低精度乘法的函数了,跟前不久写的高精度很类似,只是把进位改一下,程序微调一下就好了。编写的时候注意因为最后的结果很大,所以要进行数位压缩,如果采用100000000进制压缩的话,最后存结果的数组只用开到1250就够了(当然实际开的时候要大一些,不然会RE的)
还有需要注意的就是:
(1)存a,b的数组要大一些10005左右,存结果的数组1260左右。
(2)输出的时候如果结果不是存结果数组的第一个元素,那么其他的元素在输出的时候需要补0用%08d输出就好。(3)编写函数的时候注意进位。第11题,识别条形码
整体思路:
整体思路就是对给出的数据进行排序,根据最值得情况来判断改组数据是不是合法,是不是只有宽条,处理好多%5少%5就好了。具体实现:
讨论区里面大神们已经用各种不同的方法得到了结果,我这里就不说了就给出几个判定的等式
宽Max/窄min<=1.05/0.95 窄Max/窄min<=1.05/0.95 宽Max/窄min<=2.1/0.95 宽min/窄Max>=1.9/1.05 因为一共只有20个数所以可以有比较多的方法。第12题 整体思路: 整体思路就是遍搜,找出可以收集到的珠子的最大个数,从开始找断点然后分别向两边进行搜索。珠子的情况大致可以分为三种,一种是全部为W,一种是全部为B或是R,还有一种就是这三种颜色的珠子混合存在。具体方法:
具体方法其实就是怎么实现珠子连在一起的问题,如果直接做的话可以这样:(1)在循环的时候,循环变量一旦减到负数就加上n,一旦加到n就减去n。(2)也可以把原来的字符串复制一次或是两次到一个叔组里面,然后就不用考虑最后的链接问题了,每一次只要在i~i+n之间循环就可以了。
具体循环的时候就是左边找一遍然后右边找一遍,然后把左右两边的珠子数加在一起,但是存在全部是R或是全部是B或是全为W和R混或是全为W和B混合,所以在从一边向另一边记录的时候最好设置一个变量,意思就是左边已经搜索过的,右边就不用再搜索了,这样就可以防止最后的结果大于n。然后每次搜索过后的结果都和Max比较,让Max取最大值就好了,最后输出Max即可。
希望对还没有过的有帮助,如果有什么错误,希望提出来,谢谢!
第二篇:数控编程经验总结
一、刀路的总则:
开粗:在机床的最大负荷下,绝大部分情况应选用尽可能大的刀,尽可能大的的进刀量,尽可能快的进给。在同一把刀的情况下,进给与进刀量成反比。一般情况下,机床的负荷不是问题,选刀的原则主要依产品的二维角与三维弧是否过小来考虑。选好刀后,便定刀长,原则是刀长大于加工深度,大工件则要考虑夹头是否有干涉。光刀:光刀的目的是为了达到满足工件表面光洁度、预留适当余量的加工要求。同样,光刀选用尽可能大的刀,尽可能快的时间,因为精刀需要较长的时间,用最合适的进刀与进给。在同一进给下横向进刀越大越快,曲面进刀量与加工后的光洁度有关,进给的大小与曲面的外表形状有关,在不伤及面的情况下,留最小的余量、用最大的刀、最快的转速、适当的进给。
二、装夹方法:
1、所有的装夹都是横长竖短。
2、虎钳装夹:装夹高度不应低于10个毫米,在加工工件时必须指明装夹高度与加工高度。加工高度应高出虎钳平面5毫米左右,目的是保证牢固性,同时不伤及虎钳。此种装夹属一般性的装夹,装夹高度还与工件大小有关,工件越大,则装夹高度相应增大。
3、夹板装夹:夹板用码仔码在工作台上,工件用螺丝锁在夹板上,此种装夹适用于装夹高度不够及加工力较大的工件,一般中大型工件,效果比较好。
4、码铁装夹:在工件较大、装夹高度不够,又不准在底部锁缧丝时,则用码铁装夹。此种装夹需二次装夹,先码好四角,加工好其它部分,然后再码四边,加工四角。二次装夹时,不要让工件松动,先码再松。也可以先码两边,加工另两边。
5、刀具的装夹:直径10mm以上,装夹长度不低于30mm;直径10mm以下,装夹长度不低于20mm。刀具的装夹要牢固,严防撞刀与直接插入工件。
三、刀具的分类及其适用范围:
1、按材质分:
白钢刀:易磨损,用于铜公及小钢料开粗。钨钢刀:用于清角(特别是钢料)及光刀。合金刀:类似于钨钢刀。紫刀:用于高速切削,不易磨损。
2、按刀头分:
平底刀:用于平面及直身侧面,清平面角。球刀:用于各种曲面中光、光刀。
牛鼻刀(有单边、双边及五边):用于钢料开粗(R0.8、R0.3、R0.5、R0.4)。粗皮刀:用于开粗,注意余量的留法(0.3)。
3、按刀杆分:
直杆刀:直杆刀适用各种场合。
斜杆刀:但不适用于直身面及斜度小于杆斜度的面。
4、按刀刃分:
两刃、三刃、四刃,刃数越多,效果越好,但做功越多,转速及进给相应调整,刃数多寿命长。
5、球刀与飞刀光刀的区别:
球刀:凹面尺小于球尺,平面尺小于球R时,光不到(清不到底角)。
飞刀:优点是能清底角。相同参数的比较:V=R*ω转速快许多(飞刀),力大光出的东西亮,飞刀较多地用于等高外形,有时用飞刀不需中光。缺点是凹面尺寸及平面尺小于飞刀直径时光不到。
四、CNC配合电火花加工,铜公的做法:
1、什么情况下需要做铜公:
刀完全下不去要做铜公,在一个铜公中还有下不去的,形状是凸出需再分。刀能下去,但易断刀的也需做铜公,这需根据实际情况而定。要求火花纹的产品需做铜公。铜公做不成的,骨位太薄太高,易损公且易变形,加工中变形与打火花变形,此时需镶件。
铜公加工出的东西表面(特别是曲面会很顺很均匀)能克服精锣中的许多问题与绘图中的许多问题。要求精确外形或余量多时必须做粗铜公。
2、铜公的做法:
选出要做铜公的面,补全该补的面,或延长该延的面,保证铜公的所有边缘大于要打的边缘同时不伤及其它产品的面,去掉不必要的清不到的平面角(与平面角相交处是更深的胶位),补成规则形状;找出铜公最大外形,用一边界然后投影到托面;定出基准框大小,剪掉掉托面,到此铜公图基本完成;备料:长*宽*高,长与宽≥Ymax与Xmax为基准框实际铜料的长宽必须大于图上基准框。高≥铜公的理论尺寸+基准框高+装夹高度。
五、图纸定数问题:
1、在没有现成的加工面下,平面四面分中,中心对原点,顶面对零,顶面不平时(铜公而言)留0.1的余量,即碰数时,实际对(z),图上偏低0.1。
2、当有现成的加工面时,使图上的现成面对0(z),平面能分中则分中,否则以现成边碰数(单边)加工面则要校核实际高度,宽,长与图纸差别,按实际的料来编程。一般情况,先加工成图上的尺寸再加工图上形状。
3、当要多个位加工时,第一个位(标准位),就要把其它几个位的基准锣好,长宽高都要锣,所有下一次加工基准要以上次已加工好的面为准。
4、镶件的定位:放在整体里面,把下面垫起一定高度然后图纸也升高此高度,平面按整体分中,高度按图下面用镙丝锁住;是方方正正的则可直分中;粗略一点可用最大外形分中;割一夹具,按夹具分中,镶件图与夹具的相对位置确定然后把图纸原点放在夹具中心点。
六、开粗的刀路选择:
1、曲面挖槽:
关键是范围的选择与面的选择,刀路加工的区域是以所选范围内所选面为终止面,从最高点到最低点刀具能下得去的所有地方为原则。所选面最好是全体面,边界则只能是所要加工的区域,无面处延伸小于半个刀径的距离,因为其它面留有足够余量所以自动保护;最好延伸最低线,因为最低处有一个R锣不到。
刀的选择:如刀具不能螺旋或斜线进刀时或加工不到的区域进不了刀的区域封起,留待二次开粗。光刀之前,一定要把未开粗的区域全部开粗,特别是小角,其中包括二维角,三维角及封起来的区域,不然则会断刀。
二次开粗:一般用三维挖槽选范围,平底刀,能用平面挖槽与外形刀路的则用。在不伤及其它面的情况下刀具中心到所选边界,一般不精修边界,用快速双向角度视情况而定,螺旋进刀,角度1.5度,高1,当挖槽形状为条形,不能螺旋下刀则用斜线进刀,一般打开过滤,特别是曲面开粗,进刀平面不可低,以免撞刀,安全高度不可低。
退刀:一般不用相对退刀,用绝对退刀,当没有岛屿时则用相对退刀。
2、平面挖槽:铣各种平面,凹平槽,当铣部分开放式平面时,则需定边界,原则能进刀(大于一个刀径),开放处偏外大于半个刀径,封闭外围。
3、外形:当所选平面适合外形分层,则用外形分层提刀(平面外形),提刀点与下刀点为一点时,不须提刀z平面一般提刀,尽量不用相对高度;补正方向一般右补正(顺刀)。
4、机械补正的刀路设置:补正号为21,改电脑补正机械补正,进刀为垂直进刀,刀过不了的地方则改大R不留余量。
5、等高外形:适合于走封闭式的面,走开放式的面若是四圈则要封项面,若是四圈内或非四圈则要选范围与高度(一定弧形进刀开粗),用于开粗的情况:任一平面内的加工距离小于一个刀径,若大于一个刀径则要用更大的刀或两次等高外形。
6、曲面流线:具有最好的均匀性与干脆性,适合光刀很多时候可取代等高外形。
7、放射刀路:适合中间有大孔的情况(少用)。注意事项:弹刀,刀不锋利,刀过长,工件过深时要环绕走不可上下走;工件中的利角两边的面要分两个刀路,不可越过去,光刀时的边缘最好延长(用弧线进退刀)。
七、清角:
1、这里的清角清的是二维死角,是前面工序都未曾走到的部分,如光刀需走到的地方则应先清角再光刀,太小大深的角可分几把刀清,不要用小刀清太多地方。
2、清三维角:开一些小槽,一些三维转角处。
3、易断刀,一定要考虑像细刀、过长,加工量过大(主要是z向,深度方向)的情况。
4、刀路:用二维外形走,只能清小角(R0.8)及二维平面角;用平行刀路;用等高外形;有一种地方刀子去不了的曲面及外形走不到的死角则要先封起来起刀,最后清角,大面中的小缺口一般先封起来。
八、中光:
1、中光:作为曲面的钢料与细公才中光。
2、原则:大刀开粗时层与层间的余量较多,为使光刀时得到更好效果的一道工序,3、特点:快速清除,大刀飞刀亦可,大进给,大间距;不必顾忌表面质量;平面的工件不必中光;等高外形的工件不用中光,等高外形开粗时可细一点把两道工序放在一起,细一点指表面余量与层与层的距离;需不需中光,还有一个重要因素是工作的材料,材料越硬,则考虑中光;中光的加工方向与光刀开粗最好相对这样加工的东西会效果好,均匀。
九、光刀:
光刀是要达到各种产品与模具的装配要求所以要非常慎重,根据不同的要求给予不同的刀路设置与参数设置。
1、光刀的下刀高度与最后高度都改为0,公差设计1个丝以内,不需过滤(工件越小公差越小,公差影响外型)。
2、前模与分型面要达到最好的光洁度,后模可次,其它非配合及避空位可粗糙点。
3、刀路设计由以下因素决定:
具体外形(如平面与其它面),陡峭面与平坦曲面。两面之间是否利角(利角则分开)。两部分是否要求不同(要不要留余量,余量的多少,光洁度的要求不同)。光刀中保护面问题是个大问题,对已加工好的面一定要预到加工中的误差保护起来,按保护面的要求保护起来。范围保护,不计误差的0保护,高度范围与平面范围;保护面保护。
刀路的延长问题:光刀中,刀路加工到边缘时最好作圆弧进退刀否则事先把面稍加延长。
光刀中的提刀问题:提刀浪费时间,所以尽量避免提刀。方法1:设提刀间隙(小缺口)
方法2:封面,把提刀处封起来(小缺口)方法3:避开间隙(大缺口处)
方法4:等高外形时延长到同一高度,光刀中的进刀问题,第一刀进刀一定要从工件外进,避免振动及碰伤工件,所有光刀一定设进刀。刀具的磨损问题:当工件较大时,需多把刀光完同一工件。
第三篇:VC++编程经验总结(范文)
VC++编程经验总结
vc++如何实现远程调试
*假设调试机IP 192.168.0.182 远程机IP 192.168.0.161
*远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。
*调试机上安装visual studio.net 2003
共享调试机上的Visual Studio上的远程调试目录(以我的机器为例)
C:Program FilesMicrosoft Visual Studio.NET
2003Common7PackagesDebugger
*远程机将上面的共享目录考贝到本地,比如:d:Debugger
*调试机共享要调试的程序所在目录,比如:
D:importantcvsrootdv-to-dvdbindebug
*远程机将调试机上的目录影射为本地目录。比如:Z:
*远程机上以命令行形式执行 D:Debuggermsvcmon.exe –tcpip –anyuser
*调试机启动vc.打开要调试的工程。比如dvtodvd.选择菜单project->properties 选debuging->remote setting
Connection :Remote via TCP/IP(Native only)
Remote machine: 192.168.0.161
Remote Command: z:dvtodvd.exe
*debug->start
*就可以调试了。
1.如何在Release状态下进行调试
Project->Setting=>ProjectSetting 对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选 Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。
注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。
2.Release和Debug有什么不同
Release版称为发行版,Debug版称为调试版。
Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。Release 的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL文件,在没有安装Visual C++6.0的机器上不能运行,因为缺相应的DLL,除非选择use static dll when link。
3.ASSERT和VERIFY有什么区别
ASSERT里面的内容在Release版本中不编译,VERIFY里面的内容仍然翻译,但不再判断真假。所以后者更安全一点。
例如ASSERT(file.Open(strFileName))。
一旦到了Release版本中,这一行就忽略了,file根本就不Open()了,而且没有任何出错的信息。如果用VERIFY()就不会有这个问题。
4.Workspace和Project之间是什么样的关系
每个Workspace可以包括几个project,但只有一个处于Active状态,各个project之间可以有依赖关系,在project的Setting..中可以设定,比如那个Active状态的project可以依赖于其他的提供其函数调用的静态库。
5.如何在非MFC程序中使用ClassWizard
在工程目录下新建一个空的.RC文件,然后加入到工程中就可以了。
6.如何设置断点
按F9在当前光标处增加一个断点和取消一个断点。
另外,在编辑状态下,按Ctrl+B组合键,弹出断点设置对话框。然后单击【Condition…】按钮弹出设置断点条件的对话框进行设置。
7.在编辑状态下发现成员变量或函数不能显示提示是如何打开显示功能
这似乎是目前这个Visual C++ 6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:
(1)关闭Project
(2)删除“工程名.ncb”文件
(3)重新打开工程
8.如何将一个通过ClassWizard生成的类彻底删除
首先在工作区的FileView中选中该类的.h和.cpp文件,按delete删除,然后在文件管理器中将这两个文件删除,再运行ClassWizard,这时出现是否移走该类的提示,选择remove就可以了。
9.如何将在workspace中消失的类找出来
打开该类对应的头文件,然后将其类名随便改一下,这个时候工作区就会出现新的类,再将这个类改回原来的名字就可以了。
10.如何清除所有的断点
菜单【Edit】->【Breakpoints…】,打开“Breakpoints”对话框,单击【Remove All】按钮即可。快捷键是“Ctrl + Shift + F8”。
11.如何再ClassWizard中选择未列出的信息
打开“ClassWizard”对话框,然后切换到“Class Info”页面。改变“Message filter”,如选择“Window”,“Message”页面就会出现Window的信息。
12.如何检测程序中的括号是否匹配
把光标移动到需要检测的括号前面,按快捷键“Ctrl + ]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告。
13.如何查看一个宏(或变量、函数)的定义
把光标移动到要查看的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的相关菜单),如果没有建立浏览文件,就会出现提示对话框,按【确定】按钮,然后就会跳到该宏(或变量、函数)定义的地方。
14.如何添加Lib文件到当前工程
单击菜单【Project】->【Settings…】弹出“Project Setting”对话框,切换到“Link”标签页,在“Object/library modules”处输入Lib文件名称,不同的Lib之间用空格格开。
15.如何快速删除项目下的Debug文件夹中临时文件
在工作区的FileView视图中选中对应的项目,单击右键弹出菜单,选择【Clean(selection only)】菜单即可。
16.如何快速生成一个现有工程除了工程名外完全相同的新工程
在新建工程的“New”对话框中选择“Custom Appwizard”项,输入新工程的名字,单击
【OK】按钮。出现“Custom AppWizard”项,输入新工程的名字,单击【OK】按钮。出现“Custom AppWizard-Step 1 of 2”对话框,选择“An existing Project”项,单击
【Next】按钮。出现“Custom AppWizard-Step 2 of 2”对话框,选择现有工程的工程文件名,最后单击【Finish】按钮。编译后就生成一个与现有工程相同但可以重新取名的工程AppWizard。
现在就可以项用MFC AppWizard一样用这个定制的向导。如果不想用了,可以在Visual C++ 6.0安装目录下CommonMSDev98Template目录中删除该Wizard对应的.awx和.pdb文件。
17.如何解决Visual C++ 6.0不正确连接的问题
情景:明明改动了一个文件,却要把整个项目全部重新编译链接一次。刚刚链接好,一运行,又提示重新编译链接一次。
这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。可以这样处理:找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“Rebuild All”一次。
18.引起LNK2001的常见错误都有哪些
遇到的LNK2001错误主要为:unresolved external symbol “symbol”
如果链接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误信息。
一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在,拼写不正确或者使用错误;其次可能使用了不同版本的链接库。以下是可能产生LNK2001错误的原因:
<1>由于编码错误导致的LNK2001错误
(1)不相匹配的程序代码或模块定义(.DEF)文件导致LNK2001。例如,如果在C++源文件了内声明了一变量“var1”,却试图在另一个文件内以变量“var1”访问改变量。
(2)如果使用的内联函数是在.cpp文件内定义的,而不是在头文件内定义将导致LNK2001错误。
(3)调用函数时如果所用的参数类型和头函数声明时的类型不符将会产生LNK2001错误。
(4)试图从基类的构造函数或析构函数中调用虚拟函数时将会导致LNK2001错误。
(5)要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部方位任何没有在该文件内声明的静态变量时将导致编译错误或LNK2001错误。
<2>由于编译和联机的设置而造成的LNK2001错误
(1)如果编译时使用的是/NOD(/NODERAULTLIB)选项,程序所需要的运行库和MFC时将得到又编译器写入目标文件模块,但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。这种情况下使用/NOD将导致LNK2001错误
(2)如果没有为wWinMainCRTStartup设定程序入口,在使用Unicode和MFC时将出现“unresolved external on _WinMain@16”的LNK2001错误信息。
(3)使用/MD选项编译时,既然所有的运行库都被保留在动态链接库之内,源文件中对“func”的引用,在目标文件里即对“__imp__func”的引用。如果试图使用静态库LIBC.LIB或LIBCMT.LIB进行链接,将在__imp__func上发生LNK2001错误。如果不使用/MD选项编译,在使用MSVCxx.LIB链接时也会发生LNK2001错误。
(4)使用/ML选项编译时,如用LIBCMT.LIB链接会在_errno上发生LNK2001错误。
(5)当编译调试版的应用程序时,如果采用发行版模态库进行链接也会产生LNK2001错误;同样,使用调试版模态库链接发行版应用程序时也会产生相同的错误。
(6)不同版本的库和编译器的混合使用也能产生问题,因为新版的库里可能包含早先的版本没有的符号和说明。
(7)在不同的模块中使用内联和非内联的编译选项能够导致LNK2001错误。如果创建C++库时打开了函数内联(/Ob1或/Ob2),但是在描述该函数的相应头文件里却关闭了函数内联(没有inline关键字),只是将得到错误信息。为避免该问题的发生,应该在相应的头文件中用inline关键字标志为内联函数。
(8)不正确的/SUBSYSTEM或ENTRY设置也能导致LNK2001错误。
19.如何调试一个没有源码的exe文件调用的dll
在Visual C++ 6.0中,进入“Project Setting”对话框然后选择Debug标签页。通常Visual Studio默认“executable for debug session”为可执行文件名,但可以将他改成任何你想要的程序。甚至可以指定不同的工作目录以及传递参数到你的程序。这个技术常用来调试Dlls、名字空间扩展、COM对象和其他从某些EXE以及从第三方的EXE中调用的plug-in程序。
20.Visual C++ 6.0工程中的项目文件都表示什么
.opt:工程关于开发环境的参数文件。如工具条位置等信息。
.aps(AppStudio File)资源辅助文件,二进制格式,一般不用去管它。
.clw:ClassWizard信息文件,实际上是INI文件格式,有兴趣可以研究一下。有时候ClassWizard出了问题,手工修改CLW文件可以解决。如果此文件不存在的话,每次用ClassWizard的时候回提示是否重建。
.dsp(DevelopStudio Project):项目文件,文本格式,不过不熟悉的不要手工修改。.dsw(DevelopStudio Workspace):是工作区文件,其他特点和.dsp差不多。
.plg:是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大。在单击菜单【Tool】->【Option】弹出的对话框里面有个选项可以控制这个文件的生成。
.hpj(Help Project):是生成帮助文件的工程,用microsoft Help Compiler可以处理。.mdp(Microsoft DevStudio Project):是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的.dsp格式。
.bsc:是用于浏览项目信息的,如果用Source Brower的话就必须有这个文件。如果不用这个功能的话,可以在Project Options里面去掉Generate Browse Info File,这样可以加快编译速度。
.map是执行文件的映象信息记录文件,除非对系统底层,这个文件一般用不着。.pch(Pre-Compiled File):是与编译文件,可以加快编译速度,但是文件非常大。
.pdb(Program Database):记录了程序有关的一些数据和调试信息,在调试的时候可能有用。
.exp:只有在编译DLL的时候才会生成,记录了DLL文件的一些信息,一般也没有用。.ncb:无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。
第四篇:编程课程心得体会
计算机最重要的就是上机操作,自己编写程序,在VisualC++运行,下面就是小编给大家带来的编程课程心得体会范文【五篇】,希望能帮助到大家!
编程课程心得体会范文一
经过一个学期的学习,我对C语言有了一定的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。
计算机重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,终于能够运行了,就觉得特别激动。
课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。
课程设计是学习《C程序设计》后对知识的全面测试,刚拿到题目时不知道怎么去处理,觉得很复杂,经过和小组成员的讨论,上网查资料,逐个问题逐个击破,问题不再那么复杂。通过课程设计,我发现自己还存在很多知识漏洞,编写程序时,经常会出现低级错误,很多知识点都不熟悉。在今后的时间里,我一定要投入更多精力学习C语言,以课本为基础,请教老师,与同学讨论,参考资料,上机操作,我相信我一定能把C语言学好。
编程课程心得体会范文二
学习vb程序已经一个学期了,但是感觉没有学到真正的知识。但是近几个课时的课程学习让我受益匪浅,学会了一些简单的程序语言设计,并且感觉这是一种乐趣,开始喜欢这门课程了。
然而,我深刻体会到这门课程并不是轻而易举就可也学好的,学习这门课程不仅需要细心严谨的态度,还需要充分发挥我们的想象力,让理论和实践充分的结合在一起,才能达到事半功倍的效果。细节决定成败这句话在程序设计中恰当不过了,因为一个小小的错误代码就可以使你的整个的程序无法进行,有时候绞尽脑汁也没能找出错误所在,只好老老实实的从新进行编写工作。所以课程不仅理论性强,实际操作性更强,没有一个好的心态很难学好这门课程。我们学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物,且希望通过这次的实践操作可以让我更好地学习vb程序设计。
编程课程心得体会范文三
本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。
这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做完了课程设计。
在这次课程兼职设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正弦波时,我就弄了很长时间,先是远离不清晰,这直接导致了我无法很顺利地连接电路,然后翻阅了大量书籍,查资料,终于在书中查到了有关章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数字频率计时就不是那么一帆风顺了。我同样是查阅资料,虽找到了原理框图,但电路图却始终设计不出来,实在没办法,只能用数字是中来代替。在此,我深表遗憾!
这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些!
编程课程心得体会范文四
随着我国机械制造业的快速发展,我国正逐步变成“世界制造中心”。为了增强竞争能力,我国制造业正在广泛的使用先进的数控技术。21世纪机械制造业的竞争,很大程度上是数控技术的竞争。为了适应社会的需求,进一步增强机械专业学生的竞争能力,我们进行了为期2周的CAD/CAM综合实训。
这对于我们来说无疑是一件好事。通过两周的数控综合实训,使我们更深一步地认识和掌握CAD/CAM软件,并深刻体会到了自动编程软件(mastercam)在数控机床加工中的巨大作用,尤其是铣削部分。通过学习使我们从理论学习转到了实际生产,同时我们对加工参数的设置有了感性的认识,如下刀位置、下刀方式、进退刀参数以及刀具切削间距的设定等等。
我们加工的零件虽然难度不大,但是十分的耗时间,因为要大量的使用线切割,这就需要我们有足够的耐心。我们经历了穿丝、绘图、加工的整个过程,算是初步掌握了一项技能,确实是受益匪浅。
此次实训以培养学生的创新精神和实践能力为目的,以就业为导向,进一步提高学生对于计算机应用和分析问题及解决问题的能力,为以后适用于社会发展的需要。通过两周实训让我们更好的巩固理解并掌握CAD/CAM的有关知识。达到能熟练、独立的使用CAD/CAM软件配合数控机床,进行合理有效的完成产品加工。
经过两周的实训,我们认识到了我们专业的先进性,更重要的是为我们以后从事数控行业打下坚实的基础,学到了知识和技术,更重要的是学会了团队合作的精神。
编程课程心得体会范文五
经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像职工信息表这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题,这并不是我们平时只靠课本,就可以轻易解决的(liuxue86.com)。所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在Visual C++中如何调试程序的方法。当然,老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。
在老师和同学的帮助下,通过自己的努力,终于完成了这次职工信息表的简单课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。
通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。
虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!
总而言之,这次C++程序设计实践让我收获很大。
第五篇:福建省中考作文题解及示例(小编推荐)
福建省中考作文题解及范文示例
福建省武平二中石文美
[试 题]请把下边作文的副标题填写完整,然后写一篇记叙文,字数600左右(40分)。
题目:乐在其中
——记一堂________课
[题 解]
这是一篇以记事为主的命题记叙文,与一般命题记叙文所不同的是,它还加了个要作文
者自己填部分文字的副标题,显示了所记的具体内容。由于填的词不同,也就限制规定了文
章的选材范围。
从思维的顺方向考虑,这堂课可在学科课中去选定,即“实”化“一堂”,把“一堂”
当成一节,这样,便限定了活动范围须在课堂。填的科目不同,所写内容自然不同,如可选
语文、政治、化学、数学等等,这是最一般的选法。题目的好处也就在这里,它紧贴学生生
活,符合学生实际。因为学生除假期外每天都要上课,每天都在上课,当有最丰富的材料可
供自己选择、挖掘;每个人都有话可说,有言可写。
若能从思维的各方位着手,很可以把这篇文章写得新人耳目。这新,体现在材料上(因
为这篇作文的主题已定),即“虚”化“一堂”,把一堂当成一个阶段。这就从时间上、空间
上拓展,扩大了外延,如一堂实践课、一堂劳动课、一堂教育课等。单是写成后者,就已经
有不少材料可选,对象也就不会仅限于班上的师生了,人物可以是社会上的某个单位、某种
职业的人,或者是家庭成员,等等;这背景也就从校内转到校外,可一改单调的场景,增加
新的色彩,丰富文章的内容,使人一看此文就有新鲜感,从而一下扣住评卷者的心弦,为拿
高分打下良好的基础。
最后要提的也是最重要的是,不管选什么材料,都得紧扣一个中心。如写这篇文章,它的中心已经确定,即题目“乐在其中”,不管是有趣的还是难忘的或有意义的课,写作始终
都要紧扣一个“乐”字,这个“乐”不是外加的,而是在上课的过程中反复多次地体现的,这样才算紧扣了文题,否则就是离题了。
从上可知,写好命题作文要做的第一件事也是关键的一步是:审好题目。这个题目,不
要仅仅理解为只是题目,它应包含要求、提示、说明在内的所有文字。比如,就上述题目,可知,它已给了如下内容:①作文题目,②作文中心,③选材范围,④写作体裁,⑤字数要
求。考生要做的工作有:①将作文副标题填写完整,②写一篇作文。经过分析,已知未知全
部明确了,目的任务也清楚了,这样写出来的作文就不会离谱了。
〔范文示例〕
乐在其中
—一记一堂化学课
福建一考生
让我最难忘的是一堂化学课。
那天,教室里静悄悄的,同学们都睁着一双好奇的大眼睛等待着化学老师的到来。化学是初三的时候才开的,以前,同学们从未接触过化学。今天,这第一堂化学课会是什么样的情形呢?每个人的脸上都呈现出按捺不住的激动。
化学老师终于来了,他手里提着一个木篮子,里边装着好些我们叫不出名的化学用具。
“好,同学们,我们现在开始上第一堂化学课。”化学老师用浑厚的男中音说,“下面,请大
家认真看我手中的这支试管,里面装着什么?”我们一起向他的手中望去。哦,他手里的确
有一支试管,可是里边除了装着一半的透明液体外,什么也没有了。于是同学们不约而同地说:“里面装着水!”“嗬嗬„„是‘水’,是‘水’。”化学老师笑着说,“好,大家再认真看,现在,我的‘水’要变成牛奶了!”说着,他往试管中加了另一种透明液体。啊,顿时,那管中的“水”转眼变成乳白色,就像我们平常喝的牛奶。“太有趣了!”同学们都鼓起掌来,有些同学大声地问老师这是怎么回事,老师只是笑着说,瓶中的不是水,而是一种溶液,至于溶液为什么会变白,以后学了化学就知道了。
“好,接下来我们再做一个试验。我这儿有四个瓶子,至于里面装着什么暂且不告诉你们。现在,你们认真看我做些什么。”说完,化学老师迅速用一根手指依次沾着瓶中的液体往舌尖上抹了一下。“你们按着我的样子做。”说完,他把四个瓶子放在每一组的第一张桌子上。同学们认为是什么好吃的东西,都争先恐后地用手指沾着液体往嘴里送。可一会儿,同学们都伸着舌头连说不好吃,那狼狈样逗得化学老师哈哈大笑起来,他说:“我知道你们不认真,告诉你们,我沾液体的是这个手指。”说着,他伸出食指,“而尝的却是这个。”他又伸出了中指。啊,原来是这样!同学们想到自己被骗吃蓖麻油,也忍不住笑了起来„„多有趣而又难忘的一堂化学课啊!
[评 析]
这是一篇较成功的作文,文章紧扣中心,记叙具体清楚,又切合写作要求。文章开篇引题,独句成段,简洁、明了、醒目。第二段简单介绍“乐”前环境,交代化学课在初中的位置。
第三、四段具体叙写了化学课上的两个实验,化学老师有言有行,有声有色,引起了学生的浓厚兴趣,带来了阵阵笑声,“乐”在其中得到了较好的体现。这两段记叙详细充分,语言生动。
第五段呼应篇首,一句结尾,干脆利落。
文章内容具体,条理清楚,层次分明,结构完整。尤为可佳的是,本文中心明确,切合题意、文章紧扣“乐”字,写“乐”前、“乐”中、“乐”后,以“乐中”为主体,重点突出;写师乐、生乐,有化学老师“嗬嗬”地笑、“同学们都鼓起掌来”、“老师只是笑着说”、“逗得化学老师哈哈大笑起来”、“同学们„„也忍不住笑了起来”„„“乐”字贯串了课的始终,同学们在接受知识的同时,也得到了愉悦身心的美感,真是“乐在其中”。
应该说,这篇文章借用了很多人都熟知的故事(指文中第二个实验),但由于编织巧妙,整篇文章自然融洽,浑然一体。由此也可知,多看多读多思,对提高作文是大有益处的。
文章也有不足之处:如对同学的描写在文中的篇幅就不太多;文章照应也尚存漏洞,如“同学们想到自己被骗吃蓖麻油”,前文没有点明此油,这里出现就显得唐突。等等。但短时间内要完成此文,难免有疏漏之处,况且,瑕不掩瑜。
注:本文1994年12月发表在《作文成功之路》‘94增刊。