程序设计和软件开发

上传人:第*** 文档编号:32826577 上传时间:2018-02-12 格式:DOC 页数:17 大小:2.54MB
返回 下载 相关 举报
程序设计和软件开发_第1页
第1页 / 共17页
程序设计和软件开发_第2页
第2页 / 共17页
程序设计和软件开发_第3页
第3页 / 共17页
程序设计和软件开发_第4页
第4页 / 共17页
程序设计和软件开发_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《程序设计和软件开发》由会员分享,可在线阅读,更多相关《程序设计和软件开发(17页珍藏版)》请在金锄头文库上搜索。

1、70第 4 章 程序设计和软件开发4.1 高级语言产生4.1.1 从机器语言到高级语言程序是计算机完成某个任务的一系列操作步骤。为了让计算机解决一个实际问题,必须事先用计算机语言编制好程序。编制程序可以使用机器语言、汇编语言和高级语言。1 机器语言因为机器指令是二进制代码,用机器语言编写程序就是要编出由一条条二进制代码组成的程序。2 汇编语言为了克服机器语言的缺点,人们发明了汇编语言。汇编语言是在机器语言的基础上符号化而成的,即采用英文单词或缩写表示的“助记符”来代表机器指令。由于计算机只能识别机器语言,因此需要将汇编语言程序翻译成机器语言程序(目标程序)才能执行。如图 4-1 所示。图 4-

2、1 汇编语言源程序的执行过程【例 4.1】已知三角形的三条边长分别是 3、4、5 地址单元中,计算三角形的周长。求这个三角形周长机器语言程序和相应的汇编语言程序如图 4-2 所示。 。图 4-2 机器语言程序和汇编语言程序3 高级语言汇编语言程序仍然需要熟悉计算机指令,编写程序仍然非常繁琐。为了克服汇编语言的缺陷,提高编写和维护程序的效率,一种接近于普通的数学语言和自然语言(主要指英语)的程序设计语言应允而生了,这就是高级语言。用高级语言编写的程序称为“源程序” 。目前比较流行的高级语言有C、C+ 、Java 、C#、Visual Basicl 等。【例 5.2】用 C 语言实现计算三角形的周

3、长。设三角形的 3 条边的长度为整数。71计算三角形的周长的 C 语言程序如下:#include void main( )unsigned int length,a,b,c; /声明存放三角形 3 条边和周长变量printf(a,b,c=); /显示输入提示信息“a,b,c=”scanf(%d,%d,%d, /输入三角形的 3 条边长到 a,b,c 变量中length=a+b+c; /计算周长printf(the girth is:%dn,length); /在屏幕上显示周长计算结果由于计算机只能执行机器语言程序,因此用高级语言编写的“源程序”也必须翻译成机器语言程序,计算机才能执行。负责完成

4、翻译任务的称为“编译程序” 。高级语言源程序的编译连接执行过程如图 4-3所示。图 4-3 编译执行过程4.1.2 高级语言开发环境用户通过文本编辑器(例如:Windows 附件中的记事本)录入高级语言程序形成“源程序”文件。例如,上面的“计算三角形的周长的 C 语言程序”可以保存为 ex4-2.c 文件。“源程序”文件通过编译器把高级语言程序翻译成机器语言程序,然后进行连接后形成可执行的文件,运行可执行的文件即可实现程序的功能。通过高级语言集成开发环境(IDE)软件,可以编写程序、编译、连接和运行均在其中完成。例如:Turboc 2.0、Visual C+6.0 都是 C 语言的集成开发环境

5、。下面以 Visual C+6.0 集成开发环境(如图 4-4 所示)介绍 C 语言开发过程。72图 4-4 C 语言的开发环境 Visual C+6.01. 编写程序单击 “新建文本文件”按钮,输入“编写程序”程序,保存为“ex52.c ”文件。2. 编译、连接单击 “Compile”,编译“ex52.c”源程序文件为机器语言文件;单击 “Build”,将编译形成文件进行“连接”形成可执行的文件。3. 运行在编译连接后,单击 “BuildExecute”,运行可执行文件。系统显示:a,b,c=用户输入:3,4,5系统显示:the girth is:12运行结果如图 4-5 所示。图 4-5

6、运行的结果4.2 高级语言程序设计基础程序是对解决问题的步骤的描述。编写程序的前提是已经知道如何解决这个问题,例如:求一元二次方程 ax2 +bx +c =0 的实数根。如果没有中学数学的知识,当然就不知道如何解决这个问题,编写解决这个问题的程序就无从谈起。编译运行连接编写程序734.2.1 算法算法就是解决问题的方法。算法需要描述出来,别人才能知道,自己编写程序也才比较容易。描述算法有多种方法,例如:文字写出来,用流程图表达等。1. 算法文字描述例如:求一元二次方程 ax2 +bx +c =0(设 a0)的实数根。对应算法描述如下:第 1 步:输入系数 a、b、c。第 2 步:计算 d= b

7、2 -4ac。第 3 步:若 d0 计算 xl= ,x2= ;输出两个实数根为 xl 和 x2,转dadb2第 6 步;否则,转第 4 步。第 4 步:若 d=0) /计算 x1, x2; 输出 x1, x2else printf(“no root!”);因为条件成立时需要执行多条语句,所以在 C 语言中需要用 起来。【例 5.3】用 C 语言实现计算一个 “一元二次方程 ax2 +bx +c =0 的实数根” 。设a、b、c 系数为整数。根据计算“一元二次方程 ax2 +bx +c =0 的实数根”流程图,程序如下:#include #include void main()int a,b,c

