NET程序设计地信实验指导书答案.doc

上传人:wux****ua 文档编号:9482168 上传时间:2020-04-05 格式:DOC 页数:42 大小:537.50KB
返回 下载 相关 举报
NET程序设计地信实验指导书答案.doc_第1页
第1页 / 共42页
NET程序设计地信实验指导书答案.doc_第2页
第2页 / 共42页
NET程序设计地信实验指导书答案.doc_第3页
第3页 / 共42页
点击查看更多>>
资源描述
第二部分 实验内容实验一:C#编程基础1实验目的:掌握Visual Studio 2005集成开发环境的安装;熟悉控制台程序和Windows桌面应用程序的设计过程。了解c#的基本语法和结构。熟悉各种数据类型的声明、实例化和赋值方法。初步掌握结构体、枚举型、数组、string等数据类型的使用及其转换方法,掌握选择结构和循环结构程序设计。通过该实验,对C#语言有初步的了解。2实验内容:(1)在VS中编写一个控制台应用程序,要求用户在控制台输入自己的名字,然后输出“Welcome To C# World,用户名!”。string strUser = Console.ReadLine(); Console.WriteLine(Welcome To C# World,0!, strUser); Console.Read();(2)编写一个控制台应用程序,要求实现用户输入一个字符,判断字符是数字、大写子母、小写子母还是其他字符。int s = Console.Read(); char sc = (char)s; if (s 47 & s 64 & s 99 & s 123) Console.WriteLine(用户输入的符号是:0,它是一个小写子母, sc); else Console.WriteLine(用户输入的符号是:0,它是一个其他符号, sc); / Console.WriteLine(0:1, s,sc); Console.ReadLine();(3)编写一个程序求S=a+aa+aaa+aaa(n个a),其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),注意,a 的值和n的值都由用户输入。 try Console.WriteLine(本程序用于求S=a+aa+aaa+aaa(n个a),其中a是一个数字。现要求输入以下参数:); Console.WriteLine(请输入n的值:); int n = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(请输入a的值:); int a = Convert.ToInt32(Console.ReadLine(); int intas = new intn; intas0 = a; long fsums = a; Console.WriteLine(当i=0时,此时数组元素的值为:1,计算的和等于2., 0, intas0, fsums); for (int i = 1; i n; i+) intasi = intasi - 1 * 10 + a; fsums += intasi; Console.WriteLine(当i=0时,此时数组元素的值为:1,计算的和等于2., i, intasi, fsums); Console.WriteLine(最终计算的表达式S=a+aa+aaa+aaa(n个a)当a=0,n=1时,计算的和等于2., a, n, fsums); Console.Read(); catch (Exception e) Console.WriteLine(程序有错误,错误消息是: + e.Message); Console.Read(); (4)编写一个桌面应用程序,实现(3)题,要求窗体上有两个文本框以便于用户输入a和n的值,最终把计算结果显示在窗体上。 try int n = Convert.ToInt32(txtN.Text); int a = Convert.ToInt32(txtA.Text); int intas = new intn; intas0 = a; long fsums = a; label4.Text = 当i=0时,此时数组元素的值为: + intas0.ToString() + ,计算的和等于 + fsums.ToString(); for (int i = 1; i n; i+) intasi = intasi - 1 * 10 + a; fsums += intasi; label4.Text += n当i= + i.ToString() + 时,此时数组元素的值为: + intasi.ToString() + ,计算的和等于 + fsums.ToString(); label4.Text += n最终计算的表达式S=a+aa+aaa+aaa(n个a)当a= + a.ToString() + ,n= + n.ToString() + 时,计算的和等于 + fsums.ToString(); catch (Exception ex) label4.Text = 程序运行有问题,错误消息是:n + ex.GetType().ToString() + n + ex.Message; 控制台部分:frmShiYan4 sy4 = new frmShiYan4(); sy4.ShowDialog(); sy4.Activate();(5)编写程序求出所有的“水仙花数”,是指一个三位数,其各位数字的立方和恰好等于该数本身。例如:153=1*1*1+5*5*5+3*3*3,所以153是“水仙花”;int gs, ss, bs; for (int i = 100; i 1) if (i = 10) i = 0; if (m % 3 = 0 & stnumeri != 0) Console.WriteLine(同学0报数3出圈, stnumeri); l-; stnumeri = 0; m = 1; i+; else if (m % 3 != 0 & stnumeri != 0) Console.WriteLine(同学0报数1, stnumeri, m); m+; i+; else /stnumeri=0 i+; foreach (int j in stnumer) if (j != 0) Console.WriteLine(最后一位出去的同学序号是:0,其名字是:1, j, (student)j); Console.Read();实验二:C#面向对象程序设计1实验目的:(1)掌握C#语言中参数传递的四种方式。(2)掌握C#语言定义类的方法。(3)掌握类的各种成员(字段,属性,方法,索引器)的定义方法。(4)掌握派生类的设计方法。(5)掌握虚拟方法(属性)和重写方法(属性)的设计方法。(6)掌握将基类对象引用到派生类实例上的方法,理解base关键字的使用方法。(7)理解this关键字的使用方法。(8)理解运行时多态的含义。2. 实验仪器Windows操作系统,Microsoft Visual Studio .NET 2005。3.实验内容:(1)实现一个包含类属性方法的简单加法程序,并能显示结果。using System;using System.Collections.Generic;using System.Text;namespace Programe class Add int a, b; public Add(int a, int b) this.a = a; this.b = b; public void Plus() Console.WriteLine(a+b=0, a + b); class Program static void Main(string args) int a, b; a = Convert.ToInt32(Console.ReadLine(); b = Convert.ToInt32(Console.ReadLine(); Add aa = new Add(a, b); aa.Plus(); Console.ReadKey(); (2)实现一个Person类,要求:属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。namespace Programe class Person string strName; string strPID; int intAge; string strWork; double dblSalary; public Person(string Name, string PID, int Age, string Work, double Salary) strName = Name; strPID = PID; intAge = Age; strWork = Work; dblSalary = Salary; public int Age get return intAge; public string Work get return strWork; public double Salary get return dblSalary; public string Name get return this.strName; public string PID getreturn this.strPID; public void Display() Console.WriteLine(Personal Information: Name= 0,PID=1,Age = 2,Work =3,Salary =4,this.Name,this.PID,this.Age,this.Work,this.Salary); class Program static void Main(string args) Person zhang = new Person(张强,20021,20,建筑工人,2000); zhang.Display(); Console.ReadLine(); (3)编写一个涉及参数传递的程序,要求在程序中用到值参数、引用参数、输出参数及参数数组,并比较它们的不同之处。程序功能要求:程序首先给整型变量x 和y 赋初值3,5,然后使用传值调用方式调用方法对x 和y 做乘方并及输出x 和y 的乘方值,最后输出x和y的值。再将此方法给为对象调用加ref修饰查看输出结果差异。再设置一个out参数z记录x*y的值。class Program static void Main(string args) int x = 3, y = 5,z; Square(x, y); Console.WriteLine(x=0,y=1, x, y); Square(ref x, ref y); Console.WriteLine(x=0,y=1, x, y); Square(x, y, out z); int sa = 32, 65, 78, 24, 588, 44 ; int max = GetMax(sa); Console.WriteLine(Max of sa is:0, max); max = GetMax(65, 35, 68, 98, 35); Console.WriteLine(Max of MultiValue is:0, max); Console.Read(); static public int GetMax(params int var) int Max = var0; for (int i = 0; i var.Length; i+) if (Max vari) Max = vari; return Max; static public void Square(int a, int b, out int z) z = a * b; a = a * a; b = b * b; Console.WriteLine(x*x=0,y*y=1,z = 2, a, b,z); static public void Square(ref int a,ref int b) a = a * a; b = b * b; Console.WriteLine(x*x=0,y*y=1, a, b); static public void Square(int a, int b) a = a * a; b = b * b; Console.WriteLine(x*x=0,y*y=1, a, b); (4)类的继承和基类构造方法的应用编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:定义一个基类圆,至少含有一个数据成员半径;定义基类的派生类球、圆柱、圆锥,都含有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。定义主函数,求球、圆柱、圆锥的和体积。namespace Test4 class Program class circle public const double pai = 3.1415926; public double radius; public circle(double radius) this.radius = radius; class Ball:circle public Ball(double radius): base(radius) /球的体积公式: V 球=4/3 r3 Console.WriteLine(球的体积为:0,4d/3d*circle.pai*radius*radius*radius); public double QiuTiJi() double TiJi = 4d / 3d * circle.pai * radius * radius * radius; Console.WriteLine(球的体积为:0, TiJi); return TiJi; class YuanZhu : circle /圆柱的体积公式 V = r2 *h public double height; public YuanZhu(double radius, double height):base(radius) this.height = height; Console.WriteLine(圆柱的体积为:0, pai * radius * radius * height); public double QiuTiJi() double TiJi = circle.pai * radius * radius * height; Console.WriteLine(圆柱的体积为:0, TiJi); return TiJi; class YuanZhui : circle / 圆锥体积公式 V=1/3Sh = 1/3 * r2 *h public double height; public YuanZhui(double radius, double height):base(radius) this.height = height; Console.WriteLine(圆锥的体积为:0, pai * radius * radius * height / 3); public double QiuTiJi() double TiJi = circle.pai * radius * radius * height / 3d; Console.WriteLine(圆锥的体积为:0, TiJi); return TiJi; static void Main(string args) double radius = 3.5; double height = 4.2; Ball bl1 = new Ball(radius); bl1.QiuTiJi(); YuanZhu yzhu = new YuanZhu(radius, height); yzhu.QiuTiJi(); YuanZhui yzhui = new YuanZhui(radius, height); yzhui.QiuTiJi(); Console.ReadLine(); (5)类的继承和构造函数的灵活应用程序功能要求如下:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、专业、班级和选修课程,课程放到一个数组中,教师数据有编号、姓名、职称、部门和教授课程(课程放到一个数组中)。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。在设计过程中要求体现类的多态性,要求运用base和this关键字体现其用途。提示:在使用this作为方法的参数时,可以采用这一实例:在教师类中有一个方法,显示教师的详细信息,但是需要接收一个student类型参数,判断这个学生是不是教师的学生,比如要求学生的选修课程里有某教师讲授的课程,如果满足条件,显示信息。这样在student类中编写一个方法,显示任课教师的基本信息,这时需要将自身作为一个参数,调用teacher类中的显示信息的方法。using System;namespace testThis class person string strID; string strName; public person(string strID, string strName) this.strID = strID; this.strName = strName; public string Name get return strName; set strName = value; public virtual void Display() Console.WriteLine(ID:0,Name:1, strID, strName); public void DisplayInfo() Console.WriteLine(DisplayInfo,不是虚方法。ID:0,Name:1, strID, strName); class student : person string strMajor; string strClass; internal string strCourses; /int intScores; public student(string strID, string strName, string strMajor, string strClass, string strCourses) : base(strID, strName) this.strMajor = strMajor; this.strClass = strClass; / this.intScores = new intintScores.Length; this.strCourses = strCourses; public override void Display() base.Display(); Console.WriteLine(专业:0,班级:1,选修课程:, strMajor, strClass); for (int i = 0; i strCourses.Length; i+) Console.WriteLine(0, thisi); Console.WriteLine(); public new void DisplayInfo() base.DisplayInfo(); Console.WriteLine(专业:0,班级:1,选修课程:, strMajor, strClass); public string thisint i get return strCoursesi; set strCoursesi = value; public void DisplayTeacherInfo(teacher tc) tc.DisplayInfo(this); class teacher : person string strZhiCheng; string strDepartment; string strCourses; public teacher(string strID, string strName, string strZhiCheng, string strDepartment, string strCourses) : base(strID, strName) this.strZhiCheng = strZhiCheng; this.strDepartment = strDepartment; this.strCourses = strCourses; public override void Display() base.Display(); Console.WriteLine(职称:0,部门:1,教授课程:, strZhiCheng, strDepartment); for (int i = 0; i strCourses.Length; i+) Console.Write(0t, thisi); Console.WriteLine(); public bool CheckStudent(student st, teacher tc) bool flag = false ; for (int i = 0; i st.strCourses.Length; i+) for (int j = 0; j tc.strCourses.Length; j+) if (sti = tcj) flag = true; return flag; return flag; public void DisplayInfo(student st) if (CheckStudent(st,this) base.Display(); Console.WriteLine(职称:0,部门:1,教授课程:n, strZhiCheng, strDepartment); for (int i = 0; i strCourses.Length; i+) Console.Write(0t, thisi); Console.WriteLine(); else Console.WriteLine(你没有权限访问教师信息); public string thisint i get return strCoursesi; set strCoursesi = value; class Program static void Main(string args) int i = 2000; string courseStudent = 数据结构, 数据库原理, 图形学 ; string courseTeacher = 数据库原理, 多媒体技术, 高级语言程序设计 ; student zhang = new student(20010201, 张强, 计算机, 01级计算机一班, courseStudent); teacher liu = new teacher(20050201, 刘斌, 讲师, 信息学院, courseTeacher); zhang.Display(); liu.Display(); zhang.DisplayTeacherInfo(liu); Console.WriteLine(*多态性测试*); /多态性调用 person zhang2 = new person(20010201, 张强); zhang2.Display(); zhang2.DisplayInfo(); zhang2 = zhang; zhang2.Display(); zhang2.DisplayInfo(); person liu2 = new teacher(20050201, 刘斌, 讲师, 信息学院, courseTeacher); liu2.Display(); Console.Read(); (6)多态程序练习:功能要求如下基类shape 类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape 类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数,并在主函数中多态地实现调用。using System;using System.Collections.Generic;using System.Text;namespace test6 abstract class shape abstract public double area(); class triangle : shape double a, b, c; public triangle(double a, double b, double c) this.a = a; this.b = b; this.c = c; public override double area() /三角形的面积的平方p(p-a)(p-b)(p-c) p=1/2(a+b+c) double p = (a + b + c) / 2d; double dblArea = Math.Sqrt(p*(p-a)*(p-b)*(p-c); Console.WriteLine(三角形的面积为:0, dblArea); return dblArea; class circle : shape double radius; public circle(double radius) this.radius = radius; public override double area() Console.WriteLine (Area is: 0, Math.PI * radius * radius); return Math.PI * radius * radius; class Program static void Main(string args) circle c1 = new circle(3.55); c1.area(); triangle t1 = new triangle(3, 4, 5); t1.area(); shape s1 = new circle(6.5); shape s2 = new triangle(6, 8, 10); s1.area(); s2.area(); Console.Read(); 4.思考题(1)如果调用一个方法之后想“带回”多个值,应该都有什么方法?(2)方法的参数传递有哪些方式?区别时什么?(3)什么是虚拟方法、重写方法?(4)如何体会运行时多态,与编译时多态相比有何区别?(5)基类对象和派生类对象之间是否自由地强制转换?27实验三:.NET常用对象的使用一、实验目的:(1)熟练掌握并灵活运用.NET Framework提供的类库中常用的对象。(2)掌握DateTime、Color、Point、Size、Rectangle结构的方法。(3)掌握获取随机数和系统时间的方法。(4)掌握ArrayList、Hashtable类的用法及其与数组的异同点。二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2005。三、实验内容:1.编写一个用随机数合成颜色的程序;步骤如下:(1)启动VS005,新建一个Project,类型为Windows Application,工程名称为TestRandomColor。(2)设计窗体,双击Toolbox中的PictureBox和Button按钮,调整两个控件的大小和位置,如下图所示:(3)选中PictureBox,在属性对话框中将其Name属性修改为:picColor;选中Button按钮,在属性对话框中,将其Name属性修改为btnOK,Text属性修改为”随机颜色”,窗体如下图所示。(4)双击Form1中无控件的空白部分,系统将自动添加页面的Load方法声明(private void Form1_Load(object sender, EventArgs e)),在中输入以下代码: Color cr = Color.Red; picColor.BackColor = cr; this.BackColor = Color.Pink;/ 这几何代码的作用是将页面的背景颜色设置为粉红色,picColor的背景颜色设置为红色。(5)在Form1窗体中,双击“随机颜色”按钮,系统将自动添加按钮的Click事件方法声明(private void btnOK_Click(object sender, EventArgs e)),在中输入以下代码:int intA,intR, intG, intB; intA = new Random().Next(0, 256); System.Threading.Thread.Sleep(50);/注意,这部分内容不要省略,否则颜色以灰色、白色和黑色为主。 intR = new Random().Next(0, 256); S
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!