文档库 最新最全的文档下载
当前位置:文档库 › 程序设计中常用的计算思维方式

程序设计中常用的计算思维方式

程序设计中常用的计算思维方式
程序设计中常用的计算思维方式

程序设计中常用的计算思维方式

算法思维

逻辑思维

第1章正确认识和处理整体与部分的关系

概述:

“整体”与“部分”是一对虽然对立、但并非僵化不变的概念。在一定条件下,“部分”可以看作“整体”,“整体”又可以看作是另一个“整体”的“部分”,两者相互依存和影响。“整体”与“部分”又可以相互转化的。“整体”的问题可以分割成“部分”来处理,“部分”的问题也可以通过“整体”来解决。

1.1 整体实现的关键是准确地应用必要条件

A、选择有助于简化问题、变难为易的必要条件

这里面就是说我们要在坚持“简化问题、变难为易”的原则下,尽力寻找“精确”的必要条件,以缩小求解范围,提高出解速度。当碰到一道难题时,总是尝试从最简单的特殊情况入手,找出有助于简化问题、变难为易的必要条件,逐渐深入,最终分析归纳出一般规律。

B、合成必要条件,从整体结构上优化

在搜索和动态规划中,必要条件有期很好的应用价值。一般地,对于深度优先搜索和广度优先搜索,如何限制搜索范围、减少搜索量最有效的手段是“剪枝”。然而由于问题的错综复杂,所以我们要找最高效的优化条件,来提高程序的效率。所以我们可以尝试从多个侧面分析寻找必要条件,把问题分解,根据各部分的本质联系,将各方面的必要条件综合起来使用。

C、必要条件与原有模型比较、更新算法

上面所说的两种优化程序的策略其实是都是在“缩小求解范围”,改进在有算法的基础上进行的,属于局部优化。然而精确选择揭示问题本质的必要条件,与原有的模型比较,

小结:必要条件是逻辑推到的理论依据,也是思考过程的一种取向。解题时,若能寻找出精确的必要条件,一方面能帮助我们揭示问题的本质,设计出正确的算法;另一种方面又能“缩小求解范围”,提高算法效率。因此,准确地应用必要条件是整体实现的关键。所以我们要在坚持“具体问题具体分析”的原则,不拘一格,灵活处理;在分析问题时,要勤于思考,善于发现。

1.2 整体思考的一个重要角度是“守恒”

A、从具体问题中抽象出守恒量

守恒量需要通过联想和化归思维将其抽象出来,从问题本身的结构中抽象出守恒量。

B、根据问题的本质构造守恒量

有时候,如果能为每一个元素标一个权值,就可以揭示问题“守恒”规律。在总价值不变的前提下,或许能将整个问题转化成一个简单的、或者是经典的问题。比如构造成Fibonacci数列等。

C、在交互式问题中构造变化中的不变量

考虑可能出现的各种情况和最优策略,找变化中的不变量,运用“守恒”法寻找解题的突破口

小结:守恒是问题分析问题的一种思维方式一种整体意识和解题方法,通过联想和化归思维将其抽象出来。

1.3 提高整体实现效率的基本途径是“充分利用有效信息”和“压缩冗余信息”

A.计算过程中充分利用有效信息:

在记忆化搜索和动态规划中充分利用信息,特别指出在动态规划中改变状态的表示含义对优化问题是个很好的策略。还有在数值计算中充分利用信息。

B.通过“压缩法”消除冗余的图形和数据信息

在图论的问题中,通过采用“缩点法”,将具有等价意义的一类顶点压缩成一个顶点,来简化问题;还有就是压缩冗余信息。

1.4 改善整体性能状态的基础是处理好细节问题

细节是算法整体的关键部分,对整体起到“牵一发而动全身”的作用,是算法整体性能状态的基础。在程序设计中,细节

的处理十分重要,应该对其取“举轻若重”的态度。许多事例证明:有时细节决定成败。

按照对算法的影响的性质和程度,可把细节分为如下几种情况:

1、影响正确性的细节问题。在解题过程中虽然已经找到解决方法,却不能通过全部测试数据,往往就是这类

的细节处理不当所致。

2、严重影响时间复杂度的细节。这类细节相当隐蔽,往往不为人所注意。但是这种细节影响时间复杂度的阶,处理得好与不好往往会使程序的时间效率有质的区别。

3、轻微影响复杂度的细节。这类细节问题对时间复杂度没有根本性影响,仅仅对时间复杂度的系数有影响。

1.4.1 必须解决导致错误结果的细节问题

虽然已经找到正确的解法,但在程序实现的过程中,由于疏于细节而导致“功亏一篑”的事比比皆是,这种细节问题对整体的危害性最大。

1、常见的错误类型

类型1:语法错误

类型2:书写错误

类型3:输入输出格式的错误

类型4:数据范围的错误

类型5:变量未初始化的错误

类型6:中间运算越界

类型7:局部变量与全局变量同名造成概念混乱

类型8:if – Then – Else 语句混乱。

类型9: 实数比较出错。在比较两个实数是否相等时,如果直接用等号,往往会造成错误。这是浮点去得存在精度误差所造成的。

解决办法是使用两数差的绝对值与一个相对极小量进行比较,例如,如果abs(a-b)<1e-8,则可认为 a == b。

2、在程序运行的过程中跟踪错误

动态查错是指通过跟踪程序的执行过程,核对输出结果来发现错误。动态查错的技巧可分两大部分:测试用例的设计和测试的方法。

1.4.2 争取降低得法时间复杂度的阶

提高程序的时间效率的最明显的标志,是降低算法时间复杂度的阶数,而时间复杂度的阶数,并不是非得更新算法不可。有时,只要在程序的某些细节上做一些调整和修改,同样可以得到“牵一发而动全身”的效果。

1.4.3 注意降低算法时间复杂度的系数

这类细节对算法的整体影响虽然不算太大,但往往在关键的时候,时间复杂度系数的大小对算法的效率也有比较明显的影响。因此,应该尽可能地优化细节处理,精益求精,使算法的时间复杂度的系数降低到一个比较理想的程度。

第2章构造性思维

“构造法”解题,就是构造数学模型或方法解决问题,解题的思维方式就是所谓构造性思维。

