版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 教 学 日 历课程名称: 面向对象的程序设计(C#) 学期:2014-2015-1周次章节及教学内容累计学时2实验一 熟悉V S开发环境24实验二 基本数据类型和流程控制语句26,8实验三 类和结构,接口委托与事件410实验四 泛型与LINQ与文件操作212,14实验五 WPF应用程序及WPF控件416实验六 WPF样式及数据验证和数据库应用2实验一 熟悉VS开发环境【学时数:2学时】一、实验目的1. 掌握Visual Studio.NET2012的基本操作方法。2. 掌握#控制台应用程序、Windows应用程序的基本操作过程。3. 初步理解#程序的结构和特点,掌握基本的编译和调试方法
2、。二、实验内容1. 熟悉Visual Studio.NET2012集成开发环境的使用。启动VS2012,熟悉它的基本界面。建立源程序文件,输入、编译程序文件。构建可执行文件。运行程序,查看结果2. 设计一个简单的#控制台应用程序,逐行显示自己的学号、姓名、专业信息。(参考教材P5页例)3. 设计一个Windows应用程序,在窗体上显示三个标签框,标签框里的内容分别为自己的学号、姓名、专业。(参考教材P20页例1-4)4. 阅读教材并录入教材例1-2,例1-5,例1-6程序,运行并输出结果,了解#窗体应用程序的创建。并思考:(1)namespace关键字声明命名空间有何作用?using关键字指明
3、引用的命名空间有何作用?三、实验报告完成本次实验的报告,写清实验目的和要求、实验内容和实验结果。实验二 基本数据类型和流程控制语句【学时数:2学时】一、实验目的1. 理解#的值类型、常量和变量的概念。2. 掌握理解数据类型的转换以及数据类型的转换用法;3. 掌握#的常用运算符以及表达式的运算规则。4. 掌握#的两种分支语句(if、switch)的使用方法。5. 掌握#的种循环语句(while、do/while、for、foreach)的使用方法。6. 掌握引用类型中的字符串、数组的使用。二、实验内容1. 设计一个控制台程序,从键盘输入一个人的名字,在显示器中显示对输入姓名的问候。比如输入:张三
4、;输出:张三,欢迎你!提示:输入字符串放入s中,将s+” ,欢迎你!”,再输出。2. 编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:>=90;良:>=80;中:>=70;及格:>=60;不及格:<60)。分别用if语句及switch-case语句实现。3. 编写一个控制台应用程序,求100之内的所有“素数”。4. 打印输出杨辉三角形。三、实验报告完成本次实验的报告,写清实验目的和要求、实验内容和实验结果。四、参考程序1. /* program e2-1*/using System;namespace p21 class program static v
5、oid Main() Console.Write("please inter a person's name"); string s; s=Console.ReadLine(); Console.WriteLine("s+ 欢迎你!"); 2. using System;namespace p23 class program static void Main() Console.Write("please inter a number to x "); int x; x=int.parse(Console.ReadLine()
6、; if(x>=90) Console.WriteLine("优秀!"); else if(x>=80) Console.WriteLine("良!"); else if(x>=70) Console.WriteLine("中!"); else if(x>=60) Console.WriteLine("及格!"); else Console.WriteLine("差!"); using System;namespace p23 class program static v
7、oid Main() Console.Write("please inter a number to x "); int x; x=int.parse(Console.ReadLine(); int i=x/10; switch(i) case 10: case 9: Console.WriteLine("优秀!"); break; case 8: Console.WriteLine("良!"); break; case 7: Console.WriteLine("中!");break; case 6: Conso
8、le.WriteLine("及格!");break; default: Console.WriteLine("差!");break; 3. using System;namespace p23 class program public static bool prime(int m) for(ing i=2;i<m;i+) if(m%i=0) return false; return true; public static void Main() int m,k,n=1; Console.Write("0,-4",2); for
9、(m=3;m<100;m+=2) if(prime(m); Console.Write("0,-4",m); if(+n%10=0) Console.WriteLine("n"); 4.using System; class p24 public static void Main() int i,j,k,m; k=7; int Y=new int k;/定义二维锯齿状数组 for(i=0;i<Y.Length;i+) Yi=new inti+1; Yi0=1; Yii=1; for(i=2;i<Y.Length;i+) for(j=1;
10、j<Yi.Length-1;j+)/Yi.Length是Yi这个数组的长度 Yij=Yi-1j-1+Yi-1j; for(i=0;i<Y.Length;i+) for(j=0;j<Yi.Length-1;j+) Console.Write("0,5:d",Yij); Console.WriteLine( ); 实验三 类和结构,接口委托与事件【学时数:4学时】一、实验目的1. 熟悉C#类、对象、方法的概念与用法;2. 掌握编写简单的面向对象的应用程序;3. 熟悉并掌握C#构造方法及其重载方法的用法;4. 熟悉并掌握类和成员的访问修饰符的用法。5. 掌握抽象
11、类与接口的定义及使用方法。6. 掌握抽象类与接口的定义及使用方法。二、实验要求1. 编写一个Windows 窗体应用程序,实现以下功能。(1) 定义一个CourseInfo累,该类包含以下成员。l 具有CourseName(课程名),CourseTime(开课时间),BookName(书名),Price(定价)4个属性,期中开课时间为枚举类型值(秋季,春季)。l 具有一个静态变量Counter,每创建一个Course实例,给变量值自动加1。l 提供无参数构造函数,在构造函数中设置相应的属性值。l 提供一个print方法,现实该实例的4个属性值。(2) 在主窗体的代码实现中,分别创建Course
12、Info实例,测试类中提供的功能,并将结果显示出来。2. 单一继承:用C#编写一个程序,使用Animal和Mammal两个类来说明一般动物和哺乳动物的继承关系。Animal具有名称、所属门类等属性,需要提供方法实现以接收和显示这些属性的值。Mammal类具有代表哺乳动物习性的属性,这些属性表明哺乳动物与其他类型动物的区别。同样地,需要提供方法实现以接收和显示这些属性的值。3. 使用抽象类和抽象方法计算不同形状的面积:编写一个程序,使用抽象类和抽象方法来计算不同形状的面积。4. 使用委托和事件实现模拟闹铃:编写一个模拟闹铃的程序,具有闹铃,继续闹铃,打会盹儿,停止闹铃的功能。(编写一个程序用来模
13、拟闹钟闹起床流程,有一个闹钟类AlarmClock,催促起床类WakeMeUp,使用类AlarmDriver。调用类引发开始闹铃事件,闹钟类调用委托方法进行处理,催促起床类和用户进行交互。)三、参考程序四、参考程序1. 1. /*CourseInfo.cs using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ClassTest enum CourseTime 春季, 秋季 class CourseInfo
14、public static int Counter = 0; / <summary> / 课程名 / </summary> public string CourseName get; set; / <summary> / 开课学期 / </summary> public CourseTime CourseSemester; / <summary> / 书名 / </summary> public string BookName get; set; / <summary> / 定价 / </summary&
15、gt; public double Price get; set; public CourseInfo() Counter+; CourseName = BookName = "<null>" CourseSemester = CourseTime.春季; Price = 0; public CourseInfo(string couseName, string bookName, CourseTime courseSemester,int price) Counter+; CourseName = couseName; BookName = bookName;
16、 CourseSemester = courseSemester; Price = price; public string Print() return string.Format( "0,-101,-102,-103,5", CourseName, CourseSemester, BookName, Price); /*Mainform.csusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;usi
17、ng System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ClassTest public partial class MainForm : Form public MainForm() InitializeComponent(); this.Load += MainForm_Load; void MainForm_Load(object sender, EventArgs e) listBox1.Items.Add(string.Format( &quo
18、t;0,-101,-102,-103,5", "课程名","开设学期","书名","定价"); var course1= new CourseInfo CourseName="数据结构", CourseSemester= CourseTime.春季, BookName="数据结构", Price=40 ; listBox1.Items.Add(course1.Print(); var course2 = new CourseInfo("操作系统"
19、, "操作系统", CourseTime.秋季, 45); listBox1.Items.Add(course2.Print(); var course3 = new CourseInfo("软件工程", "软件工程", CourseTime.春季, 38); listBox1.Items.Add(course2.Print(); /*program.csusing System;using System.Collections.Generic;using System.Linq;using System.Threading.Task
20、s;using System.Windows.Forms;namespace ClassTest static class Program / <summary> / 应用程序的主入口点。 / </summary> STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(); 2. using System;using System.Co
21、llections.Generic;using System.Text;namespace SingleInher /一般动物类 class Animal protected string _name; /动物名称 protected string _type; /动物所属门类
22、60; /接收名称和门类 public void AcceptDetails() Console.WriteLine("请输入动物名称:");
23、160; this._name = Console.ReadLine(); Console.WriteLine("请输入所属门类:"); this._type = Console.ReadLine();
24、60; /显示动物的名称和所属门类 public void DisplayDetails() Console.WriteLine();
25、60; Console.WriteLine("0 动物的详细信息如下:", this._name); Console.WriteLine("姓名:0", this._name); Console.WriteLine("门类:0
26、", this._type); /哺乳动物类,继承一般动物类 class Mammal : Animal private double _temperature; /恒定温度值private string _isViviparous;
27、/是否为胎生 /接收哺乳动物的特征信息 public void AcceptCharacter() Console.WriteLine("请输入哺乳动物的恒定温度:");
28、 try _temperature = Convert.ToDouble(Console.ReadLine();
29、60; catch /捕捉异常,例如:若输入字母,在转换成Decimal时会引发异常 Con
30、sole.WriteLine("请为温度输入数字!"); Console.WriteLine("该哺乳动物是否胎生:"); _isViviparous = Con
31、sole.ReadLine(); /显示哺乳动物的特征信息 public void DisplayCharacter() Con
32、sole.WriteLine(); Console.WriteLine("0 的特征包括:", this._name); Console.WriteLine("恒定温度:0", _temperature.ToString();
33、; Console.WriteLine("是否胎生:0", _isViviparous); class Program static void Main(string args)
34、 Mammal objM = new Mammal(); objM.AcceptDetails();/访问父类方法 objM.AcceptCharacter();
35、160; objM.DisplayDetails();/访问父类方法 objM.DisplayCharacter(); 3. using System;abstract class Figure/抽象类定义,表示一个抽象图形
36、160; protected double x = 0, y = 0; public Figure(double a, double b) x = a; y = b; public abstract void Area(); /抽象方法,无实现代码,抽象图形无法计算面积class Square : Figure
37、; /类Square定义,矩形类 public Square(double a, double b) : base(a, b) public override void Area() /不能使用new,必须用override Console.WriteLine("矩形面积是:0", x * y);
38、 /显示矩形面积class Circle : Figure /类Circle定义,圆类 public Circle(double a) : base(a, a) p
39、ublic override void Area() Console.WriteLine("圆面积是:0", 3.14 * x * y); /显示圆的面积class Class1 static void Main(string args) Square s = new Square(20, 30);
40、 Circle c = new Circle(10); s.Area(); c.Area(); 4. using System;using System.Collections.Generic;using System.Text;namespace EventSample /
41、 / 定义事件参数类 / public class AlarmEventArgs : EventArgs private readonly bool snoozePressed; private readonly int nrings;
42、/构造函数 public AlarmEventArgs(bool snoozePressed, int nrings) this.snoozePressed = snoozePressed;
43、 this.nrings = nrings; / 定义属性,私有字段nrings public int NumRings
44、0; get return nrings; / 定义属性,返回私有字段snoozePressed public bool SnoozePressed &
45、#160; get return snoozePressed; / 下面的属性返回一个字符串 public string AlarmText
46、; get if (snoozePressed)
47、 return ("别打打盹儿,快起床!"); &
48、#160; else return ("起床!");
49、; / 声明自定义代理类型,它的事件参数的类型为AlarmEventArgs public delegate void AlarmEventHandler(object sender, AlarmE
50、ventArgs e); / 包含事件和触发事件方法的类 public class AlarmClock private bool snoozePressed = false; private int nrings = 0; privat
51、e bool stop = false; / 定义两个属性 public bool Stop get return stop; &
52、#160; set stop = value; public bool SnoozePressed get return snoozePressed;
53、; set snoozePressed = value; / 声明事件,它所使用的代理类型为AlarmEventHandler public event AlarmEventHandler Alarm;
54、; / 触发事件的方法 protected virtual void OnAlarm(AlarmEventArgs e) if (Alarm != null)
55、0; / 通过代理调用事件处理方法 Alarm(this, e);
56、160; / 在该方法中循环调用OnAlarm方法来触发事件,直到 / stop字段的值为true public void Start()
57、 for (; ; ) nrings+; if (stop) &
58、#160; break; else if (s
59、noozePressed) / 程序暂停1秒钟 System.Threading.Thread.Sleep
60、(1000); / 创建事件参数对象实例 AlarmEventArgs e = new AlarmEventArgs(snoozePressed, nrings); OnAlarm(e); / 触发事件,在事件处理方
61、法中会 / 相应地设置snoozePressed和stop / 字段的值(通过属性来设置)
62、; else
63、60; / 程序暂停0.3秒 System.Threading.Thread.Sleep(300); AlarmEventArgs e = new AlarmEventArgs(snoozeP
64、ressed, nrings); OnAlarm(e); / 触发事件
65、 / 包含事件处理方法的类 public class WakeMeUp / 事件处理方法 / 在该方法中根据用户的输入来通过事件参数sender
66、160; / 设置事件发送者属性, public void AlarmRang(object sender, AlarmEventArgs e) Console.WriteLine(e.AlarmText + "n");
67、; if (!(e.SnoozePressed) if (e.NumRings % 10 = 0) Console.WriteLine("继续
68、闹铃?输入Y"); Console.WriteLine("打会盹儿?输入N"); Console.WriteLine("停止闹铃?输入Q"); String input = Console.
69、ReadLine(); if (input.Equals("Y") | input.Equals("y") return; else if (input.Equals("N") | input.Equals("N")
70、60; / 通过事件参数sender来访问触发事件的对象 (AlarmClock)sender).SnoozePressed = true; &
71、#160; return; else (AlarmClock)sender).Stop = true;
72、0; return;
73、; else Console.WriteLine(" 继续闹铃?输入Y"); Console.WriteLine(" 停止闹铃?输入Q"); &
74、#160; String input = Console.ReadLine(); if (input.Equals("Y") | input.Equals("y") return; else
75、160; (AlarmClock)sender).Stop = true; return;
76、160; / 包含程序入口方法的类 public class AlarmDriver / 入口方法 publi
77、c static void Main(string args) / 创建事件接收者对象实例 WakeMeUp w = new WakeMeUp();
78、60; / 创建事件发送者对象实例 AlarmClock clock = new AlarmClock(); / 把事件处理方法绑定到发送者的事件上 clock.Alarm +=
79、new AlarmEventHandler(w.AlarmRang); clock.Start(); 实验四 泛型与LINQ与文件操作【学时数:2学时】一、实验目的1. 掌握泛型的使用2. 掌握path类和directory类的操作。Ø 3. 掌握文本文件二进制文件,及内存文件的读写。二、实验内容1.输入教材P118 例5-
80、2并运行该程序2.创建文件字节读写应用程序:先写字节数组数据到文件,然后这一个文件所有字节到数组并在屏幕显示的程序,然后测试移动文件读写位置。3. 创建删除、移动、复制文件的应用程序:先判断用户输入的文件路径是否存在,如存在则进行删除、移动、复制等操作。三、实验报告完成本次实验的报告,写清实验目的和要求、实验内容和实验结果。四、参考程序1. 参见教材118页。2. using System;using System.Collections.Generic;using System.Text;using System.IO;/使用文件必须引入的命名空间namespace FileStreamEx
81、 class Program static void Main(string args) WriteStream(); ReadStream(); SeekStream(); static void WriteStream() byte data
82、= new byte10;/建立字节数组 for (int i = 0; i < 10; i+)/为数组赋值 datai = (byte)i; FileStream fs = new FileStream("d:/g1.bin", FileMode.Create);/建立流对象 fs.Write(data, 0, 10);/写data字节数组中的所有数据到文件 fs.Close();/不再使用的流对象,必须关闭。垃圾收集器不能自动清除流对象 static v
83、oid ReadStream() FileStream fs = new FileStream("d:/g1.bin", FileMode.Open);/ byte data = new bytefs.Length; long n = fs.Read(data, 0, (int)fs.Length);/n为所读字节数 fs.Close(); Console.WriteLine("文件的内容如下:"); foreach (byte m in data)
84、;Console.Write("0,", m); static void SeekStream() FileStream fs = new FileStream("d:/g1.bin", FileMode.Open);/无第3个参数 fs.Seek(-4, SeekOrigin.End);/文件读写位置移到从文件尾部向前5个字节 Console.WriteLine("读写位置:0,能定位:1", fs.Position, fs.CanSeek); Console
85、.WriteLine("能读:0,能写:1", fs.CanRead, fs.CanWrite); fs.Close(); 3. using System;using System.Collections.Generic;using System.Text;using System.IO;namespace FileExm class Program static void Main(string args)
86、 DeleteFile(); CopyFile(); MoveFile(); static void DeleteFile() Console.WriteLine("请键入要删除的文件的路径:"); string path = Console.ReadLine();/从键盘读入路径,输入回车结束 if (File.Exists(path)/表示其后字符串不包括转义字符 File.Delete(path); else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年国际私人民间贸易协议样式
- 2024年期企业互保反担保协议样本
- 2024年企业劳动协议范本要点
- 2024广告影片拍摄场地使用协议
- DB11∕T 1570-2018 甜瓜设施栽培技术规程
- 2024年钢材供应协议钢筋条款详本
- 2024年适用场地租赁协议模板
- 不锈钢栏杆建设施工服务协议2024
- 2024年定制销售受托管理协议
- 2024年度特定物资委托采购合作协议
- 电大财务大数据分析编程作业2
- 第八届全国红十字应急救护大赛理论试题库大全-下(多选题)
- 2024年13起典型火灾案例及消防安全知识专题培训
- 五年级道德与法治下册第一单元单元整体教学设计
- 小班体育活动《跳圈圈》含反思
- 鞋子试穿报告
- 大学生职业生涯规划书数学与应用数学
- 2024年江苏钟吾大数据发展集团有限公司招聘笔试参考题库含答案解析
- 2024年上海计算机一级考试题库汇总(含答案)
- 无人机目标自动识别系统集成
- 人教版八年级信息技术下册全册教案
评论
0/150
提交评论