版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1大学计算机基础宋长龙吉林大学现用2/88本章教学目的:
了解程序设计的基本概念、思想和方法,为今后学习程序设计语言打好基础。第1页/共89页3/88本章教学内容:程序设计基本概念指令、指令系统、程序、软件面向机器的语言面向过程的语言面向对象的语言数据类型、常量、变量、表达式、控制结构、输入输出、过程结构化程序设计的原则
程序设计语言概述
程序基本构成
结构化程序设计第2页/共89页4/88本章教学内容:面向对象程序设计中的基本概念简介VB程序设计语言用工程的思想开发软件介绍几种常用程序设计语言
面向对象程序设计VB程序设计基础
软件工程基础
典型程序设计语言概述第3页/共89页5/88程序的概念程序是为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。是用汇编语言、高级语言等开发编制出来的可以运行的文件,在计算机中称可执行文件(后缀名一般为.exe)。第4页/共89页6/88程序设计中的基本概念(1)指令:指挥计算机工作的命令,是计算机执行的最小功能单位。指令的格式:指令通常由操作码和操作数两部分组成。操作码操作数
指令是计算机能够直接识别和执行的二进制命令,指令的数量和功能是由计算机设计者确定的。第5页/共89页7/88操作码操作数指出指令的种类和性质指出指令操作的数据(或存放位置)第6页/共89页8/88程序设计中的基本概念(2)指令系统:一台计算机中全部指令的集合,由计算机设计者确定。
从微处理器的指令系统来看,有CISC(复杂指令集)和RISC(简单指令集)两个分支走向,CISC主要基于PC平台应用,而RISC则在嵌入式市场大行其道。
如果所有指令的长度都相同,则称为定长指令系统,否则称为非定长指令系统。CISC指令集强调指令的数量和功能,通常具有多条指令(200~300条),为编写程序提供了方便,但整体效率低。RISC指令集强调指令功能和效率,通常具有较少的指令(100条以内),但每条指令的执行效率都较高。第7页/共89页9/88程序设计中的基本概念(3)程序:源程序:机器语言程序:从实现层次上理解,程序是为完成某一特定任务、按一定顺序组织的计算机指令序列。利用汇编语言或高级语言设计的程序称为源程序。使用计算机指令编写的程序,是计算机能够惟一识别的程序。第8页/共89页10/88
源程序需要转换为机器语言程序才能被计算机识别和执行,这个过程称为编译。源程序目标程序机器语言程序编译链接第9页/共89页11/88C语言的简单程序,其作用是在屏幕上显示信息“Hello,world”第10页/共89页12/88编译源程序连接编译后的目标程序第11页/共89页13/88解释方式:所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。由于它的方便性和交互性较好,早期一些高级语言采用这种方式,如BASIC、dBASE。但它的弱点是运行效率低,程序的运行依赖于开发环境,不能直接在操作系统下运行。第12页/共89页14/88程序设计中的基本概念(4)软件(Software):注意:是用户与硬件之间的接口界面,它是程序、数据及相关文档的集合。程序是软件,但软件不仅仅是程序,它还包括功能说明、性能说明等信息,如使用说明、维护说明、操作指南和培训教材等内容。第13页/共89页15/889.2程序设计语言概述
程序设计语言种类丰富,每种程序设计语言都有其适用范围,如汇编语言用于控制过程、C语言用于开发系统软件,而JAVA则适合网页设计。第14页/共89页16/889.2.1面向机器语言机器语言程序:使用计算机指令直接书写的程序,能够被计算机直接识别和执行。
编程者需要了解计算机的指令系统及计算机的硬件结构;指令的二进制格式使得程序的编写和维护不方便。缺点:第15页/共89页17/88101110000000100000000000000001010000011100000000以简单计算8+7为例:在微机中对应的机器语言为:注意:可执行程序是有格式文件,即这类文件有特定的结构,不能简单地只编辑文件内容部分。第16页/共89页18/88常用面向机器语言为汇编语言。汇编语言以助记词来代表命令及操作单元,为编写程序提供了方便。例如,加法使用add表示减法使用sub表示寄存器使用AX等表示第17页/共89页19/88使用汇编语言编写的源程序同样需要编译成机器语言程序才能被计算机识别和执行。注意:在微机中对应的汇编语言为:movAX,8addAX,7以简单计算8+7为例:第18页/共89页20/88由于不同种类计算机的性能、体系结构的差别,机器语言程序具有机器相关性,即为一类计算机编写的程序一般不能应用在另一类计算机系统中。注意:第19页/共89页21/889.2.2面向过程高级程序设计语言脱离具体计算机指令,使用人们熟悉的表达方式书写程序。如BASIC、FORTRAN、Pascal、C等。
面向过程程序设计的核心是数据结构及其算法,即著名的沃思公式:
程序=数据结构+算法。
对数据的描述,包括数据类型及其组织形式。
对操作的描述,即操作步骤(先后次序)。第20页/共89页22/88常用面向过程的语言:
Basic、FORTRAN、Pascal和C等。例如,如下C语言程序实现两个数的简单计算。main(){inta,b;a=10;b=20;printf(“a+b=%d\n”,a+b);}定义数据定义数据操作数据(算法)面向过程程序设计语言主要考虑控制流程问题.第21页/共89页23/889.2.3面向对象程序设计语言面向过程的语言将数据和处理数据的方法分割开来,对问题的描述带来困难。面向对象的程序设计语言引入类、对象等概念,使得数据和处理数据的方法融为一体,更方便处理现实世界中复杂的事物。如C++、Delphi、VisualStudio系列、java等。第22页/共89页24/88类是对对象的抽象,
将一个对象的相关数据和代码封装在一起,成为一个单元。对象是类的实例化,是程序可以操作的基本单元。身份证号姓名性别驾驶证号身份证号姓名性别驾驶证号踩刹车踩油门转方向盘第23页/共89页25/88如何定义对象(程序环境提供操作)定义哪些对象(即程序界面如何布局)设置每个对象的属性值(对象的外观)为对象编写事件的响应代码(确定方法)对象之间通过消息传递形成一个完整的应用系统面向对象程序设计主要考虑的是:第24页/共89页26/889.3程序基本构成数据运算控制传输
描述程序中涉及的数据,能够处理的数据类型越丰富,则语言应用范围越广。
能够对数据进行的加工处理操作。例如,数值能够进行乘除运算,而文本则不能进行乘除运算。
对数据进行加工处理的先后顺序。
获得加工数据、将数据送入加工处理单元、将加工的结果通过各种形式进行利用。第25页/共89页27/889.3.1数据类型(1)基本数据类型:
包括整型、字符型、实型等。整型:用来描述整型数值,又可以分为短整型(short)、整型(integer)和长整型(long)等。实型:用来描述实数,又可以分为单精度(single)和双精度(double)两种类型。字符型:用来描述单个字符(char)信息,如‘a’
。第26页/共89页28/889.3.1数据类型(2)数组:使用一个标识符定义多个变量。程序中用到的变量名、函数名等。
数组描述的是同类型的若干个量。例如,处理500名学生的成绩信息,不可能定义500个简单整型量。
C语言中的定义:intscore[500];
VB中的定义:dimscore(100)asintegerVFP中的定义:dimesionscore(100)标识符,数组变量名
数组的定义:第27页/共89页29/889.3.1数据类型(3)记录:
用于描述复杂数据信息,例如描述学生档案信息。
在数据库中,数据库表存储的就是记录信息,其他程序设计语言通常要定义记录类型。第28页/共89页30/88VB中记录的定义:TyperkjszljsbhasintegerxmasstringxbasbytezzdhasstringyddhasstringEndtype记录类型名记录类型的教师编号属性记录类型的教师姓名属性记录类型的性别属性记录类型的住宅电话属性记录类型的移动电话属性结束记录类型rkjszl的定义第29页/共89页31/88记录类型相当于数据库表的结构部分;对应数据库表的内容(表体),可以定义数组实现。例如,
dimjs(50)asrkjszl记录类型记录类型数组{第30页/共89页32/889.3.2常量、变量和运算符
常量:程序运行过程中其内容保持不变的量,例如:固定的数值和字符串等。常量分类:普通常量,如100,10.5,“中国”等。
符号常量,用标识符代表某个常量。符号常量的定义:
C语言#definePI3.1415926VBconstPI=3.1415926VFP数据库#definePI3.1415926第31页/共89页33/889.3.2常量、变量和运算符
变量:程序运行过程中其内容可以变化的量,用来保存程序中用到的临时数据。程序中用到的变量具有名称和类型,先定义后使用,例如,在C语言中,
intk=10;即定义了一个整型变量,其名字为k,当前存储的值为10,在程序中可以为其重新赋值,从而改变其存储值,例如语句k=20;则变量k存储的内容变为20。第32页/共89页34/889.3.2常量、变量和运算符算术运算:+-*/^等字符运算:&等关系运算:>>=<<===!=等逻辑运算:
andornot等运算符第33页/共89页35/889.3.2常量、变量和运算符表达式:由常量、变量及函数等通过运算符连接而成的式子。具有某种功能的完整程序段,可以分为系统函数和自定义函数。例如sin函数、cos函数等都是系统函数。例如,在C语言中给定半径计算圆的面积:
intr=10,s;s=3.1415926*pow(r,2);定义变量r,存储半径的值定义变量s,用来存储计算的面积表达式3.1415926*pow(r,2)给变量s赋值,表达式中用到了常量3.1415926,变量r和幂函数pow第34页/共89页36/889.3.3控制结构程序中语句的执行顺序构成了程序的控制结构,通常控制结构分为顺序、分支和循环三种。使用三种结构可以描述任何复杂的控制过程。第35页/共89页37/88控制结构——顺序结构按语句书写的先后顺序执行。例如,有如下程序代码:
a=10b=a+18c=a+b则执行上述程序后,三个变量的值分别为:
a=10,b=28,c=38第36页/共89页38/88控制结构——分支分支也称为选择,是按条件决定是否执行某段代码。条件代码A代码B成立不成立例如,求X=|Y|Y(Y≥0)-Y(Y<0){[C实现]if(y>=0)x=y;elsex=-y;第37页/共89页39/88分支语句举例:判断一个一元二次方程实根是否存在[C实现]
main(){inta,b,c;printf(“请输入方程系数的值:”);scanf(“%d,%d,%d”,&a,&b,&c);if(b*b-4*a*c>=0)printf(“方程有两个实根”);
elseprintf(“方程没有实根”);
}第38页/共89页40/88控制结构——循环循环也称为重复,是根据条件决定是否要反复执行某段程序代码。循环结构在程序中较为常见,例如,计算1+2+3+……+1000,是一种有规律的计算;工资管理系统中打印职工工资条,是一种重复操作。第39页/共89页41/88需要反复执行的程序代码称为循环体。循环有控制条件,可以根据控制条件确定循环是否还需要执行。例如1+2+3+……+1000运算中,加上值1000后就不再计算;而打印职工工资条程序在打印出满足条件的最后一名员工信息后将停止打印。循环可以分为当型循环和直到型循环两种。循环控制条件始终为真的循环称为恒真循环。第40页/共89页42/88当型循环:当条件成立时执行循环体。不成立成立循环条件循环体语句第41页/共89页43/88直到型循环:一直执行循环体,直到条件成立。成立循环体语句不成立循环条件第42页/共89页44/88循环举例:计算1+2+3+……+100的和。用C语言实现:
inti=1,sum=0;while(i<=100){sum=sum+i;i=i+1;}顺序执行循环语句(当型循环)循环执行过程:首先判断条件,成立执行语句sum=sum+ii=i+1此时sum=1,i=2转去判断条件i<=100,即2<=100,成立,执行语句sum=sum+i,i=i+1,此时sum=3,i=3再去判断条件,如此反复,直到i=101,判断条件不成立,结束循环。第43页/共89页45/889.3.4输入输出输入输出是计算机系统与用户之间信息交流的一种主要手段。标准输入设备:键盘、鼠标标准输出设备:显示器、打印机其他设备:如磁盘、扫描仪、数码相机、U盘等。存储文件:如数据库等。第44页/共89页46/889.3.5过程过程也称为函数,是功能独立的一段程序。例如:给出半径,计算对应圆面积的过程。
floatarea(floatr){return3.14*r*r;}
使用过程可以使程序设计层次清晰、结构易读第45页/共89页47/889.4结构化程序设计为规范程序设计而提出的一种程序设计方法。软件生产的发展程序设计时代:个体手工劳动程序系统时代:作坊式小集团生产,提出了结构化方法软件工程时代:工程化生产,生产效率极大提高,但未能完全摆脱软件危机第46页/共89页48/88结构化程序设计原则:自顶向下:先考虑整体结构逐步求精:再考虑局部细节模块化:用功能模块表现各部分性能限制使用GOTO语句:避免程序中出现随意转移问题,使程序结构清晰、易懂第47页/共89页49/88结构化程序设计说明:设计一个学生综合信息管理系统学生综合信息管理代码维护学生信息各科成绩统计报表①首先考虑整体功能第48页/共89页50/88结构化程序设计说明:设计一个学生综合信息管理系统②随后考虑每部分的实现细节例如,成绩信息,在总体设计中已经确定划分为录入成绩、查询成绩和修改成绩三个功能模块,逐步求精即确认每个功能模块的是实现细节,例如修改成绩,要有修改者的身份确认方式、可以修改的内容等细节因素。修改成绩成绩信息录入成绩查询成绩第49页/共89页51/88结构化程序设计说明:设计一个学生综合信息管理系统③将每个功能模块通过定义函数、过程等形式加以实现,整体程序通过函数之间的调用形成一个整体。例如修改成绩模块,可以定义函数xgcj()实现,查询成绩模块可以定义函数cxcj()函数实现。修改成绩成绩信息录入成绩查询成绩第50页/共89页52/889.5面向对象程序设计对象是对客观事物的描述,这里的客观事物即可以是客观实体,也可以是事件、过程或概念等。面向对象程序设计中的基本概念:类:对象:类是对象的抽象,是具有相同特征对象的集合。
客观世界中任何事物都可以视为对象,是描述内容的客观表示。第51页/共89页53/88类的定义:classstudent_info{public:
voidsetinfo(intxh,charxm[]);voidprintinfo();private:intnum;charname[8];
floatscore[20];};方法setinfo,用于设置学生信息方法printinfo,用于显示学生信息属性num,存储学号属性name,保存姓名属性score,存储各科成绩第52页/共89页54/88对象的定义:student_info
st_1,
st_2;类名对象名对象名第53页/共89页55/88类的特性:类的继承性继承是在已有类的基础上生成新类。已有类称为父类,新生成的类称之为派生类或子类。通过继承可以获得已有类的数据和方法,而不必再次重复定义它们,而且在子类中还可以增加新属性和新方法。
第54页/共89页56/88类的封装性类的特性:所谓封装,指的就是类中定义的数据只能被类中定义的方法所访问,除此之外别无它法。
封装性体现出来的是对类中数据成员的有效保护,可以避免与此类无关的其他过程和方法访问类中数据。
第55页/共89页57/88类的多态性类的特性:多态性是指同一事件被不同对象接收可以引起不同反应。
多态性通常体现在继承上:在父类中定义的属性和方法,被子类继承后,可以具有不同的数据类型或表现出不同的行为。
第56页/共89页58/889.6VB程序设计基础VB的特点:可视化的设计界面
面向对象程序设计方法
事件驱动编程机制
开放的数据库功能与网络支持
充分利用Windows资源
VB即VisualBasic,是微软公司推出的一种面向对象程序设计语言。第57页/共89页59/88VB中的基本概念VB中控件窗体对象对象
控件是在VB中事先定义好的、在程序中可以直接使用的对象,每个控件都有多个属性、事件和方法
窗体(Form)也就是所谓的窗口,它是Windows环境下应用程序的主要界面形式。
VB程序中窗体、窗体中的各种控件都是对象第58页/共89页60/88VB中的基本概念对象的事件对象的属性对象的方法
属性是描述对象特征的一组数据,不同对象具有并不相同的属性,如命令按钮具有大小、位置、提示信息等属性。
在VB中,事件是预先定义好的、能够被对象识别的动作,如命令按钮可以单击、双击等。
一般来说,方法就是要执行的动作,如刷新等。第59页/共89页61/88创建VB应用程序的步骤:1、新建一个工程文件2、创建用户界面4、编写事件响应代码3、设置界面对象属性5、测试和调试应用程序7、发布应用程序6、创建可执行文件在VB环境中开发的每一个应用程序都被称为工程。新建了一个工程后,系统自动给出工程中的一个空白窗体,可以在该窗体中根据需要进行设计操作。在窗体中添加了控件对象后,应该为对象进行属性设置。
事件响应代码是应用程序所要完成的主要操作,窗体中的每一个对象都可以添加多种事件代码。
通过“运行”菜单→“启动”来运行窗体进行功能测试“文件”菜单→“生成<工程名>.exe”菜单项来生成可执行文件工程名.exe。
使用VB系统提供的Package&Deployment向导创建安装程序,可以确保将要发布的应用程序具有运行时所需的全部系统文件。第60页/共89页62/889.7软件工程基础软件工程是将工程的思想应用到软件开发设计过程中,是软件设计方法学和工程管理学的结合体。软件工程学出现的目的是为缓解软件危机。第61页/共89页63/88软件危机软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件需求的增长得不到满足
软件开发成本和进度无法控制
软件质量差,维护困难
软件的可移植性差
第62页/共89页64/88软件危机的原因:对软件需求的描述不正确
软件开发人员对需求的理解和用户的初衷不一致过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧了软件产品的个性化大型项目管理人员缺少开发经验,而开发人员又缺少管理经验第63页/共89页65/88软件工程目标:
低成本、高性能。开发的软件易于移植、易于维护。能按时完成开发,及时交付使用。第64页/共89页66/88软件生命周期将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期可以分为软件定义(可行性研究与计划制定;需求分析)、软件开发(概要设计;详细设计;实现;测试)及软件运行维护(使用;维护;退役)三个阶段。第65页/共89页67/88软件生命周期模型:瀑布模型:可行性研究需求分析概要设计详细设计实现测试使用维护退役第66页/共89页68/88用最小的代价在尽可能短的时间内确定问题是否能够解决。其包括:
1、经济可行性研究
2、技术可行性研究
3、法律可行性研究
4、开发方案的选择性研究软件开发步骤1:可行性研究第67页/共89页69/88软件开发步骤2:需求分析软件需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析阶段的工作:需求获取;需求分析;编写需求规格说明书;需求评审。第68页/共89页70/88软件需求规格说明书包括的内容
一、概述二、数据描述(数据流图、数据字典、系统接口说明、内部接口)三、功能描述(功能、处理说明、设计的限制)四、性能描述(性能参数、测试种类、预期的软件响应、应考虑的特殊问题)五、参考文献目录六、附录第69页/共89页71/88软件开发步骤3:概要设计(总体设计)概要设计的基本任务:1、设计软件的系统结构:整体特性2、数据结构及数据设计:抽象数据类型3、编写概要设计文档:概要设计说明书,用户手册,测试计划等。4、概要设计文档评审:方案的可行性、正确性、有效性和一致性。第70页/共89页72/88学生综合信息管理系统结构图学生综合信息管理代码维护学生信息各科成绩统计报表第71页/共89页73/88软件开发步骤4:详细设计详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
常见的过程设计工具有:
1、图形工具:程序流程图,N-S,PAD(ProblemAnalysisDiagram,问题分析图)
2、表格工具:判定表
3、语言工具:PDL(pseudocode,伪码)⊙第72页/共89页74/88软件开发步骤5:编码实现
编码实现是程序员使用合适的程序设计语言实现系统分析人员在详细设计阶段规定的具体任务,是真正意义上的编写程序,也是程序员发挥创造性的阶段。编码实现的依据是详细设计说明书。
第73页/共89页75/88软件开发步骤6:软件测试软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命周期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试。第74页/共89页76/88软件测试的目的查找软件中的可能存在的错误。测试是为查找软件中的错误,不是演示软件功能。第75页/共89页77/88软件测试的准则所有测试都应追溯到需求严格执行测试计划充分注意测试中的群集现象程序员应避免检查自己的程序穷举测试不可能保存测试各结果,为维护提供方便第76页/共89页78/88软件测试方法从是否需要执行被测试软件的角度,可以将测试分为静态测试和动态测试。按照功能划分可以将测试分为白盒测试和黑盒测试。第77页/共8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论