“构造法”解题的思路或步骤:

1、审题:了解题目的来龙去脉,弄清哪些量是已知的(输入),需要求什么(输出),数据规模如何,等等。这是解决问

题的前提。

2、建模:建立一个能够简洁地表达出原型本质的模型。

3、分析和解决模型:分析模型的正确性。如果模型正确,则设计算法解决模型,解决模型的过程是否顺利,取决于所建

模型的正确性和可解性如何。如果模型错误或不可解,则重新审题。

4、编程实现。

2.1 模型的基本概念

当面对一个新问题时,通常的想法是通过分析,不断的转化和转换,得到本质相同的熟悉的、或抽象的、简单的一个问题,这就是化归思想。把初始的问题或对象称为原型,把化归后的相对定型的模拟化或理想化的对象称为模型。

2.1.1 模型的一般特点与功能

与实际问题相比,模型有以下几个性质和特点:

1、等价性:模型和原型必须是本质相同的。

2、抽象性:模型是实际问题的一种抽象,它去除了实际问题中与问题的求解无关的部分,简明地体现了问题的本质。

3、高效性:模型中各个量之间的关系更为清晰,容易从中找到规律,从而提高求解的效率。由于这一点是由模型的抽象

性决定的,因此模型的抽象化程度对模型效率的高低有重要的影响。

4、可推广性:模型可以推广到具有相同性质的一类问题中。换句话说,解决了一个模型就解决了一类实际问题。

一般的,模型具有三大功能:

1、解释功能:用模型说明事物发生的原因。

2、判断功能:用模型判断认识的可靠性。

3、预见功能:利用模型的知识、规律和未来的发展,为人们的行为提供指导或参考。

2.1.2 模型的一般分类

在ACM/ICPC竞赛中,常用的模型有图论模型、数学模型和规划(整数规划和动态规划)模型。

1、图论模型

通过图论化,本来复杂、凌乱的数据关系可变得简洁、明了,问题求解的思路因此而变得相对清晰。在许多情况下,可直接套用经典算法。

通常,数据之间的离散关系错综复杂可以考虑图论模型化。

建立图论模型必须注意:模型和原型的本质越接近越好。

2、组合数学模型

各种各样的计数问题都可考虑建立组合数学模型,最常用的组合数学模型是递归关系。虽然不探讨问题的数学规律而直接利用递归的回溯法计数,从理论上讲是可行的,但先求解组合数学的递归模型再计数可大大降低时间复杂度。

3、规划模型

规划模型是数学模型的一类,因其常见,故单独列出。它主要包括整数规划及动态规划模型。整数规划是所有变量均取整数的规划问题,这类问题的算法是阶乘级的。动态规划的决策、状态变量也是取整数的,但它的算法复杂度却是多项工级的。

带约束的多变量的求解问题,特别是约束条件中有满足某个函数的最大(小)值,可考虑建立规划模型。建立规划模型时,动态规划是首先,如果选择整数规划,则要注意算法的优化。

2.1.3 模型与信息原型间的关系

模型与信息原型间存在“多对一”或“一对多”的关系。

2.2 建模的一般方法

建立数学模型没有固定的套路可言,方法比较多样化。建模方法可分为机理分析法和统计分析法两大类;从思维方式的角度,建模方法又可分为直接构造法、分类构造法和归纳构造法三种形式。

建模的本质是挖掘数据间的关系和数据的变化规律,而“序”是隐藏在数据之间的一种常见的、却难以发现的关系。在建模时,如果能够在繁杂的数据中找到有价值的序,并加以合理应用,往往可使问题获得简化,便于问题的解决。

(1)建模的机理分析方法:直接建模、套用常用模型方法、有针对性的修改常用模型、综合创造。

(2)建模的统计分析方法:通过某种方法测试得到问题的部分解。再利用数理统计知识分析和处理数据,从而得到数学模型。统计分析法是采用逆向思维方式建模的。

2.3 建模的一般思维方式

构造数学模型,设计求解模型的一般方法,统称构造法.从思维方式的角度讲,常用构造法:直接构造法,分类构造法和归纳构造法.

2.3.1 直接构造法

直接对目标对象进行考察的构造方法称之为直接构造法.

过程:①观察目标对象;

②发现一般规律;

③加以概括总结,并运用至构造中.(探索是直接构造的灵魂)

直接构造法需要解题者大胆猜想解题方法,并结合目标反复尝试,调整方案和数学推理证明.在构造多个方案的过程中,要注意从成立的方案中总结出结论,从不成立的方案中反思出正确的构造方法.

对于某些题目,很难直接给出一种"必行"的构造方法,这时就需要为它"量身定做"多个构造方法,这些构造相辅相成:某种构造成立可以导出结论的成立;不成立的构造方法也可以为其他的构造方法创造条件,如图所示:

构造A不成立

构造B不成立构造D成立

构造C不成立

例如:区间染色问题P103

2.3.2 分类构造法

分类构造是分类的思想与构造法相结合的产物,简单说,就是在分类的基础上进行构造.

分类的思想:按照剩余系分类(奇偶分类),按照数据大小分类,按照题目中涉及的定义概念分类,按照参数的变化分类等等.

题例:棋盘遍历问题P105

构造的分类标准与问题不同侧面的性质和选择的构造方法息息相关.

2.3.3 归纳构造法

这里主要指数学归纳法,归纳构造利用了归纳的思想,是构造法的一个经典的实现形式,在竞赛中,采用得比较普遍的仍然是一般归纳法+构造法的形式.如图所示:

构造i=1 的情况

利用归纳法,推广到

假设i=1 已经构造i=n 的情况

出来,构造i=j+1

题例:赛程安排问题(1)P107 赛程安排问题(2)P108

2.4在建模过程中注意应用序关系

建模的本质是挖掘数据间的关系和数据的变化规律,而数据之间的"序"正是数据间关系和数据变化规律的一种表现形式,具有普遍性和隐蔽性的特征.在建模时,如果能够在繁杂的数据中找到有价值的序,并加以合理的应用,往往可使问题获得简化,便于问题的解决,本节结合实例,从以下三个方面讨论了序的作用:

①在交互式的试题中寻找合适的序,根据序的特性来进行交互.

②利用典型的序关系(例如树和图的遍历)简化问题.

③通过蕴涵在题意中的序关系来建立简洁,高效的解题模型.

不同的题目隐藏着不同的、可供挖掘的序。序的应用远远不止本节所述的这么简单。有些序不是什么典型的序关系,而是隐藏得很深。挖掘和构造序关系,需要有厚实的知识积累以及对数据间微妙关系的敏感。如果能够好好地利用序,那么序就像一双慧眼,使我们在眼花缭乱的数据关系中看清问题的实质,真正建立简洁,高效的解题模型。

2.5模型选择

由于探索信息原型的角度多种多样,因此可能产生多个数学模型。当一个信息原型对应多个正确的数学模型时,需要我们做抉择,并反复不断地将整个模型加以完善。一般遵循的原则是“边分析,边选择,兼顾四个标准(时间复杂度、空间复杂度、编程复杂度和思维复杂度)”。四个标准中应以时间复杂度为首要,因为竞赛对算法的运行时间有明确限制。

题例:最佳旅行路线问题P124

第3章目标转化的思想

目标转化的形式有两种:

1.“降维”——缩小目标。

2.“升维”——放大目标。其中维是指一个问题中元素的自由度,即该元素的坐标数,如数轴上的点的维数是1。

缩小目标的降维思想:

1.高维降为低维。

2.一般降为特殊。从极端情况入手。精简法。

3.抽象降为具体。

4.整体降为局部。(如排列组合问题时,先从特殊元素,特殊位置这一局部出发)。也叫着分解法。

5.简化数据关系(如二分图--->有向图、图--->树、树--->序列、二分图最佳匹配--->二分图的最大匹配)。

6.在原数据结构的基础上简化数据关系。

放大目标的升维思想:

1.让步假设。:先通过条件放松、给以适当假设(猜想)等途径将问题求解的范围扩大,然后对简化了的新问题求解,最后,“剪掉”扩大部分,还原问题的解。

2.倍增思想。用途(1,在变化规则相同的情况下加速状态转移。2,加速区间操作)。:根据已经得到的信息,将考虑的范围扩大一倍,从面加速操作,即在变化规则相同的情况下加速状态转移,或者加速区间的操作。

3.割补法。

4.补集转化。

最后有几点很重要:敢于猜想,善于类比,寻找相似点和突破口;勇于拓展,在已解决的旧问题上发现新问题。

第4章分类处分治思想

分类是提示概念外延(概念所反映事物的范围)的逻辑方法,也是求解问题的一种基本思想方法。

分治是特殊的分类,通常与递归联系在一起。它的特点是划分后的子问题又是规模更小的原问题。

分类和分治的解题步骤一般为:

1.确定对象。

2.合理分类。

3.逐类讨论。

4.归纳结论。

常用的分类或分治法有:二分法、三分法、有限多分法。二分是最常用的分类或分治方法。它的要点如下:

1.选取一个标准,按照是否符合这个标准将所需讨论的问题分成两类。

2.在前次分类的基础上,选取另一标准将已分出的类再分成两类。

3.不断重复前一个过程,直至涌够再分为止。

二分思想居四种情况下应用形式:

1.应用于一般有序序列的二分法。

如:在给定的序列中“二分查找”,在交互式问题中应用“二分插入”。

2.应用于退化了的有序序列的“二分枚举”。

如:用二分枚举求可行方案,用二分枚举求最优性问题。

3.应用研究于无序序列的“二分搜索”。

如:在“二分搜索”的基础上构造可行解,在“二分搜索”的基础上构造最优解。

4.应用研究于多维情况的“多重二分”。

第5章逆向思维

逆向思维的两种形式:

a:执果索因型逆向思维b:由反及正型逆向思维

一:执果索因型逆向思维

如果满足条件A可得到结论B,那么由A推出B叫执因索果,反过来,由B推A的过程叫执果索因逆向思维。

方法执果索因型有两种实施方案:

a:设置结果参数,逆向搜索(搜索分顺序搜索和二分搜索),这种方法通常用于这些问题:求最大最小问题(此类问题具有单调性),使用参数搜索排除无效条件,将问题的不确定条件变为确定条件。

b:从目标状态出发逆向规划(顺序规划一般采用自底向上的多重循环方式,逆向规划采用自顶向下记忆化递归方式)这两种方案中,参数搜索是解决最优性问题的一种常见方法,其本质就是对问题加入结果参数,

先通过贪心、动态规划或图论的一些方法判别这个参数代表的结果是否可行;反向规划在动态规划中,

从目标状态向初始化状态倒推。采用此两种方法时要注意时间复杂度。

二:由反及正逆向思维

实现逆向思维常有两种方法:

a:割补法(先补后割中的“补”是设计一个包含解的正反面的“整体”,“割”是在整体中淘汰解的反面,从而抵达解的正面),分为以下几种割补法:

1:计算几何中的割补法(直接割补和利用叉积割补)计算任意多边形面积,计算任意多边形的重心,判断点与多边形的位

置关系。

2:计数问题中的割补法(欲求解一定范围内满足条件的元素个数,不妨扩大求解范围,使用加法原理和乘法原理,抑或在统计中分别求解,再将多余部分删去,例如,使用容斥原理)

(1).加法原理和乘法原理(可先使用乘法原理分别求出可能解的全集和不符合约束条件的解元素,然后将不符合约束条件的解元素从可能解的全集中减去,剩余的解既是真正解)

(2).容斥原理:在统计问题中应用补集转化(解决统计问题有一些常用解法,如离散化、极大化、二分、事件表...但是解决具有特殊性的统计问题应采用补集转化)

以上两种思想作为一种非常规的解题方法,它们和一些常规的解题方法之间的关系是辩证的,大多数

问题还是适宜用常规方法的,所以灵活掌握常规方法和非常规方法,并结合具体问题选择合适的方法,

才能正确的解决统计问题。

第6章猜想与实验

6.1相似联想

