建材秒知道
登录
建材号 > 设计 > 正文

C语言做的程序设计主要应用于哪些方面

舒适的荷花
尊敬的铃铛
2022-12-30 22:04:57

C语言做的程序设计主要应用于哪些方面?

最佳答案
故意的棉花糖
微笑的大象
2026-03-29 06:27:18

因为C语言比较接近硬件,又能做到汇编语言的高效率,又比汇编语言更接近于自然语言.也就是说更好懂,所以C语言一直接以来都有广泛的应用,目前,C语言主要应用在嵌入式开发,低级操作系统(比如类似于linux的NOS操作系统)上应用程序的开发,还有可以写一些简单的应用软件,LINUX和UNIX都是很C写的,C还是很有用处的,也得到了很广泛的应用,所以潜力也大!

最新回答
爱笑的羽毛
明理的早晨
2026-03-29 06:27:18

做为一个有着计算机专业学历,但现在连手机都玩不明白的专业人士来说,编程在日常生活中多少还是有些用处的。

先说比较直接的,就是和编程有关的东西吧,比如我上学的时候虽然也学过些编程,但只是一些基础知识而已,根本没有能力去做一个系统之类的东西,然后上班以后,我的工作和编程又一点关系都没有,编程是编出来让人用,而我的工作是用别人已经做好的东西。

虽然如此,因为一个系统肯定是尽可能兼容,同时满足大范围需求的集合体,那么对于一些特别的需求可能现有的功能就不够了,要么说工作才是学习最好的老师呢。为了完成任务有的时候真是没办法,不得不去学一些东西。

我们需要的一些数据,直接从系统里拿出来是用不了的,系统跑出来的只是原始数据,必须要后期加工,那么如果用人工来操作的话,那简单的一个小要求可能就够做一整天 的,倒不是说有多复杂,只是太麻烦,需要海量的重复劳动。

为此,领导认为,我既然是学计算机的,那想办法给简化一下吧!提高一下大家的工作效率。我一个打工的能说啥,那就想办法呗。然后就通过我们平时最常用的电子表格给的一个扩展功能,叫宏,来做为突破口。

还好在我的不断努力下,虽然编的东西我自己可能过后都看不懂,但结果还是不错的,通过宏模块的应用,我们的工作效率 大大提高,而且降低了人工操作出错的机率,对这件事其实我也是满有成就感的,那么做了这件事之后的结果呢?领导认为,他的需求都可以被很轻松的实现了!同事一旦遇到了什么麻烦的活,就会想到我是不是可以给编点代码呢。至于工资,没有因为宏的广泛应用而有一点变化。

那么除了实际的应用外,其实编程的思想我认为是更重要的一种能力,我当然也没学过什么高深的东西,甚至连学校学的那点基础都忘差不多了。但是我还是认为程序设计的一些思想对于日常生活中遇到的很多问题还是有着非常不错的指导意义的,比如不论遇到什么问题,都把它看成一个需求,那么一点点的把这个大的需求拆分成小块之后,再看起来这事儿可能就没刚开始想像中的那么不可完成了。

编程的用处有多少,就看你能把它和日常生活做出多大的关联度了。

坚定的毛衣
现实的奇迹
2026-03-29 06:27:18
我来举个例子吧,我做过的.

你可以制作一块电路板,用单片机控制的,这可以用C语言来写单片机的控制程序,然后将这块电路板连接到计算机串口或并口或usb口,用C写一个计算机程序,通过控制这块电路板实现对家用电器的控制,如果加上遥控模块,可以通过计算机遥控各种设备,想想你在外面玩电脑控制家里的电饭堡,微波炉吧,也可以用手机发消息来控制,这不是想象,是我已经做出的产品. 对了,就是C, 也有Delphi(Pascal)实现的版本.

大意的洋葱
老迟到的冬日
2026-03-29 06:27:18

使用下拉列表或组合框,用户可以在列表中选择互斥的值。 用户只能选择其中一个选项。使用标准的下拉列表,用户只能在列表中进行选择,但是如果加上组合框,他们也可以输入列表中没有的选项。

下列这几点需要明确:

思考以下问题:

除了以上适用于下拉列表的原则,可编辑式下拉列表还需要注意以下几点:

对于下拉列表, 列表中的选项数量不是选择控件的决定因素 ,它们可能只有一个,也可能成千上万。 可编辑式下拉列表的项目数量多少都无所谓,因为用户也可以输入一个不在列表中的值。 而且下拉列表可以用于输入数据,所以可能无法事先知道项的数量,也可能无法限定数据的值。 始终为可编辑式列表框预留出至少三个项目高度的屏幕空间。

下拉列表和及其组合框有以下几种应用范例:

下拉列表 是一个标准的下拉式列表框,包含一组固定的预设值。当列表收起时,只有选中项目是可见的。用户点击下拉按钮时,展现所有选项。如果要变更选项,用户需要点击展开列表,然后选择另一个选项。

预览式下拉列表 是可以预览选择结果以帮助用户进行选择的下拉列表。

可编辑式下拉列表 是一个下拉组合框,它允许用户输入一个下拉列表中不存在的值。

可编辑式列表框 是一个常规组合框,允许用户输入在下方列表框中不存在的值。

提示符是放置在可编辑下拉列表中作为其默认值的标签或短指令。 与静态文本不同的是,一旦用户在组合框中键入某些内容或获得输入焦点,提示符就会从屏幕上消失。

以下情况,可以使用提示符:

不要仅仅使用提示符来指导用户从列表中选择某些内容或单击按钮。 例如,像“选择一个选项”或“输入一个文件名”然后单击“发送”这样文字的提示符是不必要的。

使用提示符的时候,注意:

在提到下拉列表时:

在提到组合框时:

哭泣的枕头
痴情的大船
2026-03-29 06:27:18
Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符 至今仍然很少能看到非常成功Java桌面程序 虽然有JBuilder Netbean JProbe等大型软件作为代表 但这仍不能证明Java的GUI程序是成功的 它们的外观总是和同一操作系统平台下的其它软件显得格格不入 对机器配置的需求也似乎永无止境 这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍 或是那些不在乎金钱和时间的专业用户所接受 对绝大多数计算机使用者来说 AWT或SWING代表着怪异的界面和无法接受的速度 Standard Widget Toolkit(SWT)或许是Java这一噩梦的终结者 广大Java程序员终于可以开发出高效率的GUI程序 它们拥有标准的外观 几乎没有人能看出你的程序是用Java写出来的 更为重要的是 这些程序是跨平台的

SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API 或许是无心插柳 或是有意为之 至今为止 SWT无论是在性能和外观上 都超越了SUN公司提供的AWT和SWING 目前Eclipse IDE已经开发到了 版本 SWT已经十分稳定 这里指的稳定应该包含两层意思

一是指性能上的稳定 其中的关键是源于SWT的设计理念 SWT最大化了操作系统的图形构件API 就是说只要操作系统提供了相应图形的构件 那么SWT只是简单应用JNI技术调用它们 只有那些操作系统中不提供的构件 SWT才自己去做一个模拟的实现 可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性

另一个稳定是指SWT API包中的类 方法的名称和结构已经少有改变 程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布) 而导致自己的程序代码变化过大 从一个版本的SWT更新至另一版本 通常只需要简单将SWT包换掉就可以了

第一个SWT程序

下面让我们开始一个SWT程序 (注意 以下的例子和说明主要针对Windows平台 其它的操作系统应该大同小异) 首先要在Eclipse安装文件中找到SWT包 Eclipse组织并不提供单独的SWT包下载 必须下载完整的Eclipse开发环境才能得到SWT包 SWT是作为Eclipse开发环境的一个插件形式存在 可以在${你的eclipse安装路径}\plugins路径下的众多子目录下去搜索SWT JAR文件 在找到的JAR文件中包含了SWT全部的Java类文件 因为SWT应用了JNI技术 因此同时也要找到相对应的JNI本地化库文件 由于版本和操作平台的不同 本地化库文件的名称会有些差别 比如SWT WIN DLL是Window平台下Eclipse Build 的动态库 而在Unix平台相应版本的库文件的扩展名应该是 so 等等 注意的是 Eclipse是一个开放源代码的项目 因此你也可以在这些目录中找到SWT的源代码 相信这会对开发很有帮助 下面是一段打开空窗口的代码(只有main方法)

