面向对象程序设计实验指导书 (2).doc_第1页
面向对象程序设计实验指导书 (2).doc_第2页
面向对象程序设计实验指导书 (2).doc_第3页
面向对象程序设计实验指导书 (2).doc_第4页
面向对象程序设计实验指导书 (2).doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

。辽东学院信息技术学院面向对象程序设计实验指导书面向对象程序设计课程组姓名: 学号: 班级: 专业: 计算机科学与技术 层次: 本科 2015年6月目 录实验一 C#基础1实验二 结构化程序设计5实验三 数组、结构、枚举8实验四 面向对象程序设计12实验五 可视化应用程序设计20实验六 儿童算术辅助程序设计26实验七 数据库操作29 35实验一 C#基础实验类型: 验证性 实验课时: 4 指导教师: 汪世娟 时 间:2015年 月 日课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员: 一、 实验目的1.学会使用Visual Studo.NET集成开发环境。2.掌握在Visual Studo.NET集成开发环境中编辑、编译和运行一个C#程序。3.掌握c#.net的基本语法知识。4.掌握C#源程序的结构特点与书写规范。二、 实验内容1.使用.NET运行程序,熟悉Visual Studio 2013运行环境。操作步骤如下:(1)要创建C#控制台应用程序,首先选择【文件】|【新建】|【项目】命令打开【新建项目】对话框,如下图所示:图1 【新建项目】对话框(2)从【项目类型】列表框中选择【Visual C#项目】选项,然后在【模板】列表框中选择【控制台应用程序】选项。对话框下面的【名称】文本框中将会给出一个默认的名称,可以根据需要改变项目的名称;如果要改变项目的位置,则可以通过单击【位置】文本框右边的【浏览】按钮,打开【项目位置】对话框来选择一个目录。单击【确定】按钮,关闭【新建项目】对话框,让Visual Studio.NET为用户自动生成代码。删除窗口中的代码,输入如下所示的代码。 using System; class Welcome static void Main( ) /运行后在窗口中显示的字符串 Console.WriteLine(欢迎使用C#); 这样,就创建好了一个C#程序。(3)编译程序。要编译C#程序,从【生成】菜单中选择【生成解决方案】命令,这时,C#编译器将会开始编译、链接程序,并最终生成可执行文件。在编译程序时,将会打开一个输出窗口显示编译过程中所遇到的错误和警告信息。用户可以根据提示进行修改。如果程序中没有错误,编译器将会生成可执行文件。(4)运行程序。在Visual Studio.中,用户可以采用两种方式运行程序:一种是调试运行,另一种是不进行调试而直接运行。要调试运行程序,可以通过使用【调试】|【启动】命令或工具栏的调试按钮或者直接按下F5键;要直接运行程序,则使用【调试】|【开始执行】命令或Ctrl+F5键。运行上面的程序,将显示下图所示的窗口。图2 【程序结果显示】窗口2. 使用Console类的WriteLine方法以不同的格式输出j的值,假设j=123.456。程序提示:double j=123.456;Console.WriteLine(“0:c”,j);/货币格式输出./还可按科学计数法格式、通用格式、自然数据格式输出3. 使用Console类的ReadLine方法从控制台接收用户的输入,然后显示接收的内容。程序如下:using System; class Test static void Main( ) string str; Console.WriteLine(“请输入你的姓名:”); str=Console.ReadLine( ); Console.WriteLine(“0,欢迎你!”,str); 程序运行结果:4. 编写程序,输出以下表达式的值sizeof(int)*10/3.286+35-22&89“Computer”=”Games”“hello”+”world”This is “”a book”!=”This is ”book”5. 设计一个程序根据用户输入的半径,求圆的周长和面积。要求定义PI常量为3.1415926。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1 class Program static void Main(string args) double s,r; double PI=3.1415926; Console.WriteLine(请?输?入?半?径?); r =double.Parse(Console.ReadLine(); s = r * PI * r ; Console.WriteLine(0:n,s); 6. 编写程序实现从键盘输入两个数,输出其中的最大值。(用条件运算符)using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1 class Program static void Main(string args) double s,r,z; Console.WriteLine( 比较数字大小,请输入第一个数字:按回车结束); r =double.Parse(Console.ReadLine(); Console.WriteLine( 比较数字大小,请输入第二个数字:按回车结束); s = double.Parse(Console.ReadLine(); z = s r ? s : r; Console.WriteLine(结果显示,最大数为0:n,z); 6程序运行结果:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Program static void Main(string args) int a , b; a = b = 1; b += a / b+ ; Console.Write(a=0,b=1,a,b); b += -a + +b; Console.WriteLine(a=0,b=1, a, b); Console.Read(); 三、 思考题:1 在Visual Studio.NET窗口中,可以察看当前项目的类和类型的层次信息的窗口名称是什么?2 Console类的ReadLine方法和Read方法有什么区别? Console类的WriteLine和Write方法有什么区别?3 逐字字符串与普通字符串的区别?C#中每个int 类型的变量占用多少个字节的内存?教师签字: 批改日期:实验二 结构化程序设计实验类型: 验证性 实验课时: 4 指导教师: 汪世娟 时 间: 2015 年 月 日课 次: 第 节 教学周次: 第 周 实验分室: 实验台号: 实 验 员: 一、 实验目的1.掌握C#中顺序结构程序的设计。2.掌握C#中if语句和switch语句的作用及选择结构程序的设计。3.掌握C#中循环控制语句的作用及循环结构程序的设计。二、 实验内容及要求1.编程输出1100中能被3整除但不能被5整除的数,并统计有多少个这样的数。程序:运行结果:2.设计一个程序根据用户输入的成绩(整数),输出成绩的级别(“优秀、良好、中、及格、不及格和无效分数)。程序:运行结果:3.编程输出100以内的所有素数及个数,每10个数一行。程序:运行结果:4.分别用for,while,do while语句编写程序,实现求前n个自然数之和。n的值从键盘输入。程序:运行结果:5.编程输出九九乘法表程序:运行结果:三、 思考题:1为什么对用户输入的整数要进行象int.Parse(x)的处理?2. 使用switch语句有哪些需要注意的?3. while 和do while语句的区别?本次实验成绩得分教师签字: 批改日期:实验三 数组、结构、枚举实验类型: 验证性 实验课时: 2 指导教师: 汪世娟 时 间: 2015年 月 日课 次: 第 节 教学周次: 第 周 实验分室: 实验台号: 实 验 员: 一、 实验目的1.掌握一维数组与二维数组的定义、使用及初始化方法。2.掌握数组的排序算法,进一步理解模块化程序设计的方法。3.掌握结构、枚举类型在程序中的应用。二、 实验内容及要求1.编程定义一个含有10个单精度浮点数的数组,计算平均值并输出。程序:运行结果:2. 用一数组保存数据序列:68,65,56,79,82,55。要求分别用选择排序法和冒泡排序法将其按升序排列。要求:使用单步调试观测程序执行过程并分别写出两种不同方法每次循环执行后序列的情况。程序:选择排序法:冒泡排序法:运行结果:选择排序每次序列:冒泡排序每次序列:3.定义一个行数和列数相等的二维数组,并执行初始化,然后计算该数级两条对角线上的元素之和。程序:运行结果:4. 编程定义一个关于出版社的枚举类型(清华大学出版社、电子工业出版社、高等教育出版社、人民邮电出版社),定义一个包含图书资料的结构类型(图书号、图书名、出版社、作者),用一数组保存5本图书的信息,并可根据用户输入的图书号进行查询,如果找到输出该图书所有信息,否则显示无此图书信息。程序:运行结果:三、 思考题1. 如何获得一个数组的长度?对于二维数组如何获得每一维的长度?2. 对于不同类型的数组默认的初始值分别是什么?3. 结构类型定义中,成员名前的public的作用是什么?4. 枚举类型中成员的默认值是如何分配的,什么类型?本次实验成绩得分教师签字: 批改日期:实验四 面向对象程序设计实验类型: 验证性 实验课时: 6 指导教师: 汪世娟 时 间: 2015年 月 日课 次: 第 节 教学周次: 第 周 实验分室: 实验台号: 实 验 员: 一、实验目的1.了解并掌握面向对象程序设计的基本思想和方法。2.掌握类的定义及对象的使用方法。3.掌握C#程序中的异常处理。4.理解程序中继承的使用。二、实验内容及要求1.定义长方形rectangle类:属性:长和宽两个属性;方法:无参数构造函数:长和宽的值为0两个参数构造函数:长和宽的值为对应参数值计算周长方法:返回长方形的周长计算面积方法:返回长方形的面积定义test类中,在Main方法实例化两个对象,并输出其周长和面积程序:运行结果:2(1)设计一个Person1类,包含下列数据:字段:姓名(name)、血型(blood)、体重(weight)、身高(height)。属性:Name和Blood访问姓名(name)、血型(blood)字段方法:显示姓名PrintName()、显示血型PrintBlood()、显示重量PrintWeight()、显示身高PrintHeight()、增加身高AddHeight()、增加体重AddWeight()、减少体重SubWeight()、显示对象本身Tostring()。构造函数:Person1() Person1(string name,booltype blood,double weight,double height) 对于姓名的设置要进行验证,字符数不能大于4 ,不能小于2。 对于血型应定义为枚举型变量。(2)设计一个Person2类,除了Person1类字段及方法外,增加字段电话telephone,增加方法PrintTelephone(),两个构造函数person2()和Person2(string name,booltype blood,double weight,double height,string telephone)(3)在主函数中创建Person1类和Person2类的对象,进行测试。程序:运行结果:3. 输入以下程序,体会错误处理机制:class Program static void Main(string args) Console.WriteLine(请输入年龄); int i = int.Parse(Console.ReadLine(); 输入年龄时分别输入”aa”、”1111111111111111111111”看看程序运行会发生什么,注意观察系统信息。然后运行以下程序,分别输入120、aa、1111111111111111111看看这回程序运行状态。class AgeException : Exception public string reason; public AgeException(int age) if (age 110) reason = 太大了; class Program static void Main(string args) try Console.WriteLine(请输入年龄); int i = int.Parse(Console.ReadLine(); if (i 110) throw new AgeException(i); catch (AgeException e) Console.WriteLine(e.reason); catch (FormatException e) Console.WriteLine(e.Message); catch (Exception e) Console.WriteLine(e.Message); (1)为什么AgeException的父类定义为Exception,不定义行吗?(2)在这个程序中哪个是系统抛出的异常,哪个是代码自己抛出的?4. 类的层次关系如图所示:PointCircleRectangleCylinder(1) 点(Point)类具有以下属性:坐标X、坐标Y,且具有以下方法: ToString( ):点的字符串表示形式(2)圆(Ciecle)类具有以下属性:坐标X、坐标Y、半径Radius,且具有以下方法: Diameter():求直径 CircumFerence():求周长 Area():求圆的面积 ToString():圆的字符串表示形式(3)矩形(Rectangle)类具有以下属性:坐标X、坐标Y、长length、宽width,且具有以下方法: zhouchang():求周长 Area():求矩形的面积 ToString():矩形的字符串表示形式(4)除继承了Circle类的属性和方法外,还应具有:Height:圆柱体高度,Volumn(): 求体积方法:底面积*高,并重载:Area():求圆柱体表面积:2*底面积+底周长*高(5)编程实现上述类,并定义Test类进行测试。程序: 运行结果:5.定义一个学生类,包含学号、姓名、性别等信息,定义一个班级类,在班级类中包含一个可以指定个数的学生类数组,并提供两个索引器,一个是int型参数用于向数组指定下标元素赋值或读取操作,一个是String型参数,用于根据参数在数组中查找指定元素。然后编写一个测试程序进行验证。程序:运行结果:6.定义一个shape抽象类,利用它作为基类派生出Rectangle、Circle等具体形状类,已知具体形状类均具有两个方法GetArea和GetPerim,分别用来求形状的面积和周长。最后编写一个测试程序对产生的类的功能进行验证。可参考如下代码:abstract class shape public abstract float GetArea(); public abstract float GetPerim();class Point public float x; public float y; public Point(float x, float y) this.x = x;/当形参名与字段名相同时,需要在字段名前加this.代表当前对象中的成员 this.y = y; class Rectangle:shape public Point lefttop;/代表矩形左上点 public float width; public float height; public Rectangle(float x,float y,float w, float h) lefttop = new Point(x, y);width = w; height = h; public override float GetArea() return width * height; public override float GetPerim() return 2*width +2* height; class Circle:shape private const float pi = 3.1415926f; public Point dot;/代表原点 public float r; public Circle(float x,float y,float r) dot = new Point(x, y); this.r = r; public override float GetArea() return pi * r*r; public override float GetPerim() return 2 * pi*r; class Program static void Main(string args) Rectangle r1 = new Rectangle(0, 0, 10, 20); Console.WriteLine(矩形的左上点的x坐标:0,y坐标:1,面积:2,周长:3,r1.lefttop.x,r1.lefttop.y,r1.GetArea(),r1.GetPerim(); Circle c1 = new Circle(10, 10, 20); Console.WriteLine(圆的圆心的x坐标:0,y坐标:1,面积:2,周长:3, c1.dot.x, c1.dot.y, c1.GetArea(), c1.GetPerim();运行结果:三、思考题1. 字段和属性的区别?使用属性有何好处?2. 类和对象的关系?3. 利用new 和override修饰符有何区别?4. public、private和protected修饰符的区别?5. 简述子类对象可以赋值给父类类型的变量吗,为什么,相反呢?6. 索引与属性的关系?7. 抽象类的特点与作用,与接口有何区别?本次实验成绩得分教师签字: 批改日期:实验五 可视化应用程序设计实验类型: 设计性 实验课时: 10 指导教师: 汪世娟 时 间: 2015年 月 日课 次: 第 节 教学周次: 第 周 实验分室: 实验台号: 实 验 员: 一、实验目的1.了解window应用程序设计的基本过程和思想2.掌握C#中window应用程序设计的设计方法3.能编写简单的window应用程序二、实验内容及要求1. 定义一个登录窗体form1,要求两个标签,两个文本框,两个命令按钮。要求:窗体的标题为:登录窗体,背景色为:绿色,无边框。两个标签为文本框加说明,即用户名,密码。用户名文本框限制字符最长10个,密码框显示*号。两个命令按钮标题分别为“确定”和“取消”,当单击确定按钮时,判断如果输入的用户名和密码分别为“abc”和“123”时,弹出欢迎信息,否则弹出错误信息;当单击取消按钮时,退出应用程序。“取消”按钮事件处理程序:“确定”按钮事件处理程序:2.定义窗体,要求界面如下所示:要求编写事件处理程序实现功能控制。注意事件的选择,对于单选按钮应选择单击(click)事件,对于复选框可应用默认事件即CheckedChanged事件。程序:3.在窗体上建立一个列表框,一个文本框和一个命令按钮,在列表框中列有本班10个同学的姓名,要求后5个同学的姓名在窗体的load事件处理中用代码添加,当选中某个学生姓名后,单击此命令按钮,则在文本框中显示该学生的籍贯。参考代码: public partial class Form1 : Form /创建和名字相对应的籍贯 string strPlace = new string10 北京, 天津, 上海, 沈阳, 秦皇岛, 青岛, 香港, 丹东, 武汉, 湖南 ;private void Form1_Load(object sender, EventArgs e) listBox1.Items.Add(崔六);listBox1.Items.Add(康七);listBox1.Items.Add(徐八);listBox1.Items.Add(牛九);listBox1.Items.Add(于十); private void button1_Click(object sender, EventArgs e) /判断是否有成员被选中 if (listBoxNames.SelectedItems.Count 0) /把被选中的成员的籍贯通过引索赋值给textBox textBoxPlace.Text = strPlacelistBoxNames.SelectedIndex; 4.在同一个项目内添加另一个窗体form2,要求有两个列表框(listBox1,listBox2),两个按钮,界面如下:(1)为列表框1添加项目,设置为多选。(2)命令按钮1,把列表1中选中的所有项目移到列表2。(3)命令按钮2,把列表2 选中的项目移到列表1;参考代码如下:private void Form2_Load(object sender, EventArgs e) listBox1.SelectionMode = SelectionMode.MultiExtended; listBox1.Items.Add(中国); listBox1.Items.Add(英国); listBox1.Items.Add(美国); listBox1.Items.Add(日本); listBox1.Items.Add(朝鲜); listBox1.Items.Add(韩国); private void button1_Click(object sender, EventArgs e) for (int i = listBox1.SelectedIndices.Count - 1; i = 0; i-) listBox2.Items.Add(listBox1.ItemslistBox1.SelectedIndicesi); listBox1.Items.Remove(listBox1.SelectedItemsi); private void button2_Click(object sender, EventArgs e) listBox1.Items.Add(listBox2.Text); listBox2.Items.Remove(listBox2.SelectedItem); 5.在同一个项目中添加窗体form3,窗体内包含一个组合框(comBox1),一个文本框(textBox1),一个标签(label1)一个时钟控件(timer1),要求界面如下所示:要求编写事件处理程序实现功能控制:选择组合框中的项目会改变文本框中的文字大小。标签设置为“滚动字幕”,并通过时钟控件实现每2013毫秒控件向右滚动的效果。提示代码:private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) textBox1.Font = new Font(textBox1.Font.FontFamily, float.Parse(comboBox1.Text), textBox1.Font.Style); private void Form3_Load(object sender, EventArgs e) comboBox1.Items.Add(10); comboBox1.Items.Add(20); comboBox1.Items.Add(30);timer1.Interval = 2013; timer1.Enabled = true; private void timer1_Tick(object sender, EventArgs e) label1.Left = (label1.Left + 5) % this.Width; 三、思考题1. 查看并写出System.Windows. Forms.Control类的作用?2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论