相似联想也称为类比联想,指由某一问题的条件和线索,就其形态和性质引起与其相似的已有知识和解题经验的联想,是借助于对某一事物的认识,通过比较它与另一事物的相似特征达到对后者的推测理解,因此它是一类对象的认识过渡到另一类对象的认识的思维方法。

相似联想的本质是类比,类比是得到猜想的重要方法。类比的基本方式有两种:1与熟悉的问题类比,2与特殊的问题类比。与熟悉的问题进行类比的基本步骤是:1分析:分析问题的特征,抽象出出模型。

2联想:与熟悉的,拥有类似特征和模型的问题类比。

3比较:确定类比对象后将两者比较,分析异同。

4猜想:根据已知问题猜想新问题的解决方法。

与特殊问题的类比的一般步骤:

1观察:观察题目条件的特征。

2特殊化:将一些条件的位置,数量,状态等特殊化。

3分析特殊问题。

4类比。将特殊问题与原问题比较。

猜想:根据特殊化问题与原问题的联系和不同,以特殊问题的解决方案为蓝本,猜想原问题的解法。

6.2 归纳联想

6.2.1 指通过对特例的分析来引出普通结论的一种推理形式

一般步骤

1 列举将一些特殊的简单的小规模的数据列举出来(可以手推或编写一些小的程序)

2 观察观察数据的规律

3 猜想根据部分数据猜想一般结论

4 证明通常用推理方法或数学归纳法证明猜想的正确性

6.2.2 归纳联想的实际应用——注意观察大胆的猜想

小结:体现从特殊到一般从简单到复杂从小规模到大规模的化归思想要注意发散思维充分想象往任何可能的地方去想去靠

6.3从数与形的结合上联想:

联想的一般形式:a、“以形助数”;b、“以数助形”;

6.3.1 在数值计算中联想“以形助数”“以形助数”联想的一般步骤:

a、观察;观察题目条件的特征。

b、图形化;;联想问题的几何背景,将一些条件的位置、数量、状态等图示化。

c、类比;将图形化的问题与原问题作比较,用几何图形辅助思考。

d、迁移;根据图形化的问题与原问题的联系和不同,直接得出结论或转化问题。

e、猜想与实验;猜想转化为问题的解法,并验证其正确性。

6.3.2 在几何计算中联想“以数助形”“以数助形” 联想的一般步骤:

a、观察;观察图形的本质特征。

b、展开;“以数助形”的联想,即通过联想将图形转化成数字矩阵或抽象为数方程。

c、类比;将几何图形与数字矩阵或函数方程做比较,用数值的规律辅助是靠。

d、迁移;根据转化后的数值问题与几何图形的联系和不同,直接得出结论。

e、猜想与实验;猜想数值问题的解法,并验证其正确性。

6.4“回到起点”重新联想

“回到起点”重新联想的一半步骤:

a、明确“退”的方向;即确定当前算法是错误的或是非最有的,而最初的算法又不失其重要性。

b、“回到起点”;即回到初步分析处,展开丰富联想和严谨的理性思考,重新定义问题。寻找突破口。

c、猜想与实验;即在分析新旧问题异同点的基础上猜想改进方法,并验证新解法的正确性。

c语言程序设计课程计算器设计报告

课程设计说明书 题目计算器程序设计 起讫日期2006 年7月3日至2006 年8月6日 所在院系软件学院 专业机械+软件班级04-2 学生姓名偶偶哦学号 指导教师 2006年8 月日

摘要 当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品! 随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的c语言编写一个简易的计算器程序!实现简单的初步的计算功能! 本程序的编写基础是Tubro C2.0汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式。不能运算多个表达式。在程序里面在添加一组选择函数即可。本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。 关键词:C语言T ubro c 2.0汉化版计算器时钟

目录 第一章综述 (1) 1.1 课题的现实意义 (1) 1.2 软件环境 (1) 1.3 硬件环境 (1) 第二章系统设计流程图 (2) 2.1 系统流程图 (2) 2.2 主要功能表 (2) 第三章系统分析和设计 (3) 3.1 图形的绘制和输出 (3) 3.2 文本的输出显示 (3) 3.3 计算函数的调用 (4) 3.4 程序的运行和退出 (5) 第四章系统测试 (6) 4.1 系统测试 (6) 4.2 调试 (6) 4.3 错误原因分析一 (6) 4.4 错误原因分析二 (6) 第五章用户使用说明书 (8) 5.1 运行Turbo C程序进入计算器界面 (8) 5.2 计算器的使用 (9) 5.3 退出程序 (9) 第六章工作总结 (10) 参考文献 (11) 附录: 源代码

电工常用计算公式

电工常用计算公式(口诀) 已知变压器容量,求其各电压等级侧额定电流 口诀a : 容量除以电压值,其商乘六除以十。 说明:适用于任何电压等级。 在日常工作中,有些电工只涉及一两种电压等级的变压器额定电流的计算。将以上口诀简化,则可推导出计算各电压等级侧额定电流的口诀: 容量系数相乘求。 已知变压器容量,速算其一、二次保护熔断体(俗称保险丝)的电流值。 口诀b : 配变高压熔断体,容量电压相比求。 配变低压熔断体,容量乘9除以5。 说明: 正确选用熔断体对变压器的安全运行关系极大。当仅用熔断器作变压器高、低压侧保护时,熔体的正确选用更为重要。这是电工经常碰到和要解决的问题。 已知三相电动机容量,求其额定电流 口诀c :容量除以千伏数,商乘系数点七六。 说明: (1)口诀适用于任何电压等级的三相电动机额定电流计算。由公式及口诀均可说明容量相同的电压等级不同的电动机的额定电流是不相同的,即电压千伏数不一样,去除以相同的容量,所得“商数”显然不相同,不相同的商数去乘相同的系数0.76,所得的电流值也不相同。若把以上口诀叫做通用口诀,则可推导出计算220、380、660、3.6kV电压等级电动机的额定电流专用计算口诀,用专用计算口诀计算某台三相电动机额定电流时,容量千瓦与电流安培关系直接倍数化,省去了容量除以千伏数,商数再乘系数0.76。 三相二百二电机,千瓦三点五安培。 常用三百八电机,一个千瓦两安培。 低压六百六电机,千瓦一点二安培。 高压三千伏电机,四个千瓦一安培。 高压六千伏电机,八个千瓦一安培。 (2)口诀c 使用时,容量单位为kW,电压单位为kV,电流单位为A,此点一定要注意。 (3)口诀c 中系数0.76是考虑电动机功率因数和效率等计算而得的综合值。功率因数为0.85,效率不0.9,此两个数值比较适用于几十千瓦以上的电动机,对常用的10kW以下电动机则显得大些。这就得使用口诀c计算出的电动机额定电流与电动机铭牌上标注的数值有误差,此误差对10kW以下电动机按额定电流先开关、接触器、导线等影响很小。 (4)运用口诀计算技巧。用口诀计算常用380V电动机额定电流时,先用电动机配接电源电压0.38kV数去除0.76、商数2去乘容量(kW)数。若遇容量较大的6kV 电动机,容量kW数又恰是6kV数的倍数,则容量除以千伏数,商数乘以0.76系数。