import e one examplepublic class OpenShell{ public static void main(String [] args) {Display display = new Display()Shell shell = new Shell(display)shell open()// 开始事件处理循环 直到用户关闭窗口while (!shell isDisposed()) { if (!display readAndDispatch())display sleep()}display dispose() }}

确信在CLASSPATH中包括了SWT JAR文件 先用Javac编译例子程序 编译无错后可运行java Djava library path=${你的SWT本地库文件所在路径} e one example OpenShell 比如SWT WIN DLL件所在的路径是C:\swtlib 运行的命令应该是java Djava library path=c:\swtlib e one example OpenShell 成功运行后 系统会打开了一个空的窗口

剖析SWT API

下面再让我们进一步分析SWT API的组成 所有的SWT类都用 eclipse swt做为包的前缀 下面为了简化说明 我们用*号代表前缀 eclipse swt 比如* widgets包 代表的是 eclipse swt widgets包

我们最常用的图形构件基本都被包括在* widgets包中 比如Button Combo Text Label Sash Table等等 其中两个最重要的构件当数Shell和Composite Shell相当于应用程序的主窗口框架 上面的例子代码中就是应用Shell构件打开一个空窗口 Composite相当于SWING中的Panel对象 充当着构件容器的角色 当我们想在一个窗口中加入一些构件时 最好到使用Composite作为其它构件的容器 然后再去* layout包找出一种合适的布局方式 SWT对构件的布局也采用了SWING或AWT中Layout和Layout Data结合的方式 在* layout包中可以找到四种Layout和与它们相对应的布局结构对象(Layout Data) 在* custom包中 包含了对一些基本图形构件的扩展 比如其中的CLabel 就是对标准Label构件的扩展 上面可以同时加入文字和图片 也可以加边框 StyledText是Text构件的扩展 它提供了丰富的文本功能 比如对某段文字的背景色 前景色或字体的设置 在* custom包中也可找到一个新的StackLayout布局方式

SWT对用户操作的响应 比如鼠标或键盘事件 也是采用了AWT和SWING中的Observer模式 在* event包中可以找到事件监听的Listener接口和相应的事件对象 例如常用的鼠标事件监听接口MouseListener MouseMoveListener和MouseTrackListener 及对应的事件对象MouseEvent

* graphics包中可以找到针对图片 光标 字体或绘图的API 比如可通过Image类调用系统中不同类型的图片文件 通过GC类实现对图片 构件或显示器的绘图功能

对不同平台 Eclipse还开发了一些富有针对性的API 例如 在Windows平台 可以通过* ole win 包很容易的调用ole控件 这使Java程序内嵌IE浏览器或Word Excel等程序成为可能!

更复杂的程序

下面让我们展示一个比上面例子更加复杂一些的程序 这个程序拥有一个文本框和一个按键 当用户点击按键的时候 文本框显示一句欢迎信息

为了文本框和按键有比较合理的大小和布局 这里采用了GridLayout布局方式 这种布局是SWT中最常用也是最强大的布局方式 几乎所有的格式都可能通过GridLayout去达到 下面的程序也涉及到了如何应用系统资源(Color) 以及如何释放系统资源

private void initShell(Shell shell) { //为Shell设置布局对象 GridLayout gShellLay = new GridLayout() shell setLayout(gShellLay) //构造一个Composite构件作为文本框和按键的容器 Composite panel = new Composite(shell SWT NONE) //为Panel指定一个布局结构对象 这里让Panel尽可能的占满Shell 也就是全部应用程序窗口的空间  GridData gPanelData = new GridData(GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH) panel setLayoutData(gPanelData) //为Panel也设置一个布局对象 文本框和按键将按这个布局对象来显示  GridLayout gPanelLay = new GridLayout() panel setLayout(gPanelLay) //为Panel生成一个背景色 final Color bkColor = new Color(Display getCurrent() ) panel setBackground(bkColor) //生成文本框 final Text text = new Text(panel SWT MULTI|SWT WRAP) //为文本框指定一个布局结构对象 这里让文本框尽可能的占满Panel的空间  GridData gTextData = new GridData (GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH) text setLayoutData(gTextData) //生成按键 Button butt = new Button(panel SWT PUSH) butt setText( Push ) //为按键指定鼠标事件 butt addMouseListener(new MouseAdapter(){public void mouseDown(MouseEvent e){ //当用户点击按键的时候 显示信息 text setText( Hello SWT )} } //当主窗口关闭时 会触发DisposeListener 这里用来释放Panel的背景色  shell addDisposeListener(new DisposeListener(){public void widgetDisposed(DisposeEvent e) { bkColor dispose()} }}

把这段代码中的方法initShell()加入到第一个打开空窗口的例子中 得到的是一段能成功运行的完整GUI应用程序 运行方法可参考第一个例子

系统资源的管理

在一个图形化的操作系统中开发程序 都要调用系统中的资源 如图片 字体 颜色等 通常这些资源都是有限的 程序员务必非常小心的使用这些资源 当不再使用它们时 就请尽快释放 不然操作系统迟早会油尽灯枯 不得不重新启动 更严重的会导致系统崩溃 SWT是用Java开发的 Java语言本身的一大优势就是JVM的 垃圾回收机制 程序员通常不用理会变量的释放 内存的回收等问题 那么对SWT而言 系统资源的操作是不是也是如此?答案是一个坏消息 一个好消息

坏消息是SWT并没采用JVM的垃圾回收机制去处理操作系统的资源回收问题 一个关键的因素是因为JVM的垃圾回收机制是不可控的 也就是说程序员不能知道 也不可能做到在某一时刻让JVM回收资源!这对系统资源的处理是致命的 试想你的程序希望在一个循环语句中去查看数万张图片 常规的处理方式是每次调入一张 查看 然后就立即释放该图片资源 而后在循环调入下一张图片 这对操作系统而言 任何时刻程序占用的仅仅是一张图片的资源 但如果这个过程完全交给JVM去处理 也许会是在循环语句结束后 JVM才会去释放图片资源 其结果可能是你的程序还没有运行结束 操作系统已经宕掉

但下面的好消息也许会让这个坏消息变得无关紧要 对于SWT 只需了解两条简单的 黄金 法则就可以放心的使用系统资源!之所以称为黄金法则 一是因为少 只有两条 二是因为它们出奇的简单 第一条是 谁占用 谁释放 第二条是 父构件被销毁 子构件也同时被销毁 第一条原则是一个无任何例外的原则 只要程序调用了系统资源类的构造函数 程序就应该关心在某一时刻要释放这个系统资源 比如调用了

Font font = new Font (display Courier SWT NORMAL)

那么就应该在不在需要这个Font的时候调用

font dispose()

对于第二个原则 是指如果程序调用某一构件的dispose()方法 那么所有这个构件的子构件也会被自动调用dispose()方法而销毁 通常这里指的子构件与父构件的关系是在调用构件的构造函数时形成的 比如

Shell shell = new Shell()Composite parent = new Composite(shell SWT NULL)Composite child = new Composite(parent SWT NULL)

其中parent的父构件是shell 而shell则是程序的主窗口 所以没有相应的父构件 同时parent又包括了child子构件 如果调用shell dispose()方法 应用第二条法则 那么parent和child构件的dispose()方法也会被SWT API自动调用 它们也随之销毁

   线程问题

在任何操作平台的GUI系统中 对构件或一些图形API的访问操作都要被严格同步并串行化 例如 在一个图形界面中的按键构件可被设成可用状态(enable)或禁用状态(disable) 正常的处理方式是 用户对按键状态设置操作都要被放入到GUI系统的事件处理队列中(这意味着访问操作被串行化) 然后依次处理(这意味着访问操作被同步) 想象当按键可用状态的设置函数还没有执行结束的时候 程序就希望再设置该按键为禁用状态 势必会引起冲突 实际上 这种操作在任何GUI系统都会触发异常

Java语言本身就提供了多线程机制 这种机制对GUI编程来说是不利的 它不能保证图形构件操作的同步与串行化 SWT采用了一种简单而直接的方式去适应本地GUI系统对线程的要求 在SWT中 通常存在一个被称为 用户线程 的唯一线程 只有在这个线程中才能调用对构件或某些图形API的访问操作 如果在非用户线程中程序直接调用这些访问操作 那么SWTExcepiton异常会被抛出 但是SWT也在* widget Display类中提供了两个方法可以间接的在非用户线程的进行图形构件的访问操作 这是通过syncExec(Runnable)和asyncExec(Runnable)这两个方法去实现 例如

//此时程序运行在一个非用户线程中 并且希望在构件panel上加入一个按键

Display getCurrent() asyncExec(new Runnable() { public void run() {Button butt = new Button(panel SWT PUSH)butt setText( Push ) }})

方法syncExec()和asyncExec()的区别在于前者要在指定的线程执行结束后才返回 而后者则无论指定的线程是否执行都会立即返回到当前线程

SWT的扩展 JFace

JFace与SWT的关系好比Microsoft的MFC与SDK的关系 JFace是基于SWT开发 其API比SWT更加易于使用 但功能却没SWT来的直接 比如下面的代码应用JFace中的MessageDialog打开一个警告对话框

MessageDialog openWarning(parent Warning Warning message )

如果只用SWT完成以上功能 语句不会少于 行!

JFace原本是为更加方便的使用SWT而编写的一组API 其主要目的是为了开发Eclipse IDE环境 而不是为了应用到其它的独立应用程序 因此在Eclipse 版本之前 很难将JFace API完整的从Eclipse的内核API中剥离出来 总是要多多少少导入一些非JFace以外的Eclipse核心代码类或接口才能得到一个没有任何编译错误的JFace开发包 但目前Eclipse组织似乎已经逐渐意识到了JFace在开发独立应用程序起到的重要作用 在开发的 版本中 JFace也开始变成了和SWT一样的完整独立的开发包 只是这个开发包还在变动中(笔者写本文时 应用的Eclipse M 版本) JFace开发包的包前缀是以 eclipse jface开头 JAR包的源代码也和SWT一样 也在${你的eclipse安装路径}\plugins路径下去找

对开发人员来说 在开发一个图形构件的时候 比较好的方式是先到JFace包去找一找 看是不是有更简洁的实现方法 如果没有再用SWT包去自己实现 比如JFace为对话框提供了很好的支持 除了各种类型的对话框(比如上面用的MessageDialog 或是带有Title栏的对话框) 如要实现一个自定义的对话框也最好从JFace中的Dialog类继承 而不是从SWT中的* widget Dialog继承

应用JFace中的Preference包中的类很容易为自己的软件做出一个很专业的配置对话框 对于Tree Table等图形构件 它们在显示的同时也要和数据关联 例如Table中显示的数据 在JFace 中的View包中为此类构件提供了Model View方式的编程方法 这种方法使显示与数据分开 更加利于开发与维护 JFace中提供最多的功能就是对文本内容的处理 可以在 eclipse jface text * 包中找到数十个与文本处理相关类

与应用程序更近一步

Java程序通常是以class文件的方式发布的 运行class需要JRE或JDK的支持 这又是Java GUI程序的另一个致命的弱点 想象对一个面向广大用户的应用程序来说 无论你的程序功能有多简单 或是你的代码十分的精简 你都不得不让用户去下载一个 M的JRE 那是多么令人沮丧的一件事 而且对程序员来说 Class通常意味着源代码的暴露 反编译的工具让那些居心叵测的人轻易得到你的源代码 虽然有很多对Class的加密方法 但那总是以牺牲性能为代价的 好在我们还有其它的方式可用 把Class编译成exe文件!

lishixinzhi/Article/program/Java/gj/201311/27737

寂寞的魔镜
完美的蓝天
2026-03-29 06:27:18
MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的Editor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。

孝顺的时光
大意的吐司
2026-03-29 06:27:18
程序员呗,程序员的工作可没有那么简单,很多程序员都需要熬夜写代码,一天忙碌十几个小时的都有。而且因为经常坐在椅子上面,使得他们的身体很难得到锻炼,因此有很多程序员都会患有一些身体上的疾病。在近些年来就有程序员熬夜写代码导致猝死的事例发生,所以说这份工作可没有我们想象的那么好。

当然,一般的程序员工资比其他的工作来说是要高一些的。像是那些大城市的程序员,他们的月薪轻轻松松就能达到2万,而一些大的公司企业更是能达到3万到4万,这个工资已经不算低了。但是程序员可没有那么好做,因为真的非常的难坚持,即使工资比其他的工作高,也还是有很多人坚持不下来,做不了这份工作。

激昂的服饰
虚拟的雪糕
2026-03-29 06:27:18

状态栏是主窗口底部的一个区域,它显示有关当前窗口状态(例如正在被查看的对象以及方式)、后台任务(例如打印、扫描和格式化)或其他上下文信息(例如选择和键盘状态)等。

状态栏通常使用文字和图标表明状态,但也可以包含进度条以及和当前状态相关的命令或者选项菜单。

思考以下问题:

状态栏是一种在不打断用户操作进程的情况下,能很好提供状态信息的方法。但状态栏也容易被忽视,因为体量很轻、展示容易,实际操作中很多用户根本不会注意到状态栏的存在。

这个问题的解决方案不是通过使用花哨的图标、动画或闪烁来吸引用户的注意力,而是根据该限制情况进行设计。你可以通过以下方式改善该限制情况:

只需要确保一件事:

确保状态栏的信息有用、相关但不具有根本重要性。

状态栏有以下几种使用范例:

当前窗口状态 :可在所有视图模式下,显示当前展示内容的来源。

上下文信息 :显示关于用户当前行为的上下文信息。

使用“状态栏”指代该控件,不要使用“状态文字”或其他说法。例如:当前所在页面数展示在状态栏上。

传统的樱桃
小巧的刺猬
2026-03-29 06:27:18
计算机程序设计基本步骤:

(1)创建界面。程序的界面必须在一开始就设计好,否则在后期将很难进行修改。因此,是使用Windows提供的默认皮肤(见图1)还是自己编写皮肤,需要最早进行构思。注意:如果是一个整体的软件,需要先进行软件功能设置。

(2)设置属性。这个是通用的方法,作用和“创建程序界面”差不多,基本方法就是“属性窗口、代码(对象名称.属性名称=属性值)”。

(3)编写代码。完成程序理论设计之后,就开始编写程序代码了,具体代码与程序本身有关。

(4)保存工程。设计完毕之后首先需要把工程保存下来,最好是每一次修改都保存源工程和修改后的工程,以便日后在遇到错误时快速恢复。

(5)测试程序。完成修改之后要及时测试,发现已有的问题,创建了可执行程序之后就很难再修改了。

(6)创建可执行程序(脚本)。完成工程之后就可以创建出一个可执行程序(或脚本)了。此时计算机程序已经设计完毕。

专一的鸡翅
狂野的棉花糖
2026-03-29 06:27:18
VB与C++的区别,C++的指令,基本上最围绕着如何在实现软件算法目的的同时,如何让设计出来程序执行速度最高,在各种硬件上都能执行。C++追求的是速度第一性,软件在各种平台通用第二性,而易学易用性基本不在其考虑范围,所以C++是最难学和最难精通的编程语言。 VB的目的,是如何让用户在最短的时间内掌握并精通一门编程语言,在最短的时间内把需要的目的用编程语言编写出来。易学易用性是其第一性,软件设计的高效性是其第二性。至于设计出来的软件执行速度,在各种不同的计算机系统上能否运行,基本上很少考虑这种问题。 如果你是要编写计算机硬件程序,大型游戏开发,系统底层设计等前端设计,那么学C++是必不可少的。因为目前VB在这些方面还无能为力。 如果你是从事企业信息处理的软件工程师,日常主要工作是设计软件用来进行企业信息处理 那么不用学C++也可以了。 VB最大的优势是,它的软件设计速度和效率是非常高的,一个软件,如果用VB和C++都能设计。假如用VB设计的那个工程师一个月可以完成这项工作,那么用C++设计的那个工程师,起码要4个月以上才能设计出来。 设计的高效率低成本是VB是最大优势。 还有VB是微软独家专有的语言,它的易学易用性和设计高效性特征,与微软的追求目标是一致的。所以微软给予VB前所未有的支持,不断地把VB从早期被戏称为“玩具语言”,逐步升级到VB2005这种功能非常强大的语言。微软的所有软件,都支持VB的二次扩展和开发,一些小型程序,用VB来开发和扩展,更是方便,尤其微软的OFFICE软件更是如此。 微软为了对搞Jave编程带来的巨大冲击力,于2001年推出的C#编程语言,其实也是非常不错的语言,它结合了C,C++,Jave的成功经验,再结合VB的简易与高效性,是新一代的编程语言,它目前的缺点是,还只能支持开发WINDOWS下面的软件。但我相信它肯定会成为下一代的编程标准技术。