【自考复习资料】07169软件开发工具和环境(考前必看重点)_第1页
【自考复习资料】07169软件开发工具和环境(考前必看重点)_第2页
【自考复习资料】07169软件开发工具和环境(考前必看重点)_第3页
【自考复习资料】07169软件开发工具和环境(考前必看重点)_第4页
【自考复习资料】07169软件开发工具和环境(考前必看重点)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件开发工具与环境》复习题第1章填空题VisualStudio.NET中的Visual在中文中是可视化的意思。VisualStudio2008是一个完整的开发环境,被称为集成开发环境(或IntegratedDevelopmentEnvironment,IDE)。VisualStudio.NET支持的开发语言有C#.NET、VB.NET、C++.NET、J#.NET。(至少写出三种)。Windows窗体应用程序项目创建标准的Windows应用程序。每个对象都有一组独特的特性称为属性。VisualStudio2008IDE中的“属性”窗口用于修改窗体或控件的属性。通过设置图片框PictureBox的Image属性来显示图像。按钮控件的默认事件是Click事件。名词解释可发布的组件——项目最后编译的应用程序版本,它可以发布给其他人和其他计算机,只要有运行环境不需要开发环境就可以运行。项目——可以编译以创建可发布组件的文件集合。项目有类型有多种,复杂的应用程序可能包含很多项目。解决方案——用于生成应用程序或可发布组件的项目与文件的集合。编程题下面的应用程序在单击“Select”按钮btnSelect之后,弹出一个打开文件对话框ofdSelectPicture,用户选中一个图片文件并打开后,在图文框picShowPicture中显示选中的文件;用户单击Quit按钮btnQuit之后退出应用程序。如图1-1所示。请在横线上填上适当语句,将程序补充完整。图1-1PictureViewer程序界面usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespacePicture_Viewer{publicpartialclassfrmViewer:Form{publicfrmViewer(){InitializeComponent();}privatevoidbtnSelectPicture_Click(objectsender,EventArgse){if(ofdSelectPicture.ShowDialog()==DialogResult.OK){picShowPicture.Image=Image.FromFile(ofdSelectPicture.FileName);this.Text=string.Concat("PictureViewer("+ofdSelectPicture.FileName+")");}}privatevoidbtnQuit_Click(objectsender,EventArgse){this.Close();}}}第2章VisualC#2008导航填空题VisualStudio2008的设计窗口、属性窗口、工具箱、解决方案资源管理器等窗口都有4种主要状态:关闭,浮动、停靠和自动隐藏。要使得将鼠标指向其选项卡时停靠的设计窗口显示而移开鼠标时消失,应将窗口设置为自动隐藏状态。VisualStudio2008的工具箱窗口列出了常见的Windows控件,可以通过将其中的控件拖放到设计窗口的方式设计用户界面。在解决方案资源管理器窗口中,可以选择项目以设置其属性。动态帮助可以根据您当前执行的操作调整显示的帮助信息。在设计环境中访问帮助,可按F1键。设置窗体的背景色应该使用Form类的BackColor属性。用C#程序MessageBox.Show(“Texttodisplaygoeshere.”);可以弹出如图2-1所示的消息框。图2-1消息框名词解释类模块——一种特殊的模块,让用户能够创建面向对象的应用程序。窗体模块——窗体是构成应用程序界面的可视化窗口,窗体模块是一种可用于设计窗口的类模块。用户控件——用户自定义的用于在窗体上设计用户界面的控件。第3章理解对象和集合填空题定义对象状态的特征称为属性;有些属性只能读取不能修改,称为只读属性;有些属性只能修改不能读取,称为只写属性。类中的函数称为方法;方法是对象是可以执行的行为。用类创建一个对象也称为类的实例化。为帮助程序员编程,VisualStudio2008显示一个包含已输入对象的所有属性和方法的下拉列表,这种功能称为智能感知(IntelliSense)。this是是一个保留字,表示该保留字所在类的当前对象。一组相似的对象称为集合。使用对象浏览器可以查看对象的成员。判断题VisualC#.NET是真正面向对象的编程语言。(T)对象的属性可以是另一个对象。(T)名词解释对象——对象是将数据和功能封装为一体的编程结构,公开访问它的唯一方法是通过该编程结构的接口即属性、方法和事件。集合——集合就是对象的集合,集合使得对大量相似对象的操作变得简单,即可以对集合中的元素进行迭代处理。封装——封装就是将函数或类的接口与实现分离,使和函数或类的调用者只需关心接口的原型,无需关心接口的实现。这样客户程序便不依赖于接口实现的变更。编程题下面的应用程序单击“^”按钮btnShrink则将窗体的长度和高度都减少20像素,单击“v”按钮btnEnlarge则将窗体的长度和高度都增加20像素,单击“DrawBorder”按已经钮则组图文框picShowPicture绘制一个蓝色边框。如图2-1所示。请在横线上填上适当语句,将程序补充完整。图3-1PictureViewer程序界面usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespacePicture_Viewer{publicpartialclassfrmViewer:Form{publicfrmViewer(){InitializeComponent();}………………privatevoidbtnEnlarge_Click(objectsender,EventArgse){this.Width=this.Width+20;this.Height=this.Height+20;}privatevoidbtnShrink_Click(objectsender,EventArgse){this.Width=this.Width-20;this.Height=this.Height-20;}privatevoidbtnDrawBorder_Click(objectsender,EventArgse){GraphicsobjGraphics=this.CreateGraphics();objGraphics.Clear(SystemColors.Control);objGraphics.DrawRectangle(Pens.Blue,picShowPicture.Left-1,picShowPicture.Top-1,picShowPicture.Width+1,picShowPicture.Height+1);objGraphics.Dispose();}}}下面的程序依次遍历窗体中所有控件并且显示其名称。请在横线上填上适当语句,将程序补充完整。privatevoidbtnShowNames_Click(objectsender,EventArgse){for(intintIndex=0;intIndex<this.Controls.Count;intIndex++){MessageBox.Show("Control#"+intIndex.ToString()+"hasthename"+this.Controls[intIndex].Name);}}第4章理解事件填空题在事件处理程序中编写代码,使得该事件不断被触发,此时便产生了递归调用。所有的事件处理程序一般都有两个参数,其中一个为触发事件的对象的引用,其类型为object,名称为sender,另一个为事件参数,其类型为EventArgs或其子类,名称为e;事件处理程序的返回值一般为void。在TextBox中每输入一个字符或改变TextBox中的文本都会触发TextChanged事件。如果Timer控件的Enabled属性为true,则每隔Interval属性指定的时间间隔(单位为毫秒)触发Tick事件。判断题所有对象都支持同一组事件。(F)名词解释事件处理程序——事件处理程序是一种特殊的方法,对象使用它来告知一些对客户有用的状态变更,事件处理程序的调用比较特珠,通常通过用户与窗体中的控件交互或Windows本身来调用,即通过触发相应的事件来调用,当然也可以用代码语句调用。事件——C#.NET中的事件实际上是对象的一个属性。一般在该属性前加上event关键字。该属性是一个委托类型,可以通过用一个事件处理程序构建一个委托类型的对象赋值给该属性。这样一旦该事件触发,便会调用该事件处理程序。委托——委托是C#.NET中的一种特殊的引用数据类型,其构造函数的参数是一个方法,然后便可以用委托类型的实例来调用该方法。C#.NET中使用委托来实现事件机制。简答题过程驱动与事件驱动编程的区别。答:过程驱动编程时,程序本身完全指明在什么时候执行什么代码,即代码以事先完全确定的路径执行。事件驱动编程中,事件发生的顺序没有预先确定,用户可以通过与程序交互来触发特定的事件,从而控制要执行哪些代码。简要介绍有哪几种方式可以触发事件?答:触发事件的方式有:用户与程序交互;由对象触发事件;操作系统触发事件;VisualC#代码调用事件代码触发事件。编程题下面的应用程序当在图文框picShowPicture中移动鼠标时,文本标签lblX和lblY分别显示鼠标所在位置的坐标值,鼠标移出图文框时文本标签lblX和lblY的文本均为空。如图4-1所示。为此需要响应图文框picShowPicture的MouseMove和MouseLeave事件。将事件处理程序绑定到相关事件的代码在InitializeComponent()方法中,下面列出该代码。请在横线上填上适当语句,将程序补充完整。图4-1PictureViewer程序界面//事件处理程序绑定代码this.picShowPicture.MouseLeave+=newSystem.EventHandler(this.picShowPicture_MouseLeave);this.picShowPicture.MouseMove+=newSystem.Windows.Forms.MouseEventHandler(this.picShowPicture_MouseMove);usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespacePicture_Viewer{publicpartialclassfrmViewer:Form{publicfrmViewer(){InitializeComponent();}………………privatevoidpicShowPicture_MouseMove(objectsender,MouseEventArgse){lblX.Text="X:"+e.X.ToString();lblY.Text="Y:"+e.Y.ToString();}privatevoidpicShowPicture_MouseLeave(objectsender,EventArgse){lblX.Text="";lblY.Text="";}privatevoidfrmViewer_Load(objectsender,EventArgse){lblX.Text="";lblY.Text="";}}}第5章创建窗体:基础知识填空题窗体标题栏中显示的文本是由窗体的Text属性决定的。要设置窗体的背景图片,需要设置其BackGroundImage属性。要设置窗体的图标,需要设置其Icon属性。要修改窗体边框的外观和行为,需要设置其FormBorderStyle属性。窗体图标显示的三个位置分别为:标题栏,任务栏和用户按Alt+Tab键时。标题栏比正常标题栏更小的窗口称为工具窗口。要使窗体的最小化和最大化按钮可见,则其ControlBox属性必须设置为true。要将窗体的起始位置在屏幕中居中显示,则需将窗体的StartPosition属性设置为CenterScreen。要将窗体在程序启动时即为最大化显示,则将其WindowState属性设为Maximized,如果要为最小化,则将其设为Minimized,该属性的默认值为Normal。要显示隐藏的窗体,则将窗体的Visisible属性设置为true。相反,要显示该窗体,则要将该属性设置为false,或调用窗体的Hide方法。在C#.NET中,每一个窗体的图标和标题栏文本都会在任务栏中显示,为使得某窗体的图标和标题栏不在任务栏中显示,可将窗体的ShowInTaskBar属性设置为false。在VisualStudio2008中,按F5键调试运行程序,按Ctrl+F5键则不调试运行程序。简答题模态窗体与非模态窗体的区别。答:非模态窗体是不会导致本应用程序其他窗口不能使用的窗体。在C#中使用窗体对象的Show()方法显示非模态窗体。模态窗体显示时,同一应用程序的其他所有窗口都不可用,直到本模态窗体关闭;其他窗体将不会接受键盘或鼠标输入,用户只能处理模态窗体,模态窗体关闭后,用户才可与程序中其他窗体交互。在C#中使用窗体对象的ShowDialog()方法显示模态窗体。第6章创建窗体:高级技能填空题Anchor属性将控件边缘锚定到窗体边缘。布局工具栏包含均匀排列控件和对齐控件的功能。使用布局工具栏的“Tab键顺序”按钮设置窗体上控件的Tab键顺序后,会改变控件的Tab属性。在代码中调用控件的BringToFront()和BringToBack()方法,可以将控件前移或后移,改变控件的堆叠顺序。要创建透明窗体,则要设置窗体的Opacity属性。该属性默认值为100%,意味着窗体完全不透明。要使窗体拥有滚动条,则将其AutoScroll属性设置为true。要使窗体成为MDI父窗体应使其IsMdiContainer属性设置为true。MDI父窗体有ActiveMdiChild属性,通过它可获得对当前活动子窗口的引用。判断题在一系列选中的控件中,第一个选中的控件总是活动控件。(T)简答题简述从工具箱添加控件到窗体中的几种方法。答:有4种主要的方法:双击工具箱中的工具;拖拽工具箱中的工具到窗体中;单击工具箱的工具然后在窗体中绘制;复制并粘贴控件。如果双击工具箱中的工具,它将放在窗体的什么位置?答:放在当前选中的控件上;如果没有选中控件,则放在窗体的左上角。SDI和MDI的区别。答:SDI程序中,每个窗体都与其他窗体平等,窗体间不存在层次关系。而MDI程序包含一个父窗体以及一个或多个子窗体。编程题下面的代码是一个MDI应用程序父窗体ParentForm的Load事件的代码。请在横线上填上适当语句,将程序补充完整,使得运行程序后即显示子窗体ChildForm。privatevoidParentForm_Load(objectsender,EventArgse){ChildFormobjChild=newChildForm();objChild.MdiParent=this;objChild.Show();}第7章使用传统控件填空题要显示用户不能编辑的文本应使用标签Label控件,该控件的Text属性决定了其显示的文本内容。要为标签Label分配热键,在其Text属性的热键字符前加&符号。当用户按下Alt键加该热键后,其Tab键顺序紧邻该Label标签的可获得焦点的控件便会获得输入焦点。指定文本框TextBox的TextAlign属性,可以指定控件内文本的对齐方式。对齐方式有Left左对齐、Center居中对齐和Right右对齐三种。只有将文本框TextBox控件的Multiline属性设置为true时才能在其中输入多行文本并调整它的高度。将文本框的ScrollBars属性设置为Vertical、Horizontal或Both,从而给其添加滚动条。水平滚动条仅在WordWrap属性设置为false时才能显示。有时候不希望用户能够与控件交互,可以将其Enabled属性设置为false。要很制用户输入字符的个数,可设置文本框的MaxLength属性,该属性的默认值为32767。要将文本框作为密码框,可以给其PasswordChar属性设置一个字符,这样用户不能看到输入其中的文本,只能看到设置的字符串。尽管其它控件获得焦点,但当用户按回车键时也将触发按钮的Click事件,这样的按钮称为接受按钮。通过设置窗体的AcceptButton属性设置该按钮。取消按钮在用户按Esc键时,其Click事件被触发,不管焦点在哪个控件上。通过设置窗体的CancelButton属性设置该按钮。复选框CheckBox控件用于向用户显示是/否值。单选按钮RadioButton在其所处的容器内是互斥的,即每个容器内只能同时有一个单选按钮被选中。可以使用分组框GroupBox或面板Panel控件作为其容器。可以通过遍历列表框ListBox中的Items属性来访问列表框中的所有项。使用列表框ListBox的Items属性的Insert()方法可以添加元素到列表框中指定的位置,Add()方法将元素添加到列表框最后一个元素之后,Remove()方法删除指定字符串,RemoveAt()方法删除指定索引处的元素。通过列表框ListBox的SelectedItem属性返回列表框中选中的项,其SelectedIndex返回选中项的索引。当列表框的Sorted属性设置为true时可对其中的项排序。将组合框ComboBox的DropDownStyle属性设为DropDownList,则只能从列表选择项。如果将其设为DropDown,则即可以从列表中选择项,也可以输入列表中没有的项。如果将组合框ComboBox的DropDownStyle属性设为DropDown,然后将AutoCompleteSource设为ListItems,将AutoCompleteMode设为Suggest,则输入过程中会自动列出下拉表框中前端匹配的项,如果将AutoCompleteMode设为Append,则输入过程中会自动列出下拉列表框中最接近的项。第8章使用高级控件填空题Timer控件的Interval属性以毫秒作为时间单位。Tab控件的TabPages属性可以添加新选项卡。返回Tab控件当前选中的选项卡的索引使用其属性SelectedIndex。当用户切换了选项卡,会触发其SelectedIndexChanged事件。ListView控件的显示选项主要有五种,设置方法是设置其View属性,其五种属性值分别为LargeIcon,SmalIcon,Tile,List,Detail要查看ListView控件中的列,必须将View属性设置为Details。ListView中的元素保存在Items中,其中的每一个元素的图标由其ImageIndex属性决定,文本由其Text属性决定,可加入到ListView控件元素中的额外数据列应存储每一个Items属在SubItems集合属性中。ListView在Details模式下,其列标题的内容由Columns属性决定。要判断ListView有多少元素被选中,应使用其SelectedItems的Count属性。要在ListView中增加元素,应使用其属性Items的Add方法,删除元素应使用其Remove方法,清除所有元素应使用其Clear方法。TreeView控件的每个元素称为node(节点),要在TreeView控件tvFunc中增加一个根节点“VisualC#”,其语句为:tvFunc.Nodes.Add(“VisualC#”);。删除节点用其Nodes属性的Remove方法,清除所有节点使用其Clear方法。判断题应使用不同的ImageList控件来存储大小不同的图像。(T)使用ImageList控件的目的主要是为了在其他类型的控件之间共享其中的图片。(T)默认请况下,ImageList控件的TransparentColor设置为Transparent,所以其图片是透明的,可以将该属性设置为一种颜色值。(T)ListView允许链接到两个ImageList:一个用于大图标,一个用于小图标。(T)编程题下面的程序每隔一秒在窗体上显示当前时间,则需要在窗体上放置一个Timer控件名为tmrClock并将其Enabled属性设为true,Interval属性设为1000,然后响应其Tick事件即可。事件处理程序如下所示,请将程序填写完整。privatevoidtmrClock_Tick(objectsender,EventArgse){lblClock.Text=DateTime.Now.ToLongTimeString();}图8-1TimerExample程序界面第9章给窗体添加菜单和工具栏填空题要创建某菜单项上访问键,在字符前面使用&字符。要在菜单项旁边添加复选标记,应设置菜单项的Checked属性。工具栏控件的类名为ToolStrip。状态栏StatusStrip控件用于在窗体底部向用户显示信息。判断题窗体菜单栏使用ContextMenuStrip控件创建。(F)工具栏上的每个按钮都有自己的Click事件。(T)第10章创建和调用方法填空题一个或一组过程以循环的方式不断地互相调用称为递归。定义一个类的实例方法OpenPicture,有一个string类型参数filename,无返回值,该方法可以被任务一个类访问,请写出该方法的原型:publicvoidOpenPicture(stringfilename)。判断题要访问类的方法,必须首先创建一个对象。(F)名词解释类——类是将数据与功能封装在一起的一种编程结构,它是创建对象的模板。对象——对象是类的实例,是由类模板创建的。类是将数据与功能封装在一起的一种编程结构。方法——方法是类中的函数过程,表达了封装在类中的功能。params参数(*)——params是C#的一个关键字,用来实现可以有任意多个形参的方法。一个函数中只能有一个params参数,并且必须作为最后一个参数出现,其实参是一个数组类型。简答题静态成员和实例成员的区别。答:实例成员与类的实例相关联,只能用类的实例即对象来访问调用实例成员;静态成员属于整个类,而不是类的具体实例,静态成员只能由类来访问。简述private、protected、public、internal修饰符的访问权限。答:private:私有成员,在类的内部才可以访问。protected:保护成员,该类内部和继承类中可以访问。public:公共成员,完全公开,没有访问限制。internal:在同一命名空间内可以访问。按引用和按值传递参数的区别。值类型与引用类型的区别。答:值类型的实例在内存中占用实际的存储空间,如果定义了一个值类型的实例,则这个实例将实际存在于内存中。定义引用类型的实例时,C#并不立刻在内存中开辟空间保存实际数据。一个引用类型的值,只是一个到该类型的实例的引用信息。ref参数和out参数的区别。(*)答:ref参数与out参数都是传引用的参数,即如果在被调函数中更改了参数的值,主调函数可以获得该更改的值。但ref参数在被调函数中可以不需给参数赋值,而out参数则在被调函数中一定要给参数赋值,即一定要输出一个值。第11章使用常量、数据类型、变量和数组填空题ushort类型的取值范围是0到65535。货币应使用decimal数据类型。object数据类型是一种通用的数据类型,可以存储任何类型的数据,因为任何一种数据类型都是从它继承而来。通过使用常量而不直接使用字面量可以避免幻数的出现。数据变量stringstrMyArray[5]中,第一个索引是0,最后一个索引是4。声明一个10行10列的二维整型数组iarr:int[,]iarr=newint[10,10];。声明一个包含10个元素的字符串锯齿数组strarr:string[][]=newstring[10][];。作用域描述了常量、变量和过程的可见性。C#中有三种作用域,分别是:块级,方法级和私有作用域。选择题以下标识符中,正确的是:(A)A._TimeB.typeofC.3aD.a3#以下标识符中,错误的是:(C)A._a97B.t234C.3_579D.nMemberHeight以下类型中,不属于值类型的是:(D)A.整数类型B.布尔类型C.字符类型D.字符串类型以下类型中,属于值类型的是:(CD)A.类类型B.接口类型C.结构体类型D.枚举类型判断题一般说来,作用域应该尽可能小。(T)第12章执行算术运算、字符串操作和日期/时间调整填空题13.6%4.3=0.7。获取字符串strFullName中第5个字符开始的10个字符,其语句为:strFullName.Substring(4,10);。返回字符串strFullName的长度:strFullName.Length。返回字符串strFullName中子串“ncusc”的位置:strFullName.IndexOf(“ncusc”);。删除字符串strFullName中的前、后空格:strFullName.Trim();删除字符串strFullName中第5个到第10个字符:strFullName.Remove(4,6);替换字符串strFullName中的字符串ncusc为soft.ncu:strFullName.Replace(“ncusc”,”soft.ncu”);返回当前时间:DataTime.Now。定义一个日期时间类型变量,使其表示今天的日期(2010年10月19日):DateTimedtToday=newDateTime(2010,10,19);。假设dtToday表示当天的日期时间型变量,返回上个月的今天:DateTimedtNewDay=dtToday.AddMonths(-1);。假设dtToday表示当天的日期时间型变量,获得现在是星期几:intiResult=dtToday.DayOfWeek;。假设dtToday表示当天的日期时间型变量,输出期长日期格式:dtToday.ToLongDateString();。第13章使用VisualC#代码做出决策判断题在C#的switch语句中,绝对不可能执行一次执行多个case语句的代码。(T)结构化程序设计的三种结构是顺序结构、选择结构和循环结构。选择题已知a、b、c的值分别为4、5、6,执行下面的程序段后,判断变量n的值为:(C)if(c<b)n=a+b+c;elseif(a+b<c)n=c-a-b;elsen=a+b;A.3B.-3C.9D.15C/C++与C#中的switch语句的区别在于:(B)C#中同一个switch语句中可以有两个或多个case标签后面的常量表达式具有相同的值,C/C++中则不行。C#中如果省略switch语句中除最后一个分支外的任何一条break语句,都将会引起程序编译错误,但C/C++不会由此引起程序错误。C#中,多个case可以共用一组执行语句,这是C/C++中所不允许的。C/C++中,多个case可以共用一组执行语句,但C#中是做不到的。在C/C++和C#中,switch语句中的各条case语句及default语句的出现次序不是固定的,只是在C/C++中它们出现次序的不同不会对执行结果产生任何影响,但在C#中则会对执行结果产生影响。第14章使用循环提高效率选择题While语句与do…while语句的区别在于:(D)while语句的执行效率较高。do…while语句编程较复杂。无论条件是否成立,while语句都要执行一次。do…while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体。下面有关for语句的描述有错的是:(A)使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式。在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号在for语句的表达式1中,可以直接定义循环变量,以简化代码。For语句的表达式可以是逗号表达式。下面有关break、continue、goto语句描述正确的是:(D)Break语句和continue语句都是用于终止当前整个循环。使用break语句可以一次跳出多重循环。使用goto语句可以方便跳出多重循环,因而编程时应尽可能多使用goto语句。Goto语句必须和标识符配合使用,break和continue则不然。判断题要使用for循环时,必须在设计时知道循环变量的起始值和终止值。(F)C#不允许嵌套循环语句。(F)第15章调试代码填空题编译错误将阻止VisualC#编译和运行代码。运行错误又能叫异常。//字符用于表示单行注释/**/表示在其中的文本是注释。要使代码在特定语句处停止,可设置断点。输出调试信息可以用:Debug.WriteLine()。判断题必须在try结构中指定catch部分。(F)必须在try结构中指定finally部分。(F)必须在try结构中指定catch部分和finally部分之一。(T)简答题解释出现在代码编辑器灰色区域中的黄色箭头与红色圆圈的作用。答:黄色箭头表示在调试过程中将要执行的下一条语句;红色圆圈表示断点——到达这里后停止运行。第16章使用类设计对象名词解释字段——类的数据成员,一般为私有的,有静态字段和实例字段两种。只读字段——字段的一种,用readonly关键字说明,只能在初始化和构造函数中给它赋值,在其它方法中不可改变其值。构造函数——在对象创建时自动调用的函数。析构函数——在对象释放时自动调用的函数。封装——把复杂的概念包装成简单的形式,并由明确规定的接口,作为与外界唯的联系。继承——面向对象方法中实现一组类中共有性质的共享和复用的有效机制,即派生类可以共享基类的所有数据和功能,并可以增加自己的数据和功能。多态——一个类中或在基类与派生类之间存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念、封装、隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦合和依赖。简答题早期绑定与晚期绑定接口与对象的绑定有两种形式:早期绑定与晚期绑定。早期绑定是在编译阶段完成的绑定,晚期绑定是在运行阶段发生的绑定。重载与覆盖的区别。答:覆盖和重载是实现多态的两种方式。覆盖是子类重新定义父类中已有的方法,重载是在一个类内部定义与已存在的方法同名但是参数列表不同的方法。接口与抽像类的区别。答:接口是用来实现类间多重继承功能的结构。接口与类相似,但是接口中只能包括常量和抽象方法。定义接口相当于定义了一组抽象的功能、属性集合,可以使程序的类层次结构更加合理,并实现多重继承。可以定义类实现某接口。实现某接口的类必须实现该接口中的所有抽象方法。抽像类依然是一种类,即是一种将数据与功能封装在一起的编程结构。只不过抽像类中一定存在着抽像方法,即没有实现的方法。无法构建抽像类的实例,但可以构建其子类(具体类)的实例并用抽像类的引用来引用它。抽像类不允许多重继承。简述类中可包含哪些成员?答:C#类包含的成员有:常量,字段,方法,构造函数,析构函数,属性,事件,索引器。除常量外的成员都有实例成员与静态成员两种。简述接口中可包含哪些成员?答:C#接口中可以包含的成员有:常量,方法,属性,事件和索引指示器。第17章与用户交互填空题在消息框中显示文本“你确认要删除吗?”,其标题栏为“提示”,显示一个询问图标和“是”、“否”两个按钮并将“否”按钮作为默认按钮,写出判断其返回值是否为OK的语句:if(MessageBox.Show(“你确认要删除吗?”,”提示”,MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.OK){}。编程题某应用程序有主窗体frmMain和自定义窗体fclsCustomDialogBox两个窗体类。主窗体中的Show按钮btnShow显示非模态窗体,ShowDialog按钮btnShowDialog显示模态窗体。主窗体代码如下所示。请在横线上填上适当语句,将程序补充完整。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceCustom_Dialog_Example{publicpartialclassfrmMain:Form{publicfrmMain(){InitializeComponent();}privatefclsCustomDialogBoxfrmCustomDialogBox;privatevoidbtnShowCustomDialogBox_Click(objectsender,EventArgse){if(frmCustomDialogBox==null)frmCustomDialogBox=newfclsCustomDialogBox();frmCustomDialogBox.Show();}privatevoidfrmMain_FormClosed(objectsender,FormClosedEventArgse){frmCustomDialogBox.Dispose();frmCustomDialogBox=null;}privatevoidbtnShowDialog_Click(objectsender,EventArgse){fclsCustomDialogBoxdlg=newfclsCustomDialogBox();if(dlg.ShowDialog()==DialogResult.OK)MessageBox.Show("YouclickedOK.");elseMessageBox.Show("YouclickedCancel.");}privatevoidfrmMain_Load(objectsender,EventArgse){frmCustomDialogBox=newfclsCustomDialogBox();}}}下面的应用程序用户可在主窗体上绘制图形。请在横线上填上适当语句,将程序补充完整。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceMouse_Paint{publicpartialclassfrmMousePaint:Form{privateGraphicsm_objGraphics;publicfrmMousePaint(){InitializeComponent();}privatevoidfrmMousePaint_Load(objectsender,EventArgse){m_objGraphics=this.CreateGraphics();}privatevoidfrmMousePaint_FormClosed(objectsender,FormClosedEventArgse){m_objGraphics.Dispose();}privatevoidfrmMousePaint_MouseMove(objectsender,MouseEventArgse){RectanglerectEllipse=newRectangle();if(e.Button!=MouseButtons.Left)return;rectEllipse.X=e.X-1;rectEllipse.Y=e.Y-1;rectEllipse.Width=2;rectEllipse.Height=2;m_objGraphics.DrawEllipse(System.Drawing.Pens.Blue,rectEllipse);}}}第18章使用图形填空题在Windows操作系统中,负责将文本、线条和图形等绘制到屏幕上的代码称为图形设备接口(GraphicsDeviceInterface,GDI)。在.NET中,使用Graphics对象绘制(二维)图形。要设置Graphics对象以直接在窗体上绘制图形,应调用窗体的CreateGraphics方法返回一个Graphic对象。使用Pen对象定义线条的特征,使用Brush对象定义填充图案。会随用户的Windows设置调整的颜色称为系统颜色。使用Rectangle对象绘制形状的边界。使用Rectangle的式DrawEllipse方法绘制椭圆和圆。使用Graphics对象的DrawString()方法输出文本。为确保图形在窗体上持久化,必须在窗体的Paint事件中绘制图形。编程题下面的程序在窗体加载后在窗体上绘制一个椭圆,单击