计算器程序设计报告

题目一计算器 1.1 题目简介 用Java语言、MyEclipse工具、设计一个GUI简易计算器,编写计算器的基本运算的程序,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算,基本实现计算器的四则运算和三角函数运算功能以及开方和求对数的基本运算。本计算器只适用十进制的运算,不限制十进制的大小。编写本计算器运用java的类得调用和直接在程序中定义类,实现计算器的基本功能,在这个计算器中对于执行的操作可以进行复制和保存以便以后能直接查看运行结果本计算器保存没不得运行结果,只有点清除键是才可以清除每步的结果。 1.2 设计的内容、要求和目标 设计内容:设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算。 设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件来处理等实现具体功能。 (1)、应具有相应的界面,可参考下图进行设计:

(2)、操作符号定为:“+”“-”,“*”,“/”等。 (3)、用户通过点击面板中的各种组件输入的表达式,应在上方文本框。 (4)、党用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。例如:输入表达式“7*8”之后按“=”,显示结果“56”。 (5)、具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。 设计目标:利用Java语言设计一个简单的计算器,以实现基本的加减乘除功能,还有sin、|cos、tan、log等算术运算;同时实现退格、清零等运算。 1.3总体设计 1)、对计算器面板的整体布局 首先是对计算器的整体面板进行一个简单的设计,整体布局是采用layout (边框布局)布局,对计算器中的一些数字按钮和运算符按钮采用gridlayout 布局(网格布局)。 2)、创建实现程序所需的类 整理思路,确定一个主类CalculatorWindow,然后对Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree等类的创建。 3)、对所创建类算法的分析和实现 确定了主类CalculatorWindow,其他类为其所调用。编写各类的实现算法,增加面板所需的按钮,并对程序进行调试运行及分析。

电力系统计算程序设计(包含源程序)

电力系统计算程序设计(包含matlab源程序)

广西大学电气工程学院 2007年1月 第一章原始数据 电力系统原始数据是电力系统计算的基础。电力系统每个计算程序都要求输入一定的原始数据,这些数据可以反映电力网络结构、电力系统正常运行条件、电力系统各元件参数和特性曲线。不同的计算程序需要不用的原始数据。 第一节电力网络的描述 电力网络是由输电线路、电力变压器、电容器和电抗器等元件组成。这些元件一般用集中参数的电阻、电抗和电容表示。为了表示电力网络中各元件是怎样互相连接的,通常要对网络节点进行编号。电力网络的结构和参数由电力网络中各支路的特性来描述。 1.1.1 线路参数 在电力系统程序设计中,线路参数一般采用线路的Π型数学模型,即线路用节点间的阻抗和节点对地容性电纳来表示,由于线路的对地电导很小,一般可忽略不计。其等价回路如下: r+jx -jb/2 对于线路参数的数据文件格式一般可写为: 线路参数(序号,节点i,节点j,r,x,b/2) 1.1.2 变压器参数

在电力系统程序设计中,变压器参数一般采用Π型等值变压器模型,这是一种可等值地体现变压器电压变换功能的模型。在多电压级网络计算中采用这种变压器模型后,就可不必进行参数和变量的归算。双绕组变压器的等值回路如下: k Z T k:1 Z T (a)接入理想变压器后的等值电路(b) 等值电路以导纳表示 (c) 等值电路以导纳表示 三绕组变压器的等值回路如下: 综合所述,三绕组变压器的等值电路可以用两个双绕组变压器的等值电

路来表示。因此,对于变压器参数的数据文件格式一般可写为:变压器参数(序号,节点i,节点j,r,x,k0) 其中,k0表示变压器变比。 1.1.3对地支路参数 对地支路参数一般以导纳形式表示,其等价回路如下: i g-jb 对地支路参数的数据文件格式一般可写为: 接地支路参数(序号,节点i,g i,b i) 第二节电力系统运行条件数据 电力系统运行条件数据包括发电机(含调相机)所连接的节点号、有功与无功功率;负荷所连接的节点号、有功与无功功率;PV节点与给定电压值;平衡节点的节点号与给定电压值。 1.2.1节点功率参数 电力系统中有流入流出功率的称为功率节点,有流入功率的称发电节点,一般为各发电站、枢纽变电站等节点;有流出功率的称负荷节点。对于电力系统稳态计算来说,功率节点都用有功功率P和无功功率Q来简单表示。其等价回路如下: Q G P G P L Q L 节点功率参数的数据文件格式一般可写为:

计算器课程设计报告

课设报告 福建工程学院软件学院 题目:汇编计算器 班级: 1301 姓名 学号: 指导老师: 日期:

目录 1、设计目的 (3) 2、概要设计 (3) 2.1 系统总体分析 (3) 2.2 主模块框图及说明 (3) 3、详细设计 (4) 3.1 主模块及子模块概述 (4) 3.2各模块详运算 (4) 4、程序调试 (7) 4.1 运行界面分析 (7) 算法分析 (7) 4.2 调试过程与分析 (9) 5、心得体会 (11) 5.1 设计体会 (11) 5.2 系统改进 (11) 附录: (11)

1、设计目的 本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。 2、概要设计 用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。 2.1 系统总体分析 在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。 2.2 主模块框图及说明 此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。 程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。

