文档视界 最新最全的文档下载
当前位置:文档视界 › C#程序设计实验指导书

C#程序设计实验指导书

C#程序设计实验指导书
C#程序设计实验指导书

吉林大学珠海学院计算机系

C#.NET 程序设计

实验指导书

陈红玲编著

2011年2月10日

目录

实验一熟悉Visual https://www.docsj.com/doc/a93267936.html,2005开发环境 (1)

实验二基本数据类型和控制台输入输出 (2)

实验三程序基本控制结构 (3)

实验四常用数据类型 (5)

实验五类和对象 (7)

实验六继承、多态和接口 (8)

实验七控件使用 (9)

实验八目录与文件管理 (11)

实验九图形图像处理 (12)

实验十数据库编程 (13)

实验十一开发Web应用程序* (14)

具体实验安排和要求 (15)

实验一熟悉Visual https://www.docsj.com/doc/a93267936.html,2005开发环境

【学时数:2学时】

一、实验目的

1.掌握Visual https://www.docsj.com/doc/a93267936.html,2005的基本操作方法。

2.掌握C#控制台应用程序、Windows应用程序的基本操作过程。

3.初步理解C#程序的结构和特点,掌握基本的编译和调试方法。

二、实验内容

1.设计一个简单的C#控制台应用程序,逐行显示自己的学号、姓名、专业信息。(参考教材P8页例1-1)

2.设计一个Windows应用程序,在窗体上显示三个标签框,标签框里的内容分别为自己的学号、姓名、专业。(参考教材P9页例1-2)

3. 阅读教材1.3节内容,录入P14页[例1-4]程序,运行并输出结果,了解C#程序的结构。尝试进行如下改动并思考:

(1)将Program.cs、HelloName.cs和HelloMe.cs文件中的命名空间依次改为ConsoleApplicationExample1、ConsoleApplicationExample2、ConsoleApplicationExample3。看看程序还能不能运行。

(2)程序应该如何修改,才能正常运行?

(3)namespace关键字声明命名空间有何作用?using关键字指明引用的命名空间有何作用?

实验二基本数据类型和控制台输入输出

【学时数:2学时】

一、实验目的

1.理解C#的值类型、常量和变量的概念。

2.理解数据类型的转换以及装箱和拆箱的区别。

3.掌握C#的常用运算符以及表达式的运算规则。

二、实验内容

1.设计一个控制台程序,从键盘输入一个人的名字,在显示器中显示对输入姓名的问候。比如输入:张三;输出:张三,欢迎你!

提示:输入字符串放入s中,将s+”,欢迎你!”,再输出。

2.设计一个控制台程序,从键盘输入两个整数,输出这两个数的和、差、积、商(商要求为数学商,非整除商)。

提示:使用语句int.Parse(Console.ReadLine())获得用户输入的两个数。

3.阅读教材2.5节内容,输入下面的语句,观察输出格式:

Console.WriteLine("{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);

Console.WriteLine("{0:####.###}", 123.640);

Console.WriteLine("{0:####.##}", 0.0100);

Console.WriteLine("{0:####.##}", 123.648);

Console.WriteLine("{0}--{0:p}good", 12.34F);

Console.WriteLine("{0}--{0:00000}good", 456);

Console.Write("{0,-4}{1,-4}{2,-4}",1,2,3);

DateTime dt = new DateTime(2011,3, 11);

string s=string.Format("{0:yyyy年MM月dd日}",dt);

Console.WriteLine(s);

Console.ReadLine();

实验三程序基本控制结构(一)

【学时数:2学时】

一、实验目的

1.掌握C#的两种分支语句(if、switch)的使用方法。

2.掌握C#的4种循环语句(while、do/while、for、foreach)的使用方法。

二、实验内容

1.编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:>=90;良:>=80;中:>=70;及格:>=60;不及格:<60)

2.编写控制台程序,定义两个整数,定义一个字符变量,当这个字符变量分别是‘+’、‘-’、‘*’、‘/’时,用switch语句输出这两个数的运算结果。

3.编写控制台程序,输出1-5的平方值,要求分别用for语句、while语句、do-while语句实现。

4. 编写控制台程序,定义一个字符串变量,从键盘往其中输入一行字符串,使用foreach语句逐行输出其中的每一个字符。

提示: foreach (char c in s)……输出其中的每个字符。

思考题:

1. 编写控制台程序,要求完成下列功能:

(1)接收一个整数n.

(2)如果接收的值n为正数,输出1~n的全部整数。并转到(1)继续接收下一个整数。

(3)如果接收的值为负值,用break或者return退出程序。

2. 编写控制台程序,输入两个整数将其整除,并使用try-catch语句捕获除数为0的异常,并输出异常消息。

实验三程序基本控制结构(二)

【学时数:2学时】

一、实验目的

1.掌握C#的两种分支语句(if、switch)的使用方法。

2.掌握C#的4种循环语句(while、do/while、for、foreach)的使用方法。

二、实验内容

1.编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。

2.编写一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如,6是完数,因为6=1+2+3。

3.输入一个字符串,用foreach语句计算输入的字符串长度,根据此长度创建一个字符数组,将字符串中的每个字符转存到字符数组的每个元素中,并输出。

