当前位置:文档之家› C#练习

C#练习

[程序功能]
本程序实现如下功能:用户输入一个正整数n,程序打印出该整数的所有约数(不包括1和该整数本身)。约数的求法是:若n为偶数,则找出从2到n/2之间能被n整除的所有正整数;若n为奇数,则找出从3到(n-1)/2之间能被n整除的所有整数。
【操作要求】
1)新建项目:在Visual https://www.doczj.com/doc/a317344896.html,中,新建一个Visual C#控制台应用程序项目,名称设置为Text1_2
2)定义变量:在程序主方法中定义整型变量n和i。
3)使用条件和循环语句求约数:
a)从控制台输入一行文本“请输入一个正整数:";
b)由控制台读入一行文本,并转换为整数赋值给n;
c)判断正整数n的奇偶性,以i为循环变量,使用for循环语句逐行打印出n的所有约数;
d)输出文本“按回车键结束”,读取回车键后结束程序。
4)程序设计完成之后进行编译,生成项目的EXE可执行文件。










【程序功能】
本程序实现若下功能:定义学生类Student,在类中定义字段、属性和虚拟方法;由基类Student创建派生类Undergraduate和Graduate,在派生类中实现方法重载;在程序中实例化类的对象并且调用类的方法。
【操作要求】
1)定义基类Student:为项目添加公有类Student,保存在文件Student.cs中。
2)为基类Student添加下列字段、属性和方法:
a)私有字段m_grade,代表年级,数据类型为int;
b)私有字段m_name,代表姓名,数据类型为string;
c)公有属性Name,用于获取和设置m_name字段,包含get访问器和set访问器;
d)公有属性Grade,用于获取和设置m_grade字段,包含get访问器和set访问器,在类的构造函数中设置初始值为1;
e)虚拟方法Introduce(),用于介绍学生,方法返回一个字符串“This is a student of grade x",其中x表示属性Grade的值。
3)定义派生类Undergraduate和Graduate,在其中重写基类的构造函数和虚拟方法:
a)从基类Student中派生出公有类Undergraduate和Graduate,任然保存在文件Student.cs中;
b)在类Undergraduate重写基类Student的虚拟方法Introduce:
I)若属性Grade的值在1~4之间,方法返回一个字符串“This is a student of grade x",其中x表示属性Grade的值;
II)否则。方法返回一个字符窜”No such grade“.
4)在程序方法中实例化类的对象,调用方法输出介绍学生的字符串:
a)实例化Student的一个对象std,掉用类的方Introduce(),并输出方法返回的字符串;
b)实例化Undergraduate的一个对象ugd,设置属性Grade的值为4,调用类的方法Introduce(),并输出方法返回的字符串;
c)实例化Grade的一个对象gd,设置属性Grade的值为4,调用类的方法Introduce(),并输出方法返回的字符串;
d)输出文本”按回车键结束“,读取回车键后结束。








【程序功能】
本程序实现

如下功能:在Windows窗体中显示主菜单、工具栏和状态栏;为菜单创建快捷键;通过主菜单和工具按钮改变窗体背景颜色,并在状态面板中显示颜色信息。
【操作要求】
新建并保存项目:在Visual Studio .NET中,新建一个Visual C# Windows应用程序项目,名称设置为Test3_2,保存路径为c:\ 。项目结构如【样张1】所示。
1)按【样张2】设计Form1窗体,按【样张3】设计主菜单:
a)向窗体添加主菜单,并向主菜单中添加一个菜单项和三个子菜单项,为各个菜单项创建快捷键;
b)向窗体添加工具栏,并向工具栏添加三个工具按钮;
c)向窗体添加状态栏,并向状态栏添加一个状态面板;
d)各个控件的Name及Text属性按【样张4】进行设置,设置窗体Form1的Size属性为(300,270)、字体为五号常规宋体,控件statusBar1显示状态面板,其余保持默认设置。
2)编写菜单的事件处理代码,实现窗体背景色变化的功能,并在状态栏中显示颜色信息:
a)为菜单项menuItem2添加鼠标单击事件,在处理代码中改变窗体的背景色为红色Color.Red,并在状态面板中显示"红色";