常用(电)计算公式资料

电功率的计算公式 电功率的计算公式,用电压乘以电流,这个公式是电功率的定义式,永远正确,适用 于任何情况。 对于纯电阻电路,如电阻丝、灯炮等,可以用“电流的平方乘以电阻”“电压的平方 除以电阻”的公式计算,这是由欧姆定律推导出来的。 但对于非纯电阻电路,如电动机等,只能用“电压乘以电流”这一公式,因为对于电 动机等,欧姆定律并不适用,也就是说,电压和电流不成正比。这是因为电动机在运转时会产生“反电动势”。 例如,外电压为8伏,电阻为2欧,反电动势为6伏,此时的电流是(8-6)/2=1(安),而不是4安。因此功率是8×1=8(瓦)。 另外说一句焦耳定律,就是电阻发热的那个公式,发热功率为“电流平方乘以电阻”,这也是永远正确的。 还拿上面的例子来说,电动机发热的功率是1×1×2=2(瓦),也就是说,电动机的 总功率为8瓦,发热功率为2瓦,剩下的6瓦用于做机械功了。 电工常用计算公式 一、利用低压配电盘上的三根有功电度表,电流互感器、电压表、电流表计算一段时间内的平均有功功率、现在功率、无功功率和功率因数。 (一)利用三相有功电度表和电流互感器计算有功功率 式中 N——测量的电度表圆盘转数 K——电度表常数(即每kW·h转数) t——测量N转时所需的时间S

CT——电流互感器的变交流比 (二)在三相负荷基本平衡和稳定的情况下,利用电压表、电流表的指示数计 算视在功率 (三)求出了有功功率和视在功率就可计算无功功率 (四)根据有功功率和现在功率,可计算出功率因数 例1某单位配电盘上装有一块500转/kW·h电度表,三支100/5电流互感器,电压表指示在400V,电流表指示在22A,在三相电压、电流平衡稳定的情况下,测试电度表圆盘转数是60S转了5圈。求有功功率、现在功率、无功功率、功率因数各为多少? [解]①将数值代入公式(1),得有功功率P=12kW ②将数值代入公式(2);得视在功率S=15kVA ③由有功功率和视在功率代入公式(3),得无功功率Q=8l kVar ④由有功功率和现在功率代入公式(4),得功率因数cosφ= 0.8 二、利用秒表现场测试电度表误差的方法 (一)首先选定圆盘转数,按下式计算出电度表有N转内的标准时间 式中 N——选定转数 P——实际功率kW K——电度表常数(即每kW·h转数) CT——电流互感器交流比 (二)根据实际测试的时间(S)。求电度表误差 式中 T——N转的标准时间s t——用秒表实际测试的N转所需时间(s)

计算机程序设计课程中计算思维能力的培养

计算机程序设计课程中计算思维能力的培养 【摘要】进入新世纪以来,我国在计算机程序方面的取得的成就是非常巨大的。学生的计算方面的思维能力如何在计算机程序设计课程教学中得到充分的培养,是当代的计算机基础教学的一项主要的责任。笔者结合自身的计算机程序设计课程教学,简要的探讨了计算机程序设计课程中学生思维能力的培养,供各位计算机教育教学的同仁们参考,以共同提高我国的计算机设计程序课程的教育教学的质量。 【关键词】算机程序设计课程思维能力培养 一、引言 随着我国的新课程改革的不断深入,对于学生的计算机的各个方面的应用能力的要求也越来越高,学生应当在计算机的操作使用方面的能力、各个应用的开放方面的能力以及相关的研究创新的能力有着非常大的提升,学生应该逐步的养成学习解决问题的思路以及方法、并且详细的理解掌握计算机是如何的实现上述算法的,即学生应该能够利用计算机进行一些有效的编程工作。此外,学生应该掌握一定的相关程序的调试能力,让计算机成为一种实用的工具,进而作为一种独特的思维方式去思考相关的问题并

解决相关问题的能力。那么我们应该在计算机程序设计的教学过程中如何的对学生的思维能力进行对应的培养训练呢?这是一个非常值得教育教学工作者深入探讨的问题。 二、何为计算思维? 大家常说的的计算思维就是指运用一定的计算机科学中—些相关的概念进行相应的计算机问题求解、计算机系统的设计以及一些相关的人类行为理解等等的一系列计算思维活动。这里需要强调就是上述的思维是指人的相关思维,并不是计算机机器的思维,简要的说就是一种概念抽象化的思维方式,并不是一种简简单单的程序化的思维方式。是一种具体的思维理念,并不是一种实际的商品。这种思维的方式并不是某些计算机方面的专家特有的,而应该是作为一种每个人必备的基本技能的方式而存在。最终达到一种以计算机思维方法论的相关角度来讨论解决学科之间的一些问题以及学科的意识形态。 三、当前的计算机程序设计课程中的一些相关的问题 计算机程序设计课程相对于其他的课程有着非常大的抽象性,这就给相应的课程的教育教学工作带来

《计算器程序设计》课程设计

成都理工大学 C#计算器 课程设计报告(计算机科学与技术学院) 题目:计算器 班级:XX 姓名:XXX 指导教师:XXX 2013-2014学年度第二学期

目录 1.需求分析 (1) 1.1计算器应用软件的功能分析(二级标题,四号黑体) (1) 1.2计算器软件的功能图 (1) 2.界面设计 (1) 3.功能实现 (2) 3.1计算数字现实的功能代码 (2) 3.2小数点设置的功能代码 (3) 3.3连续运算的功能代码 (3) 3.4实现键盘控制的功能代码 (4) 3.5删除的功能代码 (5) 4.设计总结 (5) 参考文献 (6)

