当前位置:文档之家› C#程序设计及应用教程课后答案

C#程序设计及应用教程课后答案

C#程序设计及应用教程课后答案
C#程序设计及应用教程课后答案

习题1 参考解答

1、可以用C#编写哪些类型的应用程序?【解答】1)控制台应用程序。2) Windows 应用程序。3) https://www.doczj.com/doc/d213711502.html, Web 应用程序。4) https://www.doczj.com/doc/d213711502.html, Web 服务应用程序。5) https://www.doczj.com/doc/d213711502.html, 水晶报表Web 应用程序。6)智能设备应用程序。7)安装和部署应用程序。

2、什么是命名空间?命名空间和类库的关系是什么?【解答】1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系或联系划分到不同的命名空间下。2)命名空间又可以包含其它的命名空间,例如System.Windows.Forms,是指System 命名空间下有Windows 命名空间,Windows 命名空间下有Forms 命名空间。3)所有类库都在规定的命名空间下。

3、举例说明using 关键字有哪些主要用途。【解答】在C#中,using 关键字有 3 个用途1)指定引用的命名空间,例如:using System.Windows.Forms; 2)简化命名空间的层次表达形式,例如:using WinForm=System.Windows.Form; 3)作为语句,定义一个范围。例如:Font font1 = new Font("Arial", 10.0f); using (font1) {… } 程序执行到“}”时,就会自动释放font1 对象。

习题2 参考解答

1、C#支持的数据类型有那些?值类型和引用类型有何不同?【解答】C#支持的数据类型有:(1)值类型,包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。(2)引用类型,包括:对象类型、类类型、接口、元数据、字符串类型、数组。值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。当把一个值变量赋给另一个值变量时,会在堆栈(stack)中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆(heap)位置的两个引用。进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其他变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。

2、C#中不同整型之间进行转换的原则是什么?【解答】在整型之间进行转换时,小范围类型可以隐式转换为大范围类型,但大范围类型转换为小范围类型时需要使用显式转换。

3、简述装箱和拆箱的过程。【解答】装箱是将值类型隐式地转换为object类型或者转换为由该值类型实现了的接口类型。装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。拆箱是显式地把object类型转换成值类型,或者把值类型实现了的接口类型转换成该值类型。

4、分别写出下列语句执行的结果。1) Console.WriteLine("{0}--{0:p}good",12.34F); 2) Console.WriteLine("{0}--{0:####}good",0); 3) Console.WriteLine("{0}--{0:00000}good",456); 【解答】12.34--1,234.00%good 0--good 456--00456good

5、编写一个控制台应用程序,输出1 到5 的平方值,要求:1) 用for 语句实现。2) 用while 语句实现。3) 用do-while 语句实现。【解答】

using System; using System.Collections.Generic; using System.Text; namespace outputSquareValue { class Program

{ static void Main() { //用for 语句实现for (int i = 1; i <= 5; i++) { Console.WriteLine("{0}的平方值为{1}", i, i * i); } //用while 语句实现int j = 0; while (j++ < 5) { Console.WriteLine("{0}的平方值为{1}", j, j * j); } //用do-while 语句实现int k = 1; do { Console.WriteLine("{0}的平方值为{1}", k, k * k); } while (k++ < 5); Console.ReadLine(); } } }

6、编写一个控制台应用程序,要求用户输入5 个大写字母,如果用户输入的信息不满足

要求,提示帮助信息并要求重新输入。【解答】

using System; using System.Collections.Generic; using System.Text; namespace inputCapitalLetter { class Program { static void Main() { bool ok = false; while (ok == false) { Console.Write("请输入5 个大写字母:"); string str = Console.ReadLine(); if (str.Length != 5) { Console.WriteLine("你输入的字符个数不是 5 个,请重新输入。"); } else { ok = true; for (int i = 0; i < 5; i++) { char c = str[i]; if (c < 'A' || c > 'Z') { Console.WriteLine("第{0}个字符“{1}”不是大写字母,请重新输入。", i + 1, c); ok = false; break;

} } } } } } }

7、编写一个控制台应用程序,要求完成下列功能。1) 接收一个整数n。2) 如果接收的值n 为正数,输出1 到n 间的全部整数。3) 如果接收的值为负值,用break 或者return 退出程序。4) 转到(1)继续接收下一个整数。【解答】

using System; using System.Collections.Generic; using System.Text; namespace testOutput { class Program { static void Main() { while (true) { Console.Write("请输入一个整数(负值结束):"); string str = Console.ReadLine(); try { int i = Int32.Parse(str); if (i < 0) break; for (int j = 1; j <= i; j++) Console.WriteLine(j); } catch { Console.WriteLine("你输入的不是数字或超出整数的表示范围,请重新输入"); } } } } }

8、编写一个控制台应用程序,求1000 之内的所有“完数” 。所谓“完数”是指一个数恰好等于它的所有因子之和。例如,6 是完数,因为6=1+2+3。【解答】

using System; using System.Collections.Generic; using System.Text; namespace completeNumber { class Program { static void Main(string[] args) { for (int i = 2; i <= 1000; i++) {

int s = 1; string str = "1"; for (int j = 2; j <= (int)Math.Sqrt(i); j++) { if (j * (i / j) == i) { if (j != i / j) { s += j + i / j; str += string.Format("+{0}+{1}", j, i / j); } else { s += j; str += string.Format("+{0}", j); } } } if (s == i) Console.WriteLine("{0}={1}", i, str); } Console.ReadLine(); } } }

9、错误和异常有什么区别,为什么要进行异常处理,用于异常处理的语句有哪些?【解答】错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助程序恢复流程。换句话说,错误是一个事件,而异常是该事件创建的对象。当使用短语“产生异常”时,表示存在问题的方法发生错误,并创建异常对象(包含该错误的信息及发生的时间和位置)来响应该错误。导致出现错误和随后异常的因素包括用户错误、资源失败和编程逻辑失败。这些错误与代码实现特定任务的方法有关,而与该任务的目的无关。如果不进行异常处理,即不对错误做出响应,程序的健壮性就会大打折扣,甚至无法保证正常运行,所以必须要进行异常处理。用于异常处理的语句有:try-catch 语句、try-catch-finally 语句、throw 语句。

习题3 参考解答

1、C#语言中的数组类型有何特点?【解答】1)数组一般用于存储同一种类型的数据,包括Object 类型。2)数组是一种引用类型,而不是值类型。3)C#中除了可以有一维数组、多维数组外,还有交错型数组。

2、泛型和非泛型的主要区别是什么?为什么说使用泛型比使用对应的非泛型效率高?【解答】泛型是数据类型的一种通用表示形式,它可以表示任何一种数据类型。泛型(Generic)是具有占位符(类型参数)的类、结构、接口和方法,它与普通类的区别是泛型多了一个或多个表示类型的占位符,这些占位符用尖括号括起来。占位符表示某种类型,这种类型在创建泛型类的实例时才用实际类型来替换。定义一个类或者方法时,可以用泛型占位符代表任何一种类型,而在引用时再指定具体类型。当代码

调用泛型类或方法时,C#编译器会自动将定义的泛型转换为引用代码中指定的类型,从而大大简化了程序员编写代码的复杂度。另外,由于占位符可以代表任何一种类型,因此在方法中只定义一次类型就能实现所有类型的引用。3、编写一个控制台应用程序,计算1+ x ? 要求精度为10?8。【解答】