【程序功能】
本程序实现如下功能:在Windows窗体中显示水平滚动条控件;当改变滚动条控件数值的时候,窗体的背景颜色发生相应的变化。
【操作要求】
新建并保存项目:在Visual Studio .NET中,新建一个Visual C# Windows应用程序项目,名称设置为Test4_2,保存路径为c:\ 。项目结构如【样张1】所示。
1)设计Form1窗体:在窗体中添加三个Label控件和三个HScrollBar控件,设计的窗体及控件的Tab键顺序如【样张2】所示,各个控件的Name和Text属性按【样张3】进行设置。
2)在设计时设置控件的属性:设置控件hScrollBar1、hScrollBar2和hScrollBar3值的变化范围均为0~255之间,其余保持默认设置。
3)在运行时改变控件的属性:为控件hScrollBar1、hScrollBar2和hScrollBar3添加数值改变事件,在处理代码中改变窗体的背景颜色。窗体的背景颜色随控件hScrollBar1、hScrollBar2和hScrollBar3的数值变化而变化:
this.BackColor = Color.FromArgb(hScrollBar1.Value, hScrollBar2.Value, hScrollBar3.Value);
4)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体,可通过改变各个滚动条控件的数值来改变窗体的背景颜色。例如,当控件hScrollBar1、hScrollBar2和hScrollBar3均位于最大值时,窗体背景颜色为白色;当控件hScrollBar2位于最大值而控件hScrollBar1和hScrollBar3位于最小值时,窗体背景颜色为绿色,如【样张4】所示。
b)为菜单项menuItem3添加鼠标单击事件,在处理代码中改变窗体的背景色为绿色Color.Green,并在状态面板中显示"

绿色";
c)为菜单项menuItem4添加鼠标单击事件,在处理代码中改变窗体的背景色为蓝色Color.Blue,并在状态面板中显示"蓝色";
3)编写工具栏的事件处理代码,实现与菜单相同的功能:
a)若工具按钮toolBarButton1被按下,则实现与单击menuItem2相同的功能;
b)若工具按钮toolBarButton2被按下,则实现与单击menuItem3相同的功能;
c)若工具按钮toolBarButton3被按下,则实现与单击menuItem4相同的功能。
4)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体,选择不同的菜单项或单击不同的工具按钮,窗体的背景颜色发生相应的变化,并在状态面板中给出颜色信息,如【样张5】所示。









程序功能】
本程序实现如下功能:将窗体显示为模式对话框和非模式对话框;使用Windows通用对话框FontDialog改变窗体字体。
【操作要求】
新建并保存项目:在Visual Studio .NET中,新建一个Visual C# Windows应用程序项目,名称设置为Test5_2,保存路径为c:\ 。项目结构如【样张1】所示。
添加控件并设置属性:在Form1窗体中添加两个按钮控件,设计的窗体如【样张2】所示,控件的Name及Text属性按【样张3】进行设置。
1)按【样张4】添加新窗体及其控件:
a)为项目添加一个新的Windows窗体Form2,设置窗体的字体为二号常规宋体;
b)在窗体中添加一个按钮控件button1,设置Text属性为"字体",调整按钮大小至能够显示文字;
c)在窗体中添加一个文本控件label1,设置Text属性为"Hello",AutoSize属性为True。
2)显示模式和非模式对话框:
a)为窗体Form1按钮button1添加鼠标单击事件,在处理代码中以模式对话框显示窗体Form2;
b)为窗体Form1按钮button2添加鼠标单击事件,在处理代码中以非模式对话框显示窗体Form2。
3)使用字体对话框:为Form2的按钮button1添加鼠标单击事件,在处理代码中实例化Windows通用对话框FontDialog的一个对象dlg,并且显示该字体对话框,字体对话框的初始字体与窗体Form2的字体一致;当在字体对话框中选择字体并按下"确定"按钮后,所选的字体成为窗体Form2的字体。
4)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体Form1,当按下"模式对话框"按钮时,显示窗体Form2,并且总在最前面,无法切换到窗体Form1;当按下"非模式对话框"按钮时,显示窗体Form2,并且可以在窗体Form1和Form2之间来回切换。
在窗体Form2中,按下"字体"按钮,打开"字体"对话框,其中的字体为窗体Form2的字体,如【样张5】所示;在"字体"对话框中选择字体并按下"确定"按钮后,窗体Form2的字体发生相应的变