计算器的开发与应用 摘要:计算器的产生和发展是建立在电子计算机基础之上的,现代社会很需要一个健全、高效率的计算器。为了提高自己的实践能力和将来开发一个更实用更全能更智能的计算器,以设计与实现计算器为课题。此次设计的计算器应用软件从visual studio 2012编程环境中开发,是一个简单的窗体应用程序,实现简单的计算器功能。以微软自带的计算器为模板,设计了简单易懂的计算器。这款计算器不仅实现了简单的四则运算的功能,还能连续运算,实现小键盘的操作,光标的转移。虽然这个简单的计算器只能实现这些功能,但是具有简洁的图文外观,即时准确的获得所需要要计算的结果,充分降低了数字计算器的难度和所需要的时间,对人们生活和学习具有有很大的帮助。 关键词:计算器;功能;界面;窗口;事件。 1.需求分析 通过对微软附件计算器软件进行调研、分析,研究,使用。我们了解到了作为一个计算器所应该有的一些简单功能和界面的排版,我们知道了怎样使编写的计算器程序向微软附件计算器靠拢。 1.1计算器应用软件的功能分析 计算器软件的主要功能是: 1)可以显示计算数字 2)可以进行加减乘除四则运算 3)可以实现键盘操控的功能 4)可以进行清零运算 5)可以进行退格键运算 6)可以进行连续计算 1.2计算器软件的功能图 根据以上需求分析,计算器软件功能如图1-1所示。 2.界面设计计算器主界面 显示 计算 数字 连 续 计 算 功 能图1-1计算器功能图 进 行 四 则 运 算 键 盘 操 控 清 零 运 算 退 格 键 功 能

计算导论与程序设计知识点

计算导论与程序设计复习重点 一、计算、计算机发展史、计算模型 1、计算与计算思维 (1)什么是计算?转换/变换; 广义:计算就是把一个符号串f变换成另一个符号串g。 更广义:计算就是对信息的变换。 (2)什么是计算思维?抽象与自动化 2、图灵机的计算模型:组成,计算过程,状态及状态转移。 a.图灵机的组成: (1)一个无限长的纸带 (2)一个读写头(中间那个大盒子) (3)内部状态(盒子上的方块,比如A,B,E,H), (4)一个程序,用于对这个盒子进行控制。 b.计算过程:从读写头在纸带上读出一个方格的信息,并且根据它的内部状态开始对程序进行查表,得到一个输出动作和下一时刻所转移到的内部状态。 c.状态:可以将事物区分开的一种标识。 d.状态转移:当在某一状态下读入一个字符时,便使状态发生改变,从当前状态转换到后继状态。 3、结合图灵机,什么是程序?理解程序的含义 程序是一套控制规则,它可以根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变内部状态,令机器进入一个新的状态。 4、什么是存储程序的概念? 要求程序和数据一样,也必须存储在计算机的主存储器中,这样计算机就能够自动重复地执行程序,而不必每个问题都重新编程,从而大大加快运算进程。 二、计算机组成与原理 1、冯诺依曼计算机的组成结构 由运算器、控制器、存储器、输入设备、输出设备五大部分组成。 地址总线是控制器向存储器中的地址译码器传送地址编码的通路。 数据总线是在输入输出设备和存储器、存储器和CPU之间传送数据的通路。 控制总线用来传送控制部件向运算部件、存储器、输入输出设备发出的控制信号。

my计算器程序设计报告

计算器程序设计报告 计算器是一种在日常生活中很常用的计算工具,它在计算方面给了我们提供很大的方便。本程序的功能包括:(1)加,减,乘,除运算,正弦,余弦,正切,余切,反正切,反余切,反正弦,反余弦,自然对数,以10为底的对数还有阶乘等函数功能。(2)还包括存储清,存储显示,存储相加。 “计算器”是一个关于多种控件,以及控件数组应用的程序,它包含许对字符串的处理,多模块程序设计,数学函数的使用。它所需知识点较多,必须对各个方面都有所了解. 数学模型:主界面 界面:进制转化界面 数学函数代码 代码:存储清代码 进制转化代码 第一步,要编辑计算器界面,如右图, 对于界面上的按钮较多,我们可以分成四组,这就是控件数组的使用,而且每个按钮的属性都一一设置,而且要调入图片.第二个界面如右图 比较简单,只是一些普通的控件. 计算器是一个输入原始数据,运算中间数据和结果数据都显示在窗口顶部的同一个文本框的工具,这就要求我们可以把文本框的内容付给两个不同的变量,对于这一点我们就可以用一个逻辑变量来实现.比如, If not boolean str1=str Else str2=str 计算器的主要功能就是运算,但是任何一个数值的输入都是以字符串的形式进行的,而字符串是无法参与运算的,所以必须用CInt()转换成整形变量,而输出时必须用CStr()转化成字符串的形式输出,更为麻烦的是,在进行进制转换时,两种变量之间的转换更为频繁。在编程过程中要时刻注意!就拿一个简单的程序中的一部分来说吧:

If not boolean then str=str1 Else str=str2 Str=text1.text n=CInt(str) ‘“将其转换成整形变量" ……. t4 =str( ) ‘“ 将返回值转换成字符串" 计算器的功能程序简单易懂,但编制过程极为烦琐,我在编程的过程中,体会最深的就是其过程有重复,但又不得再编,在这里尤其要注意,有些过程虽然相似,但它们却存在着质的区别,就拿删除按扭来说吧, "C","0->M","CE","->"按扭都有删除的功能,在这里我就它们的区别作一下详细介绍: 将"C","CE","->"作为一个控件数组,其程序如下: If not boolean str1=str else str2=str Select Case Index Case 0 str1=" ",str2=" ", Text1.text=" " "C"键 Case1 str=" " "CE"键 Case2 str=Left(str,len(str)-1) "->"键 而"0->M"在另一个数组控件中,其程序的一部分如下: Case0 n4=0: Text1.text="0" 可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来. 这里我再介绍一下小数点的使用 Private Sub Command2_Click(Index As Integer) If Index<10 Then str=str+CStr(Index) "输入数字" Else If InStr(str,".")=0 Then str=str+"." "输入小数点" End If If Len(str)>1 And Left(str,1)="0" And Mid(str,2,1)<>"."Then str=Right(str,Len(str)-1) "删除前面多余的0" End If Text1.text=str "显示输入的数据 " If not boolean Then str1=str Else str2=str "用两个字符串变量存放" End Sub 计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制. ElseIf Option4 = True Then t4 = "" str = Text1.Text

C#计算器程序设计