using System; class Test3 { public static void Main() { int n = 50; double x = 3; double s = 0; double a = 1; for (int i = 1; i <= n; i++) { a *= i; s += Math.Pow(-1, i + 1) * Math.Pow(x, i) / a; } Console.WriteLine("n={0},s={1:0.00000000}", n, s); }

x 2 x3 x 4 xn + ? + L + (?1)( n +1) 2! 3! 4! n!

} 4、编写一个控制台应用程序,接收一个长度大于3 的字符串,完成下列功能。(1)输出字符串的长度。(2)输出字符串中第一个出现字母 a 的位置。(3)在字符串的第 3 个字符后面插入子串“hello” ,输出新字符串。(4)将字符串“hello”替换为“me” ,输出新字符串。(5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。【解答】【解答】

using System;

class Test4 { public static void Main() { string str = ""; while (str.Length <= 3) { Console.Write("请输入一个长度大于3 的字符串:"); str = Console.ReadLine(); } //(1)Console.WriteLine("字符串的长度为:{0}", str.Length); //(2)int i = str.IndexOf('a'); if (i > -1) { Console.WriteLine("第一个出现字母 a 的位置是:{0}", i); } else { Console.WriteLine("字符串中不包含字母a。"); } //(3)string str1 = str.Insert(3, "hello"); //在第3 个(初始序号为)字符前插入hello Console.WriteLine("插入hello 后的结果为:{0}", str1); //(4)string str2 = str1.Replace("hello", "me"); Console.WriteLine("将hello 替换为me 后的结果为:{0}", str2); //(5)string[] arr = str2.Split('m'); Console.WriteLine("以m 为分隔符分离后的字符串有:"); for (int j = 0; j < arr.Length; j++) { Console.WriteLine(arr[j]); } } }

习题4 参考解答

1、编写一个控制台应用程序,完成下列功能。(1)创建一个类,用无参数的构造函数输出该类的类名。(2)增加一个重载的构造函数,带有一个string 类型的参数,在此构造函数中将传递的字符串打印出来。(3)在Main 方法中创建属于这个类的一个对象,不传递参数。(4)在Main 方法中创建属于这个类的另一个对象,传递一个字符串“This is a string.” 。(5)在Main 方法中声明类型为这个类的一个具有5 个对象的数组,但不要实际创建分配到数组里的对象。(6)写出运行程序应该输出的结果。【解答】

using System; class Test1 { public Test1() { Console.WriteLine(this); } public Test1(string str) { Console.WriteLine(str); } public static void Main() { Test1 t1 = new Test1(); Test1 t2 = new Test1("This is a string."); Test1[] t3 = new Test1[5]; } }

输出结果:

Test1 This is a string.

2、编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private 以及protected 数据成员及方法。然后定义一个从MyClass 类继承的类MyMain,将Main 方法放在MyMain 中,Main 方法中创建MyClass 类的一个对象,在并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。【解答】using System; class MyClass { public int i; private int j; protected int k; public void method1() { Console.WriteLine("public method."); } private void method2() { Console.WriteLine("private method.");

} protected void method3() { Console.WriteLine("protected method."); } } class MyMain : MyClass { public static void Main() { MyClass t = new MyClass(); Console.WriteLine("i={0}", t.i); Console.WriteLine("j={0}", t.j); //会出现编译错误,私有成员不允许在其它类中访问Console.WriteLine("k={0}", t.k); //会出现编译错误,应该创建MyMain 的对象,然//后通过MyMain 的对象访问t.method1(); t.method2(); //会出现编译错误,私有的方法不允许在其它类中调用t.method3(); //会出现编译错误,应该创建MyMain 的对象,然后通过MyMain 的//对象调用该方法} }

3、创建一个类包含有protected 数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected 数据。【解答】

using System; class Class1 { protected int i = 5; protected void MyMethod() { Console.WriteLine("protected method."); } } class Class2 : Class1 { private void NewMethod() { Console.WriteLine(this.i); this.i += 10; Console.WriteLine(this.i); } public static void Main() { Class2 t = new Class2(); t.NewMethod(); } }

4、结构和类的区别是什么?【解答】1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。2)对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。3)一般用结构存储多种类型

的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。

习题5 参考解答

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

2、简要回答抽象类和接口的主要区别。【解答】抽象类和接口的一个主要差别是:类可以实现多个接口,但仅能从一个抽象类或任何其它类型的类继承。

3、编写一个控制台应用程序,完成下列功能,并回答提出的问题。(1)创建一个类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 MainClass { public static void Main() { C newc = new C(); Console.ReadLine(); } }

输出结果:

B A

如果在C 中也创建一个构造函数输出“C” ,即添加:

public C() { Console.WriteLine("C"); }

则整个程序运行的结果为:

B A

C 4、编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。(1)创建一个类A,在A 中编写一个可以被重写的带int 类型参数的方法MyMethod,并在该方法中输出传递的整型值加10 后的结果。(2)再创建一个类B,使其继承自类A,然后重写A 中的MyMethod 方法,将A 中接收的整型值加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 = new A(); newa.MyMethod(2); B newb = new B(); newb.MyMethod(2); Console.ReadLine(); }

}

输出结果:

12 52

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

using System; class 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> { T m_data; Node<T> m_next; public Node(T data, Node<T> next) { m_data = data; m_next = next; } // 访问结点数据public T Data { get { return m_data; } set { m_data = value; } } // 访问下一个结点public Node<T> Next { get { return m_next; } set { m_next = value; } } // 获取结点数据描述public override String ToString() { return m_data.ToString(); } } // 使用结点类型或泛型结点类型class LinkedList { 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 = {0}", sum); // 用泛型创建整数链表Node<Int32> head = new Node<Int32>(5, null); head = new Node<Int32>(10, head); head = new Node<Int32>(15, head); // 遍历求和Int32 sum = 0; for (Node<Int32> current = head; current != null; current = current.Next) { sum += current.Data; } // 输出Console.WriteLine("Sum of nodes = {0}", sum.ToString()); } }

习题6 参考解答

1、填空题(1)使控件是否可以对用户交互做出响应的属性是(Enabled)。(2)控制控件是否显示的属性是(Visible)。(3)若要在文本框中输入密码,常指定(PasswordChar)属性。(4)若某复选框某时刻【CheckState】属性的值为Indeterminate,则其属性【Checked】的值为(true)。(5)使用(GroupBox)或(Panel)控件可以将多个RadioButton 控件分为两个单选组。(6)若不希望用户在ComboBox 控件中编辑文本,则应将属性

(DropDownStyle)的属性值设置为DropDownList。2、简要介绍TextBox 控件、MaskedTextBox 控件和RichTextBox 控件的使用场合。【解答】TextBox 控件一般用于单段文本的编辑,可以设置为单行或多行的输入模式,也可以用作密码的输入;MaskedTextBox 控件主要用于特定格式的单段文本编辑,在输入文本不符合格式要求的将会触发其MaskInputRejected 事件;RichTextBox 控件除了具有TextBox 的一般文本编辑功能外,还可以进行多段文本的高级编辑功能,如改变文本、段落的显示格式、在文本中查找特定字符和字符串以及与Rtf 文件的交互等。3、简要说明CheckBox 控件和RadioButton 控件的区别。【解答】CheckBox 控件可为用户提供选择功能,常用的是二选一的选择,如“真/假”或“是/ 否” ;但该控件也可以通过属性的设置作三选一的选择。每一个CheckBox 所代表的选择都是独立的,若有多个CheckBox 控件构成一组选项时,则可以多个同时被选中,相互之间不影响,即复选。RadioButton 控件,它与CheckBox 控件功能类似,也是用于接收用户的选择,但它是以单项选择的形式出现,即一组RadioButton 按钮中只能有一个处于选中状态。一旦某一项被选中,则同组中其他RadioButton 按钮的选中状态自动清除。4、设计一个Windows 应用程序,窗体上有一个TextBox 控件、一个Button 控件。要求:每当用户单击按钮时,文本框都会增加一行文字来反映单击的次数,例如,“第 3 次单击按钮” 。【解答】1) 窗体界面如图6-1 所示;2) 窗体中主要控件属性设置如表6-1;表6-1 窗体中的主要控件属性控件TextBox 控件Button 控件Name 属性textBox1 Button1 Button2 功能显示信息触发添加信息事件触发结束添加事件其它属性ScrollBars=V ertical; Multiline=True

3) 主要事件代码。

…… int i = 1; bool Add = true; ……private void button1_Click(object sender, EventArgs e) { if(Add) textBox1.Text += "第" + i + "次单击按钮\r\n"; i++; } private void button2_Click(object sender, EventArgs e) { Add = false; }

5、编写一段程序,向名为listBox1 的ListBox 控件中,自动添加10 个随机数,每个数占一项。【解答】主要代码如下。

public partial class Form1 : Form { int m = 1; …… private void button1_Click(object sender, EventArgs e) { for (int i = m ; i < m+10; i++) { listBox1.Items.Add(i); } m = m + 10; } }

习题7 参考解答

1、Directory 类提供了哪些目录管理的功能,它们是通过哪些方法来实现的?【解答】Directory 类为我们提供了对磁盘和目录进行管理的功能,如复制、移动、重命名、创建和删除目录,获取和设置与目录的创建、访问及写入操作相关的时间信息。如:CreateDirectory 方法用于创建指定路径中的所有目录;Delete 方法用于删除指定的目录;Move 方法能够重命名或移动目录;Exists 方法用于确定给定路径是否引用磁盘上的现有目录;GetCurrentDirectory 方法用于获取应用程序的当前工作目录;GetFiles 方法用于返回指定目录中的文件的名称等。

2、编写程序用Directory 类提供的方法确定指定的目录是否存在,如果不存在,则创建该目录。然后在其中创建一个文件,并将一个字符串写到文件中。【解答】程序清单如下:

using System; using System.IO; class Test { public static void Main() { string path = @"c:\MyDir"; try { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } StreamWriter sw=File.CreateText(path+@"\myfile.txt"); sw.WriteLine("This is a String!"); sw.close(); } catch (Exception e) { Console.WriteLine("操作失败: {0}", e.ToString()); } finally {} } }

3、编写程序,使用File 类实现删除指定目录下的指定文件。【解答】程序清单如下:using System; using System.IO; class FileTest { public static void Main()

{ Console.WriteLine("确认删除当前目录下的所有文件?"); Console.WriteLine("点击'Y'键继续,其它键取消操作"); int a = Console.Read(); if(a == 'Y' || a == 'y'){

Console.WriteLine("正在删除文件..."); } else { Console.WriteLine("用户取消操作"); return; } DirectoryInfo dir = new DirectoryInfo ("."); foreach (FileInfo f in dir.GetFiles()) { f.Delete(); } } }

习题8 参考解答

1、简述有哪些创建Graphics 类对象的方法。【解答】(1)在窗体或控件的Paint 事件中直接引用Graphics 对象。在为窗体创建绘制代码时,一般使用此方法获取对图像的引用。

(2)从当前窗体获取对Graphics 对象的引用。注意这种对象只有在处理当前Windows 窗体消息的过程中有效。如果想在已经存在的窗体或控件中绘图,可以使用此种方法。(3)从继承自图像的任何对象创建Graphics 对象。这个方法适用于需要更改已经存在的图像。

2、使用Panel 控件分别以矩形、椭圆和圆形的方式动态显示图片,图片的大小由Panel 控件的大小决定。【解答】(1)新建一个Windows 应用程序,命名为“ShowImageExe”,调整窗体到适当大小。更改“Form1.cs”为“FromShowImageExe.cs” 。(2)切换到代码方式,添加名称空间引用:

using System.Drawing.Drawing2D;

(3) 添加四个Button 控件分别命名为“ buttonOpenFile ” “ buttonRectangle ” 、、“buttonEllipse”“buttonRound” 、,以及一个openFileDiolog 和Panel 控件。(4)在Form 类下声明两个私有变量filename 和flag,分别用来记录打开的文件名和判断哪个按钮的click 时间被触发。

private string filename = ""; private int flag = 0;

(5) 添加【打开文件】按钮的click 事件

private void buttonOpenFile_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); filename = openFileDialog1.FileName; panel1.Refresh(); }

(6) 在panel1 控件的paint 事件下添加如下代码:

private void panel1_Paint(object sender, PaintEventArgs e) { if (filename.Trim() == "") return; Bitmap mybitmap = new Bitmap(filename); Graphics g = e.Graphics; TextureBrush mybrush = new TextureBrush(mybitmap,WrapMode.Clamp); //保证图片完全由绘制对象的边框决定switch (flag) { case 1: g.FillRectangle(mybrush, panel1.ClientRectangle); break; case 2: g.FillEllipse(mybrush, panel1.ClientRectangle); break; case 3: g.FillEllipse(mybrush,(panel1.Width-panel1.Height)/2,0, panel1.Height,panel1.Height); break; } }

(7) 在其他几个按钮的click 事件中分别添加如下代码:

private void buttonRectangle_Click(object sender, EventArgs e) { flag = 1; panel1.Refresh(); } private void buttonEllipse_Click(object sender, EventArgs e) { flag = 2; panel1.Refresh(); } private void buttonRound_Click(object sender, EventArgs e) { flag = 3; panel1.Refresh(); }

(8) 结果如图所示。

第2 题以矩形、椭圆和圆形的方式显示图片运行3、编写一个Windows 窗体应用程序,利用PictureBox 控件和Panel 控件实现滚动浏览大图片的功能。【解答】由于Pictur ebox 控件在显示图片时不能直接使用滚动条,所以必须借助Panel 控件实现以滚动条的方式浏览大图片。具体操作步骤如下:(1)新建一个Windows 应用程序,命名为“scrollBar”,调整窗体到适当大小。更改“Form1.cs”为“FormScrollBar.cs” 。(2)切换到代码方式,添加名称空间引用:

using System.Drawing.Drawing2D;

(3)在窗体上分别添加一个button 控件命名为“buttonOpenFile” ,一个openFileDiolog 控件,Picturebox 和Panel 控件各一个,将Panel 控件的AutoScroll 属性设为true。(4) 在“buttonOpenFile”控件的click 事件中添加如下代码:

private void buttonOpenFile_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); if (openFileDialog1.FileName.Trim() == "") return; try {

Bitmap mybitmap = new Bitmap(openFileDialog1.FileName); pictureBox1.Image = mybitmap; } catch (Exception Err) { MessageBox.Show(" 打开文件错误!", " 信息提示", MessageBoxButtons.OK, https://www.doczj.com/doc/d213711502.html,rmation); } }

(5)结果如图所示。

第3 题滚动条浏览大图片

4、编写一个Windows 窗体应用程序,实现对图片进行旋转、缩放和平移的功能。【解答】(1)在窗体上添加六个label 控件(其中label1 用来显示图片)、一个button 控件(用于打开图片文件)和五个numericUpDown 控件(分别用来选择图片缩放的比例、图片旋转的角度、图片位移的大小)。(2)在构造函数上方添加代码:

private string strfilename="";

(3)在button 控件的click 事件里添加如下代码:

private void button1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); strfilename=openFileDialog1.FileName; label1.Refresh(); }

(4)在每一个numericUpDown 控件的ValueChanged 事件中添加如下代码:

label1.Refresh();

(5)在label1 控件的paint 事件中添加如下代码:

private void label1_Paint(object sender, PaintEventArgs e) { if (this.strfilename.Trim()=="") return ; try { Bitmap mybitmap = new Bitmap(strfilename); Graphics g = e.Graphics; TextureBrush mybrush = new TextureBrush(mybitmap); float x = (float)(numericUpDownS1.V alue / 100); float y = (float)(numericUpDownS2.V alue / 100); mybrush.ScaleTransform(x, y); g.FillRectangle(mybrush, 0, 0, ClientRectangle.Width, ClientRectangle.Height);

float r = (float)(numericUpDownR1.V alue); mybrush.RotateTransform(r);

g.FillRectangle(mybrush, 0, 0, ClientRectangle.Width, ClientRectangle.Height); float tx = (float)(numericUpDownT1.Value); float ty = (float)(numericUpDownT2.Value); mybrush.TranslateTransform(tx, ty); g.FillRectangle(mybrush, 0, 0, ClientRectangle.Width, ClientRectangle.Height); } catch (Exception Err) { MessageBox.Show(" 打开文件错误!", " 信息提示", MessageBoxButtons.OK, https://www.doczj.com/doc/d213711502.html,rmation); }

} (6)结果如图所示。

习题9 参考解答

1、使用保持连接方式编写程序,计算各年级平均成绩,并显示结果。【解答】

using System; using System.Collections.Generic; using https://www.doczj.com/doc/d213711502.html,ponentModel; 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 按钮在ListBox 中显示结果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 cmd = new SqlCommand(); https://www.doczj.com/doc/d213711502.html,mandText = "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}", r[0], r[1])); } r.Close(); } catch (Exception err) { MessageBox.Show(err.Message, "计算成绩失败"); } finally { conn.Close(); } } } }

2、使用保持连接方式编写程序,查询MyTable2 中不及格学生的学号、姓名、性别和成绩。并将结果在ListBox 中显示出来。

【解答】

using System; using System.Collections.Generic; using https://www.doczj.com/doc/d213711502.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; 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; //根据连接字符串创建SqlConnection 实例SqlConnection conn = new SqlConnection(connectionString); //创建SqlCommand 实例,并设置SQL 语句和使用的连接实例SqlCommand cmd = new SqlCommand(); https://www.doczj.com/doc/d213711502.html,mandText = "Select 学号,姓名,性别, 成绩From MyTable2 Where (成绩<60)"; cmd.Connection = conn; try { conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() == true) { listBox1.Items.Add( string.Format("{0} {1} {2} {3}", r[0], r[1], r[2], r[3])); } r.Close(); } catch (Exception err) { MessageBox.Show(err.Message, "查询成绩失败"); } finally { conn.Close(); } } } } 3、编写程序,以“[编码]名称”的样式在comboBox1 中显示MyTable1 的内容。【解答】using System; using System.Collections.Generic; using https://www.doczj.com/doc/d213711502.html,ponentModel; using System.Data; using System.Drawing;

using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 习题9_3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; //根据连接字符串创建SqlConnection 实例SqlConnection conn = new SqlConnection(connectionString); //创建SqlCommand 实例,并设置SQL 语句和使用的连接实例SqlCommand cmd = new SqlCommand(); https://www.doczj.com/doc/d213711502.html,mandText = "Select * From MyTable1"; cmd.Connection = conn; try { conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() == true) { comboBox1.Items.Add(string.Format("[{0}] {1}", r[0], r[1])); } comboBox1.SelectedIndex = 0; r.Close(); } catch (Exception err) { MessageBox.Show(err.Message, "显示数据失败"); } finally { conn.Close(); } } } } 4、已知数据库MyDb.mdf 中定义了一张person 表,表中有一个“年龄”字段,编写存储过程并调用存储过程显示该数据表中年龄大于18 的所有纪录。【解答】

using System; using System.Collections.Generic; using https://www.doczj.com/doc/d213711502.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 习题9_4 { public partial class Form1 : Form {

public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e)

{ string connectionstring = Properties.Settings.Default.MyDatabaseConnectionString ; SqlConnection conn = new SqlConnection(connectionstring); try { conn.Open(); SqlDataAdapter adapter = new SqlDataAdapter( "select 性别from person where 性别> 18 ", conn); DataSet dataset = new DataSet(); adapter.Fill(dataset, "person"); dataGridView1.DataSource = dataset.Tables["person"]; adapter.Dispose(); } catch (Exception err) { MessageBox.Show(err.Message); } finally { conn.Close(); } } } }

