1、一、名词解释:可视化用直观的图形代替文字;用直观的图形、曲线、表格等代替数据;动态地显示数据;动态地显示模型、图样、参数等的变化。即用模拟量代替数字量,用形象代替抽象,用动态代替静态。数据库就是与应用程序彼此相互独立的,以一定的组织方式存储在一起的,彼此相互联系的,具有较少冗余的能够为多个用户共享的数据的集合。文件文件就是数据在存储介质上的存在形式。这里的数据是广义的,包括数值、字符、程序代码、机器指令、声音信号、图像编码等。因此有数据文件、文本文件、源程序文件、可执行文件、声音文件、图形文件等。总之文件是信息向磁盘、U 盘、光盘等介质上存储时,采用的一种组织方式。函数重载是指具有相似功能的不
2、同函数使用同一函数名,但这些同名函数的参数类型、参数个数、返回值类型、函数功能可以不同,即同一个函数名多用。继承是指在已有类的基础上新增自己的特性而产生新类的过程。二、判断题:1) 伪代码是介于自然语言与计算机语言之间的将文字和符号结合起来描述算法的工具。2) 标识符以字母开头的,包含字母,数字和下划线的字符串。为了避免混淆,标识符中当然不能包含“+” 、 “”等运算符和“, ”、 “;”等分隔符,目前也不能包含汉字,关键字也不能作为标示符。-在标识符内,前缀之后就是一个或者多个第一个字母大写的单词。这些单词清楚地指出了源代码内那个对象的用途。3) 数据流是沿箭头指向传送数据的通道,它们大多是
3、在加工之间传输被加工数据的命名通道。4) 结构化程序设计要求只使用顺序、选择、循环三种基本控制结构来编写程序。程序应该只有一个入口和一个出口,禁止使用 goto 语句。具体原则有:1划分模块(函数)时,尽量做到高内聚、低藕合,保持模块相对独立性。2结构的深度、宽度、扇入及扇出应适当。3在考虑模块独立性的同时,为了提高可读性,模块的大小最好控制在50 条语句左右,以便于阅读与研究。4模块的接口要简单、清晰及含义明确,便于理解,易于实现、测试与维护。5尽量避免使用 goto 语句。三、小题:1) 数据是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或者自动化的装置进行通信,翻译转换或者进行
4、加工处理。2) 数据处理是指对数据进行查找、插入、删除、合并、排序、统计以及简单计算等的操作过程。3) 简单变量一般可分为字符型、整型、无符号整型、长整型、浮点型及双精度型等变量。4) 算法的基本特征 1有穷性 2确定性 3有效性 4有零个或多个输入 5有一个或多个输出。5) 算法的设计要求 1正确性 2可读性 3健壮性 4算法的时间和空间性能6) 算法的评价,一个可执行的算法不一定是最好的算法。评价一个算法的优劣,主要看执行时所需要占用的计算机空间的大小和计算过程需要花费的计算机 CPU 时间的多少。一个算法的评价主要从时间复杂度和空间复杂度来考虑。7) 软件危机有广义和狭义之分。广义的软件
5、危机时指从宏观和社会发展的角度看,软件开发存在的问题;狭义的软件危机是泛指在计算计软件的开发和维护过程中所遇到的一系列严重问题。8) 软件危机产生的原因:宏观方面是由于软件日益深入社会生活的各个层面,软件需求的增长的速度大大超过了技术进步带来的软件生产率的提高。而就每一项具体的工程任务来看,许多困难来源于软件工程所面临的任务和其他工程的任务之间的差异以及软件和其他工业产品的不同。9) 信息输入的方式:1键盘直接输入方式 2菜单输入方式 3鼠标直接输入方式 4批量信息输入方式 5专用控件输入方式 6对话框输入方式。10) 软件开发过程模型主要有两类:瀑布模型和渐增模型。11) 软件工程三个要素:
6、方法、工具和过程。12) 程序注释:-在阅读程序时,往往会看到/ */或/之类的文字,这些便是程序的注释部分,程序注释部分也是程序的重要组成部分,看过微软的源程序代码后,给人留下深刻印象的是其超过一半篇幅的程序注释。程序注释对于从逻辑上验证程序、检查程序、修改程序是非常重要的。-注释一般分为:序言性注释- 至于每个模块的起始部分;功能性注释-嵌入在源程序的内部。-一般使用规则如下:1注释只是对代码的“提示” ,而不是文档,注释花样不宜太多。2如果代码本身就是清楚的,则不需要注释。3边写代码,边注释,修改代码同时修改相应注释,以保证二者的统一性。4注释应当准确易懂,防止二义性。5尽量避免在注视中
7、使用缩写。6注释的位置应与被描述的代码相邻,序言性注释放在程序的上方,功能性注释放在程序的右方。13) 程序的可读性就是人们能够看懂程序的难易程度。-提高程序可读性的方法:1运用匈牙利命名法,采用具有含义的英文单词作为变量或函数名称。2尽量添加程序注释,尤其是函数功能、用法、参数和返回值的说明。3采用缩进格式书写程序,必要时添加一些空行。4采用通用的、简洁的算法编制程序,尽量避免采用指针。5采用结构程序设计方法,每个函数的规模以 30 行以下为宜。最多不超过 50 行。14) 匈牙利命名法的判断前缀 数据类型 示例a array 数组 aPointb boolean 布尔型 bIsBigc c
8、har 字符型 cTypestr string 字符串 strNamei int 整型 iNumberf float 浮点型 fVolumed double 双精度型 dWidthif inputfile 输入文件流 ifFileof outputfile 输出文件流 ofFileS Structure 结构体 SDataC Class 类 CTestViewm_ member 成员变量 m_EDIT1p pointer 指针 pToGet13)占字节节数 字符型 1 整型 2 无符号整型 2 长整型 4 浮点型 4 双精度型 814)软件文档的作用:软件文档其实就是软件开发过程各个阶段的详细
9、记录。其中既有规划、设计的内容,又有实施情况的记录。在团队开发的过程中,软件文档起着设计任务书、设计蓝图、编程和修改记录、开发档案等作用。对于团队成员之间的分工合作起着一种桥梁和纽带作用。15)需求分析:是软件开发的第一个阶段。该阶段是对可行性论证与开发计划中制定出的系统目标和功能进行进一步详细论证的阶段;是对系统环境,包括用户需求、硬件需求、软件需求进行更深入的分析,对开发计划进一步细化的阶段。16)概要设计说明书中应包含:1要求说明的主要部分(软件文档之间允许适当重复,各有侧重) 。2有关基础硬件、支撑软件、开放平台、技术路线、接口标准的选择。3软件框图(控制流程图、数据流程图) 。4软件
10、的模块设计要求(各模块的功能、参数、接口) 。17)软件的详细设计相当于机械设计的部分设计。详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。18)详细设计说明书中应包含:1概要设计的主要部分(适当重复) 。2有关函数的流程(函数内部的实现) 。3数据结构设计(数据字典) 。4软件的界面设计。19)程序流程,N-S 图中,为了表示五种基本控制结构,规定了五种图形构件:顺序型、选择型、WHILE 重复型、UNTIL 重复型和多分支选择型。20)结构程序设计师从系统的功能入手,按照工程的标准和严格规范将系统分成若干功能模块,系统是实现模块功能的函数和过程的集合体。因此,结构化程序设计也是
11、面向过程或函数的设计。结构化程序设计的主要思想是功能分解并逐步求精。21)面向对象程序设计的特性:1封装性 2继承性 3多态性22)面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体,从数据入手,以数据而不以功能为中心来描述系统,把编程问题视为一个数据集合。23)面向对象的特点 1客观世界是由各种对象(Object)组成的,任何事物都是对象,复杂的对象是由简单的对象组成的。面向对象软件系统由对象组成。2把所有的对象都归为各种类(Class) ,每个类都定义了一组数据和方法。数据表示对象的静态属性,描述对象的状态信息。方法,是对象所能执行的操作,也就
12、是类中所提供的服务。3按照父类和子类的关系,可以把若干类组成一个层次结构的系统。在这个层次结构中,通常派生类具有一些和上层基类相同的特性,这一特性称为继承(Inheritance)。4对象之间的通信是通过传递消息实现的(Communication with Message ) 。24)结构体是将不同数据类型的数据放在一起而产生的新数据类型。25)结构体变量引用结构体成员并为其赋值。26)类:一般来说是具有相似特征事物的一个集合。27)类与对象的抽象,对象是类的具体事例。28) (类)继承了结构体的基本数据结构,同时又增加了成员函数等新的元素。而类与对象的关系又如同结构体与结构体变量的关系一样。
13、31)派生:指出在已有类的基础上新增自己的特性而产生新类的过程。32)基类与派生类的关系基类 公有派生类 私有派生类Public 成员 public 成员 private 成员Protect 成员 protect 成员 private 成员Private 成员 无法继承 无法继承33)虚拟函数采用动态联编技术实现面向对象程序设计的多态性接口重要。34)测试 有效的测试能发现软件中的隐藏错误35)测试方法:1黑盒测试 2白盒测试36)程序框架说明 (1)MFC AppWizard 自动生成了四类(单文档)或五个类(多文档)1CMainFrame:主框架窗口类,负责主窗口的创建、显示和搜索用户命令
14、以及消息派发。2CChildFrame:子框架窗口类,负责子窗口的创建、接受主框架发来的用户命令以及消息派发。单文档时无此类。3CTestApp:应用程序类,负责程序的初始化,是把主框架类、文档子框架类、文档类、视图类及其对象集成为有机整体的过程,是 Windows 应用程序主函数 winMian()运行实现整体程序执行的切入点与终结者。4CTtestDoc:文档类,负责应用程序文档的装载和维护,文档是应用程序需要保存的任何内容。5CTtestView :视图类,负责为文档提供一个或几个试图,试图的作用是为显示和修改文档提供人机界面。37)创建对话框资源:打开“test”工程,在资源视图“Re
15、source View ”中选“Dialog” ,单击鼠标右键在下拉菜单中选“Insert Dialog”就创建了对话框资源。或执行菜单栏的“Insert”“Resource”命令,在弹出的“Insert Resource”对话框中选择“Dialog”项,单击“New ”按钮,也能创建对话框资源。38)控制工具栏: Aa静态标签 ab编辑控件39)创建对话框类及连接:双击所建对话框任何区域弹出“Add a class”对话框,选择“Create a new class”,单击“OK”按钮,则会出现“New class”对话框。再给对话框“Name”后的编辑框中填写类名 yuan ,单击“OK”
16、按钮,就创建了一个对话框类。40)工程软件界面设计的一般性原则:1一致性原则 2便捷性原则 3简约性原则 4反馈性原则。41)-VC 读写数据库的方式:1ODBC 方式(开放数据库连接) ,MFC 对 ODBC 的API 函数进行了封装,可简化程序。2DAO 方式(数据访问对象)MFC 对 DAO 进行了封装。3ADO 方式(ActiveX 数据对象)ADO 技术是基于 OLEDB 的访问接口,属于数据库访问的高层接口,该技术封装了 OLE DB 的接口,定义了 ADO 对象,简化了数据库应用程序的开发。1用 DOBC 方式访问数据库:优点:所生类当中能够自动生成一系列与数据库字段对应的变量名
17、(将来还可以改) ,能适应 Microsoft Office Access 2003 版的数据库。 缺点:每次运行都要再选一次数据库,不能用在反复读取数据库的场合。如果注册数据库的话也只能在注册了的计算机上使用,可移植性太差。2用 DAO 方式访问数据库,优点:所生成的类当中能够自动生成一系列与数据库字段对象的变量名(将来还可以用) ,不需要在运行时再选一次数据库。 缺点:只支持Access97 建立的数据库,不能适应 Microsoft Office Access 2003 版的数据库。对于由Access97 格式的数据库文件能接受,但不能产生与字段对应的变量。3用 ADO 方式访问数据库
18、优点:不需要在运行时再选一次数据库,能适应 Microsoft Office Access2003 版的数据库, 缺点:程序比较复杂,适合于编成一个函数使用。四、编程题:1、一重循环:经典的求和问题:1+2+100=?解:设置一个双精度累加器 Sum 并置 0,一个整型循环变量 Time,利用一重循环即可。double Sum=0;/累加器置 0int Time;/循环变量int Num=100;/终点数据,100 可修改char TempStr400;/输出用字符数组for(Time=0;Time求阶乘: 1*2*5=?解:类似于求和,但有一些微妙的不同,首先累乘单元 Multiple 不能
19、置 0 而要置 1,其次循环要从 1 开始而不能从 0 开始。double Multiple=1;/累乘器置 1int Time;int Num=5;/终点数据,5 可修改,不要超过 170,否则会出现异常char TempStr400;for(Time=1;Time向量旋转的矩阵乘法:void TurnVector(double Vector33)double Sum; double Temp3;int ii,jj;for(ii=0;ii九九乘法表:int ii,jj;行列循环变量char temp100,multi1000 ; /存放临时结果、最终结果用的一维字符数组multi0=0;/最终结果一维字符数组 “置零”for(ii=1;ii=9 ;ii+)/ 行循环(外层循环)for(jj=1;jj=ii;jj+)/列循环(内层循环)if(jj=ii)sprintf(temp, “%2d*%2d=%2dn”,jj,ii,ii*jj);/一句口诀(换行)else sprintf(temp, “%2d*%2d=%2d”,jj,ii,ii*jj )/一句口诀(不换行)strcat(multi,temp);/把每句口诀添加入最终结果字符数组AfxMessageBox(multi);/调用消息框函数显示最终结果字符组的内容exit(0);