C#计算器程序设计 1)创建项目 ①单击文件-》新建-》项目,弹出如下对话框 ②模板中选择“windows窗体应用程序”-》名称中输入“jsq”-》位置单击“留了”-》选择“J:\新建文件夹”-》单击确定按钮 2)计算器界面设计

①向Form1中添加1个TextBox控件,1个Label控件和27个Button控件,控件布局如图所示 ②修改27个Button控件的Text属性,结果如图 ③Label控件的BorderStyle属性选择“Fixed3D”-》Text属性设置为“”-》Form1的Text属性设置为“计算器”-》Backspace控件、CE控件等的ForeColor属性选择“Red”,结果如图:

3)显示窗口数据对齐方式设置 TextBox控件的TextAlign属性选择“Right”;4)数字键程序设计 ①双击”0”按钮控件-》编写代码如下: if (textBox1.Text != "0")//不能连续多个0出现 { textBox1.Text += "0";//添加“0”数字 } ②双击”1”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "1"; } else { textBox1.Text += "1";//添加“1”数字 } ③双击”2”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "2"; } else { textBox1.Text += "2";//添加“2”数字 } ④双击”3”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "3";

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

编写一个计算器程序课程设计报告 范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院 XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学 号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 2.设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 3.设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图一计算器运行界面 三、设计过程 1.程序思路: 1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); (事件监听器); 2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完

编写一个计算器程序课程设计报告-范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院XX 系 2017年 月 3 日 题目: 用Python 编写简易计算器程序 学号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

目录 一.总体概述:二.设计目标:三.程序流程图:四.程序代码:五.设计体会:

一、设计内容 ------------------------------------------------------------------------------------------------- - 2 - 1. 课程设计目的:-------------------------------------------------------------------------------------- - 2 - 2.课程设计任务: --------------------------------------------------------------------------------- - 2 - 3.创新要求:---------------------------------------------------------------------------------------------- - 2 - 4.设计要求: ------------------------------------------------------------------------------------------------ - 2 - 二、原理与分析 ---------------------------------------------------------------------------------------------- - 2 - 1.开发的技术及功能 ----------------------------------------------------------------------------------- - 2 - 2.设计思路------------------------------------------------------------------------------------------------ - 3 - 3.设计效果图--------------------------------------------------------------------------------------------- - 3 - 三、设计过程 ------------------------------------------------------------------------------------------------- - 3 - 1. 程序思路: -------------------------------------------------------------------------------------------- - 3 - 2.功能实现:---------------------------------------------------------------------------------------------- - 4 - 1)加减乘除求余以及指数运算----------------------------------------------------------------- - 4 - 2)其他运算 ------------------------------------------------------------------------------------------ - 5 - 3)主要方法说明------------------------------------------------------------------------------------ - 6 - 4)程序流程图 --------------------------------------------------------------------------------------- - 6 - 3.算法思路:---------------------------------------------------------------------------------------------- - 7 - 4.数据分析:---------------------------------------------------------------------------------------------- - 8 - 四、设计结果与分析------------------------------------------------------------------------------------------ - 8 - ⒈运行调试------------------------------------------------------------------------------------------------ - 8 - 1)进行加减乘除求余以及指数运算----------------------------------------------------------- - 8 - 2)求倒 ------------------------------------------------------------------------------------------------ - 9 - 3)退格 ---------------------------------------------------------------------------------------------- - 10 - 4)清零 ---------------------------------------------------------------------------------------------- - 10 - 5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算 ------------- - 11 - 6)连续运算(例:2*3*4=24.0)------------------------------------------------------------- - 11 - 7)异常处理(例:求倒时输入数为0) --------------------------------------------------- - 12 - 五、设计体会与小结 -------------------------------------------------------------------------------------- - 13 - 六、参考文献 ----------------------------------------------------------------------------------------------- - 13 - 七、源程序--------------------------------------------------------------------------------------------------- - 14 -

计算思维和程序设计能力的培养

计算思维和程序设计能力的培养 摘要:随着信息化技术的发展加快,如何提高计算机人才的程序设计和开发能力显得尤为重要。本文从算法的一题多解入手,探讨对学生计算思维能力的培养。这一方法对培养学生学习兴趣和提高其程序设计及编程实践能力起到了极大的促进作用。采用这个方法进行教学,能达到理想的教学效果。 关键词:算法;程序设计;计算思维;能力培养 1研究背景 数据结构是计算机相关专业的一门重要的专业基础课,是计算机科学的核心课程,是计算机理论与技术的重要基石。它主要研究计算机加工对象的逻辑结构、在计算机中的表示形式以及实现各种基本操作的算法。它是学习操作系统、编译原理、数据库原理、软件工程等计算机专业核心课程的基础,掌握好这门课程的内容,是学习计算机其他相关课程的必备条件。学习数据结构可以培养学生的数据抽象能力、算法设计能力以及构造算法思维方法的能力。 数据结构的学习过程,是算法构造性思维方法的训练过程,技能培养的重要程度不亚于知识传授。本门课程教学难点在于让学生理解、习惯算法构造思维方法。培养学生的数据抽象能力、算法设计能力以及创造性思维方法,才能使其举一反三、触类旁通,从而达到应用知识解决复杂问题的目的。通过数据结构的学习,培养和强化学生计算思维的能力。 程序设计在计算机学科知识体系中处于核心地位,对计算机专业的学生来说不仅是职业技能的培养,也体现着创造性思维的信息素质培养过程。程序设计也是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,对计算机专业人才素质的培养至关重要[1]。如何培养学生的程序设计和计算思维能力,是我们在教学中思考的一个问题,我们将这一教学理念融入数据结构的教学中,取得了理想的效果。 2数据结构教学面临的困境 我们根据实际应用需要,对数据进行有效地组织、存储和处理,并设计出相应的高效率的算法,这是数据结构课程所要研究和解决的问题。由于数据结构具有抽象性和灵活性等特点,这给教学和学习带来一定的困难[2]。学生学习起来比较吃力,有学生反映,他们课上听懂了,但是一下来做作业,就会不知道如何下手。有部分学生感觉对学习数据结构缺乏兴趣,他们不知道数据结构能用在什么地方、到底有没有用。 3培养学生计算思维能力的重要性

相关文档
相关文档 最新文档