4.定义整型一维数组,从键盘输入数组元素数值后,用循环语句显示所有元素的值。(要求:根据用户输入的数据的个数动态创建数组的大小)

思考题:

定义一个矩形二维数组,用于存储某班n个同学的m门课的成绩,从键盘依次输入n*m个成绩,统计每个同学的平均分,按从高到低分的顺序输出每个人的平均分。

实验四常用数据类型(一)

【学时数:2学时】

一、实验目的

1.掌握枚举、日期与时间数据类型的使用。

2.掌握引用类型中的字符串、数组和泛型集合的操作。

二、实验内容

1.编写一个控制台程序,接收一个长度大于3的字符串,完成下列功能。(参考教材3.1节)

(1)输出字符串的长度。

(2)输出字符串中第一个出现字母a的位置。

(3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。

(4)将字符串“hello”替换为“me”,输出新字符串。

(5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。

2.编写一个控制台程序,连续输入一串数字,各数字以逗号隔开,然后按从小到大和从大到小的顺序排列输出。

提示:首先利用String.Split()方法将输入的数字字符串中的数字分离出来,并保存到数组中,然后再对数组中的数字进行排序。(参考教材3.1和3.2节中的Split( )方法、Sort()方法和Reverse( )方法的使用)3.编写一个控制台程序,输入一个日期,输出这一天是星期几。(参考教材3.3和3.6节)

提示:定义一个枚举和日期型变量,利用日期类型的DayOfWeek属性获得该日期是一周的第几天,再用枚举值求得是星期几。注意DayOfWeek属性也是返回星期几的枚举常量,但是英文的,现在要求输出中文的星期几。

4.编写一个控制台程序,要求定义一个列表,用该列表接收用户输的五个姓名,判断用户输入的人名里有没有“张三”,如果有则将其删除,最后再把列表中的名字依次输出。(参考教材3.5节)

实验四常用数据类型(二)

【学时数:2学时】

一、实验目的

1.掌握枚举、日期与时间数据类型和随机数的使用。

2.掌握引用类型中的字符串、数组和泛型集合的操作。

二、实验内容

1.从键盘输入10个整数,输出10个数的最大值、最小值、平均值和总和。(要求分别用泛型列表和数组实现)

2.从键盘输入你的生日,输出现在距离你的生日还多少日,以及生日那天是星期几;如果你的生日已过,给出相应提示。

3.从键盘输入你认识的五个同学的学号和姓名,将这五个同学的这两项信息按照学号从小到大排序输出。

提示:用SortedList泛型列表实现。

4.编写猜数字的小游戏:让系统产生一个两位的随机数,由用户去猜,根据用户所猜的数的大小给出相应的提示。如果用户输入的数太小了,输出“你输入的数太小,请重输:”;如果用户输入的数太大了,输出“你输入的数太大了,请重输”;如果用户输入的正好是系统产生的那个数,则输出“输入正确,恭喜你!”。

思考题:

编写一个更复杂的猜数字游戏:让系统产生三个一位数,由用户去猜这三个数分别是什么,根据用户所猜中的数字的个数,分别给出提示。比如系统产生的三个数分别是:6 3 7;如果用户猜的是1 2 3,则提示“你一个都没有猜对”;如果用户猜的是6 2 3,则提示你猜对了1个数,以此类推。。。。。。如果用户把三个数都猜出来了而且位置也正确,则给出“你的答案完全正确!”

实验五类和对象

【学时数:2学时】

一、实验目的

1.熟悉C#类、对象、方法的概念与用法;

2.掌握编写简单的面向对象的应用程序;

3.熟悉并掌握C#构造方法及其重载方法的用法;

4.熟悉并掌握类和成员的访问修饰符的用法。

二、实验内容

1.阅读教材P66页[例4-1]程序,了解C#中构造函数的重载和创建对象的方法。

2.编程实现一个图书类book,增加有参和无参数构造函数,同时具有如下功能:记录和访问图书信息,包括书名,作者,价格。用两种不同的构造函数创建两本书,使这两本书都具有各自的相关信息,最后将其信息输出。

3.编写一个矩形类(Rect)与一个圆类(Circle),分别通过构造方法对一个矩形对象(rect1)与一个圆对象(circle1)进行初始化后,求出矩形与圆的面积。同时具有如下功能:可以设置和读取矩形的边长和圆的半径,但只能读取它们的面积,不能修改面积。

4.阅读教材4.3.2节内容,调试[例4-6],[例4-7]程序,掌握C#中传值和传引用类型参数的使用方法。

5.编程实现教材第四章课后习题的1-3题。

思考题:

编写一个控制台程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名、语文、数学和英语3门课程的期末考试成绩,要求:(1)能查询每个学生的总成绩;

(2)能显示单科成绩最高分和该科不及格的学生名单;

(3)能统计全班学生的平均成绩

提示:

(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩和英语成绩)和属性(总成绩)等;

(2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等;

(3)实现在控制台输入学生的名字即输出该生的总成绩功能,输入某班和某科的名称即输出该班该科最高分和不及格学生名字,以及输入某班

的名字即输出该班的平均成绩。

实验六继承、多态和接口

【学时数:4学时】

一、实验目的

1.理解类的继承性与多态性,掌握其应用方法。

2.理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。

二、实验内容

1.编写一个控制台程序,在该程序中构造一个Person基本类,再分别构造Student和Teacher派生类,要求具有不同的特征和行为,能通过静态成员自动记录由不同派生类创建的对象的人数。

2.定义一个抽象类Figure,该类中包含一个抽象方法Area()用于求图形的面积,从该抽象类派生矩形类Square和圆类Circle,实现用Area()方法显示矩形和圆的面积。

3. 编写一个控制台应用程序,完成下列功能,并回答提出的问题。教材P101页题3。参考教材87页5.1.5节内容。

(1)创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。

(2)从A继承一个名为C的新类,并在C内创建一个成员B。不要为C创建构造函数。

(3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。

(4)如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?

4. 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。教材P101页题4。

(1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。

(2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。

(3)在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。

实验七控件使用

【学时数:6学时】

一、实验目的

1.掌握窗体的常用属性的使用。

2. 掌握文本操作类控件中的标签控件和文本控件的使用。

3.掌握选择操作类控件中的复选框、单选框、列表框、组合框的使用。

二、实验内容

1.多窗体练习

实现如图所示功能。输入用户名后点击登录按钮,弹出右图消息框。要求在消息框中显示用户输入的用户名和“欢迎你”语句。点击取消按钮结束程序运行。

2.文本框,标签和按钮练习

实现如图所示功能。点击红色按钮,将文本框中的文字颜色变成红色,同时把该按钮变成不可用(提示:修改按钮的Enabled属性为false使其不可用);点击黑色按钮,将文本框中的文字颜色变成黑色,同时把该按钮变成不可用;点击“文本内容复制到标签”将文本框内容复制到下方标签。

3.定时器练习

在窗体中显示字符,每隔1秒字符移动一定距离,先右移,移到右边界,再左移,移到左边界,又一次右移,如此循环。(提示:修改标签的Left属性值)

4.复选框、单选框、组合框练习

实现如图所示的功能。要求对相应控件做了设置之后,马上见到对应的字体效果。清除按钮用来清除文本框中的文字内容,退出按钮用来退出程序。

5.列表框练习

实现程序如下功能:在文本框中输入水果,点击添加按钮将输入的水果添加到列表框中,如果列表框中已存在此种水果则不添加;在列表框中选中某些水果后点击删除,删除这些果;点击清除按钮将列表框中的所有水果都清除。

6.菜单栏、工具栏

实现记事本中的剪切、复制、粘贴和字体菜单命令及相应的工具栏按钮。

实验八目录与文件管理

【学时数:2学时】

一、实验目的

1.掌握有关流的读/写操作类及其使用方法。

2.掌握FolderBrowserDialog、OpenFileDialog、SaveFiledialog等控件的作用。

二、实验内容

实现类似记事本的文本编辑器中的文件菜单下新建、打开、保存的功能。

实验九图形图像处理

【学时数:2学时】

一、实验目的

1.掌握Graphics类的使用。

2.掌握绘制基本图形以及填充图形的方法。

3. 掌握对图像的拉伸、平移、旋转和缩放的处理。

二、实验内容

利用所学知识,模拟画笔程序的部分功能。

实验十数据库编程

【学时数:4学时】

一、实验目的

1.掌握使用Connection和Command对象对数据库进行操作。

2.掌握DataSet、DataAdapter、DataReader对象的作用和使用方法。

3. 掌握DataGridView控件的使用方法。

二、实验内容

编程实现图书借阅管理系统。

实验十一开发Web应用程序*

【学时数:2学时】

一、实验目的

1.了解Web应用程序的架构。

2.掌握https://www.docsj.com/doc/a93267936.html, Web服务器控件的使用。

3. 掌握开发一个简单的Web应用程序的开发步骤和方法。

二、实验内容

创建一个简单的网上书店。

具体实验安排和要求

1.实验成绩评定办法

实验成绩占本课程总成绩的20%。

实验成绩评分办法:实验出勤率20%+实验提交作业30%+学期大作业50%。

抽查两次出勤率,每次2分;抽查三次作业,每次2分,(提交作业章节:第2章、第4章、第6章);学期布置一个大作业,期末检查,根据实现的完整度给分,满分10分。

2.实验具体安排

每次实验课要求学生对书中的关键例题进行验证,同时要完成本次实验内容中的2-4题。

3.学期大作业

实现以下四个中的一个,每生一题,也可以交其它类似程序。

A:实现一个简易的计算器。

B:实现类似记事本的文档编辑器。

C:模拟画笔程序的大部分功能。

D:实现图书借阅系统。

4.说明

实验十一根据课程内容实施情况作相应调整是否做,如果课时不够则略去不做。

大作业的成绩可以放在期末最后一周统一验收,也可以学生完成后单独验收。

本门课程不单独安排期末上机考试,期末由所带实验的老师提交一份实验成绩成绩单、三次作业源代码、学期大作业源代码给主讲老师即可。

相关文档