Presentation is loading. Please wait.

Presentation is loading. Please wait.

陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院

Similar presentations


Presentation on theme: "陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院"— Presentation transcript:

1 陈 峦 副教授 13880209111,chluan@uestc.edu.cn 研究院大楼316# 电子科技大学 能源科学与工程学院
陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院

2 第一章 概述 §1—1 程序设计 软件:是商品化的程序 软件 = 程序+文档 程序:由若干个文件组成

3 一、程序设计语言 低级 封装、抽象(屏蔽实现细节,透明)→提高代码复用率 人的自然语言、人的自然习惯思维 高级

4 编译、解释 汇编 面向对象 高级语言 (面向过程) 汇编语言 助记符语言 (面向CPU) 二进制语言 机器语言 (面向电路) 面向目标
(屏蔽实现细节,例如:SQL) 智能语言 自然语言 (编程语言=自然语言,随便说话就是程序)

5 面向过程的高级语言→面向对象语言 鼻祖:Fortran(1954年) C复杂,功能强大→C++(Visual C++、C++ Builder)→Java,C# Basic简单,入门→Visual Basic(解释,编译) Fortran数值计算→Visual Fortran Pascal教学→Delphi

6 二、面向过程与面向对象 面向过程程序设计=算法+数据结构 面向过程程序设计语言=运算符+语句+数据类型 算法=运算符+语句
数据结构=数据(值域)+结构(关系) 数据类型=数据结构+操作(函数)

7 面向对象程序设计=对象+对象+对象 面向对象语言=封装性+继承性+多态性 对象=算法+数据结构 对象:如windows平台上的多种控件:按钮、标签、菜单、文本框等 封装性:类和对象 类:ADT(Abstract Data Type),抽象数据类型 继承性:继承、派生,单继承→树,多继承→DAG图(有向无环图) 多态性:函数重载、运算符重载、动态联编(虚函数)、模板

8 面向对象的核心思想:支持代码复用,屏蔽实现细节,减少信息冗余
实现软件系统的柔性制造 早期:计算→数值型数据类型:标量(原子)数据类型,结构数据类型→预定义 现在:信息处理→非数值型数据:抽象数据类型,可描述任何事物,如声,图,视频等→用类来自定义,如复数,集合,堆栈,队列等

9 类中的成员有三种权限:public、protected、private,防止非法访问,提高安全性
继承:减少信息冗余,降低软件成本,缩短开发周期,提高代码质量 多态性:一个名字,多种语义;相同界面,多种实现;同一接口,多种方法

10 三、面向过程与面向对象的比较 面向过程 1.强调结构化,模块化 2.以过程为出发点 3.以数据结构为中心 4.本质是功能分解,算法分解
5.用计算机观点来进行程序设计 6.分析与设计不一致 7.将数据与处理数据的过程相分离 8.代码的可重用性差,维护困难 面向对象 1.强调对象化 2.以客观存在的事物为出发点 3.以问题域中的事物(对象)为中心 4.本质是对象分解 5.模拟人类习惯的解题方法来进行程序设计 6.分析与设计一致 7.将数据及对数据的操作方法封装在一起,作为一个对象 8.代码的可重用性好,可扩充性好,维护容易

11 四、积木化软件设计思想 积木化:单入口,单出口,高内聚,低耦合→代码复用,屏蔽实现细节 语句化→结构化→模块化→对象化
类似于:二极管三极管电阻→集成电路芯片→电路板→计算机→计算机网络

12 结构化:顺序结构,选择结构(分支结构、条件结构),循环结构(重复结构)
模块化:子程序,函数,过程,如Turbo C的库函数 不用知道实现细节,只知道入口出口即可

13 对象化:更宏观的程序模块 对象:是数据和函数的封装体,与人认识现实世界的思维习惯一致(对象分解) 类:抽象数据类型ADT,如同int→数据类型 对象:类的实例:如同x→变量

14 积木化的优点: 便于代码复用 便于软件维护(查错、维修局部化) 便于增删功能 可提高可读性,可减少信息冗余 简化问题,分而治之