5、调用存储过程,设计程序完成下列功能:任意给出一个汉字,统计MyTable2 中所有包含该汉字的人数,并显示统计结果。【解答】

using System; using System.Collections.Generic; using https://www.doczj.com/doc/d213711502.html,ponentModel; using System.Data; using System.Drawing; using 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; //设置SQL 语句为存储过程名,命令类型为存储过程https://www.doczj.com/doc/d213711502.html,mandText = "SelectFilterStudentsNum"; https://www.doczj.com/doc/d213711502.html,mandType = CommandType.StoredProcedure;

//添加存储过程中参数需要的初始值,注意参数名要和存储过程定义的参数名相同if( textBox1.Text=="") { MessageBox.Show("请输入有效信息","错误"); textBox1.Focus(); return ; } cmd.Parameters.AddWithValue("@surname", textBox1.Text); cmd.Parameters.AddWithValue("@record", 0); //指定哪些参数需要返回结果cmd.Parameters["@record"].Direction = ParameterDirection.Output; try { conn.Open(); //执行存储过程cmd.ExecuteNonQuery(); //显示返回的结果MessageBox.Show(string.Format("有{0}条含{1} 的记录", cmd.Parameters["@record"].Value,textBox1.Text)); } catch (Exception err) { MessageBox.Show(err.Message); } finally { conn.Close(); } } } }

习题10 参考解答

1、简要说明如何使用CrystalReportViewer 和ReportDocument 对象模型。【解答】使用CrystalReportViewer 对象模型,首先在VS2005 中创建水晶报表文件.rpt,然后通过CrystalReportViewer 控件将该报表封装到对象模型中,再利用该对象模型显示报表内容及与报表进行交互。但建议使用CrystalReportViewer 控制报表的外观显示形式,不要使用CrystalReportViewer 对象直接与报表交互,ReportDocument 对象模型比CrystalReportViewer 功能多、范围广。该对象模型提供了在代码中处理报表的各种能力。在VS2008 中创建水晶报表文件.rpt,完成报表设计后,选择主菜单中的【生成】【生成解决方案】,则系统会自动创建一个ReportDocument 对象模型,在工具箱中即可以看到自动生成的与报表同名的组件,将该组件拖放到设计窗体后,即得到实例,使用该实例的属性完成对报表结构及报表内部数据的各种控制。

2、嵌入式水晶报表和非嵌入式水晶报表有什么相同点和不同点?在Windows 应用程序中,能否使用非嵌入式水晶报表?【解答】相同点:都需要创建水晶报表文件.rpt。不同点:①嵌入式报表具有与.rpt 文件对应的同名包装类,直接通过代码与包装类进行交互,而不是与原始报表文件本身进行交互。非嵌入式报表则单独以.rpt 文件形式存在报表,该报表不包含在项目内,也没有对应的报表包装类。②对于嵌入式报表,系统对项目进行编译时,与其他项目资源一样,报表和其包装类都会被自动嵌入到程序集中,用户看不到被包装后的.rpt 文件。对于非嵌入式报表,如果

是https://www.doczj.com/doc/d213711502.html, 网站,要求该.rpt 文件保存在网站根目录下,如果是Windows 应用程序则要求分发后.rpt 文件保存在和.exe 文件相同的目录下。③对于嵌入式报表,如果修改了报表内容,必须重新编译整个项目。非嵌入式报表修改了报表内容,不须重新编译整个项目。在Windows 应用程序中,可以使用非嵌入式水晶报表。但要求分发后.rpt 文件保存在和.exe 文件相同的目录下(通过Application.StartPath 访问该目录),在解决方案资源管理器中,水晶报表.rpt 文件的【生成操作】属性改为“无” ,该报表即成为非嵌入式报表,再将【复制到输出目录】属性改为“始终复制” ,这样就可以在程序中访问到该文件。

习题11 参考解答

1、类库和控件库的主要区别是什么?【解答】类库是指独立提供的组件。类库本身不能单独运行,只能被其他程序调用。这里需要说明一点,之所以称这个.dll 文件为类库而不直接叫动态链接库,是因为“动态链接库”这个词包含的范围太广,不管是.NET 之前的组件技术还是基于.NET 的组件技术,也不管是组件还是控件,只要扩展名为.dll 的文件都叫动态链接库。为了区分组件和控件,我们才将不带界面的组件叫“类库” ,将带界面的控件叫“控件库” 。

2、特性(Attribute)和属性(Property)的作用各是什么?举例说明如何利用特性控制属性窗口中的属性分类。【解答】特性实际上是由一个或多个继承自Attribute 类的特殊类的简称。从用途上来看,可以将特性理解为一种标记,该标记用于提供目标元素的信息。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模块、参数、(Property)属性、返回值、结构或其他特性(Attribute)。属性是程序员用来访问数据成员的。例如,下面的代码在属性ErrorMessage 的上方声明了DefaultValue 特性和Description 特性。

[DefaultValue(null)] [Description("提示信息"), Category("验证")] public string ErrorMessage{ get; set; }

习题12 参考解答

1、解释正则表达式<a\s+href\s*=\s*""?([^"" >]+)""?>(.+)</a> 各部分代表的含义。【解答】此正则表达式用于匹配源文件中类似于<a href="

https://www.doczj.com/doc/d213711502.html,">搜狐新闻</a> 的字符串,各部分表示的含义为:<a HTML 定位点的开始\s+ 一个或多个空白字符href 后接HTML 定位点中的确切文本\s* 零个或多个空白字符= 后接HTML 定位点中的确切文本\s* 零个或多个空白字符""? 零或无引号(转义的)( 定义子字符串(定位点URL)的组的起始点。[^"" >]+ 任意字符的一个或多个匹配项,括号中的字符除外。) 定义子字符串的第一组的结束""? 零或无引号(转义的)> 后接HTML 定位点中的确切文本(.+) 与任意字符(定位点文本)匹配的组。</a> 结束HTML 定位点的确切文本2、写出符合下列要求的正则表达式。(1)要求4~8 个英文字母。(2)不能包含字母,至少1 个字符。(3)至少3 个数字。(4)至少3 个字符。(5)至少3 个英文字母。(6)3 个字母或数字,如123、r3a 等。(7)3 个点。(8)@前至少有1 个字符,@后至少有3 个字符。(9)必须输入左括号。【解答】1) [a-zA-Z]{4,8} 2) [^a-zA-Z]{1,} 3) [0-9]{3,} 4) {3,} 5) [a-zA-Z]{3,} 6) .{0,} 7) [A-Za-z0-9]{3} 8) \.{3} 9) .{1,}@ .{3,} 10) \(

习题13 参考解答

1、HTML 的含义是什么?其主体部分由什么标记构成?【解答】HTML 即Hyper Text Markup Language 超文本标记语言,是构成网页最基本的元素。标记<body>和</body>之间的内容构成了HTML 的主体部分,网页中的所有内容,包括文字、图形、链接以及其他页面元素都包含在该标记符内。

2、CSS 指的是什么?在网页制作中为什么要使用CSS?【解答】CSS(Cascading Style Sheets)也叫层叠样式表,它是用来控制网

