书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型一级实践讲座模板课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3021109
  • 上传时间:2022-06-23
  • 格式:PPTX
  • 页数:40
  • 大小:335.06KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《一级实践讲座模板课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    一级 实践 讲座 模板 课件
    资源描述:

    1、一级实践讲座(1)1谢谢观赏2019-6-9主要内容 关于一级实践的一些说明 C+知识点串讲 精彩代码欣赏将时髦的技术挂在嘴边,不如把过时的技术记在心里2谢谢观赏2019-6-9关于一级实践的一些说明 主要目的 涉及到的知识点 实施的过程 练好编程能力的因素 C+ is more important than other languages?3谢谢观赏2019-6-9软件工程的理解 软件的工程 來自加拿大安大略的McMaster大學,由大衛柏那斯(David Parnas at McMaster University in Ontario, Canada)提出。以柏氏的觀點,軟體工程師是一種工

    2、程師,但受過軟體開發的特別訓練。這類的軟體工程師在學校裡的培養就該包括化學、工程數學、材料科學、電學、電子學等傳統上工程學院的共同必修科目。當然,他們也要修傳統上資訊科學的重要課程。 工程化的软件 來自美國的Rochester技術學院(Rochester Institute of Technology,簡稱RIT),與ACM和IEEE電腦團體共同發展出來,它強調軟體工程師的教育和訓練目標是培養懂得運用工程方法來開發軟體的人才。這種定義下的軟體工程師在學校裡必須修數學、軟體結構與組織、軟體需求、程式設計、人因工程等課程, RIT的定义听起来更像信息科学或管理4谢谢观赏2019-6-9软件工程师的

    3、阶层化5谢谢观赏2019-6-9软件工程师的专门化6谢谢观赏2019-6-9软件开发人员的性格指标 麦布二氏行為类型量表,简称MBTI(Meyers-Briggs Type Indicator),按照四种指标,将人分成四类: 外向(Extroversion,)或內向(Introversion,) 外向的人天生比較喜歡走向人群和外界的事物,而內向的人比較喜歡待自己的世界裡,擁有自己的想法。 感知(Sensing,)或直覺(Intuition,) 這項指標是看這個人喜歡接受決策性資料的程度。感知傾向的人較專注在已知的事實、確定的資料和經驗。而直覺傾向的人較喜歡追求不確定的事物,較專注於概念或理論。

    4、 思考(Thing,)或感受(Feeling,) 這項指標是指這個人的決策風格。思考型的人根據客觀的分析和邏輯做出他的決策,而情感型的人則依主觀情緒來做決策。 觀察(Perceiving,)或判斷(Judging,) 觀察型的人喜歡彈性和未知的各種可能性,而判斷型的人則喜歡一切有秩序,一切能控制。 软件开发人员平均性格比例最高的是ISTJ型7谢谢观赏2019-6-9开发人员的年龄8谢谢观赏2019-6-9软件开发需要的职业品质 在軟體設計期間,是建築師; 在設計使用者介面時,是藝術家; 在建構程式時,是手藝精巧的工匠; 而在測試時,是個不折不扣的混蛋!9谢谢观赏2019-6-9软件开发是工程而

    5、不是科学 通常計算機科學的畢業生都需要幾年的在職訓練,才能累積足夠的實務知識,獨立地做出真正實用又讓大家滿意的軟體產品。 而正規教育不夠的軟體開發人員,可能連怎麼在職業生涯裡培養自己都不知道。10谢谢观赏2019-6-9淘金热后建立真正的软件工业 在淘金熱裡,您可能對程式碼輕率隨便,或是技術並不很強,但夠幸運,所以還是找到了黃金。 在淘金熱後,您必須以更嚴謹的態度工作、把技術紮實地培養起來,這只是為了繼續存活。 管理學上的流行術語也許會告訴您,曾經實地參與過淘金熱就是一生難得的訓練了,但是發揮冒險精神和使用有效的軟體開發方法並不衝突11谢谢观赏2019-6-9常见的技术 硬件技术 平台技术 应

    6、用程序框架 模式12谢谢观赏2019-6-9一级实践的定位 程序规范 平台及应用框架层 数据结构 典型算法 操作系统 Windows 编程 UNIX/LINUX 编程 多线程及网络编程 驱动程序 编译原理 C+语言 J2EE/.net C 语言 13谢谢观赏2019-6-9相关的课程 先修课程: 数据结构;编译原理;操作系统; 补修课程: C;WINDOWS编程;UNIX/LINUX编程;C+及其标准库 训练课程: 程序设计规范;Socket编程;多进程(线程)编程;典型算法 提高课程: 驱动程序设计;J2EE平台;.NET平台 14谢谢观赏2019-6-9主要内容及时间安排 C+及其内存使用

    7、方式,含复习C语言(4周) C+实现常见数据结构,异质链表、异质树,模拟超市动作过程的仿真程序(2周) C+实现C语言的编译器(4周) Windows或LINUX/UNIX编程知识(2周) socket编程(2周) 综合设计,实现一个基于多线程服务器的C/S结构的聊天系统。15谢谢观赏2019-6-9课程实施形式 专题讲座(每个专题3学时,共810个专题,根据学生具体情况增加或减少) 实践。同学根据自己情况自行安排,每周不少于10小时,并完成一定量的源代码编写工作。对指定的练习项目小组长协调小组成员共同完成。 讨论。每5-7人分为1小组,每小组每两周讨论2小时,提交最近两周的源代码作业。讨论时

    8、主要解决小组各成员实践过程中碰到的难题,检查最近两周的练习进度,并布置下两周的练习内容。16谢谢观赏2019-6-9考核 平时占40%,其中考勤15%,作业25%。 期末笔试占60%。17谢谢观赏2019-6-9C+知识点串讲 基础知识18谢谢观赏2019-6-9基础知识 从源代码到可执行文件 编译 从可执行文件到进程 载入 进程的运行过程 堆和栈的变化19谢谢观赏2019-6-9从源代码到可执行文件 C+源代码的组织结构 声明(.h)、定义(.cpp) 一个编译单元translation unit是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.

    9、cpp文件里。 每个编译单元被编译器编译为一个.obj文件,格式为PEPortable Executable,即windows可执行文件 。 多个.obj文件由连接器(linker)进行连接成为一个.exe文件。 要能运行需要有一个main函数,而有必须有每个声明的定义20谢谢观赏2019-6-9可执行文件的结构 Block Started by Symbol21谢谢观赏2019-6-9Windows的进程 代码区 静态数据区(已编译好) 动态数据区(堆和栈)22谢谢观赏2019-6-9windows进程的结构低端内存区域 动态数据区 代码区 静态数据区 高端内存区域 23谢谢观赏2019-6

    10、-9变量存储区举例#include /例子zonesint g1=0, g2=0; int main() static int s1=0, s2=0; int v1=0, v2=0; printf(0 x%08xn,&v1); /打印各本地变量的内存地址 printf(0 x%08xn,&v2); printf(0 x%08xn,&g1); /打印各全局变量的内存地址 printf(0 x%08xn,&g2); printf(0 x%08xn,&s1); /打印各静态变量的内存地址 printf(0 x%08xn,&s2); return 0; 24谢谢观赏2019-6-9堆和栈 堆(动态申请

    11、) 当进程初始化时,系统会自动为进程创建一个默认堆,这个堆默认所占内存的大小为1M。 堆对象由系统进行管理,它在内存中以链式结构存在。 堆栈 有一组CPU指令可以实现对进程内存的堆栈式访问。 其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。25谢谢观赏2019-6-9函数调用过程中堆栈的作用 不同的语言有不同的函数调用规定,这些因素有参数的压入规则和堆栈的平衡。 windows API的调用规则_stdcall前缀。 参数从左到右入栈; 栈由被调用者恢复; ANSI C的函数调用规则_cdecl前缀 参数

    12、从右到左入栈; 栈由调用者恢复;26谢谢观赏2019-6-9举例 printf(“There are %d dogs and %d cats.n”,m,n); “_stdcall”函数函数执行时的栈顶(ESP)、低端内存区域 parameter 1 parameter 2 parameter 3 栈底(基地址 EBP)、高端内存区域 27谢谢观赏2019-6-9指针与数组 数组名相当于一个不可改变的指针#include /例子pointervoid f(int n)int i = sizeof(n);n+;cout The size of n is: sizeof(n) endl;int ma

    13、in(int argc, char* argv)int m5=1,3,5,6,7;int *p = m;int *q=NULL;int *qq;+p;f(p);cout m is:p0endl;cout The address of q is:&qendl;cout The content of q is:(long)qendl;/cout The value of q is:*qendl;cout The address of qq is:&qqendl;return 0;28谢谢观赏2019-6-9引用 引用相当于别名,在声明引用时变量名前加& int i, j; int &ri=i; 引

    14、用变量在声明时一定要赋初值,这是因为引用的本质并不是引入一个新的变量,而是给已经存在的变量起一个别的名字。这也正是C+中,一个内存对象可以有多个名字的原因。 引用一旦声明,就不能用它再引用别的变量。 对引用的访问就是对它所引用的对象的访问。29谢谢观赏2019-6-9传值与传址 int* fn(int n); int* fn(int &n);30谢谢观赏2019-6-9字符串常量举例#include “stdafx.h“/例子string#include char *aa = abcde;void fn()char *cc=acbcde;int n=2;coutcc is:(long)ccen

    15、dl;coutn is:(long)&nendl;int main(int argc, char* argv)char *bb=abcde;coutThe global addr is:(long)aaendl;coutThe locale addr is:(long)bbendl;fn();return 0;31谢谢观赏2019-6-9malloc/free与new/delete的异同 malloc/free是C+/C语言的标准库函数,new/delete是C+的运算符。它们都可用于申请动态内存和释放内存。 使用new较之使用malloc()有以下的几个优点: (1)new自动计算要分配类型

    16、的大小,不使用sizeof运算符,比较省事,可以避免错误。 (2)自动地返回正确的指针类型,不用进行强制指针类型转换。 (3)可以用new对分配的对象进行初始化。32谢谢观赏2019-6-9C+类封装的实现 C+的面向对象特性是通过编译器实现的,因此学习C+需要学习一些它的编译原理,所以说C+是一种“难学易用”的语言 C+的访问控制(private,protected,public)是有编译时完成权限检查的。 编译完成后 静态成员存储到静态数据区 其他数据成员存储在对象所在的动态数据区 成员函数存储在代码区。编译器将对象的指针this作为成员函数的第一个参数。33谢谢观赏2019-6-9举例(

    17、class)#include #include using namespace std;class Apublic: A() n=5; void add() cout The add of n is: &n endl; cout The add of m is: &m endl; private: static int m; int n;int A:m = 15;int main(int argc, char *argv) A a; a.add(); system(PAUSE); return 0;34谢谢观赏2019-6-9构造函数的调用顺序 示意性定义为: class A ; class

    18、B ; class C ; class D:public B,public A ; class E:public C ; class F:public D,public E ; 构造函数的调用次序为:A、B、D、C、E、FFFDEDABABECC35谢谢观赏2019-6-9this指针 指向本对象开始的指针; 如果没有多继承,则this指针可以视为32位指针 因为多继承的存在,this指针所指的最顶层父对象可能不惟一,所以有时可能需要附加偏移量。因此大小不一定为32位。 例子this演示36谢谢观赏2019-6-9继承 C+的派生类对象实际上是一个基类对象和一个派生类对象的组合。 虚拟继承是为了解决多继承中父父类对象的二义性问题。37谢谢观赏2019-6-9多态性 多态性和泛型算法是C+的核心 多态性实际上就体现在虚函数上。 虚函数采用动态(滞后)联编的方式。 vptr,vtbl(见例子) vptr属于对象 vtbl属于类38谢谢观赏2019-6-9代码分析 问题在哪里?(node代码)39谢谢观赏2019-6-940谢谢观赏2019-6-9

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:一级实践讲座模板课件.pptx
    链接地址:https://www.163wenku.com/p-3021109.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库