化,如【样张6】所示。









【程序功能】
本程序实现如下功能:在Windows窗体中绘制文本和一组平行线;打印文本和平行线,并实现打印预览和页面设置。
【操作要求】
在Visual Studio .NET中打开位于c:\ 下Test6_2子目录中的Test6_2项目。该项目是一个Windows应用程序项目,窗体如【样张1】所示,控件的Name及Text属性如【样张2】所述。
1)绘制文本:
为窗体添加绘制事件,在处理代码中,以坐标(10,20)为起点,绘制文本"这是一组平行线",文本字体与窗体字体相同,文本颜色为黑色Black。
2)绘制平行线:
绘制从坐标(20,180)到(160,40)、(60,180)到(200,40)、(100,180)到(240,40)三条直线,线条颜色分别为红色Red、蓝色Blue、黑色Black。
3)实现打印功能:
a)为窗体添加一个打印文档控件printDocument1,为控件添加打印事件,在处理代码中打印出与窗体中相同像素单位的文本和平行线;
b)为按钮button1添加鼠标单击事件,在处理代码中调用printDocument1的打印事件。
4)实现打印预览和页面设置:
a)为窗体添加一个打印预览对话框控件printPreviewDialog1和一个页面设置对话框控件pageSetupDialog1,均设置为与printDocument1相关联;
b)为按钮button2添加鼠标单击事件,在处理代码中显示打印预览对话框;
c)为按钮button3添加鼠标单击事件,在处理代码中显示页面设置对话框。
5)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体,窗体中绘制出一行文本和一组平行线,如【样张3】所示。如果正确地安装了打印机,当按下"打印"按钮时,则打印出相应的文本和平行线;当按下"页面设置"按钮时,显示"页面设置"对话框,可对打印纸张进行设置,如【样张4】所示;当按下"打印预览"按钮时,显示"打印预览"对话框,可预览文本和平行线的打印效果,如【样张5】所示。








程序功能】
本程序实现如下功能:用户在窗体中输入个商品信息,程序以二进制方式将信息保存到文件中,且可从文件中读取信息并显示在窗体中。
【操作要求】
在Visual Studio .NET中打开位于 C:\ 下Test7_2子目录中的Test7_2项目。该项目是一个Windows应用程序项目,窗体如【样张1】所示,各个控件的基本属性如【样张2】所述。
1)以二进制方式编辑并保存文件:
a)为窗体Form1添加方法SaveInfo,用于将窗体中的信息保存至文件中,方法原型为:Public Void SaveInfo(String Path);
b)在SaveInfo方法的代码中:
I)构造一个FileStream对象的实例fs,按指定路径名path以二进制方式创建新文件;
II)由FileStream对象构造一个BinaryWriter对象的实例bw;
III)使用Binar