8、;int d;float x1, x2;printf(a,b,c=);scanf(%d,%d,%d, d=b*b-4*a*c;if (d=0)76x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%f, x2=%fn, x1, x2); else printf(no root!n);运行结果如图 4-10 所示。图 4-10 运行结果6. 循环循环结构是由某个条件(称循环控制条件)来控制某个操作(称循环体)是否重复执行的一种控制结构。循环结构也有多种形式,如图 4-11 所示是首先判断条件,条件成立,执行指定操作。如图 4-12 所示是首先

9、执行指定操作,然后判断条件,条件成立继续。图 4-11 当型循环结构的流程图 图 4-12 直到型循环结构的流程图例如,需要计算多个“一元二次方程 ax2 +bx +c =0 的实数根”:int a,b,c;char yes; doscanf(“%d,%d,%d”, a,b,c) ; /输入 a, b, c /计算一个“一元二次方程 ax2 +bx +c =0 的实数根”程序prinf(“continue(T/F)?”; scanf(“%c”, yes) ; /输入T或者其他字符字符, 确定是否继续计算。 while(yes=T) /输入T字符, 继续。上面是高级语言程序设计需要包含的基本内容

10、,有了这些,算法描述的内容都可以表达出来。但是,为了方便程序设计,提高效率,高级语言程序设计还包含了很多其他的语句。774.3 高级语言程序设计方法用高级语言进行程序设计,如果问题很简单,不需要描述算法,直接编程序就可以。例如:已知三角形的 3 条边,计算三角形的周长。如果问题比较复杂,首先需要设计算法,如果必要可以把算法描述出来,然后根据算法进行程序设计。高级语言程序设计方法包括结构化程序设计和面向对象程序设计。4.3.1 结构化程序设计结构化程序设计又称面向过程程序设计,它的基本思想是采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构。它把一个复杂问题分阶段进行,每个阶段处理的问题都

11、控制在人们容易理解和处理的范围内。单入口单出口的控制结构可以减少错误的产生,便于程序调试。例如, “学生成绩管理系统”可以把它分解成学生管理、课程管理、成绩管理,成绩管理又包括成绩录入、成绩排序、成绩图形分析等。这些功能可以分别编写成模块,调用的模块称为主模块,被调用的模块称为子模块。如图 4-13 所示。 图 4-13 学生成绩管理系统功能模块例如,为了描述成绩排序的算法,可以分别画出它们的流程图。78i = 1开始将第 i - n 数据中最大的放到第 k 个位置i = ni = i + 1ny结束4.3.2 面向对象程序设计1. 面向对象程序设计基本概念在结构化程序设计中,数据和对数据的操

12、作是相分离的。下面介绍面向对象程序设计的基本概念。 类和对象类描述具有相同特性和行为的对象的抽象,对象是类的一个实例。例如, “汽车”就是一个类,它包含了汽车的共同特征(例如:型号、发动机排量、外观尺寸、颜色等) ,而对于“奥迪 A6”则是汽车这个类的一个具体实例。日常生活中会涉及到各种类,例如学生、学校、房子、蔬菜,等等。子类是在已有类的基础上修改而形成的类,子类所依托的类称为父类。例如:卡车属于汽车,但卡车又有其特有的特征(如载重量) ,我们可以定义一个卡车子类,它继承汽车类,同时它增加如载重量特性。这时,汽车是卡车的父类。父类修改后,子类将继承任何对父类所作的修改。 属性和方法为了实现常

13、用功能,系统提供了一些类称为基类,用户可根据需要自定义类。在 Java中,类的特征用属性描述,类的行为用方法描述。方法实际上就是一个函数,函数中的语句组成的程序实现类的行为的功能。例如,可以定义一个三角形类,它的属性包括 3 条边、周长、面积等。它的方法包括计算周长、计算面积等。 事件一个程序运行时会有许多个对象,这些对象之间总是要发生联系的。对象之间可以通过事件进行通信。2. 可视化面向对象程序设计79可视化面向对象程序设计是在面向对象的基础上加上了可视化元素,为应用程序的界面设计提供了更迅速便捷的途径:程序员不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到屏幕上即可

14、。例如,Visual BASIC 语言(简称 VB)就是典型的可视化面向对象程序设计语言。【例 5.4】输入三角形的三边长 a、b、c,计算三角形的周长和面积。在 VB.NET 2005中实现。程序运行界面如图 4-14 所示。图 4-14 程序运行界面程序代码如下:Imports System.MathPublic Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 单击“计算”按钮事件执行的程序Dim a,

15、 b, c As DoubleDim p, s As Doublea = Val(TextBox1.Text) 得到界面上输入三角形3条边b = Val(TextBox2.Text)c = Val(TextBox3.Text) 判断a,b,c数据的合法性If a + b c And a + c b And b + c a Thenp = (a + b + c) / 2s = Sqrt(p * (p - a) * (p - b) * (p - c)TLen.Text = CStr(a + b + c) 计算三角形周长,放到TLen文本框中TArea.Text = CStr(s) 计算三角形面积,放到TArea文本框中ElseMsgBox(数据错误!) 否则在界面上显示错误信息End IfEnd SubEnd Class从程序设计语言的发展趋势看,面向对象的高级程序设计语言当前程序设计语言的主80流。4.4 数据结构数据是程序加工的“原料” 。例如,上面计算三角形边长是数据,计算周长和面积的程序需要这个数据作为基础。数据按什么结构进行组织和存储,可以提高数据处理的效率,是数据结构研究的主要问题。下面介绍几种常用的数据结构:4.4.1 线性表 在“QQ 游戏”中有很多网络玩的游戏,例如, “斗地主” 就是

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号