闭卷上机考请勿带任何资料进考场,包括手机、u盘考试时间:17周周二3、4节(12月23日上午10:00—11:30)考试地点:663和664请同学们务必准时到场!带好自己的校园卡和身份证每套考卷包括三道大题;一个是控制台编程,有关定义类和实现类的;(40)一个是有关控件及类的知识点的windows窗体程序;(30)一个是稍微大点的功能性的windows窗体程序。(30)以上课讲的课件、随堂练习及课后习题为主;考点不超出讲课范围;主要掌握C#的语法基础;尤其是输入输出的语法;掌握值类型、引用类型;掌握不同数据类型之间的转换;掌握选择语句、循环语句的使用;重点掌握C#数组的应用、数组与System.Array;掌握foreach语句的应用;掌握随机数的使用;掌握字符串类型的定义及常用属性及方法;重点掌握类的定义、对象的创建;掌握构造函数的使用;掌握C#中类的基本成员的声明;掌握类中方法的声明、调用及参数传递;掌握静态方法和实例方法的区别;掌握方法的重载与覆盖;掌握属性的定义和访问。掌握类的继承与多态;掌握base关键字及System.Object类的使用;掌握虚方法的使用;掌握抽象类与抽象方法的定义及使用;掌握操作符的重载方法;掌握结构与接口的定义及应用;掌握集合及索引器的使用;掌握异常处理的方法;理解委托与事件;重点掌握各个控件的使用;在考试范围之内的控件有:窗体、菜单、工具栏、右键菜单、textbox、richtextbox、label及Linklabel、button、RadioButton、CheckBox、ListBox、ComboBox、ListView、TreeView、PictureBox、ImageList、Timer、Group、Panel消息对话框;通用对话框:打开、保存、字体和颜色对话框;多文档界面。在使用文件和流的类时,先引入命名空间System.IO;掌握以下类的常用属性和方法:目录类:Directory、DirectoryInfo和Path类;文件类:File、FileInfo类;驱动器类:DriveInfo类;掌握文件流的读写操作;掌握类FileStream、StreamReader、StreamWriter、BinaryReader、BinaryWriter类的使用;一些小型程序见课件中的例题、随堂练习和课后习题;大一些的程序如下:类的定义及使用:商品销售类、学生教师类、形状类、点类、银行卡类等学生信息系统,包括系统的登录、学生信息的添加、修改、删除;选课信息的处理等等;计时器记事本简单资源管理器点类(派生出其他类):参考课件例题3.3、3.4、3.5、3.21商品销售类:参考课件例题3.15形状类(派生出其他形状):参考课件例题3.17、3.18、4.1、4.5、4.6学生类:参考第8周练习题银行卡类:参考第14周的课后题创建项目L1。把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类Cline,再派生出一个矩形类CRect。要求成员函数能求出任意两点间的距离,并求出由任意四个点组成的矩形的面积。编写完整的控制台程序。具体要求:(1)类CPoint中定义两个私有变量x,y、int类型及能够访问到它们的公有属性;(2)类CPoint中定义带有两个参数的构造函数及能够输出两个点的方法display();(3)类Cline派生自类CPoint,也有自己的构造函数及输出直线的方法Dista();(4)矩形类CRect派生自类Cline,有自己的构造函数,计算矩形的面积是Area()。创建一个windows窗体程序,利用textbox输入数组的大小,使用for语句进行对数组元素的赋值(-100~100间的随机整数),使用foreach语句计算数组中的最大值,利用只读textbox输出各元素及最大值。程序如图。L1:参考例题3.14,使用参数数组定义一个方法,用来求任意几个数的平均值。然后调用此方法输出结果。L1:参考例题3.18,新建窗体应用程序:定义基类Shape,利用它派生出Rectangle、Cirle类,已知有两个方法GetArea和GetPerim用来求形状的面积和周长,使用虚方法重载来完成程序。程序运行如下图所示。练习:L1、参考例4.8,重写操作符+、、,使之能对两个圆进行相加和比较大小,实际上对圆的半径进行比较和相加。L2、参考例题4.7,定义一个复数类,通过重载运算符:+、-、*,直接实现两个复数之间的各种运算。(两个复数相乘的计算公式为(a+bi)*(c+di)=(ac-bd)+(ad+bc)i)L1、定义接口Ishape和Ishapeshow,接口Ishape计算面积和周长,接口Ishapeshow定义方法Show()用来输出。定义类Rectangle和Circle继承自这两个接口,并实现接口中定义的面积和周长以及通过Show()方法输出结果。L2:创建控制台程序通过索引器计算:1到100间的整数与5的乘积。注意:定义一个类,类中有数组成员;通过设置索引器我们能够访问数组成员,并且能够进行运算。(1)创建C#控制台应用程序L1。(2)在程序中新建一个点类Point,为其定义两个double类型的私有字段成员x和y,分别表示点的横坐标和纵坐标。(3)为Point定义两个公有属性X、Y,分别用于封装对字段x和y的读写访问。(4)定义Point的带参数构造函数,在其中对字段x和y进行初始化。(5)为Point定义公有方法Move,用于按指定的水平距离和垂直距离移动坐标点。(6)写出equation方法对Point类进行两点是否相等进行判断,返回bool值。两个坐标点相等,是指它们的横坐标和纵坐标都相等。(7)在程序主方法中创建两个坐标点对象,判断它们是否相等;而后将第一个坐标点移动到第二个坐标点上,再判断它们是否相等。(8)声明两个点的坐标为(12,43)(14,55),其输出界面如图(1)创建C#控制台应用程序L2。(2)在程序中创建一个学生类Student,包含以下成员:定义私有字段:学号s_no,姓名s_name,班级s_class,成绩s_score。定义Student类的构造函数,初始化4个私有字段。定义四个公有属性S_no,S_name,S_class以及S_score,分别用于封装对各字段读写访问。(3)再定义一个StudentInfo类,用于对学生信息进行管理:该类包括下列成员:存放学生信息的Student[]类型的私有字段成员m_list;存储学生最大数量的私有字段m_maxcapacity;存储当前学生数量的私有字段m_length;带参数的构造函数,根据指定长度对各私有字段进行初始化。定义类的只读公有属性:Maxcapcity属性、Currentlength属性、Restlength属性,分别用于返回列表的最大容量、已存信息的容量、剩余的最大容量。定义一个索引函数,用于实现根据学生的学号对信息进行读、写访问。(无论读或写操作都要求先判断学生是否存在)。定义公有方法AddInfo(返回类型为bool),用于向学生信息列表中添加学生信息(需要判断添加操作能否进行,即列表是否已满)。定义一个公有方法DeleteInfo返回类型为bool),用于根据学生学号删除信息。(需要判断学生是否存在)(4)在外部类中进行StudentInfo类的各种功能进行测试,运行界面如图(1)创建C#控制台应用程序L3。(2)定义Maxer类,声明Max方法,该方法有重载形式,(3)在主函数Main()中调用时,会根据实参的数据类型(int、double、string)来自动调用相应的方法,求各种类型中的最大数。比如:输入13、45、-78、0就输出最大数为45;输入3.4、78.2、12.6就能输出最大数为78.2;输入”C#、”china”就能输出最长的字符串”china”,具体结果如图3所示。1、将窗体Form1.cs改名为frmLogin.cs,设计如下的登录界面,并为登录按钮设置响应事件处理为:如果用户名输入的是admin,并且密码是123,显示为“*”,则提示登录成功,并且打开新窗体frmmain,否则给出相应的出错提示信息。单击“取消”直接关闭窗口。当按下Ctrl+Shift+Alt+End键时,也关闭窗口。2、使用文本框、标签和按钮,设计一个数字同步转大写字母的程序,如图所示。单击“取消”,数据清零;单击“退出”,程序结束。1、编写如图所示的程序。2、设计一个简单的选修课程界面,从可选项中选择课程添加到课程列表中。如果可选项中没有提供所选的课程,允许用户直接键入新课程,并自动将键入的新课程添加到下拉列表中。3、ListView用法4、将“学生管理系统”的学生信息界面、选课信息界面补充完整。参考如图所示:TreeView用法示例,要求不能将新节点添加到叶子节点下。【例5.13】应用前面介绍的通用对话框设计一个打开图片的WinForm应用程序。包括打开、保存、设置文件名字体功能。打开图片后的界面如图5.34所示。运行程序,在文本框中输入“青花瓷”歌词并单击“文本保存”按钮,在弹出的“写文件”保存对话框中输入文件名“青花瓷”并单击“保存”按钮则保持了一个命名为“青花瓷”的文本文件,如图7.5所示。单击“文本读取”按钮,选择“青花瓷”文本文件,结果如图7.6所示。单击“二进制保存”按钮,命名为“青花瓷”并单击“保存”按钮则保持了一个命名为“青花瓷”的二进制文件,如图7.7所示。单击“二进制读取”按钮,选中“青花瓷.bin”,结果同图7.7相同。运行程序,输入文字如图5.27。主要功能是文件打开、保存、剪切、复制、粘贴、字体颜色、查找和替换。主要功能:打开本地计算机的驱动器,并在左视图中显示,选中某个文件夹,在右视图中显示子文件夹和文件。使用委托关联多个方法,使得当用户输入一个角度值时能同时返回该角度的Sin、Cos和Tan函数值。注意:a*PI/180可以转换为角度值。