yWriter对象将窗体中的名称、产地、出厂时间、单价、类别和型号规格信息依次写入文件中;
IV)关闭文件流。
2)以二进制方式打开文件并读取文件内容:
a)为窗体Form1添加方法LoadInfo,用于读取文件内容并显示在窗体中,方法原型为:Public Void LoadInfo(String Path);
b)在LoadInfo方法的代码中:
I)构造一个FileStream对象的实例fs,按指定路径名path以二进制方式打开文件;
II)由FileStream对象构造一个BinaryReader对象的实例br;
III)使用BinaryReader对象以依次读取名称、产地、出厂时间、单价、类别和型号规格信息,并显示在窗体中;
IV)关闭文件流。
3)使用文件对话框:
a)为按钮button1添加鼠标单击事件,在处理代码中使用打开文件对话框获取文件路径名,文件类型为"商品信息文件(*.s72) | *.s72",初始路径为程序启动路径,并调用LoadInfo方法打开文件;
b)为按钮button2添加鼠标单击事件,在处理代码中使用保存文件对话框获取文件路径名,文件类型为"商品信息文件(*.s72) | *.s72",初始路径为程序启动路径,并调用SaveInfo方法保存文件。
4)获取文件信息:
在button1的处理事件末尾添加代码,将所打开文件的最近一次修改时间显示在状态栏面板中。
5)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体。当按下"打开"按钮时,显示"打开"对话框,如【样张3】所示;这时可以选择当前目录中的021001.s72文件,单击"打开"按钮,则窗体中显示文件的内容和文件属性信息,如【样张4】所示。
打开文件后,可以在窗体中修改文件内容,当按下"保存"按钮时,显示"保存"对话框,可指定文件名。单击"确定"按钮保存文件。








【程序功能】
本程序实现如下功能:用户在Windows窗体中输入一个正整数n,程序计算出"斐波那契"数列F(n)的值,并将结果显示在窗体上。"斐波那契"数列F(n)的计算公式为:
F(1) = 1
F(2) = 2
F(n) = F(n-1) + F(n-2), 其中n>2
【操作要求】
在Visual Studio .NET中打开位于c:\ 下Test8_2子目录中的Test8_2项目。该项目是一个Windows应用程序项目,窗体如【样张1】所示,各个控件的Name及Text属性如【样张2】所述。

为控制计算范围,textBox1的MaxLength属性值设置为2。程序在按钮button1的鼠标单击事件后进行运算,处理代码为:

private void button1_Click(object sender, System.EventArgs e)

{

uint n = uint.Parse(textBox1.Text);

long[] fl = new long[n];

fl[0] = 1;

fl[1] = 2;

for(int i=2; i
{


fl[i] = fl[i-1] + fl[i-2];

}

textBox2.Text = fl[n-1].ToString();

}

1)异常处理:程序运行时,当用户在textBox1中输入非整数并按下按钮时,程序显示错误信息"未处理的System.FormatException类型的异常出现在mscorlib.dll中"并中断。当用户输入0或1时,程序显示错误信息"未处理的System.IndexOutOfRangeException类型的异常出现在 Test8_2.exe 中"并中断。请修改上述事件处理代码,使用try-catch语句捕获上述异常。
a)捕获System.FormatException异常,并在异常发生时弹出对话框显示"请输入一个正整数";
b)捕获System. IndexOutOfRangeException异常,并在异常发生时弹出对话框显示"输入的整数必须>2"。
2)变量跟踪:使用System.Diagnostics.Debug类,跟踪变量fl[i]值的变化过程。
a)在程序中添加对System.Diagnostics名字空间的引用;
b)修改上述事件处理代码,使得程序调试之后,在开发环境的即时调试窗口中,逐行显示每一次执行for循环语句后得到的fl[i]值。
3)调试:设置断点,在监视窗口中观察变量fl[i-1]和fl[i-2]值的变化过程。
a)在上述事件处理代码中的适当位置插入一个断点;
b)启动程序,执行至断点;
c)打开监视窗口1,在其中观察每一次执行for循环语句后fl[i-1]和fl[i-2]值的变化;
d)停止调试。
4)程序设计完成之后进行编译,生成项目的EXE可执行文件。
【执行结果】
运行程序显示窗体,当在textBox1中输入一个非整数并按下按钮时(如1a2),弹出对话框显示信息"请输入一个正整数",程序仍能继续运行;当在textBox1中输入0或1时,弹出对话框显示信息"输入的整数必须>2",程序仍能继续运行。

当输入一个合法的数值时(比如8),程序运行至断点中断,在监视窗口1中显示每一次执行for循环语句后fl[i-1] 和fl[i-2]的值,如【样张3】所示。结束调试后,在即时调试窗口中,逐行显示每一次执行for循环语句后得到的fl[i]值,如【样张4】所示。

相关主题
文本预览
相关文档 最新文档