可视化程序设计案例教程习题答案完整.docx
《可视化程序设计案例教程习题答案完整.docx》由会员分享,可在线阅读,更多相关《可视化程序设计案例教程习题答案完整.docx(19页珍藏版)》请在冰豆网上搜索。
可视化程序设计案例教程习题答案完整
习题答案
习题1
1.简述C#与.NET框架的关系。
1).NETFramework为使用C#语言设计和开发桌面和网络应用程序提供了一个功能强大的平台。
2)C#是开发基于.NETFramework程序的一种语言。
2..NETFramework主要组件有哪些?
它们的用途分别是什么?
.NETFramework具有两个主要组件——公共语言运行库和.NETFramework类库,包括ADO.NET、ASP.NET、Windows窗体和WindowsPresentationFoundation。
公共语言运行库是.NETFramework的基础。
类库是一个综合性的面向对象的可重用类型集合。
3.可以通过C#开发的应用程序有几种,分别是什么?
Windows控制台应用程序、ASP.NET应用程序、Windows窗体应用程序、Windows服务。
4.什么是对象?
什么是对象的方法和属性?
(这道题超出教材了,去掉)
5.VS2015开发环境中主要包含哪些窗口?
属性设计窗口、输出信息窗口、窗体设计器、代码编辑器窗口。
6.简述VS2015集成开发环境中创建Windows应用程序的主要步骤。
创建项目、创建程序用户界面、设置界面上各个对象的属性、编写对象响应事件的程序代码、测试和调试应用程序。
习题2
1.通过从C中拖曳可以在窗体中添加控件。
A.主菜单B.工具栏C.工具箱D.工程资源管理器
2.设置文本框控件的C为“True”,可以防止文本框的内容被修改。
A.Text属性B.Enabled属性C.ReadOnly属性D.PasswordChar属性
3.将文本框控件设置为密码显示方式的方法是B。
A.将Text属性设置为“*”B.将UseSystemPasswordChar属性设置为“True”
C.将Text属性设置为空D.将PasswordChar属性设置为空
4.下列说法中描述不正确的是B。
A.列表框控件的Sorted属性为“True”时,列表框中的项可以自动排序
B.窗体或控件的Name属性是在界面上显示的信息
C.默认状态下,文本框控件的信息不能换行显示
D.列表框控件的Items属性可以通过“字符串集合编辑器”来修改
5.双击按钮对应的事件是B。
A.ClickB.DoubleClickC.MouseDownD.KeyDown
6.列表框与组合框有什么异同?
列表框控件能够列出许多项以供用户选择,可以使用鼠标选取一项或多项。
列表框需要覆盖窗体的一块空间。
组合框有文本框的外表,有列表框的功能,不需要占用很大空间。
7.文本框控件有几种?
它们各有什么特点?
文本框控件主要有3种,分别是TextBox、RichTextBox和MaskedTextBox。
其中TextBox控件是普通文本框,也是最常用的文本框控件。
RichTextBox控件是一个文本编辑控件,可以处理特殊格式的文本。
顾名思义,RichTextBox控件使用RichTextFormat(RTF)处理特殊的格式。
而MaskedTextBox控件可以限制用户在控件中输入的内容,还可以自动格式化输入的数据,通过设置属性可以验证或格式化用户的输入,通常用于输入或输出日期、电话号码等特定格式的信息上。
8.使用什么方法可以将新的项添加到一个列表框中?
通过Items属性可以在项目集合中添加项,也可以通过Items属性的add方法添加项。
9.如何取得列表框中项的数目?
通过Items属性的Count属性可以取得列表框中项的数目。
10.如果单击一个当前没有被选中的复选框,则复选框组中其他已被选中的复选框会处于什么状态?
保持原来选中的状态。
11.使用分组框组织窗体中的控件有哪些好处?
分组框控件用于为其他控件提供可识别的分组,使用分组框能够按功能细分窗体。
当移动单个分组框控件时,它包含的所有控件也会一起移动。
12.如何调整控件的位置和大小?
1)直接拖曳界面设计器窗口中的控件2)修改控件的属性以改变控件的位置和大小。
习题3
1.简述C#应用程序的结构。
C#应用程序是一个解决方案,一个解决方案由一个或多个项目组成。
在每个项目中,会包含许多文件,这些文件可以分成类文件和资源文件(如图标、配置文件等)两大部分。
其中类文件是项目的主要文件,又可以细分为窗体类与普通类。
对于窗体类,由窗体界面定义资源文件(*.resx)、窗体定义类(*.Designer.cs)和程序代码文件(*.cs)3部分组成。
2.C#程序一般遵循什么样的命名规范?
常量:
一般全部使用大写字母,如果常量名中含有多个单词,最好使用下画线“_”隔开,如SIZE、CIRCLE_RADIUS等。
变量:
一般使用首字母小写,之后每个单词首字母大写其余字母小写的方式,如fileName、errorHandler、peopleNumber等。
对于类的成员变量,建议加上前缀“m”,如mFilename、mErrorHandler、mPeopleNumber等。
类名:
一般使用每个单词首字母大写其余字母小写的方式,如FileAppender、StreamWriter等。
函数名:
一般根据函数的功能,使用“动词+名词”的单词组合进行命名,做到“见名识意”,如打开文件的函数可以命名为OpenFile。
3.C#中有哪些基本数据类型?
内置基本数据类型、字符串(String)、日期时间(DateTime)。
4.程序的3种基本控制结构是什么?
1)顺序结构:
按照语句代码出现的先后顺序依次执行的结构称为顺序结构。
2)分支结构:
在一种以上可能的操作中按条件选取一个执行的结构称为分支结构。
3)循环结构:
按条件重复执行一种操作的结构称为循环结构。
5.循环结构有几种?
用于实现循环结构的循环语句有哪3种?
它们有何区别?
1)当型循环结构:
先进行判断,然后根据判断结果(真或假)决定是否执行循环体的循环结构称为当型循环结构。
2)直到型循环结构:
先执行一次循环体,然后再根据判断结果(真或假)决定是否执行循环体的循环结构为直到型循环结构。
C#中循环结构有3种:
do…while语句、for语句、foreach语句。
do…while语句是条件型循环,循环的执行由条件控制,当循环的次数不确定时通常选用该语句;for语句是计算型循环,当循环的次数已知时选用该语句;foreach语句用于对集合变量进行循环。
6.使用switch开关语句时应注意哪些问题?
1)switch后的表达式可以是整型或字符串型表达式。
2)每个块(包括最后一个块,不管它是case语句还是default语句)后都要有跳转语句。
7.日期时间类有哪些常用属性、方法?
分别返回哪些日期数据?
参见P46表3-6。
8.列举字符串类的常用属性和方法,并简述其功能。
参见P45表3-4.
9.设有一个数列,它的前4项为0、0、2、5,以后每项分别是其前4项之和,编程求此数列的前20项。
要求按每行4个数将结果在标签中输出。
提示:
1)定义一个长度为20的数组,对数组前四项初始化。
2)使用循环计算数组的后16项的值。
3)循环输出数组的值,用数组的下标模4为零时输出换行符。
10.用100元钱买100支笔,其中钢笔每支3元,圆珠笔每支2元,铅笔每支0.5元,问钢笔、圆珠笔和铅笔可以各买多少支(每种笔至少买1支)?
要求调用按钮的单击事件过程,将三种笔的购买支数在标签上显示出来。
提示:
1)设计三种笔的输出界面。
2)定义三个变量j,k,l分别表示钢笔、圆珠笔、铅笔的数量。
3)定义一个关于j,k,l的三层循环,j=1;j<=33;k=1;k<=50;l=1;l<=200;在最内层循环判断式子j*3+k*2+l*0.5==100的结果,为真时输出j,k,l的值。
11.编程求1!
+2!
+3!
+4!
+…+10!
。
要求界面上放两个文本框,一个用来输入数字“10”,另一个用来输出结果。
提示:
1)按要求设计界面。
2)定义一个求和变量S=0;用2层循环完成计算,内层循环计算阶乘,外层循环遍历1-10,并累加阶乘。
12.已有一个按从小到大次序排好的数组,现输入一个数,要求按原来排序的规律将它插入到数组中。
要插入的数通过文本框输入,插入后的有序数组在另一个文本框中输出。
提示:
1)按要求设计界面。
2)采用循环依次比较要插入的数与数组元素的大小,比较的过程中同时将数组元素追加到输出文本框中,直到待插入的数大于等于数组元素,将待插入的数追加到输出文本框中,将数组剩余元素追加到输出文本框中。
13.输入一个5行5列的二维数组,编程实现:
1)求出其中的最大值和最小值及其对应的行列位置;
2)求出对角线上各元素之和。
数组的输入可使用随机函数实现,计算结果可在文本框中输出,输出结果的同时,要求将数组按逻辑结构在标签中打印出来。
提示:
1)定义一个最大值变量和一个最小值变量。
2)定义一个二维数组,采用二层循环输入数组元素,首先将数组第一个元素的值赋值给最大值变量和最小值变量,输入数组元素的过程中同时比较,找出最大值和最小值。
3)定义一个对角线和变量,遍历数组,找出对角线元素累加,同时找出最大值和最小值元素所在的行和列位置并输出。
14.什么叫类?
什么叫对象?
举两个可用类描述的实例。
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
一个对象由一组属性和对这组属性进行操作的一组服务组成。
类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,它封装了一组属性和有权对这些属性进行操作的一组服务。
学生类的学生对象1和学生对象2。
classStudent
{
......
}stu1,stu2;
15.列举类成员的访问属性,并简述其在类内、外的访问权限。
public:
公有访问,访问不受限制;
lprotected:
访问仅限于包含类或从包含类派生的类型;
linternal:
只有在同一个程序集的文件中,内部类型或成员才是可以访问的;
lprotectedinternal:
访问仅限于当前程序集或从包含类派生的类型;
lprivate:
访问仅限于包含类型。
如果一个类的构造方法声明为private,则其他类不能生成该类的一个实例。
16.在方法的调用中,参数传递方式有哪两种?
这两种传递方式有什么区别?
(这道题超出教材了,去掉)
17.属性与字段有何区别与联系,引入属性有什么优点?
字段也即类的成员变量,是类的一个构成部分,使得类可以封装数据。
属性是与字段相关的一个概念,它提供了一种灵活的机制来读取、编写或计算私有字段的值,通常包括get和set代码块,实现了数据的控制。
18.简述密封类、抽象类和内部类的概念。
(这道题超出教材了,去掉)
习题4
1.下列约定的快捷键组合与其含义搭配错误的是C。
A.〈Ctrl+Z〉——取消B.〈Alt+F4〉——关闭窗口
C.〈Ctrl+S〉——创建新文件D.〈Ctrl+O〉——打开一个已有的文件
2.下列控件类型中可以添加到工具栏但不能添加到状态栏的控件类型是B。
A.标签B.文本框
C.按钮D.进度条
3.FolderBrowserDialog对话框控件可用于C。
A.选择一种颜色B.选择一个要打开的文件
C.选择一个文件夹D.选择一种字体
4.Windows应用程序中的菜单分为哪两种?
Windows应用程序中的菜单主要有两种:
一种是主菜单,即下拉式菜单,主菜单一般放置在窗口的顶端,通常包含顶级菜单项,如“校历”“录入”“统计”等菜单项;另一种是上下文菜单,也称为弹出式菜单。
5.叙述主菜单的组成,如何创建主菜单?
菜单项的类型有3种,分别是MenuItem(菜单项)、ComboBox(下拉框)和TextBox(文本框)
首先创建一个窗体,再从工具箱中选择MenuStrip控件,并拖放在窗体上,然后设计主菜单。
6.热键与快捷键有何区别?
为菜单项设置热键与快捷键的好处是什么?
在Windows应用程序中设置热键非常简单,只需要修改所要添加热键的菜单项的Text属性,如设置菜单项的Text属性为“文件(&F)”。
通过设置菜单项的ShortcutKeys属性,可以为菜单项分配快捷键。
热键可以更加方便地操作软件,快捷键可以便捷地操作软件。
7.什么是上下文菜单?
用什么方法显示上下文菜单?
一个上下文菜单一般被分配给窗体的一个或一组控件,通常通过鼠标右键激活。
8.在C#中用什么控件创建工具栏?
简述工具栏的设计步骤。
ToolStrip控件。
要在窗体中添加一个空白工具栏,只需从工具箱中向窗体拖放一个ToolStrip(工具栏)控件即可。
工具栏默认放置在窗体顶部主菜单下面,可以通过Dock属性设置其位置。
创建好一个空白的工具栏后,可以单击
右侧的倒三角,打开选择控件类型的下拉菜单在工具栏中添加指定类型的控件。
9.如何将图像文件导入到工程的资源文件中?
在“选择资源”对话框中单击“导入”按钮,选择图标文件将其加入资源文件。
10.工具栏控件ToolStrip中可以添加哪些控件?
可以添加到工具栏中的控件有 8 种,分别是Button(工具栏按钮)、Label(工具栏标签)、SplitButton(工具栏分隔按钮)、DropDownButton(工具栏菜单按钮)、Separator(工具栏分割线)、ComboBox(工具栏下拉框)、TextBox(工具栏文本框)和ProgressBar(工具栏进度条)。
11.对话框控件有哪些?
如何使用这些控件创建“文件打开”“文件保存”“字体”“颜色”对话框?
OpenFileDialog控件(“打开文件”对话框)、SaveFileDialog控件(“保存文件”对话框)、FolderBrowserDialog控件(“浏览文件夹”对话框)。
以OpenFileDialog控件为例,1)打开“工具箱”→“对话框”→“OpenFileDialog控件”,将其拖放至窗体;另一种方式是在程序中实现。
习题5
1.DataGridView控件通过什么属性获得选定的单元格、行和列?
CurrentRow属性用于获取DataGridView控件的当前行。
Cell[j]属性:
表示记录(行)中第j个字段(单元格)。
2.简述BindingSource控件的作用。
BindingSource控件用于简化将控件绑定到基础数据源的过程,可以看作是窗体上的控件到数据的一个间接层,通过将BindingSource控件绑定到数据源,然后再将窗体上的控件绑定到BindingSource控件,就可以完成将窗体上的控件绑定到数据的工作。
3.列举4种能进行数据绑定的程序界面设计控件,这些控件通过何种属性进行数据绑定?
如何绑定到字段?
Label控件和TextBox控件,DataBindings属性用于绑定数据源,Text子属性用于选择数据源及字段。
ListBox控件和ComboBox控件,DataSource:
选择代码表数据源绑定控件,DisplayMember绑定显示字段,ValueMember属性绑定值字段。
4.简述数据库应用程序的设计步骤。
1)创建解决方案的项目
2)添加Windows窗体
3)设计用户界面
4)创建事件处理程序和编译、调试、运行程序。
5.报表包含了哪几个区域?
各区域包含了报表的哪些内容?
(这道题超出教材了,去掉)
6.简述Windows应用程序中报表的设计步骤。
使用报表通常包括5个步骤:
创建报表文件;为报表设置数据源;设计报表外观;创建报表查看器;编写事件过程并查看报表。
7.如何在报表中添加日期、时间、页号等项?
在设计好的报表空白处右击,选择“插入”命令,可以为报表设计页眉、页脚等基本节,也可以添加文本、线条和图表等对象。
习题6
1.如何使用Connection对象打开、关闭数据库连接?
请针对Access2003和(超出教材了,去掉)SQLServer2012数据库各举一实例说明。
//引用SQLSERVER.NET类库的命名空间
usingSystem.Data.SqlClient;
//定义连接字符串conStr
stringconStr="DataSource=(local);
InitialCatalog=StudentSys;IntegratedSecurity=True";
//定义连接对象con
SqlConnectioncon=newSqlConnection(conStr);
con.Open();//打开数据库StudentSys
con.Close();//关闭数据库StudentSys
2.利用Command对象为StudentSys数据库的tblClass表增加一个值为(“1000221”,“机制10021”,“2008”,“机制”,“2”,“35”,“133”,“2”,“50”)的新班级。
stringcmdStr="InsertIntotblClassvalues('1000221','机制10021','2008','机制','2','35','133','2','50')";
SqlCommandcmd=newSqlCommand();//定义命令对象cmd
cmd.Connection=con;//选择连接对象
cmd.CommandType=CommandType.Text;//选择SQL语句方式,可选项
cmd.CommandTimeout=15;//执行SQL语句限时15s,本行可省略
cmd.CommandText=cmdStr;//设置SQL语句
con.Open();//打开连接对象
cmd.ExecuteNonQuery();//执行cmd对象的方法
con.Close();
3.编写程序利用DataReader对象读出StudentSys数据库中的tblSex数据表中所有的记录,读取的记录用Label控件格式化输出。
staticstringconStr="DataSource=(local)
;InitialCatalog=StudentSys
;IntegratedSecurity=True";
SqlConnectioncon=newSqlConnection(conStr);
SqlCommandcmd=newSqlCommand();
SqlDataReaderdrDept;
cmd.CommandText="Select*fromtblSex";
cmd.Connection=con;
con.Open();//第二步,通过Connection对象与数据库连接
drDept=cmd.ExecuteReader();//第三步,获取数据,存放于DataReader对象
while(drDept.Read())//第四步,使用DataReader对象中的数据
{
Label1.Text+=drDept[0].Value;
}
4.使用DataSet对象编写程序读取StudentSys数据库中的tblStudent数据表的前10条记录,读取的记录用Label控件格式化输出。
SqlDataAdapterdaStudent;
DataSetdsStudent=newDataSet();
//定义针对班级表的数据视图对象dvClass
daStudent=newSqlDataAdapter("select*fromtblStudent",con);
con.Open();
daStudent.Fill(dsStudent,"Student");
con.Close();
for(inti=0;iLabel1.Text+=dsStudent.Tables[0].Rows[i]cells[0].Text
+dsStudent.Tables[0].Rows[i]cells[0].Text
con.Close();
5.将数据库StudentSys中的tblClass数据表中前15条记录装入内存数据库DataSet对象中,生成一张“班级表”,为“班级表”增加一条新记录,删除“班级表”第5条记录,更新“班级表”第8条记录“Class_Num”字段的值为54,利用DataAdapter对象将对“班级表”的操作更新到tblClass表中。
参考P149例6-2和P156工作任务14。
6.利用CommandBuilder对象优化题5中从内存数据库写到物理数据库的代码。
参考P160工作任务15完成。
7.从数据库StudentSys的tblStudent数据表中筛选出姓“王”、“2002”入学的所有同学,编程读取筛选结果,并按班级编码由高到低显示出来。
(这道题超出教材了,去掉)
8.C#数据库应用程序结构由哪两类控件组成?
ADO.NET用于访问和操作数据的两个主要组件是.NET框架数据提供程序和作为客户端本地缓存的数据集DataSet。
9.简述使用ADO.NET对象访问数据库的步骤。
1)Connection对象访问。
2)Command对象和DataAdapter对象操作数据库。
3)DataReader对象和DataSet对象显示数据。
10.简述DataSet对象的结构。
在数据集DataSet对象中可存放多个数据表DataTable对象与关系DataRelation对象,而每个数据表DataTable对象又由数据列DataColumn对象、数据行DataRow对象、约束Constraint对象与视图DataView对象等组成。
11.用代码为DataGridView控件绑定数据集有几种方式?
举例说明每种方式的代码。
(这道题超出教材了,去掉)
习题7
1.如何设置让MonthCalendar控件在网格的底部显示今天的日期?
如何设置让MonthCalendar控件显示一周的第一天为星期一?
ShowToday属性设置为True时,在网格的底部显示今天的日期。
FirstDayOfWeek设置星期几为每周的第一天,默认星期日为一周的第一天。
2.通过什么属性获得DateTimePicker控件选定的日期?
如何设置DateTimePicker控件显示日期的范围?
Text属性返回控件的日期。
MaxDate确定显示日期的最大值,MinDate确定显示日期的最小值
3.DateTimePicker控件有几种显示日期的格式?
举例说明每种格式的含义。
有如下4种选择。
Long:
显示日期和星期
Short:
显示日期
Time:
显示时间
Custom:
自定义格式,必须将CustomFormat属性设置为适当的字符串
4.通过什么属性返回DateTime类型数据的年、月、日?
通过什么函数比较DateTime类型数据的大小?
DateTime类型数据如何加减日期?
(这道题超出教材了,去掉)
5.用什么方法向TreeView控