1、C#程序设计实验指导书吉林大学珠海学院计算机系 C#.NET 程序设计实验指导书陈红玲编著2011年2月10日目录实验一 熟悉Visual Studio.NET2008开发环境 1实验二 基本数据类型和控制台输入输出 2实验三程序基本控制结构 3实验四 常用数据类型一 4实验五 常用数据类型二 5实验六类和对象 6实验七 继承、多态和接口 7实验八 委托、事件、序列化 8实验九 控件使用 9实验十 目录与文件管理 11实验十一 图形图像处理 12实验十二 数据库编程 13实验十三 开发eb应用程序* 14具体实验安排和要求 15实验一 熟悉Visual Studio.NET2008开发环境【学
2、时数:2学时】一、实验目的1掌握Visual Studio.NET2008的基本操作方法。2掌握#控制台应用程序、Windows应用程序的基本操作过程。3初步理解#程序的结构和特点,掌握基本的编译和调试方法。二、实验内容1设计一个简单的#控制台应用程序,逐行显示自己的学号、姓名、专业信息。(参考教材P页例1-1)2设计一个Windows应用程序,在窗体上显示三个标签框,标签框里的内容分别为自己的学号、姓名、专业。(参考教材P9页例1-)3. 阅读教材1.3节内容,录入P14页例1-4程序,运行并输出结果,了解#程序的结构。尝试进行如下改动并思考:(1)将Program.cs、HelloName
3、.cs和HelloMe.cs文件中的命名空间依次改为ConsoleApplicationExample1、ConsoleApplicationExample2、ConsoleApplicationExample3。看看程序还能不能运行。(2)程序应该如何修改,才能正常运行?(3)namespace关键字声明命名空间有何作用?using关键字指明引用的命名空间有何作用?4.练习掌握C#编码规范(1)类名、方法名和属性名使用Pascal命名法(2)变量名、对象名、参数名使用Camel命名法实验二 基本数据类型和控制台输入输出【学时数:学时】一、实验目的1理解#的值类型、常量和变量的概念。2理解数据
4、类型的转换以及装箱和拆箱的区别。3掌握#的常用运算符以及表达式的运算规则。二、实验内容1设计一个控制台程序,从键盘输入一个人的名字,在显示器中显示对输入姓名的问候。比如输入:张三;输出:张三,欢迎你!提示:输入字符串放入s中,将s+” ,欢迎你!”,再输出。2设计一个控制台程序,从键盘输入两个整数,输出这两个数的和、差、积、商(商要求为数学商,非整除商)。提示:使用语句int.Parse(Console.ReadLine()或Convert.ToInt32(Console.ReadLine()获得用户输入的两个数。3阅读教材2.5节内容,输入下面的语句,观察输出格式:Console.Write
5、Line(0:D,10); Console.WriteLine(0:D5, 10); Console.WriteLine(0:F, 10); Console.WriteLine(0:F4, 10); Console.WriteLine(0:00000, 123); Console.WriteLine(0:000, 12345); Console.WriteLine(0:0000, 123.64); Console.WriteLine(0:00.00, 123.6484); Console.WriteLine(0:#, 123); Console.WriteLine(0:#, 123.64);
6、Console.WriteLine(0:#.#, 123.640); Console.WriteLine(0:#.#, 0.0100); Console.WriteLine(0:#.#, 123.648); Console.WriteLine(0-0:pgood, 12.34F); Console.WriteLine(0-0:00000good, 456);Console.Write(0,-41,-42,-4,1,2,3);DateTime dt = new DateTime(2011,3, 11); string s=string.Format(0:yyyy年MM月dd日,dt); Cons
7、ole.WriteLine(s); Console.ReadLine();实验三程序基本控制结构【学时数:2学时】一、实验目的1掌握#的两种分支语句(if、switch)的使用方法。2掌握#的种循环语句(while、do/while、for、foreach)的使用方法。二、实验内容1编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:=90;良:=80;中:=70;及格:=60;不及格:60)2编写控制台程序,定义两个整数,定义一个字符变量,当这个字符变量分别是+、-、*、/时,用switch语句输出这两个数的运算结果。3.编写控制台程序,输出1-5的平方值,要求分别用for语句、whi
8、le语句、do-while语句实现。4. 编写控制台程序,定义一个字符串变量,从键盘往其中输入一行字符串,使用foreach语句逐行输出其中的每一个字符。提示: foreach (char c in s)输出其中的每个字符。思考题:1. 编写控制台程序,要求完成下列功能:(1)接收一个整数n.(2)如果接收的值n为正数,输出1n的全部整数。并转到(1)继续接收下一个整数。(3)如果接收的值为负值,用break或者return退出程序。2. 编写控制台程序,输入两个整数将其整除,并使用try-catch语句捕获除数为0的异常,并输出异常消息。实验四 常用数据类型一【学时数:2学时】一、实验目的1
9、掌握字符串、数组和枚举的使用。二、实验内容1编写一个控制台程序,接收一个长度大于的字符串,完成下列功能。(参考教材3.1节)(1)输出字符串的长度。(2)输出字符串中第一个出现字母a的位置。(3)在字符串的第个字符后面插入子串“hello”,输出新字符串。(4)将字符串“hello”替换为“me”,输出新字符串。(5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。2编写一个控制台程序,连续输入一串数字,各数字以逗号隔开,然后按从小到大和从大到小的顺序排列输出。提示:首先利用String.Split()方法将输入的数字字符串中的数字分离出来,并保存到数组中,然后再对数组中的数字进行排
10、序。(参考教材3.1和3.2节中的Split( )方法、Sort()方法和Reverse( )方法的使用)核心代码: string s = Console.ReadLine(); string sn=s.Split(,); int number=new intsn.Length; for ( ) numberi = Convert.ToInt32(sni); Array.Sort(number); 3编写一个控制台程序,输入一个日期,输出这一天是星期几。(参考教材3.3和3.6节)提示:定义一个枚举和日期型变量,利用日期类型的DayOfWeek属性获得该日期是一周的第几天,再用枚举值求得是星期
11、几。核心代码:enum WeekDay 星期天,星期一,星期二,星期三,星期四,星期五,星期六;/s的类型为string,其值是从键盘上输入的一个日期,注意输入正确的格式,比如:2011-02-10 DateTime d = Convert.ToDateTime(s); WeekDay wd =(WeekDay)d.DayOfWeek;实验五 常用数据类型二【学时数:2学时】一、实验目的1掌握日期与时间、数学运算、随机数的使用。2掌握泛型和泛型集合的操作。二、实验内容1.设计并实现一个类,具有以下功能,并测试其所有功能(1)该类用来保存和处理学生的手机蓝牙信息(2)注册功能,即添加一条新的记录
12、到对象中。一条记录包括学号和蓝牙地址,均以字符串形式提供。学号8位,如“04110101”,蓝牙地址12位,如“AE01BE02CE03”。(3)查找功能,给定一个蓝牙地址,查找该蓝牙地址是否已注册。(4)查找功能,给定一个蓝牙地址,找出对应的学号。2.设计一个函数,用来判断给定的时间是否是上某一节课的时间。函数原型:bool IsTimeForCourse(DateTime dt, string course)第一个参数为给定的日期和时间,比如现在的时间:DateTime.Now第二个参数为课表中的字符串,格式如“周二第5,6节第1-8周”。如果是正确的上课时间,返回true,否则,返回fa
13、lse提示:1)需要同时满足三个条件,周次,周几,上课时间;2)上课时间的对应表如下,建议使用Dictionary保存。(第1,2节, 8:20-10:00);(第3,4节, 10:20-12:00);(第5,6节, 14:00-15:40);(第7,8节, 16:00-17:40);(第9,10节, 19:00-20:40);3)主要用到字符串类和日期时间类4)9月3日是本学期第一周的周一,用于计算当前周次实验六类和对象【学时数:2学时】一、实验目的1熟悉C#类、对象、方法的概念与用法;2掌握编写简单的面向对象的应用程序;3熟悉并掌握C#构造方法及其重载方法的用法;4熟悉并掌握类和成员的访问
14、修饰符的用法。二、实验内容1阅读教材P66页例4-1程序,了解#中构造函数的重载和创建对象的方法。2编程实现一个图书类book,增加有参和无参数构造函数,同时具有如下功能:记录和访问图书信息,包括书名,作者,价格。用两种不同的构造函数创建两本书,使这两本书都具有各自的相关信息,最后将其信息输出。3. 编写一个矩形类(Rect)与一个圆类(Circle),分别通过构造方法对一个矩形对象(rect1)与一个圆对象(circle1)进行初始化后,求出矩形与圆的面积。同时具有如下功能:可以设置和读取矩形的边长和圆的半径,但只能读取它们的面积,不能修改面积。4.阅读教材4.3.2节内容,调试例4-6,例
15、4-7程序,掌握#中传值和传引用类型参数的使用方法。思考题:编写一个控制台程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名、语文、数学和英语门课程的期末考试成绩,要求:(1) 能查询每个学生的总成绩;(2) 能显示单科成绩最高分和该科不及格的学生名单;(3) 能统计全班学生的平均成绩提示:(1) 定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩和英语成绩)和属性(总成绩)等;(2) 定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等;(3) 实现在控制台输入学生的名字即输出该生的
16、总成绩功能,输入某班和某科的名称即输出该班该科最高分和不及格学生名字,以及输入某班的名字即输出该班的平均成绩。实验七 继承、多态和接口【学时数:2学时】一、实验目的1理解类的继承性与多态性,掌握其应用方法。2理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。二、实验内容1. 编写一个控制台应用程序,完成下列功能,并回答提出的问题。教材P101页题3。(1)创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。(2)从A继承一个名为C的新类,并在C内创建一个成员B。不要为C创建构造函数。(3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。(4)如果
17、在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?2. 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。教材P101页题4。(1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。(2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。(3)在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。3.定义一个抽象类Figure,该类中包含一个抽象方法Area()用于求图形的面积,从该抽象类派生矩形类Square和圆类
18、Circle,实现用Area()方法显示矩形和圆的面积。在主函数中创建两个扩充类的对象,并计算各自的面积。4.运行例5-6的程序,理解new, override, virtual的作用,修改并试验程序以验证自己的理解。实验八 委托、事件、序列化【学时数:2学时】一、实验目的1理解委托的概念,掌握其定义及使用方法。2理解事件的概念,掌握其定义及使用方法。3. 理解序列化和反序列化的概念,掌握其应用。二、实验内容1.运行例5-7,然后修改接口的实现方式为显式方式,并尝试是否可以通过扩充类的实例来调用接口,说明原因。2.运行例5-9,然后修改委托的参数为两个参数,并完成相对应的其他修改,运行并分析结
19、果。3.运行例5-10,然后修改事件为接受一个参数的事件,并完成相对应的其他修改,运行并分析结果。4.运行例5-11,然后为要序列化的类增加一个字段,运行并分析结果。5.运行例5-12,然后为要序列化的类增加一个字段,运行并分析结果。实验九 控件使用【学时数:6学时】一、实验目的1掌握窗体的常用属性的使用。2. 掌握文本操作类控件中的标签控件和文本控件的使用。3掌握选择操作类控件中的复选框、单选框、列表框、组合框的使用。二、实验内容1.多窗体练习实现如图所示功能。输入用户名后点击登录按钮,弹出右图消息框。要求在消息框中显示用户输入的用户名和“欢迎你”语句。点击取消按钮结束程序运行。2.文本框,
20、标签和按钮练习实现如图所示功能。点击红色按钮,将文本框中的文字颜色变成红色,同时把该按钮变成不可用(提示:修改按钮的Enabled属性为false使其不可用);点击黑色按钮,将文本框中的文字颜色变成黑色,同时把该按钮变成不可用;点击“文本内容复制到标签”将文本框内容复制到下方标签。3定时器练习在窗体中显示字符,每隔1秒字符移动一定距离,先右移,移到右边界,再左移,移到左边界,又一次右移,如此循环。(提示:修改标签的Left属性值) 4复选框、单选框、组合框练习实现如图所示的功能。要求对相应控件做了设置之后,马上见到对应的字体效果。清除按钮用来清除文本框中的文字内容,退出按钮用来退出程序。5列表
21、框练习实现程序如下功能:在文本框中输入水果,点击添加按钮将输入的水果添加到列表框中,如果列表框中已存在此种水果则不添加;在列表框中选中某些水果后点击删除,删除这些果;点击清除按钮将列表框中的所有水果都清除。6.简单记事本。使用菜单方式实现字体选择和文字颜色的选择;使用工具栏方式实现字体选择和文字颜色的选择;使用状态栏显示当前输入的文字的个数信息。7.简单图片查看器。要求使用PictureBox和ImageList控件。实验十 目录与文件管理【学时数:2学时】一、实验目的1掌握有关流的读/写操作类及其使用方法。2掌握FolderBrowserDialog、OpenFileDialog、SaveF
22、iledialog等控件的作用。二、实验内容实现类似记事本的文本编辑器中的文件菜单下新建、打开、保存的功能。实验十一 图形图像处理【学时数:2学时】一、实验目的1掌握Graphics类的使用。2掌握绘制基本图形以及填充图形的方法。3. 掌握对图像的拉伸、平移、旋转和缩放的处理。二、实验内容利用所学知识,模拟画笔程序的部分功能。实验十二 数据库编程【学时数:4学时】一、实验目的1掌握使用Connection和Command对象对数据库进行操作。2掌握DataSet、DataAdapter、DataReader对象的作用和使用方法。3. 掌握DataGridView控件的使用方法。二、实验内容编程
23、实现图书借阅管理系统。实验十三 开发eb应用程序*【学时数:2学时】一、实验目的1了解eb应用程序的架构。2掌握ASP.NET Web服务器控件的使用。3. 掌握开发一个简单的Web应用程序的开发步骤和方法。二、实验内容创建一个简单的网上书店。具体实验安排和要求1实验成绩评定办法实验成绩占本课程总成绩的20%。实验成绩评分办法:实验出勤率20%实验提交作业30%学期大作业50%。抽查两次出勤率,每次2分;抽查三次作业,每次2分,(提交作业章节:第2章、第4章、第6章);学期布置一个大作业,期末检查,根据实现的完整度给分,满分10分。2实验具体安排每次实验课要求学生对书中的关键例题进行验证,同时要完成本次实验内容中的24题。3学期大作业 实现以下四个中的一个,每生一题,也可以交其它类似程序。A:实现一个简易的计算器。B:实现类似记事本的文档编辑器。C:模拟画笔程序的大部分功能。D:实现图书借阅系统。4说明实验十一根据课程内容实施情况作相应调整是否做,如果课时不够则略去不做。大作业的成绩可以放在期末最后一周统一验收,也可以学生完成后单独验收。本门课程不单独安排期末上机考试,期末由所带实验的老师提交一份实验成绩成绩单、三次作业源代码、学期大作业源代码给主讲老师即可。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1