页中一个或多个元素的外观。在网页制作中,使用样式表可以减少很多具有相同外观元素的重复设置工作,从而给网页的设计和维护带来了很大的方便;具体应用是:改变样式表中元素显示样式的定义,则在使用该样式表的所有网页中相应元素的显示样式都会自动发生改变。

习题14 参考解答

1、Web 服务器控件和Windows 控件有何不同?【解答】一般来说,大部分Web 服务器控件和Windows 控件的功能和使用都很相似,但是二者在内部实现上却有着本质的区别。Windows 控件的属性、方法、事件等都是在本机上执行的,而Web 服务器控件则全部是在服务器端执行的。

2、SqlDataSource 组件的作用是什么?【解答】SqlDataSource 组件是一种数据源控件,它可以连接到任何https://www.doczj.com/doc/d213711502.html, 支持的数据源(如SQL Server、Oracle 等),从中检索数据,并使得其他控件(如GridView 等控件)可以绑定到数据源。使用SqlDataSource 组件访问数据,只需要提供用于连接到数据库的连接字符串,并定义访问数据的SQL 语句或存储过程。在运行时,SqlDataSource 组件会自动打开与数据库的连接,执行SQL 语句或存储过程,完成数据访问后自动关闭连接。

3、采用GridView 控件、DataList 控件和DetailsView 控件来显示数据各有何特点?【解答】GridView 控件、DataList 控件、DetailsView 控件都可以利用SqlDataSource 控件绑定SQL 数据源自动显示数据。就显示数据的能力来说,GridView 控件、DataList 控件一次可以显示数据表中的多条记录,而DetailsView 控件每次只能显示数据表中的一条记录;就操作数据的能力来说,GridView 控件、DetailsView 控件都可以自动利用SqlDataSource 控件的数据操作命令来编辑所显示的数据,DataList 控件则需要编写自身的相应事件才可以完成编辑数而据的操作。

4、填空题(1)若希望每次修改TextBox 服务器控件文本内容后都能立刻被服务器处理,则应将(AutoPostBack)属性值更改为true。(2)若不采用任何容器控件,要将页面中的若干个RadioButton 服务器控件分为两组进行单选,则应该设置的属性是(GroupName)。(3)SqlDataSource 组件的数据操作命令可以是单条SQL 语句,也可以是(存储过程)。

网络应用程序设计教案

网络应用程序设计 课程教案 课 程 名 称: 网络应用程序设计 课 程 编 号: 4112301 学院、专业、年级: 信息科学院计算机科学与技术 任 课 教 师: 段会川 教 师所 在单位: 信息科学与工程学院 山东师范大学

课程简介 计算机网络已经渗透到我们人类社会生活的方方面面,人们所依赖的Internet提供信息和服务的重要渠道是Web网站。在大学本科教学中,教授网络应用程序设计的基本技术和Web网站建设技术是非常必要的。而这正是我们在计算机科学与技术及通信工程本科专业中开设“网络应用程序设计”课程的基本出发点。 网络应用程序设计和Web技术涉及的范围非常宽广,作为一门实用性的课程,我们对课程所需要涉及的内容的教学方法进行了认真的研究,确定了如下的思路:(1)鉴于网络应用程序设计技术的广泛性,课程内容选取了最有代表性的Internet和Web技术,而且从教学方式上以将学生领入为主,选择的内容也是入门性的内容,以期望通过本课程的学习为学生进一步的深入学习和实战性技能打下切实的基础;(2)本课程是一门实践技能性很强的课程,因而我们从教学内容上对理论性内容深入浅出,强调实践技能的培养,加强学生的上机实践操作,使学生在实践中掌握理论,在实践中学会并提高技能;(3)为了加强创新教育,我们选取了开源的Apache Web服务器和PHP建站技术作为课程的主要内容,使学生将来的创新免受软件版权的限制,为产出创新成果提供较大的空间;(4)为使课堂教学有更强的感染力,我们在课件中提供了大量的实例演示,并将实例演示溶入课件中,同时建立了课程网站,并在网站上提供了大量的练习示例。 课程基本内容包括:(1)Web服务器(Apache、IIS);(2)超文本传输协议HTTP与浏览器; (3)HTML基础篇; (4)HTML高级篇: (5)PHP基础篇; (6)PHP高级篇; (12)PHP数据库篇(MSSQL)。

C++程序设计实践教程思考题答案

实验1 C++基础 6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。 #include using namespace std; int main() { int i; cin>>i; if(i>=65 && 1<=90 ) cout< #include using namespace std; int main()

