1 / 37

《 可视化程序设计 》

升级到. 文字界面程序. 图形界面软件. 《 可视化程序设计 》. 课程介绍. 《 可视化程序设计 》. 课程名称: 主讲人: 课时: 课程简介: 课程目的:. 闫广明,联系方式:机电学院 317 室. 总学时: 32 ,上课: 32 ,上机: 0. 本课程主要介绍基于 图形界面 下的 C++ 语言程序设计 和开发软件的使用。. 使学生了解流行软件开发方法, 掌握可视化程序的开发流程, 学会编写具有图形界面的程序。. 本课程最终成绩划分. 总分: 100 分 平时分 + 作业分: 40 分 最终大作业: 50 分

zarita
Download Presentation

《 可视化程序设计 》

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 升级到 文字界面程序 图形界面软件 《可视化程序设计》

  2. 课程介绍 《可视化程序设计》 • 课程名称: • 主讲人: • 课时: • 课程简介: • 课程目的: 闫广明,联系方式:机电学院317室 总学时:32,上课:32,上机:0 本课程主要介绍基于图形界面下的 C++语言程序设计和开发软件的使用。 使学生了解流行软件开发方法,掌握可视化程序的开发流程,学会编写具有图形界面的程序。

  3. 本课程最终成绩划分 总分:100分 平时分+作业分:40分 最终大作业:50分 创新软件设计:10分 根据所学内容创性性的设计一个具有一定实用功能的软件,根据功能水平评分,最多不超过10分。

  4. C++ Builder 平时分考查办法 如发现以下情况者,每次减平时分4分,最多减20分 1、玩游戏,听歌,看视频或小说等; 2、上网; 3、不学习; 4、缺席; * 迟到或早退一次扣2分。 每次课随机性课堂作业,并要求上传最终成果。如发现不上传者每次扣除作业分4分,作业总分20。

  5. 教学用软件介绍 • Borland C++ Builder 6 C++ Builder是Borland公司的一款可视化RAD工具。 RAD:Rapid application development,快速开发工具。 基于组件的先进程序设计技术使开发可视化软件向搭积木一样简单。 CBuilder能够开发基本软件,网络软件、数据库软件、工控软件等各类应用软件。

  6. 本次课内容 • 1、为什么要学习可视化编程? • 2、为什么学习C++ Builder,而不是其它可视化编程工具? • 3、必须得先学习C++ 才能学习C++ Builder吗? • 4、如何学好C++ Builder? • 5、面向对象编程基础知识。

  7. 课堂总结 • 本节课需要掌握OOP的思想和其中关键概念的代码化表达方式。 • 课后作业:阅读教材第10章,加深对OOP的印象和理解。

  8. 工业计算机 1、为什么要学习可视化编程? • 人机界面软件用可视化编程工具很容易实现。

  9. 可视化程序设计举例

  10. 主菜单 主工具栏 控件页 当前代码窗口 对象窗口 当前可视化编辑窗口 当前对象属性窗口

  11. 2、为什么学习C++ Builder, 而不是其它可视化编程工具? • 除C++Builder外,还有VB,VC,Delphi,.Net等 • VB, Delphi的语法没有学习过; • VC 不易上手,不适合做快速应用开发; • .Net强调软件结构大于功能,不利于非计算机专业学生学习。

  12. 3、必须得先学习C++ 语言才能学习C++ Builder吗? • 不是必需的 • C++是一种面向对象的C语言,是对原C语言的扩充,只要能够理解面向对象的基本概念和基本使用方法就可以直接学习C++ Builder了。

  13. 4、如何学好C++ Builder? • 1、兴趣是最好的老师。 • 2、广泛涉猎计算机的各个方面知识,日久天长你就会知道C++ Builder能够为你做什么了。 • 3、多看,多编程序,熟能生巧。

  14. 5、面向对象编程基础知识 1、什么是面向对象编程(OOP)? 2、OOP有什么好处? 3、OOP需要哪些基础知识?

  15. 1、什么是面向对象编程(OOP)? • OOP:Object-Oriented Programing • 是以对象(Object)为中心,以事件(Event)作为执行功能的依据,以方法(function)来响应事件完成功能的一种程序设计思想,这种思想是为了模拟现实世界完成一个任务的过程。 (举例子说明)

  16. 一个任务:人饿了要吃饭 • 对象:人 • 事件,饿了 • 方法:吃饭 • 课后作业:举出一个任务例子,并写出其中涉及到的对象,事件,方法。

  17. 2、OOP有什么好处? 1. 提高生产效率。表现在:程序重用共享 2. 降低维护复杂性。表现在:程序模块化 3. 开发大型软件。主要表现在: •抽象模型更接近现实世界。 •模型与程序易于理解 •程序具有重用性和模块化 •软件易于维护

  18. OOP的实现 • OOP为了能更加真实模拟现实世界的对象概念,引入了类,对象,抽象,封装,继承,派生等手段实现对现实世界模拟,进而来完成一定的任务或功能。 • 下面我们依次看一下这六个概念的意思:

  19. 类和对象的基本概念 • 类(Class)是对一类具有相同本质特征和功能的 对象(Object)的统称; • 在OOP语言C++中实现类和对象的方法: 类名 对象名; • 例如:Humen ZhangSan,LiuBei;//定义了两个Humen类变量ZhangSan,LiuBei

  20. 类和对象的定义 • 学习提示: 对象的定义形式与C语言中变量定义一致: • int i,j; 对比Humen ZhangSan,LiuBei; • 区别: • int在c语言中预先定义好了,可以直接用; • Humen这个类型需要人为定义后才可使用; (与C语言中的结构体一样)

  21. 抽象(abstract) 抽象是对具体任务中的对象进行概括,总结出这一类对象的本质特征和功能并描述命名的过程。 • 在OOP中,抽象有两种: • 数据抽象:描述某类对象的属性或状态(对象相互区别的物理量,如:学生学号,身高)。 • 功能抽象:描述某类对象的共有的特征行为或具有的功能,(如:人能走,跑,吃。) • 抽象的实现:通过具有OOP的某种语言来实现。

  22. 抽象实例——钟表 • 数据抽象:当前时间,包括: 小时(hour), 分钟(minute), 秒(second) • 功能抽象: 现在几点了? 看看时间(ShowTime);钟表走时不准了?对表(SetTime); • 命名:具有以上特征和功能的对象统称:钟表类(Clock)

  23. 抽象的实现:用C++语言 数据抽象的C++语言实现: int hour; int minute; int second; 功能抽象的C++语言实现: void setTime(int newH, int newM, int newS);void showTime(); 命名:具有以上特征和功能的对象统称:Clock 因为没有上机练习,所以第一次课讲到这里

  24. 抽象实例——人类 • 数据抽象: ID, Name , Sex , BirthDay, Height • 功能抽象:生物属性角度:Run( ) , Step( ) , Eat( ) , … 社会属性角度:Work( ) , Study( ) , doHomeWork() ,… • 命名:人类(Humen)

  25. 封装 (Encapsulate) 将抽象出来的数据、功能合为一个整体,并规定访问权限。 • 封装后的数据和功能统称为成员(Member); • 封装的实现:OOP语言中实现 • 例子:

  26. 封装 这样我们就完成了一个Class的概念性定义,Ready to Use 封装的C++语言实现 class Clock { int hour; int minute; int second; void setTime(int newH, int newM, int newS); void showTime(); }

  27. 对象的使用方法 • 对象的使用方法与结构体变量非常相似;例子: • Clock *myClock; myClock->ShowTime(); //我想看看时间myClock->SetTime(11,30,00); //我要对表 • myClock->Hour=11; • // 等等,你能这样做么? • 想一想:你有一块钟表,为了对表,把表壳卸下来,手动拨动时针,分针,秒针来对表??

  28. 类内成员的使用限制 • 由于有些对象的内部成员不需要被外部访问,否则可能产生意外。 • 所以需要隐藏起来,不被外部使用,在C++语言中给我们提供这个机制:public, private,protected • public:用public 定义的成员可以被外部访问。 • Private:用private定义的成员不可以被外部访问。 • Protected:讲继承的时候再说。

  29. 抽象实例——钟表类 class Clock { void setTime(int newH, int newM, int newS); void showTime(); int hour,minute,second; }; //这里要学习定义类方法 public: // 公有成员,可以被外部过程调用 private: // 私有成员,只能被类内函数使用

  30. 加入访问权限限制后使用类的方法 • Clock *myClock; myClock->ShowTime(); //我想看看时间myClock->SetTime(11:30:00); //我要对表 • myClock->Hour=11; //上一行编译出错,私有成员不允许访问

  31. 继承(inherit)的概念 • 钟表 有很多种:例如:电子表,手表,无论名称怎样,都具有钟表的基本特征和功能,我们用术语说 电子表是从钟表继承来的。 手表是从钟表继承来的。 对于人而言:孩子从父母那里继承(遗传)了DNA。 • 继承的C++语言表现: 子类名 : public 父类名 { 类定义代码 }; • 例如: Watch: public Clock { 类定义代码 }; • //功能:定义了一个Clock类的子类:Watch; • //Watch会从Clock继承其public成员和protected成员,但是不能继承其私有成员。

  32. 继承的概念(续) • 例如: Watch: public Clock { … };// 定义了一个Clock类型的子类Watch; • Watch *myWatch; • myWatch->Showtime(); //public, OK • myWatch->SetTime(12,00,00); //public, OK • myWatch->minute=34; // private,编译出错

  33. 解决私有数据继承问题 • 实例: class Clock { public: void setTime(…); void showTime(); private : int hour,minute,second; }; protected // 只能被继承,不能被外界访问

  34. 派生(derive)的基本概念 • 概念解释:孩子从父母那里继承了一些特性,但是孩子还有自身的区别与父母的一些特性和功能。相当于人类遗传学中的变异特性。 • 派生的OOP语言实现: • 例子见下页:

  35. 类的派生举例 class Watch : public Clock { private: int Month,Day; // 我的手表可显示月日  public: void ShowMonthDay(); void SetMonthDay(int NewMon, int NewDay); }

  36. 派生的使用例子 • 例如: Watch: public Clock { … };// 定义了一个Clock类型的子类Watch; • Watch *myWatch; • myWatch->Showtime(); // 从父类继承来的,OK • myWatch->ShowMonthDay(); // 这回 myWatch有新功能喽! • myWatch->hour=11; // 编译出错,从父类继承的// protected成员不能被外部访问,只能在自身的// 函数内部来使用;

  37. OOP编程例子 • 张三带着手表,要对表,时间为14:56:00. • OtherHumen public Humen{ public myWatch;} • OtherHumen *ZhangSan; • ZhangSan->myWatch->SetTime(14,56,00); • 习题:李四看时钟?

More Related