第一篇:程序设计总结
Strcmp的用法
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include
功能:比较字符串s1和s2。
说明:
当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇' '为止。如: “A”<“B” “a”>“A” “computer”>“compare” 特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。编辑本段应用举例 举例1:(在VC6.0中运行通过)#include char str1[20]={“i love ”}; char str2[20]={“zftd”}; printf(“%sn”,strcpy(str1,str2));} 输出的是“zftd”还是“zftdve ”? 也就是说strcpy是替换全部的str1,还是将str2复制到str1的前几个(str1占10字节,str2占5字节,输出是str2还是str2和str1的后5字节);strcpy之前,str1[]=“i love ”strcpy后, 复制过来5个字节,“zftd”和结尾的' '共5个字节.于是变成str1[]=“zftd e ”输出的时候,遇' '字符截断,于是只输出“zftd” 例2 定义一个字符串char a[20],和一个字符串c[]=“i am a teacher!”;把c复制到a中就可以这样用:strcpy(a,c);这个函数包含在头文件 程序设计教学工作总结 在一学期的教学工作中,本人能坚持党的教育方针,认真学习国家的各种法律法规,严格要求自己,努力培养自己的职业道德修养与正确的行为规范,在实际的工作岗位上尽职尽责,自始至终以认真、严谨的治学态度,勤恳、坚持不懈的精神从事教学工作。 为了上好这门课,我按照规范教学规范管理严格要求自己,深入研究教学大纲,认真钻研教材,精心设计教法,认真备写教案,精选典型试题,强化训练,力争在有限的时间,使每一堂课的教学优质高效。重视实践性教学,耐心进行辅导,认真批改和及时评讲作业。广泛涉猎各种知识,形成比较完整的知识结构,严格要求学生,尊重学生,发扬教学民主,使学生学有所得,不断提高,从而不断提高自己的教学水平和思想觉悟,并顺利完成教育教学任务。 在教学中,我采用案例教学法,将抽象的程序设计知识,以一个个实用案例的形式呈现给学生,符合学生 认知规律。学生课堂纪律较好,部分学生参与度较高;学生积极就练习过程中问题提问,学习积极性较高,课堂气氛活跃。本门课程达到教学目标,教学效果良好。 在过去的教学工作中,自己虽然取得了一些成绩,也积累了一些教学经验,但在理论与实践相结合的教学方法中还有待进一步提高。今后,我要更加努力地提高教学质量,成为真正让学生满意的教师。 1.Von Neumann提出存储程序计算机模型; 2.存储程序结构特点:以运算器为核心;采用存储程序原理(指令和数据都在存储器);存储器按地址访问的、线性编址的空间;控制流由指令产生;指令由操作码和操作数组成;数据以二进制编码表示,采用二进制运算。 3.计算机分型:VLSI/向量机/流水线/Cache/并行; 4.David Patterson提出了RISC体系结构; 5.线延迟墙:导线变细,阻力变大;导线间隔变短,导致耦合电容,从而影响频率; 频率墙:不能仅仅依靠提高处理器的主频来提高系统的性能; 存储墙:处理器性能与存储系统性能之间存在巨大的差距 I/O墙:处理器的主频与I/O总线时钟频率之间存在巨大的差距 6.程序的时间局部性(循环),程序的空间局部性(数组)7.开销性能设计必须考虑的因素:成本和价格 8.芯片制作过程:版图设计、备片、光刻成像、参杂、金属化、、钝化、切割、测试、封装 9.集成电路成本= 10.计算机系统的成本和价格 影响计算机系统成本的主要因素:时间和产量等,最直接影响是时间 11.计算机性能评测:时间; 响应时间(执行时间):从事件开始到结束之间的时间。吞吐率:在单位时间内所能完成的工作量(任务)。 用户以响应时间为标准,多道程序系统以吞吐率为标准 响应时间与性能成反比 “X比Y快”:对于给定的任务,X的响应时间比Y少,“X比Y快n倍”指: 响应时间一般定义为CPU时间 CPU时间:CPU运行某程序时的工作时间,包括用户CPU时间和系统CPU时间 12.计算机性能设计和评价的原则:大概率事件优先、Amdahl定律 13.Amdahl定律:加快某部件执行速度所获得的系统加速比,受限于该部件在系统所占的重要性。该定律可以确定系统中对性能限制最大的部件,也可以用来计算通过改进某部件所获得的系统性能的提高。 推论:如果仅对计算机一部分做性能改进,则改进越多,获得的效果越小; 如果只针对整个任务的一部分进行优化,那么所获得的加速比不小于1/(1-fe); 14.系统加速比 15.系统加速比依赖的两个因素:可改进比例、部件加速比。 fe是可改进比例,Se是部件加速比,Te是优化后的时间,S是系统加速比 16.程序执行的CPU时间为: CLK总时钟周期数 程序执行过程中所处理的指令书IC 每条指令执行所需要的时钟周期数CPI 17.时钟频率(f)反映了计算机实现技术、生产工艺和计算机组织; 指令的平均时钟周期数(CPI)反映了计算机组织(如流水线)和计算机指令集结构。程序的指令数IC:反映了计算机指令集的结构和编译技术。 第三章 程序编译的过程 18.GCC可以编译多种高级语言,包含了预处理器、编译器、汇编器、链接器等组件。 第四章 指令系统 19.指令集:指令的集合,每条指令由CPU执行 指令表示方法:二进制格式;物理存储空间组织方式位、字节、字等; x86可变字长RISC固定字长 操作由操作码表示 操作数:存储单元的地址,隐含或显示表示 存储单元:存储器、寄存器、堆栈和累加器 20.大端方式:高地址存低位;小端方式:高地址存高位 21.DLX指令集结构 特点:注重指令流水效率;简化指令的译码;32个32位通用寄存器;R0始终为0;R31保存返回地址。 寄存器寻址:ADD,R1,R2,R3 立即数寻址:ADD,R1,R2,#42 偏移寻址:ADD,R1,R2,40(R3)寄存器间接寻址:ADD,R1,R2,(R3)I类型指令: Regs[R1] ←32 Mem[30+Regs[R2]] R类型指令: J类型指令:J name ##表示拼接 下标表示选中某个域,上标表示复制某个域,Mem表示存储器中的一个数组,存储器按照字节寻址,可以传送任意字节的数据。 22.MIPS指令集 设计原则:简单有益于规整;所有算术指令都有三个操作数,操作数的顺序是固定的(目标操作数在前)23. 第一章面向对象编程原理 近五十年间,软件技术经历了多个阶段的发展演变 目前为止最流行的技术还是面向过程编程(POP) 面向过程编程采用了自顶向下的设计方案,问题被看做多个执行任务的序列。为完成这些任务,须实现一些函数。 面向过程有两大不足,即:(1)数据可在程序内自由迁移,程序内任何函数都会引起数据的更改,增加了数据的脆弱性。(2)它并不能很好地建模现实世界。 为了克服面向过程编程中的不足,人们发明了面向对象编程(OOP)。它采用自底向上的编程方案,在程序开发中,把数据视为重要元素,不允许数据在系统内自由迁移。它还将数据和函数紧密绑定于成为类的数据结构中,函数可操作类中的数据。此特性称为数据封装。 在面向对象编程中,问题被视为一系列称为对象的实体的集合。对象是类的实例; 将数据与程序的直接访问隔绝,这称为数据隐藏。 数据抽象指的是,将各种必要特性合并,而不引入背景细节。 继承是这样的一个过程,即某类的对象得到另一类对象的属性。 多态指的是,一个名称,多种形态。在程序中,我们可以借此定义多个同名函数。此特性亦可重载运算符,这样一来,同一个运算符在不同的实例下,会有不同的行为。 动态绑定指的是,给定过程的代码,直到运行期被调用时才确定。 消息传递涉及对象名,函数(消息)名以及发送的信息。 与传统的编程技术相比,面向对象技术具有诸多优势——最显著的当属重用技术。 在实时系统等几乎所有的计算机领域,面向对象编程的应用程序都已受到重视。 不少语言都支持面向对象编程,流行的语言包括C++、Smalltalk和Java。 第二章C++入门 C++是C语言的超级 C++在C语言的基础上,添加了一些面向对象的特性,诸如对象、继承、函数重载和运算符重载。这些特性加强了程序的清晰性,可扩展性,使程序容易维护。 C++可用于开发各种系统,诸如编辑器、编译器、数据库、通信系统以及其他更多复杂的实际系统。 C++支持交互式输入输出,并引入了新的注释符号//,可用于注释单句。它也支持C语言的注释风格。 和C程序一样,所有C++程序的执行入口都是main()函数,并以return()语句作为结束。头文件iostream应包含于所有使用输入输出操作的程序开头。 所有标准C++程序都要包含using namespace std指令 典型的C++程序包括四个基本部分:也就是头文件包含部分、类声明部分、成员函数部分和主程序部分 和C程序一样,C++程序可用于任何文本编辑器创建 大多数编译器提供了集成开发运行环境。流行的编译器系统有UNIX AT&T C++、Turbo C++和微软公司的Visual C++ 第三章符号、表达式和控制结构 C++有不同的符号,包括关键字、标识符、常量、字符串和操作符 标识符指的是变量名、函数名、数组名、类名等 C++中增加了void的一个用途,可用于声明通用指针 C++中枚举数据类型略有不同,枚举类型名称为新的类型名。这样我们就可以声明枚举类型的变量 在C++中,字符数组的大小应比字符串的实际长度大1 C++增加了指针常量和常量指针的概念,对于前者我们不能修改赋予它的地址值,对于后者,我们不能修改它指向的内容。 在C++的内存管理和多态实现中,指针被广泛地使用。 C++中提供了const修饰符,用于声明常量,常量也是变量,只是其值不可变更。const修饰符默认修饰整型。 C++的变量类型检查非常严格,它不允许不同类型变量之间的赋值。类型转换是打破此规的唯一办法。 C++允许我们在程序中随处声明变量,而且可以利用声明处的表达式,在运行期完成初始化。 引用变量给之前定义的变量提供了一个别名。它们都指向内存中的同一个数据对象。所以,改变其中一个的值,另一边量的值也会随之改变。 引用变量必须在声明时初始化,这建立了它和要引用的变量之间的对应关系。 作用于解析操作符(::)的主要用于类,以识别成员函数所属的类 除了malloc()、calloc()、free()函数外,C++提供了两个一元操作符,即new和delete,以更好和更方便地分配和释放内存 C++也提供了操纵器,来格式化输出数据。最常用的操纵器为endl和setw C++支持七种表达式类型。表达式中数据类型混用时,C++使用特定规则,自动地进行类型转换。 使用类型转换操作符,C++也可显示地进行变量和表达式的类型转换 和C语言一样,C++也支持三种基本的控制结构,也就是顺序结构,分支结构和循环结构,并使用各种控制语句实现它们,比如if、if…else、switch、do…while、while以及for。 第四章C++中的函数 在程序的不同处,调用函数可减少程序的大小。 在C++中,main()函数向操作系统返回一个整型值。因为函数的返回值类型默认是整型,所以main()函数中的关键字int是可选的。而如果没有返回语句,大部分C++编译器会提示一个警告。 函数原型向编译器提供了函数的细节,比如参数的数目和类型,以及返回值的类型。 C++的引用变量使我们可以传引用参数给函数。函数也可以返回引用变量。 当函数声明为内联时,编译器用相应的函数代码替换了函数调用。一般情况下,小函数才使用内联。 编译器可能会忽略函数的内联声明,如果函数声明太长或过于复杂,编译器将按常规函数编译它。 当函数声明时,C++允许我们把默认值赋给函数参数。这种情况下,我们可以无需指明所有参数,便可调用函数。默认参数总是由右到左添加。 C++中,函数的参数可声明为常量,表示函数不可更改此变量。 C++允许函数重载,也就是说,我们可以定义多个同名函数。通过检查参数数目和类型编译器会准确地匹配函数调用和函数代码。 C++支持两种新的函数类型,亦即友元函数和虚函数。 C++标准库支持很多数学库函数,使用它们可以完成许多数学计算。 第五章 类和对象 类是结构体数据类型的扩展,一个类有多个成员变量和成员函数。 默认情况下,类的成员是私有的,而结构体的成员是公用的。 只有成员函数可以访问私有数据成员和私有函数。但是类外可以访问公用成员。 在C++中,类变量称为对象。利用对象并使用点操作符,我们可以访问类的公用成员。 我们可以在类内或类外定义成员函数。成员函数和常规函数的区别在于,成员函数的头 部有一个隶属标识符,以表明所属类。 对象声明时,内存空间才会分配。每一对象的成员变量空间单独分配,而成员函数的空间则统一分配。 类的一个成员变量可声明为静态成员,一般用于维护整个类的通用值。 静态成员变量必须定义于类外。 静态成员函数可访问声明在同类的静态成员,调用静态成员函数时需要用到类名。 C++允许我们使用对象数组。 对象可用作函数自变量。 友元函数不在友元声明类的作用域类,它可以访问累的所有私有数据。 函数可以返回对象。 如果成员函数不改变类内的任何数据,我们可以将其声明为常量成员函数,只要在函数原型中加上关键词const(声明和定义都要加)。 我们也可以在函数内定义和使用类。这种类称为局部类。 第六章构造函数和析构函数 C++提供了一种称为构造函数的特殊成员函数,它能帮助对象在创建时完成初始化。这一过程被称为对象的自动初始化。 构造函数名和类名一致。 构造函数通常用来初始化变量,以及分配内存。 和常规函数一样,构造函数也可以被重载。 当对象同时被创建和初始化时,复制构造函数被调用。 我们可以声明一个常量对象,其数据值不能改变。 C++还提供另一种成员函数,称为析构函数。当对象不再需要时,会调用这种函数来销毁对象。 第七章运算符重载和类型转换 运算符重载是C++的重要特性之一。又被称为编译时多态性。 使用重载特性,我们可以对两个用户自定义数据类型,比如说对象,执行相加的操作,使用的语法就和基本数据类型一样。 我们可以重载几乎所有C++的运算符,下面几个是例外: 类成员访问符(.,.*)。 作用域解析符(::)。 大小运算符(sizeof)。 条件运算符(?:)。 运算符重载是通过一种称为运算符函数的特殊函数完成的,该函数定义了运算符的特定任务。 运算符重载时有一些限制。运算符函数必须是非静态的成员函数或者友元函数。重载的运算符必须有至少一个用户自定义类型的操作数。 编译器不支持用户自定义数据类型的自动类型转换,我们可以使用自定义的转换运算符函数,以实现自定义数据类型的自动类型转换。 转换运算符函数应符合下列条件: 必须是类成员。 必须不指定返回值。 必须没有参数。 第八章继承:类的扩展 从旧类派生一个新类的机制被称为继承。继承提供了可重用性的概念。通过继承,C++的类可以被重用。 派生类继承了基类的一部分或所有特性。 只有一个基类的派生类被称为单继承。 可从多个类继承,这被称为多继承。 可从另一派生类继承类,这被称为多级继承。 当某类的属性被多于一个类继承时,这被称为层次继承。 不管是在公用模式还是私有模式,类的私有成员都不可被继承。 以公用模式继承的保护成员仍为派生类的保护成员,而以私有模式继承的保护成员,则变成派生类的私有成员。 友元函数和友元类的成员函数可直接访问私有和保护数据。 派生类的成员函数只能直接访问保护和公用数据。不过他们可通过基类的成员函数访问私有数据。 多路继承可能引起祖父基类的继承成员的重复。通过将共同的基类设为虚基类,我们可以避免祖父基类成员的重复。 在多继承中,基类的创建次序与他们在派生类中的声明次序一致。 类可包含其他类的对象。这被称为包含关系或嵌套。 班级:电气2013-1 学号:20***9 VFP程序设计 ——课设总结 为期几周的VFP数据库设计的课设就快过去了,在这做课设的这段时间,可以说是有苦有甜,令人难忘。因此,有必要写一篇总结,记录一下自己做课设的历程。 刚刚接到老师的课设要求的时候有点傻眼了,得优秀的要求是系统完善、写一篇系统总结、回答老师对于代码方面的提问。第一点似乎都还算能做到,但是对于我们这种连SQL语言的皮毛都没学,对于数据库的系统结构完全不了解的人,怎么能把三点要求都完成。 但是经过一段时间的摸索,我渐渐对vf的数据库系统有了大体的了解知道了什么是项目,数据库就是数据表的集合,搞清了基本表单的制作过程,知道如何用快速报表和报表向导做格式的报表,以及对报表的美化、求和、计算等处理,还有就是如何去制作菜单,以及用菜单调用各种数据文件,最后的主程序是直接复制老师的代码,但是凭着一点点C++和C语言基础,能够看懂代码的意思,这有助于我后期对整个系统进行查错和修改。下面就讲一下我对自己做的系统的总结。 1数据表(.dbf):数据表是整个系统的“原材料”,后期所有的制作处理,都是为了去处理和显示这些数据,去用这些数据,当然也可以说数据表依靠后期的表单等等呈现给用户。 2数据库(.dbc):数据库以我看来就是数据表的集合,可以将无联系的自由表集合到一个容器里,使他们可以产生联系。并且将这些表作为后面其他东西的数据环境。 3表单(.scx):表单就是最后呈现给用户的人机交互界面,并且带有一定的功能。表单的制作首先需要要给他设置数据环境,因为其上面的各种控件都是以数据环境里面的数据实现控件的意义。各种控件比如标签就是用来显示表单上需要显示的一些文字提示,文本框就是用来显示文本内容,组合框可以下拉显示一连串的内容,表格控件可以显示表格数据,可以用生成器做出自定义的表格,按钮控件可以通过某个过程比如单击执行用户需要的事件代码等等。最后表单生成以后,作为整个系统的优良的用户与系统的交互平台。 4菜单(.mnx):菜单就是整个系统调用文件的工具,通过点击菜单,可以调用任意用户想要调用的文件比如表单,数据表,程序等等。 5程序(.prg)程序就是一段代码,生成文件以后可以由其他文件调用并执行,如主程序就是在系统运行时的入口,当然得先设置好主文件;quit程序可以实现系统的退出。 除了以上几个以外,还有工具栏、自定义类等等在系统中都起着重要的作用,最后讲一下设置背景音乐所用的方法,用set bell to的方式定位到文件,用?chr(7)就能对WAV格式的音乐进行播放。 致谢: 整个课设过程收获很多,不仅仅是了解了利用Visual fox 制作系统的方法,而且还增进了同学们之间的友谊。在这里感谢同学们的互相学习以及交流分享,还有老师孜孜不倦的引导,总之,感谢老师,感谢同学,感谢大家! XXX第二篇:程序设计教学总结
第三篇:程序设计期中考总结[定稿]
第四篇:C++程序设计总结
第五篇:VFP程序设计总结