{ float a,b,c; 潣瑵?请输入直角三角形的两条边长:; cin>>a>>b; c=sqrt(a*a+b*b); 潣瑵?直角三角形的斜边=< using namespace std; int main() { char c; 1 潣瑵?请输入一个字符:; cin>>c; if(c>='A'&& c<='Z') c+='a'-'A'; cout<

3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。 #include using namespace std; int main() { float grade; 潣瑵?请输入成绩:; cin>>grade; if(grade>=60) cout<

《网络应用程序设计》课程设计报告书

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级:0991132 学号:1099113202 姓名:赵燃 指导教师:宋毅、王家宁、徐红梅、姚璐 周期:一周 成绩: 2011年12 月23 日

一、课程设计的目的与要求( (一)课程设计目的与任务 (1)课程设计的目的:《网络高级程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用vc++语言进行面向对象设计的基本方法。提高运用面向对象知识分析实际问题、解决实际问题的能力。 (2)课程设计任务:局域网多人聊天室 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。 (二)题目要求 该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。系统采用VISUAL C++语言程序设计编程实现。并且按要求编写程序设计报告书,能正确编写分析、设计、编码、测试等技术文档。 二、设计正文 1系统分析 (1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。 (2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息除源端外的所有客户发送过去。 (3)服务器还要监控这些连接的状态。在客户主动离开或发生故障时从列表删除相应的表项,并及时更新连接表。 2功能详细描述及框图 用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天,客户端的聊天分为对群聊天和私聊的信息,该信息应通过程序控制分别进行处理。

基于UML的_JSP_ServletWeb应用程序设计_教学案例

111 基于UML的“JSP/Servlet Web应用程序 设计”教学案例 刘洁 (武汉软件工程职业学院,湖北 武汉 430033) 摘 要:关键词:UML软件建模;MVC模式;JSP/Servlet Web应用程序设计;教学案例;登录验证模块 本文针对“JSP/Servlet Web应用程序设计”课程中传统教学法存在的弊端,通过“用户登录验证模块”的教学案例设 计讲解如何采用UML软件建模来整合课程内容、重构课程体系。使学生能够将眼光不仅仅拘泥在程序设计的代码细节上,同时也理解软件工程思想,融会贯通所学知识为己所用。 1 “JSP/Servlet Web应用程序设计”课程教学现状 针对于当前软件人才的需求现状,目前高职院校的软件专业开始主要培养面向“软件蓝领”岗位的高技能应用型人才,开始注重“面向应用,突出能力”,开设了各种关于Java的应用课程,试图提高计算机软件专业高职生的行业竞争力。我院也针对市场需求对软件开发专业课程体系进行不断完善,逐渐形成了一个直接面向软件企业Java开发岗位的系列课程。如Java初级程序设计、Java高级程序设计、JSP/Servlet Web应用程序设、Web应用程序编码—Struts、软件开发项目实训等。 但如何将这一系列课程有效地进行组织,使培养的学生能够更好地适应企业Java软件开发岗位的能力需求,是Java课程群要解决的主要问题。以“JSP/Servlet Web应用程序设计”为例,它是Java课程体系中承上启下的核心课程,它的教学效果直接影响到后续课程的教学。然而,目前该课程的教学存在着以下几点不足,严重影响学生能力的培养。 (1)从课程体系来看,由于高职院校的学制较短,软件开发专业通常在低年级学过一门程序语言之后,尚未熟练理解运用,而直接接触Web 应用程序编码,很多语法和机制难以理解,继而影响学习效果。 (2)从教学方式来看,仍采用的是传统的教学方法,在分析基于Java体系的Web应用程序的知识结构时,采用循序渐进地讲授一门课程的知识点,学生按部就班地学习知识点的方式,而这种教学方法过于强调语法,学生往往在学了一堆语法知识点后对如何开发实际项目还是很茫然。 (3)从市面教材来看,它们有一个共性:纯粹的语法,没有软件工程思想的体现或是纯粹案例项目,却没有知识点的体现。 除此之外,开设此门课程的时间一般在第二学年上学期或下学期,此时学生已完成了“Java程序设计”“网页设计”“数据库程序设计”“计算机网络”等基础课程的学习,但每门课程之间相互独立、割裂。在这种教学体系下,学生虽然也可照着教材,或教师指导完成一些小实例或小项目,但是作为整个课程来说,这些实例或小项目是孤立的、彼此没有联系的,课程之间更没有任何联系,对于学生而言无法理解每门课程在整个课程体系中的地位和作用,学生掌握的知识也是零散的,不系统的,缺乏对课程体系的整体把握,影响教学效果。 2 基于UML的“JSP/Servlet Web应用程序设计”的教学思路 针对当前教学过程中存在的现状,讲解“JSP/Servlet Web 应用程序设计”课程不能再以课件为中心,照“屏”宣科。而需尽量保证知识推理过程需板书,老师边写边讲,使学生与教师思想同步。关键知识点上需要使用案例,且所有代码都在真实的开发环境上开发,通过教师的引导,在师生交互过程中完成编码工作。 除去关键知识点的讲解,针对学生情况,打破原有的知识分块模式,遵循先够用后升华的原则,通过选择一个常见的网站项目,将具有代表性的任务贯穿在整个教学过程中,例如日常实际上网中经常使用的功能,如保存cookie、防止用户非法登录、验证码、网上投票,网络购物等。各个知识点沿着项目主线展开,根据项目的每个模块整理出相关的知识点要素,重新组建各个知识环,环环相扣,避免了知识点零散,脱离实际应用的弊病。学生容易理解,易于掌握,同时也清楚明白整个网站构建所需的架

vb程序设计实验教程习题答案

实验教材实验一 1:单项选择题: A A C C C D C B B C 2:填空题: (1).bas (2).vbp,.frm (3)视图工具箱 (4)对象 (5)属性对象事件方法 (6)Windows (7)事件行为 (8)窗体模块 实验二 1:单项选择题: A D C C A B A B D C B B C B C B A B D C 2:基本运算题: (1)27 (2)3.33333333333333 (3)3 (4)0 (5)-3 (6)2 (7)ab33 (8)类型不匹配 (9)3 (10)AB3 实验三 1:单项选择题: B C B D C 2:填空题: (1)300 (2)321456 (3)Shanghai (4)6 7 6 (5)True (6)2+3=5 (7)”area=” 12.56 (8)VISUAL 实验四 1:单项选择题: C A A C A 2:填空题: (1)7 (2)3 5

(3)输入的数小于0 (4)3 (5)False (6)2010 is not leap year. 试验五 1:单项选择题: A C C A B A C C C B 2:填空题: (1)9 (2)①n ②1 (3)①Len(a) ②n\2 ③Mid(a,(n-i+1),1) ④Mid(a,(n-i+1),1) (4)①n Mod 3=1 And n Mod 5=1 And n Mod 7=1 ②While CountN<5 (5)Mid(c1,1,i) 实验六 1:单项选择题: D B D C D A C A D D 2:填空题: (1)30 (2)3 (3)①a(2) ②a(3) ③a(1) (4)①1 ②2 ③a(i)=a(6-i) (5)①i+j ②0 ③a(i,j) (6)①Print ②k ③a(k,j)=a(j,k) ④a(k,j); 实验七 1:单项选择题: A B B A C B 2:填空题: (1)15 (2)①Preserve a(n+1) ②a(i+1)=a(i) ③Exit For ④a(i+1)=m⑤0 to n+1 (或LBound(a) to UBound(a)) (3)d,c,b,a 实验八 1:单项选择题: C A D B D C A C B 2:填空题: (1)a=9 b=4 (2) 36 25 16 9 4 1 (3)①a ②UBound(b) ③

《Web应用程序设计》教学大纲

《 Web应用程序设计》教学大纲 一、课程定位 1.课程名称:Web应用程序设计 2.学时32 学分2 3.课程性质:素质拓展公共选修通识课 4.先修课程:网站建设与网页制作、计算机网络原理、数据库原理与应用、Java程序设计 后续课程:Java EE 高级编程 5.参考教材 张志锋《JSP程序设计技术教程(第2版)》清华大学出版社 二、教学目标 1.知识目标 通过学习使学生掌握JSP技术的基础知识,以及网络程序设计的基本思想方法,会应用JSP进行基本的程序设计和网络编程,能够独立完成一个完整的web 系统项目。本课程的教学任务包括介绍JSP运行环境的搭建,JSP的基本语法,JSP访问数据库的相关知识,JavaBean和Servlet,MVC的开发模式等内容。 2.能力目标 使学生能够搭建JSP的运行环境;熟悉JSP的基本语法;掌握用JSP建立Web 服务的基本框架;熟练掌握使用JSP处理HTML表单;熟练掌握使用JSP访问数据库;掌握使用JavaBean扩展JSP功能;熟悉MVC的开发模式。 3.素养目标 培养学生JSP实际开发能力,提高学生实践动手能力和编程能力。提高学生团队协作能力、职业素养能力和自主创新能力。 三、教学内容及设计

四、考核方式及评分 1.考核性质:考查课。 2.学生课程成绩中平时占比:考勤 20%,平时作业20%,课堂表现 10%,期末提交任务 50%。 五、教学组织 1.班级容量[x,y] 2.主讲教师: 六、参考教材 1. 李兴华,王月清,Java Web开发实战经典,清华大学出版社, 2010年 2. 宋智军,邱仲潘,JSP从入门到精通,电子工业出版社, 2012年 3. 耿祥义, 张跃平,JSP实用教程,清华大学出版社, 2015年 七、其他说明 本课程主要使学生掌握JSP的相关知识及Java在WEB应用程序开发中的实际应用,通过具体案例使学生巩固数据库、网页制作等专业知识,更好地进行开发实践。通过该课程的学习使学生掌握动态网页制作的基本操作技能并能熟练应用于中小型动态网站的建设中,在项目实践中提高学生的动手能力和创新能力。

VB程序设计教程(第3版)课后实验答案最新版2

1、完成实验A(P.259)中的第1、 2、 3、5题。 2、参照第2章例2.6,建立一个类似记事本的应用程序,提供:(1) 剪切、复制和粘贴的编辑操作;(2) 字体大小的格式设置;此外,再对记事本的应用程序的功能进行一点扩允。 1.完成在实验B 顺序结构程序。(P.262)中的第1、2 、4 、5.、6题 2.完成实验C 选择结构(P.266)中的第1、2、4、5题 3.用上面实验B的第二题和实验C的第二题完成下面的实验报告。 1、完成实验D循环结构(P.268)中的第1、3、4、6题,其中第1题利用单循环结构显示如图D.1(P.268)所示的界面,而后将图形改为倒三角形。 2、选做实验E数组(P.271)中的第1、2、3题中的任意二题 3、以实验D中的第4题和实验E中的做完的某一题完成下面的实验报告。 A.1 Private Sub Command1_Click() Label3 = Text1 End Sub A.2 Private Sub Form_Load() Timer1.Interval = 0 End Sub Private Sub Command1_Click() '自动 Timer1.Interval = 200 End Sub Private Sub Command2_Click() '手动 Timer1.Interval = 0 Call MyMove End Sub Private Sub Timer1_Timer() Call MyMove End Sub Sub MyMove() Label1.Move Label1.Left - 50 If Label1.Left < 0 Then Label1.Left = Form1.Width End Sub A.3 Private Sub Form_Click() Text1 = Val(Text1) + 1 End Sub Private Sub Form_Load() Text1 = 0 End Sub A.5

《C语言程序设计实践教程》答案-完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.11110000 14.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A

7.A 8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为:12345678 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D

自考网络应用程序设计题库答案

自考网络应用程序设计 题库答案 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

一、选择题 (1)UDP可以提供的端口数是 65535 (2)根据TCP或UDP端口的分配规则,端口254 保留给特定的服务 (3)保留给其他服务的端口是 256 (4)在Internet中,用三元组标识一个应用层进程。这种三元组,指的是传输层协议,主机的IP地址,传输层的端口号 (5)在Internet中,可以标识一个完整的网间通信的是传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口(6)规定纯文本电子邮件信件的格式的是 RFC822 (7)接收电子邮件的邮局协议是 POP3 (8)因特网上使用最多的一种应用是 email (9)SMTP命令的一般的格式命令关键字参数 (10)SMTP客户问候SMTP服务器命令格式是 HELO 发送方的主机名 (11)写信字段的格式是 MAIL FROM:发信人的电子邮件地址 (12)请求发送邮件内容命令格式: DATA (13)空操作命令格式: NOOP (14)系统状态或系统帮助应答码字是 211 (15)帮助信息的码字是 214 (16)服务器关闭传输通道码字是 221 (17)网易的SMTP服务器的域名是 (18)规定电子邮件信件内容结构的标准是 RFC822

(19)信头字段包括四部分,第一部分是字段名 (20)信头字段的结构包括字段折叠 (21)发送者对发送的发送格式是 Sender:mailbox (22)Win32操作系统下支持多进程多线程机制 (23)阻塞套接字的I/O操作调用、等待、返回 (24)套接字I/O模型,种类数是 5 (25)不是图形界面的操作系统有 DOS (26)一般C程序中的Main或WinMain函数是主线程 (27)Win32操作系统中可调度的最小的执行单位线程 (28)为程序员提供了Windows应用程序的集成开发环境的是 vc++(29)线程分的种类数是 2 (30)在MFC应用程序中,所有的线程是 CWinThread对象 (31)适用于处理那些不要求用户输入并且比较消耗时间的其他任务的是工作线程 (32)一个工作线程对应一个控制函数 (33)创建并启动工作线程的函数 AfxBeginThread (34)用户界面窗口类,包括窗口,对话框 (35)AfxBeginThread()函数的第一个参数是 pThreadClass (36)Windows Internet扩展应用程序高级编程接口 WInternet (37)利用MFC WinInet类来编写Internet应用程序还具的优点支持Web代理服务器访问 (38)封装了HINTERNET会话根句柄的是 CInternetSession类

MATLAB程序设计教程课后答案

实验指导 1、 n=input('请输入一个三位数:'); a=fix(n/100); b=fix((n-a*100)/10); c=n-a*100-b*10; d=c*100+b*10+a 2(1) n=input('请输入成绩'); switch n case num2cell(90:100) p='A'; case num2cell(80:89) p='B'; case num2cell(70:79) p='C'; case num2cell(60:69) p='D'; otherwise p='E'; end price=p (2)n=input('请输入成绩'); if n>=90&n<=100 p='A'; elseif n>=80&n<=89 p='B'; elseif n>=70&n<=79 p='C'; elseif n>=60&n<=69 p='D'; else p='E'; end price=p (3)try n; catch price='erroe' end 3 n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6]; a=n(1);

for m=2:20 if n(m)>a a=n(m); elseif n(m)=0 disp(A([n],:)); elseif n<0 disp(lasterr); else disp(A([6],:)); disp(lasterr); end 7(1) f=[]; for n=1:40

c程序设计教程与实验__吉顺如__实验一到七

实验1熟悉Visual C++环境及运行C程序 一、实验目的 1.掌握在Visual C++环境下C程序的建立、编辑、编译和执行过程。 2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。 3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名保存。 #include <> main() { int a,b,sum; /*定义整型变量a、b、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a和b*/ sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ }

改错题 (1计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> main main () { int x=2;y=3;a int x=2,y=3,a ; A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max

春秋福师《面向web应用程序设计》在线作业二

福师《面向web应用程序设计》在线作业二 试卷总分:100 得分:0 一、单选题 (共 25 道试题,共 50 分) 1. 语句DropDownList1.Items[0].Selected=true;的作用是()。 A. 使首项被选中 B. 测试首项是否被选中 C. 去掉首项的选中性 D. 使首项可用 满分:2 分 2. Repeater控件不能使用()种模板。 A. ItemTemplate B. HeaderTemplate C. SelectedItemTemplate D. AlternatingItemTemplate 满分:2 分 3. DataGrid控件的()属性设置是否打开分页功能。 A. AllowPaging B. AutoGenerateColumns C. CurrentPageIndex D. AlloewCustomPaging 满分:2 分 4. 验证用户输入的值在 18~60 的范围内,要使用()验证控件。 A. RegularExpressionValidatof控件 B. CompareValidator控件 C. RangeValidator控件 D. RequiredFieldValidator控件 满分:2 分 5. TreeView控件()属性指定当节点展开时的图片路径。 A. ImageUrl B. ExpandImageUrl C. SelecteImageUrl D. NavigateUrl 满分:2 分 6. 指定Label控件的边框风格,需要设置其()属性。

A. BorderColor B. BackColor C. BorderStyle D. BorderWidth 满分:2 分 7. 页面事件的生命周期顺序是:() A. Page_Load,Page_Init,Change,Click,Page_Unload B. Page_Load,Page_Init,Click,Change,Page_Unload C. Page_Init,Page_Load,Change,Click,Page_Unload D. Page_Init,Page_Load,Click,Change,Page_Unload 满分:2 分 8. DropDownList被选中项的索引号被置于()属性中。 A. SelectedIndex B. SelectedItem C. SelectedValue D. TabIndex 满分:2 分 9. 向数据源插入一条记录,需要将命令对象的CommandText属性设置为SQL语言的Insert 命令后,再调用命令对象的( )方法。 A. ExecuteNonQuery B. ExecuteReader C. ExecuteScalar D. ExecuteXmlReader() 满分:2 分 10. PageDataSource类的()属性设置或获取分页数据源每页的行数。 A. AllowPaging B. PageSize C. PageCount D. AlloewCustomPaging 满分:2 分 11. 将一个Button控件加入到DataList控件的模板中,其CommandName属性设置为"buy",当它被单击时将引发DataList控件的()事件。 A. DeleteCommand B. ItemCommand

网络技术应用全套教案

网络技术应用全套教案
Revised as of 23 November 2020

第一课 认识计算机网络
【教学课题】认识计算机网络 【教学目标】: 知识技能: (1)了解计算机网络的主要功能、分类和拓扑结构; (2)理解计算机网络的基本概念, (3)列举并解释网络通信中常用的信息交换技术及其用途。 过程与方法: (1)学习计算机网络的相关知识。 (2)能利用所学网络知识对实际问题进行分析探讨。 情感态度价值观: (1)感受网络的神奇作用,激发对网络技术的求知欲,参与网 络技术学习的态度。 (2)认识到信息技术飞速发展的同时,推动人类学习,生活方 式的深刻变革,了解社会发展和科技进步的相互作用。 【教学课时】1 课时 【教学环境】:硬件:网络教室,投影仪;软件:多媒体辅助教 学软件。

【重点】:计算机网络的功能、组成、定义。 【难点】:计算机网络的组成 【教学过程】: 一、引入 计算机网络技术的发展和普及日益改变着我们的学习和生活,各 种各样的网络应用让我们眼花缭乱,因特网让我们真正体会到信 息爆炸的威力……,这节课我们一起来谈谈我们对计算机网络的 认识。 二、新课讲授 (一)计算机网络的功能(阅读课本 P2~P3,并填表1-1) 活动一:小组讨论总结我们生活中有哪些地方使用了计算机网 络。 活动二::结合活动一中列举的计算机网络的具体应用实例,总结 归纳计算机网络的功能. 总结:计算机网络的应用虽然已经渗透到生活的方方面面,但所 有的应用可以归结为三大功能:资源共享、数据通信和分布处理 与分布控制。 (二)计算机网络的组成与定义

C程序设计教程与实验实验答案

#include void main() { int i; static int a[8]={10,5,4,0,12,18,20,46}; void jhmaxmin(); printf("Original array:\n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("/n"); jhmaxmin(a,8); printf("Array after swapwing max and min: \n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("\n"); } void jhmaxmin(int p[],int n) { int t,*max,*min,*end,*q; end=p+n; max=min=p; for(q=p+1;q*max) max=q; if(*q<*min) min=q; } t=*max; *max=*min; *min=t; } Sy8-2 #include int len(char s[]) { char *p=s; while (*p!='\0')p++; return p-s; } main() { char s[80]; gets(s); printf("\"%s\"include %d characters.\n",s,len(s)); }

#include #include void main() { int i,a[26]; char ch,str[80],*p=str; gets(str); for(i=0;i<26;i++) a[i]=0; while(*p!='\0') { ch=*(p++); ch=ch>'A'&&ch<='Z'?ch+'a'-'A':ch; if('a' main() { int a[8],*p; int i,j,t,k; p=a; printf("Input the numbers:"); for(i=0;i<8;i++) scanf("%d",p+i); t=*p; for(i=0;i<8;i++) { for(j=i;j<8;j++) if(j==i||*(p+j)

2016年自考网络应用程序设计题库答案

一、选择题 (1)UDP可以提供的端口数是65535 (2)根据TCP或UDP端口的分配规则,端口254保留给特定的服务 (3)保留给其他服务的端口是256 (4)在Internet中,用三元组标识一个应用层进程。这种三元组,指的是传输层协议,主机的IP地址,传输层的端口号 (5)在Internet中,可以标识一个完整的网间通信的是传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口 (6)规定纯文本电子邮件信件的格式的是RFC822 (7)接收电子邮件的邮局协议是POP3 (8)因特网上使用最多的一种应用是email (9)SMTP命令的一般的格式命令关键字参数 (10)SMTP客户问候SMTP服务器命令格式是HELO 发送方的主机名 (11)写信字段的格式是MAIL FROM:发信人的电子邮件地址 (12)请求发送邮件内容命令格式:DATA (13)空操作命令格式:NOOP (14)系统状态或系统帮助应答码字是211 (15)帮助信息的码字是214 (16)服务器关闭传输通道码字是221 (17)网易的SMTP服务器的域名是https://www.doczj.com/doc/d213711502.html, (18)规定电子邮件信件内容结构的标准是RFC822 (19)信头字段包括四部分,第一部分是字段名 (20)信头字段的结构包括字段折叠 (21)发送者对发送的发送格式是Sender:mailbox (22)Win32操作系统下支持多进程多线程机制 (23)阻塞套接字的I/O操作调用、等待、返回 (24)套接字I/O模型,种类数是 5 (25)不是图形界面的操作系统有DOS (26)一般C程序中的Main或WinMain函数是主线程 (27)Win32操作系统中可调度的最小的执行单位线程 (28)为程序员提供了Windows应用程序的集成开发环境的是vc++ (29)线程分的种类数是 2 (30)在MFC应用程序中,所有的线程是CWinThread对象 (31)适用于处理那些不要求用户输入并且比较消耗时间的其他任务的是工作线程 (32)一个工作线程对应一个控制函数 (33)创建并启动工作线程的函数AfxBeginThread (34)用户界面窗口类,包括窗口,对话框 (35)AfxBeginThread()函数的第一个参数是pThreadClass (36)Windows Internet扩展应用程序高级编程接口WInternet (37)利用MFC WinInet类来编写Internet应用程序还具的优点支持Web代理服务器访问 (38)封装了HINTERNET会话根句柄的是CInternetSession类

面向对象程序设计C#课程教案

《程序设计与算法(C#)二》课程教案 一、课程说明 1、课程代码: 040483 2、总学时数: 64 ,其中理论环节学时数: 32 ,实验实践环节学时数: 36 3、学分: 6分 4、适用专业:计算机应用技术 5、本课程的性质、地位和作用 本课程是计算机应用技术的一门重要的编程类专业课。C#语言是针对网络技术应 用而开发的语言,课程的主要教学内容以应用为主,以语法介绍为辅,主要包括C# 语言基本语法、面向对象编程方法,C#开发Windows应用程序,C#开发Web应用程序等。本课程的先修课是计算机应用基础或C语言,后续课程是基于C#的Web应用程 序设计。本课程是软件工程、信息系统开发、开发工具等课程的前驱课程。 《程序设计与算法(C#)》采用CAI课件,在多媒体教室讲授。使用多媒体技术 可以提高授课效率,可以现场运行、修改例子程序,实现直观教学,提高授课效果。 本课程以从实际应用出发,集应用与原理于一体,两部分内容互相联系,又各 有侧重,力求做到理论联系实际,用理论来指导实际应用。 二、教学基本要求 1、本课程的目的、任务 课程的教学目的是培养学生使用NET平台开发桌面及网络应用程序的能力。教学 任务是让学生掌握C#语言的基本知识与技术,理解并树立面向对象的程序设计思想,培养运用Visual C#https://www.doczj.com/doc/d213711502.html,开发工具进行编程的能力。 2、本课程的教学要求 课程的要求是培养学生面向对象编程的思想和能力及素质,为以后学习其它面向 对象的编程语言打下坚实的基础。本课程是一个实践性非常强的课程,要求学生要注 重实践,在掌握C#语言的基本语法后,重点应放在提高编程能力的训练上。

C#程序设计基础教程与实训习题答案

附录Ⅰ各章习题答案 第1章C#语言概述 一、判断题 1、√ 2、× 3、√ 4、× 5、√ 6、√ 7、× 8、× 二、选择题 1、C 2、B 3、C 4、A 5、A 6、B 7、B 8、B 三、填空题 1、最新的;面向对象 2、C和C++;JA V A 3、先进设计思想;安全性能 4、灵活性 5、集成开发环境(IDE)——Visual https://www.doczj.com/doc/d213711502.html, 6、Microsoft .NET Framework(微软.NET框架体系) 7、最基本的通用语言运行时库CLR(Common Language Runtime);一些提供了具体功能的类库 8、需要开发和设计的项目文件;应用程序或组件 四、简答题 1、①简洁易用的语法。②自动的资源回收机制。③与Web的紧密结合。④完整的安全性与错误处理。⑤版本处理技术。⑥灵活性和兼容性。 2、C#程序必须包含一个Main方法,Main方法是程序的入口点,程序控制在该方法中开始和结束。该方法用来执行任务,并在任务完成后返回信息。 第2章常用标准控件 一、判断题 1、× 2、× 3、√ 4、× 5、√ 6、× 7、√ 8、√ 二、选择题 1、A 2、C 3、B 4、D 5、A 6、B 7、B 8、D 三、填空题 1、输入/输出信息 2、属性 3、事件 4、TextAlign 5、Click 6、文本框(TextBox) 7、保证数据标准化 8、Show 四、简答题 1、简述生成控件的操作过程。 (1)单击工具箱中相应的工具按钮,这一按钮呈现被按下状态,表明被选定。 (2)移动鼠标到窗体上,这时鼠标的指针变成十字形,在需要放置控件的左上角位置按下鼠标左键。 (3)在窗体范围内向下向右拖动鼠标,这时窗体上会显示一个矩形框,当其大小合适时,松开鼠标左键,窗体上就会显示一个相应大小的这种控件。 另外一种快捷的方法是在工具箱中相应的工具按钮上双击此按钮,窗体上就会出现一个系统默认大小的所选按钮。 2、消息框有多少种Button参数设置? OK:只显示“确定”按钮 OKCancel:显示“确定”和“取消”按钮 AbortRetryIgnore:显示“终止”、“重试”和“忽略”按钮 YesNoCancel:显示“是”、“否”和“取消”

C语言程序设计项目教程习题答案资料

C语言程序设计项目教程— 习题答案 说明:本文档在“文档结构图”视图方式下应用比较方便。 第1章第2章第3章第4章第5章第6章第7章第8章第9章 第1章 1. 什么是软件?软件有哪些特点? 答:软件是程序、数据及其相关文档的完整集合。 软件具有以下特点: ①软件是一种逻辑产品,它以程序和文档的形式出现,保存在计算机的存储器中(磁盘或光盘),通过计算机的运行才能体现它的功能和作用。 ②软件产品的生产主要是研制。 ③软件产品不会用坏,不存在磨损、消耗的问题,但是软件在使用过程中,往往需要根据用户需求变化或软硬件环境的变化对软件进行修改,这种修改被称为软件维护。 ④软件产品的生产主要是脑力劳动。 ⑤软件的费用是不断增加的,软件成本相当昂贵。 2. 什么是软件工程? 答:软件工程是一门用工程化方法,指导计算机软件开发和维护的学科,它采用工程的概念、原理、技术和方法来开发、维护以及管理软件。 3. 什么是软件生命周期?软件生命周期包括哪些阶段? 答:软件生命周期是指从开发软件概念的提出起,直到该软件的使用、失去使用价值而被废弃的整个过程,也可以称作软件生存周期。 软件生命周期包括可行性研究与计划制订、需求分析、软件设计、软件实现、软件测试、运行与维护。

4. 什么是软件开发模型? 答:软件开发模型是软件开发全部过程、活动和任务的结构框架。 5. 写出数据结构的概念。 答:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,是计算机存储、组织数据的方式。数据结构主要研究和讨论数据的逻辑结构、存储结构和数据的运算。 6. 填空: ⑴数据结构包括逻辑结构、存储结构和数据的运算三个方面。 ⑵据结构的逻辑结构包括线性结构和非线性结构两大类。 ⑶据结构的存储结构包括顺序存储结构、链式存储结构、索引存储结构和散列存 储结构四类。 ⑷表是一种采用链式存储结构的线性表。 7. 什么是算法?算法有哪些特性? 答:算法是解决问题所采取的步骤和方法。算法具有以下特性:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 8. 什么是算法的时间复杂度?什么是算法的空间复杂度? 答:时间复杂度是指执行算法所耗费的时间。空间复杂度是指算法在计算机内执行时所占用的内存开销规模。 9~12. DCDA 13. 分别用流程图、N-S图描述以下问题的算法。 (1)输入一个年份,判断是否为闰年。 提示:闰年的判断条件为:①能被4整除,但不能被100整除;②能被400整除。满足两个条件之一,即为闰年。

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