“DrawText”按钮btnDrawText之后,随机选用字体在窗体上绘制永久文本。如图18-1所示。请在横线上填上适当语句,将程序补充完整。图18-1PersistingGraphicsExample程序界面usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespacePersisting_Graphics{publicpartialclassfrmMain:Form{privateSystem.Drawing.Bitmapm_objDrawingSurface;publicfrmMain(){InitializeComponent();}privatevoidfrmMain_Load(objectsender,EventArgse){m_objDrawingSurface=newBitmap(this.ClientRectangle.Width,this.ClientRectangle.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);InitializeSurface();}privatevoidInitializeSurface(){GraphicsobjGraphics;RectanglerectBounds;objGraphics=Graphics.FromImage(m_objDrawingSurface);objGraphics.Clear(SystemColors.Control);rectBounds=newRectangle(0,0,m_objDrawingSurface.Width,m_objDrawingSurface.Height);rectBounds.Inflate(-1,-1);objGraphics.DrawEllipse(Pens.Orange,rectBounds);objGraphics.Dispose();}privatevoidfrmMain_Paint(objectsender,PaintEventArgse){GraphicsobjGraphics;objGraphics=e.Graphics;objGraphics.DrawImage(m_objDrawingSurface,0,0,m_objDrawingSurface.Width,m_objDrawingSurface.Height);objGraphics.Dispose();}privatevoidbtnDrawText_Click(objectsender,EventArgse){GraphicsobjGraphics;FontobjFont;intintFontSize,intTextX,intTextY;RandomrandomGenerator=newRandom();if(txtInput.Text=="")return;objGraphics=Graphics.FromImage(m_objDrawingSurface);intFontSize=randomGenerator.Next(8,48);intTextX=randomGenerator.Next(0,this.ClientRectangle.Width);intTextY=randomGenerator.Next(0,this.ClientRectangle.Height);objFont=newSystem.Drawing.Font("Arial",intFontSize,FontStyle.Bold);objGraphics.DrawString(txtInput.Text,objFont,System.Drawing.Brushes.Red,intTextX,intTextY);objGraphics.Dispose();this.Invalidate();}privatevoidfrmMain_FormClosed(objectsender,FormClosedEventArgse){m_objDrawingSurface.Dispose();}}}第19章执行文件操作填空题OpenFileDialog与SaveFileDialog对象的Filter属性用于设置文件过滤器,其中用|将过滤器描述与扩展名分开。对文件进行操作的类一般在System.IO命名空间中。对文件夹进行操作的类名为System.IO.Directory。判断题调用OpenFileDialog对象的ShowDialog方法且用户单击“打开”按钮之后便已打开了一个文件。(F)用System.IO.File.Delete()删除的文件将被发送到回收站。(F)编程题下面的程序单击Source按钮btnOpenFile将选中一个文件,并将其文件名显示在文本框txtSource中,单击Destination按钮btnSaveFile后将选中一个文件并将其文件名放在文本框txtDestination,单击Copy按钮btnCopyFile将源文件复制到目标文件,单击Move按钮btnMove将源文件移动到目标文件,单击Delete按钮btnDelete将删除源文件。请在横线上填上适当语句,将程序补充完整。图19-1ManipulatingFiles程序界面usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceManipulating_Files{publicpartialclassfrmManipulatingFiles:Form{publicfrmManipulatingFiles(){InitializeComponent();}privatevoidbtnOpenFile_Click(objectsender,EventArgse){openFileDialog1.InitialDirectory=@"C:\";openFileDialog1.Title="SelectaFile";openFileDialog1.FileName="";openFileDialog1.Filter="TextFiles(*.txt)|*.txt";openFileDialog1.FilterIndex=1;if(openFileDialog1.ShowDialog()!=DialogResult.Cancel)txtSource.Text=openFileDialog1.FileName;elsetxtSource.Text="";}privatevoidbtnSaveFile_Click(objectsender,EventArgse){saveFileDialog1.Title="SpecifyDestinationFilename";saveFileDialog1.Filter="TextFiles(*.txt)|*.txt";saveFileDialog1.FilterIndex=1;saveFileDialog1.OverwritePrompt=true;if(saveFileDialog1.ShowDialog()!=DialogResult.Cancel)txtDestination.Text=saveFileDialog1.FileName;}boolSourceFileExists(){if(!System.IO.File.Exists(txtSource.Text)){MessageBox.Show("Thesourcefiledoesnotexist!");returnfalse;}elsereturntrue;}privatevoidbtnCopyFile_Click(objectsender,EventArgse){if(!SourceFileExists())return;System.IO.File.Copy(txtSource.Text,txtDestination.Text);MessageBox.Show("Thefilehasbeensuccessfullycopied.");}privatevoidbtnMove_Click(objectsender,EventArgse){if(!SourceFileExists())return;System.IO.File.Move(txtSource.Text,txtDestination.Text);MessageBox.Show("Thefilehasbeensuccessfullymoved.");}privatevoidbtnDelete_Click(objectsender,EventArgse){if(!SourceFileExists())return;if(MessageBox.Show("Areyousureyouwanttodeletethesourcefile?","DeleteVerification",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes){System.IO.File.Delete(txtSource.Text);MessageBox.Show("Thefilehasbeensuccessfullydeleted.");}}}}第20章处理文本文件和注册表填空题在Windows注册表中,用户配置信息应存储在HKEY_CURRENT_USER节点下。要在注册表的HKEY_LOCAL_MACHINE的Software节点下创建一个ncusc的节点,完整的语句(包含完整的命名空间)是Microsoft.Win32.Registery.LocalMache.CreateSubKey(@“software\ncusc”);要删除注册表中的键,DeleteSubKey()方法删除一个键,仅当该键没有子键时才管用;DeleteSubKeyTree()方法删除一个键及其所有子键。使用StreamWriter类写入文本文件;使用StreamReader类读取文本文件。SreamReader的ReadToEnd方法一次性读取文本文件的全部内容。第21章使用数据库填空题DBMS的含义是DatabaseManageSystem数据库管理系统。SQL有DDL,DML,DCL三种基本语句形式。.NET平台下的数据库访问技术称为ADO.NET。在.NET框架中,使用的数据访问的命名空间是System.Data。访问SqlServer数据库的命名空间为System.Data.SqlClient,访问其它数据库则可以通过System.Data.OleDb命名空间访问。在DataSet中包含DataTable对象以表示一个二维表,其成员Rows属性是DataRow类型的集合,表示表中的行。使用DataAdapter对象的Fill方法将数据填充到DataSet的DataTable中。如果要访问SqlServer数据库,一般使用SqlConnection对象连接到数据源。CommandBuilder对象可以为其DataAdapter对象自动生成数据更新、删除和插入的SQL语句。判断题Access、Foxpro、Paradox都属于桌面数据库。(T)SQLserver、Oracle、Sybase都是大型数据库管理系统。(T)SQLserver不属于关系数据库管理系统。(F)SQL的DDL是数据库定义语句。(T)SQL的DML是数据控制语句。(F)简答题ADO.net常用的对象有哪些?DataSet和DataReader的区别是什么?(7分)答:ADO.NET常用的对象有:Connection,DataAdapter,Command,CommandBuilder,DataReader,DataSet,DataTable,DataView,DataRow,DataColumn等。DataSet是相当于一个临时数据库,可以保存数据库表以及表之间的关系,数据集中的数据表可以增加、删除、修改和过滤,可以前向和后向滚动。DataReader只是映射一张二维表的数据,其数据是只读的,不可更新,并且只能前向滚动,不能后向滚动。编程题下图显示的是一个联系人(Contact)管理的数据库应用程序。Access数据库Contacts.mdb存放在应用程序同一个文件夹下,其Contacts表结构如表21-1所示。库单击第一条按钮“<<”btnMoveFirst,将显示第一条联系人信息,单击前一条按钮“<”btnMovePrevious显示前一条联系人信息,单击后一条按钮“>”btnMoveNext显示后一条联系人信息,单击最后一条按钮“>>”btnMoveLast显示最后一条联系人信息。在对联系人姓名和州信息更改后单击保存按钮“Save”btnSave将提交修改至数据库。单击删除按钮“Delete”btnDelete将删除当前显示的联系人信息。在NewContact区域输入联系人姓名和州信息后单击增加按钮“Add”btnAdd将提交新增信息至数据库,并将新增的记录作为当前记录显示。下面列出相关代码,请在横线上填上适当语句,将程序补充完整。图21-1Contact程序界面表12-1Contacts表结构列名数据类型长度备注ContactName文本50联系人姓名,主键State文本20州usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.OleDb;namespaceDatabase_Example{publicpartialclassfrmMain:Form{OleDbConnectionm_cnADONetConnection=newOleDbConnection();OleDbDataAdapterm_daDataAdapter;DataTablem_dtContacts=newDataTable();intm_rowPosition=0;publicfrmMain(){InitializeComponent();}privatevoidfrmMain_Load(objectsender,EventArgse){m_cnADONetConnection.ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=contacts.mdb";m_cnADONetConnection.Open();m_daDataAdapter=newOleDbDataAdapter("Select*FromContacts",m_cnADONetConnection);OleDbCommandBuilderm_cbCommandBuilder=newOleDbCommandBuilder(m_daDataAdapter);m_daDataAdapter.Fill(m_dtContacts);this.ShowCurrentRecord();}privatevoidfrmMain_FormClosing(objectsender,FormClosingEventArgse){m_cnADONetConnection.Close();m_cnADONetConnection.Dispose();}privatevoidShowCurrentRecord(){if(m_dtContacts.Rows.Count==0){txtC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论