15 五、软件工程 1.软件质量 软件质量:内部质量和外部质量 正确性:correctness 健壮性:robustness
可扩充性:extendibility 可复用性:reusability 协调性:compatibility

16 2.模块化 当今软件工程强调的重点→模块化 模块化的5个标准: 模块可分解性:modular decomposability 模块可结合性:modular composability 模块可理解性:modular understandability 模块连续性:modular continuity 模块保护性:modular protection

17 模块化的5个原则: 语言模块单元:linguistic modular units 少接口:few interfaces 接口弱耦合性:small interfaces 显式的接口:explicit interface 信息隐藏:information hiding

18 3.面向对象的软件工程: ① OOA:面向对象分析 Object-Oriented Analysis ② OOD:面向对象设计 Object-Oriented Design ③ OOP:面向对象的编程 ④ OOT:面向对象的测试 ⑤ OOSM:面向对象的软件维护

19 §1-2 C++与C的关系 一、C++与C的关系 1.C语言是C++的一个子集,C++是C语言的超集,C++包含了C语言的全部内容

20 二、C语言和C++语言的特点 C语言的特点: ① 语言简洁,灵活,高效 ② 运算符和数据类型丰富 ③ 具有结构化控制语句,程序的可移植性好
④ 可直接访问物理地址,具有面向过程的高级语言和汇编语言的双重优点

21 C++的特点: ① 继承保持了C的优点:简洁,高效;接近汇编语言 ② 改进了C的不足,比C更安全 ③ 既支持面向过程程序设计,又支持面向对象程序设计

22 §1-3 上机调试及运行 一、Turbo C++上机调试及运行
§1-3 上机调试及运行 一、Turbo C++上机调试及运行 1.编辑:File→New→编辑→Save或Save as→设置路径及文件名为:*•cpp→OK 2.编译:①Compile→Compile *•cpp→改错→重新编译→无错→*•obj ②Compile→Make *•exe→*•exe 3.运行:Run→Run *•exe→到User Screen中看结果,或Alt+F5看结果

23 二、Visual C++上机调试及运行 1.编辑 启动VC++编译系统→Microsoft Developer studio窗口
File Edit View Insert Project Build Tools Window Help 共9个菜单项 File→New→File→C++ Source File进入编辑屏幕 存盘:File→Save或Save as→*·cpp→OK

24 2.编译连接和运行 (1)单文件程序:程序中只有一个文件 例://f.cpp文件内容 # include “iostream.h” void main( ) {int a=3,b=4; int c=a+b; cout<<c<<endl; } //显示结果:7

25 ① Build→Compile *•cpp 显示错误信息,改正后重新编译 直到显示:*•obj→0 error(s),0 warning(s) 编译无错 ② Build→Build *•exe 直到显示:*•exe→0 error(s),0 warning(s) 连接成功 ③ Build→Execute *•exe 显示结果 press any key to continue……

26 (2)多文件程序:该程序至少包含二个文件 例://f1.cpp文件内容 #include “iostream.h”
int add( int,int); void main( ) {int a=3,b=4; int c=add(a,b); cout<<c<<endl; } //f2.cpp文件内容 int add(int x,int y) {return x+y;}

27 ① 在某个指定目录下建好C++的源程序文件,如:d:\user 下
② 创建一个新的项目文件 File→New → Project →出现New Project对话框 a.选择项目类型为:Win32 Console Application b.输入项目名字:在Project name中输入,如:kkk c.输入路径名:在Location中输入,如:d:\user 单击OK按钮确认,则项目文件已建立

28 ③ 向项目文件中添加文件 Project→Add File to Project→Files→显示Insert File into project对话框→添加文件f1.cpp,f2.cpp ④ 编译连接项目文件 Build→Build All 改错后,重新编译,直到无错 则生成项目文件名的可执行文件 ⑤ 运行项目文件: Build→Execute *•exe 显示运行结果 press any key to continue……

29


Download ppt "陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院"

Similar presentations


Ads by Google