c#习题1-5附答案_第1页
c#习题1-5附答案_第2页
c#习题1-5附答案_第3页
c#习题1-5附答案_第4页
c#习题1-5附答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、1、简要回答下列问题。(1)举例说明new关键字可用于哪些方面?(2)sealed关键字的作用是什么?什么情况下需要使用sealed关键字?(3)哪些关键字可以用于版本控制?【解答】1)在C#中,new关键字可用作运算符或修饰符。作为运算符用于在堆上创建对象和调用构造函数。作为修饰符用于隐藏基类成员的继承成员。2) 在类声明中使用sealed修饰符可防止其它类继承此类。在方法声明中使用sealed修饰符可防止扩充类重写此方法。sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟

2、调用来处理。3) override关键字和new关键字均可用于版本控制。在C#中,默认情况下方法不是虚拟的。若要使方法成为虚拟方法,必须在基类的方法声明中使用virtual修饰符。然后,派生类可以使用override关键字重写基类中的虚拟方法,或使用new关键字隐藏基类中的虚拟方法。如果override关键字和new关键字均未指定,编译器将发出警告,并且派生类中的方法将隐藏基类中的方法。2、简要回答抽象类和接口的主要区别。【解答】抽象类和接口的一个主要差别是:类可以实现多个接口,但仅能从一个抽象类或任何其它类型的类继承。3、编写一个控制台应用程序,完成下列功能,并回答提出的问题。(1)创建一个

3、类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。(2)从A继承一个名为C的新类,并在C内创建一个成员B。不要为C创建构造函数。(3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。(4)如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?【解答】using System;public class A public A() Console.WriteLine(A); public class B public B() Console.WriteLine(B); public class C : A B newb = new B();class

4、MainClass public static void Main() C newc = new C(); Console.ReadLine(); 输出结果:BA 如果在C中也创建一个构造函数输出“C”,即添加:public C()Console.WriteLine(C); 则整个程序运行的结果为:BAC4、编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。(1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。(2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加

5、50,并输出结果。(3)在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。【解答】using System;public class A public virtual void MyMethod(int num) num += 10; Console.WriteLine(num); public class B : A public override void MyMethod(int num) num += 50; Console.WriteLine(num); class MainClass public static void Main() A newa = ne

6、w A(); newa.MyMethod(2); B newb = new B(); newb.MyMethod(2); Console.ReadLine(); 输出结果:12525、假设Node类的每一个节点包括有两个字段:m_data(引用节点的数据)和m_next(引用链接列表中的下一项)。这两个字段都是由构造函数方法设置的。该类有两个功能,第一个功能是通过名为Data和Next的只读属性访问m_data和m_next字段。第二个功能是对System.Object的ToString虚拟方法进行重写。试分别用类和泛型两种方法编写程序实现上述功能。【解答】using System;class

7、 Node Object m_data; Node m_next; public Node(Object data, Node next) m_data = data; m_next = next; / 访问结点数据 public Object Data get return m_data; / 访问下一个结点 public Node Next get return m_next; / 获取结点数据描述 public override String ToString() return m_data.ToString(); / 链表结点类的泛型定义class Node T m_data; Nod

8、e m_next; public Node(T data, Node next) m_data = data; m_next = next; / 访问结点数据 public T Data get return m_data; set m_data = value; / 访问下一个结点 public Node Next get return m_next; set m_next = value; / 获取结点数据描述 public override String ToString() return m_data.ToString(); / 使用结点类型或泛型结点类型class LinkedLis

9、t static void Main(string args) / 创建整数链表 /Node head = new Node(5, null); /head = new Node(10, head); /head = new Node(15, head); /遍历链表求整数和 /Int32 sum = 0; /for (Node current = head; current != null; / current = current.Next) / / sum += (Int32)current.Data; / / 输出结果 /Console.WriteLine(Sum of nodes =

10、0, sum); / 用泛型创建整数链表 Node head = new Node(5, null); head = new Node(10, head); head = new Node(15, head); / 遍历求和 Int32 sum = 0; for (Node current = head; current != null; current = current.Next) sum += current.Data; / 输出 Console.WriteLine(Sum of nodes = 0, sum.ToString(); 1、使用保持连接方式编写程序,计算各年级平均成绩,并显

11、示结果。【解答】using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 习题9_1 public partial class Form1 : Form public Form1() InitializeComponent(); /添加Button按钮在ListBo

12、x中显示结果 private void button1_Click(object sender, EventArgs e) listBox1.Items.Add(年级 平均成绩); string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根据连接字符串创建SqlConnection实例 SqlConnection conn = new SqlConnection(connectionString); /创建SqlCommand实例,并设置SQL语句和使用的连接实例 SqlCommand

13、 cmd = new SqlCommand(); cmd.CommandText = select substring(学号,1,2) as 年级,avg(成绩) as 平均成绩 from MyTable2 group by substring(学号,1,2); cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) listBox1.Items.Add(string.Format(0级 1, r0, r1); r.Close(); catch

14、(Exception err) MessageBox.Show(err.Message, 计算成绩失败); finally conn.Close(); 2、使用保持连接方式编写程序,查询MyTable2中不及格学生的学号、姓名、性别和成绩。并将结果在ListBox中显示出来。【解答】using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;

15、using System.Data.SqlClient;namespace 习题9_2 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) listBox1.Items.Add( 学号 姓名 性别 成绩); string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根据连接字符串创建Sql

16、Connection实例 SqlConnection conn = new SqlConnection(connectionString); /创建SqlCommand实例,并设置SQL语句和使用的连接实例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = Select 学号,姓名,性别, 成绩 From MyTable2 Where (成绩 18 , conn); DataSet dataset = new DataSet(); adapter.Fill(dataset, person); dataGridView1.DataSourc

17、e = dataset.Tablesperson; adapter.Dispose(); catch (Exception err) MessageBox.Show(err.Message); finally conn.Close(); 5、调用存储过程,设计程序完成下列功能:任意给出一个汉字,统计MyTable2中所有包含该汉字的人数,并显示统计结果。【解答】using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using

18、 System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 习题9_5 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; /设置S

温馨提示

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

评论

0/150

提交评论