C#程序设计实验指导书及答案

2018-11-13 20:10

C#程序设计实验指导书

第二部分 实战提高

建立名为Shape的基类,要求是抽象类,在该类中提供一个public abstract double Area()的抽象方法,建立名为Circle的派生类,包括半径属性,实现面积计算,再建立一个名为Rectangle的派生类,包括长和宽两个属性,实现面积的计算。

第三部分 知识总结

学生总结 完成上机训练模块花费的时间 完成实战提高模块花费的时间 请将问题答案写在下面空白处 31

C#程序设计实验指导书

本次实验对你而言的难点 本次实验的收获 希望老师强化讲解的知识要点 希望老师帮助回答的问题 本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处 问题答疑 实验评语 实验得分

任务七 掌握多态的应用

实验目的

理解多态的意义

32

C#程序设计实验指导书

了解多态的应用 掌握多态的C#实现

第一部分 上机训练

1、在俄罗斯方块程序中,有L形,T形,田形等多种形状,它们是图形的多种形态,可以创建一个名为Shape的基类,而后派生L形,T形等,之后可以在运行时动态绘制各种形状。

1)创建一个名位Teris的控制台应用程序、 2)各个类之间的关系如下图所示:

3)创建名为Shape的抽象类,包括ShapeType属性和显示信息方法,以及抽象方法绘制:

using System;

using System.Collections.Generic; using System.Text;

namespace Teris {

public abstract class Shape {

private string shapeType;

public string ShapeType {

get { return shapeType; } set { shapeType = value; } }

33

C#程序设计实验指导书

public void DisplayInfo() {

Console.WriteLine(\当前图形类型\ + shapeType); }

public abstract void Draw(); } }

4)创建名为ShapeL的派生类,实现基类的绘制

using System;

using System.Collections.Generic; using System.Text;

namespace Teris {

public class ShapeL : Shape {

public ShapeL() {

ShapeType = \形\; }

public override void Draw() {

Console.WriteLine(\); Console.WriteLine(\); Console.Write(\); Console.WriteLine(\); } } }

5)创建名为ShapeT的派生类,实现基类的绘制

using System;

using System.Collections.Generic; using System.Text;

namespace Teris {

public class ShapeT : Shape {

public ShapeT()

34

C#程序设计实验指导书

{

ShapeType = \形\; }

public override void Draw() {

Console.WriteLine(\); Console.WriteLine(\); Console.WriteLine(\); } } }

6)创建名为ShapeZ的派生类,实现基类的绘制

using System;

using System.Collections.Generic; using System.Text;

namespace Teris {

public class ShapeZ : Shape {

public ShapeZ() {

ShapeType = \形\; }

public override void Draw() {

Console.WriteLine(\); Console.WriteLine(\); Console.WriteLine(\); Console.WriteLine(\); } } }

7)创建名为ShapeBlock(田字形)的派生类,实现基类的绘制

using System;

using System.Collections.Generic; using System.Text;

namespace Teris {

35

长春理工大学计算机科学与技术专业C#程序设

计实验指导

C#程序设计实验指导书

实 验 须 知

1. 实验前,应认真阅读实验指导书,明确实验目的、实验内容和实验步骤,做好实验准备。 2.

实验中,积极思考,及时记录,有疑问及时解决,当堂完成

实验内容和实验报告。 3.

实验中严格遵守实验室管理规则,珍惜实验时间,不做与实

验无关 的事。 4.

实验结束,按要求填写实验机器使用记录单,正确关闭实验

用机,整理好键盘和椅子,值日生认真打扫实验室卫生。

目 录

任务一 熟悉VS2005开发环境 ................................................................................ 1 任务二 掌握基本程序逻辑 ....................................................................................... 8 任务三 掌握循环语句 ............................................................................................... 3 任务四 创建类与对象 ............................................................................................. 10 任务五 创建静态类与静态方法 ............................................................................. 17 任务六 实现继承和抽象类 ..................................................................................... 25 任务七 掌握多态的应用 ......................................................................................... 32 任务八 掌握接口的实现 ......................................................................................... 41 任务九 实现对数组的操作 ..................................................................................... 52 任务十 实现队列、栈的操作 ................................................................................. 60 任务十一 实现进销存系统供应商信息维护 ......................................................... 65 任务十二 掌握开发WinForms应用程序的步骤 .................................................. 71 任务十三 掌握系统主界面设计 ............................................................................. 89 任务十四 掌握委托与事件处理机制 ................................................................... 100 任务十五 访问SQL Server数据库 ..................................................................... 108 任务十六 访问Access数据库 ............................................................................. 122 任务十七 了解字符串操作(选做) ................................................................... 131 任务十八 掌握文件操作(选做) ....................................................................... 138

C#程序设计实验指导书

任务一 熟悉VS2005开发环境

实验目的

掌握VS2005开发C#应用程序的步骤 掌握VS2005调试器的使用

第一部分 上机训练

1、采用VS2005编写Hello World应用程序 1)打开VS2005开发工具

2)在VS2005主界面下选择菜单【文件】|【新建】|【项目】

3)在新建项目对话框中选择Visual C#,模板选择控制台应用程序,给项目命名为HelloWorld,然后点“浏览”按钮,选择项目的存储目录

1

C#程序设计实验指导书

namespace SchoolManagement {

public class User {

private string userName;//用户名

public string Name {

get { return userName; } set { userName = value; } }

private string password;//密码

public string Password {

get { return password; } set { password = value; } }

private string userType;//用户类型

public string UserType {

get { return userType; } set { userType = value; } }

public void Login() {

if (userName.Equals(\) && password.Equals(\)) {

DisplayPersonInfo(); } }

public virtual void DisplayPersonInfo() //注意virtual关键字 {

Console.WriteLine(\姓名:{0}\, userName);

26

C#程序设计实验指导书

Console.WriteLine(\用户类型:{0}\, userType); } } }

2)创建名为Student的派生类,具备班级和成绩两个特殊属性,以及查询成绩的特殊方法,覆盖基类的显示个人信息方法

using System;

using System.Collections.Generic; using System.Text;

namespace SchoolManagement {

public class Student : User {

private string classID;

public string ClassID {

get { return classID; } set { classID = value; } }

private float stuScore;

public float StuScore {

get { return stuScore; } set { stuScore = value; } }

public Student() {

UserType = \学生\; }

public override void DisplayPersonInfo() {

base.DisplayPersonInfo();

Console.WriteLine(\班级:{0}\, classID ); }

public void CheckScore() {

27

C#程序设计实验指导书

Console.WriteLine(\成绩:{0}\, this.stuScore); } } }

3)创建名为Teacher的派生类,具备部门和工资两个特殊属性,以及查询工资的特殊方法,覆盖基类的显示个人信息方法。

using System;

using System.Collections.Generic; using System.Text;

namespace SchoolManagement {

public class Teacher : User {

private string department;//部门

public string Department {

get { return department; } set { department = value; } }

private float salary;//工资

public float Salary {

get { return salary; } set { salary = value; } }

public Teacher() {

UserType = \教师\; }

public override void DisplayPersonInfo() {

base.DisplayPersonInfo();

Console.WriteLine(\部门:\ + this.department); }

public void checkSalary() {

Console.WriteLine(\工资:\ + this.salary);

28

C#程序设计实验指导书

} } }

4)创建名为SysManager的派生类,具备插入学生信息和插入教师信息两个方法

using System;

using System.Collections.Generic; using System.Text;

namespace SchoolManagement {

public class SysManager : User {

public SysManager() {

UserType = \管理员\; }

public Student InsertStudent() {

Student stu = new Student(); stu.Name = \张郭郭\; stu.UserType = \教师\; stu.ClassID = \; stu.StuScore = 70; return stu; }

public Teacher InsertTeacher() {

Teacher teacher = new Teacher(); teacher.Name = \李沙沙\;

teacher.Department = \计算机系\; teacher.Salary = 5000; return teacher; } } }

5)在Program.cs的Main方法中调用以上类,测试效果如下:

using System;

using System.Collections.Generic; using System.Text;

29

C#程序设计实验指导书

namespace SchoolManagement {

class Program {

static void Main(string[] args) {

//系统管理员登录

SysManager sys = new SysManager(); sys.Name = \; sys.Password = \; sys.Login();

Console.WriteLine(\); //系统管理员录入学生和教师信息

Teacher teacher = sys.InsertTeacher(); Student stu = sys.InsertStudent(); //显示教师信息,查询工资 teacher.DisplayPersonInfo(); teacher.checkSalary();

Console.WriteLine(\); //显示学生信息,查询成绩 stu.DisplayPersonInfo(); stu.CheckScore();

Console.WriteLine(\);

} } }

6)最终运行效果如下

30

C#程序设计实验指导书

第三部分 知识总结

学生总结 完成上机训练模块花费的时间 完成实战提高模块花费的时间 本次实验对你而言的难点 本次实验的收获 请将问题答案写在下面空白处 希望老师强化讲解的知识要点 希望老师帮助回答的问题 本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处 问题答疑 实验评语 实验得分 16

C#程序设计实验指导书

任务五 创建静态类与静态方法

实验目的

掌握this的使用

掌握静态成员和静态方法的应用 掌握构造方法的使用

第一部分 上机训练

1、个人银行业务主要由存款、取款、查询余额、转帐组成,一般银行为我们办理个人业务时,需要我们实现存入一部分钱方可为我们开户,创建一个PersonalAccount类,实现以上功能。 1)创建一个名为Bank的控制台应用程序 2)对于一个软件系统,我们需要显示其版本号,软件名称,注册码等信息,这些信息可以用静态成员变量保存。因此首先我们可以建一个GlobalSettings类存储这些一般信息,类的创建方法和实验四相同,注意不要忘记类名前加public,GlobalSettings类的代码如下:

using System;

using System.Collections.Generic; using System.Text;

namespace Bank {

public class GlobalSettings {

private static string softwareName = \创新银行个人业务管理系统\; public static string SoftwareName {

get { return GlobalSettings.softwareName; } set { GlobalSettings.softwareName = value; } }

private static string softwareVersion = \版\; public static string SoftwareVersion {

get { return GlobalSettings.softwareVersion; } set { GlobalSettings.softwareVersion = value; }

17

C#程序设计实验指导书

}

private static string softwareCompany = \淮安信息职业技术学院计算机系创新实验室--宋桂岭\;

public static string SoftwareCompany {

get { return GlobalSettings.softwareCompany; } set { GlobalSettings.softwareCompany = value; } }

private static string softwareDescribe = \本系统的创意、著作权均归作者本人所有,任何单位和个人如果引用本系统的任何内容,\\n作者保留追究其法律责任的权利,特此声明。\;

public static string SoftwareDescribe {

get { return GlobalSettings.softwareDescribe; } set { GlobalSettings.softwareDescribe = value; } } } }

3)创建PersonalAccount类,利用构造方法实现开户,利用成员方法实现余额查询、存入、提取、转帐等功能,完整代码如下:

using System;

using System.Collections.Generic; using System.Text;

namespace Bank {

public class PersonalAccount {

private double accountRemainValue;//余额 private string accountName;//姓名

public double AccountRemainValue {

get { return accountRemainValue; } set { accountRemainValue = value; } }

public string AccountName

18

C#程序设计实验指导书

{

get { return accountName; } set { accountName = value; } }

#region 开户

//利用构造方法实现开户

public PersonalAccount(string accountName, double accountRemainValue) {

//注意this用法

this.accountName = accountName;

this.accountRemainValue = accountRemainValue; }

#endregion

#region 存、取、转帐

public void Deposit(double value) {

this.accountRemainValue += value; }

public void WithDraw(double value) {

this.accountRemainValue -= value; }

public void Transfer(PersonalAccount toAccount, double value) {

this.accountRemainValue -= value; toAccount.AccountRemainValue += value; }

#endregion #region 显示余额

public void DisplayRemainAccount() {

Console.WriteLine(\尊敬的{0}先生/女士,您好,您的帐户余额为{1:0.00}元\, accountName, AccountRemainValue); }

#endregion } }

4)在Program.cs中输入如下代码,实现系统功能:

using System;

19

C#程序设计实验指导书

using System.Collections.Generic; using System.Text;

namespace Bank {

class Program {

static void Main(string[] args) {

Console.WriteLine(\###########\);

Console.WriteLine();

Console.WriteLine(\ + GlobalSettings.SoftwareName + GlobalSettings.SoftwareVersion); Console.WriteLine();

Console.WriteLine(\ + \制作单位:\ + GlobalSettings.SoftwareCompany); Console.WriteLine();

Console.WriteLine(\ + GlobalSettings.SoftwareDescribe); Console.WriteLine();

Console.WriteLine(\###########\); //开户

PersonalAccount myAccount = new PersonalAccount(\关羽\, 200); PersonalAccount sheAccount = new PersonalAccount(\关夫人\, 30000); //业务

bool op = true; while (op) {

Console.WriteLine();

Console.WriteLine(\请输入您要办理的业务:1.存款2.提款3.转帐4.退出\); string cmd = Console.ReadLine(); switch (cmd) {

case \:

HandleDesposit(myAccount); break;

20

C#程序设计实验指导书

case \:

HandleWithDraw(myAccount); break; case \:

HandleTransfer(myAccount, sheAccount); break; case \: op = false; break; } }

}

static void HandleDesposit(PersonalAccount account) {

Console.Write(\请输入存款金额:\);

double value = double.Parse(Console.ReadLine()); account.AccountRemainValue += value; Console.WriteLine(\存款操作完成!\); account.DisplayRemainAccount(); }

static void HandleWithDraw(PersonalAccount account) {

Console.Write(\请输入取款金额:\);

double value = double.Parse(Console.ReadLine()); if (account.AccountRemainValue < value) {

Console.WriteLine(\帐户余额不足,取款操作失败!\); return; }

account.AccountRemainValue -= value; Console.WriteLine(\取款操作完成!\); account.DisplayRemainAccount(); }

static void HandleTransfer(PersonalAccount fromAccount, PersonalAccount toAccount) {

Console.Write(\请输入转帐金额:\);

double value = double.Parse(Console.ReadLine()); if (fromAccount.AccountRemainValue < value)

21

C#程序设计实验指导书

{

Console.WriteLine(\帐户余额不足,取款操作失败!\); return; }

fromAccount.AccountRemainValue -= value; toAccount.AccountRemainValue += value; Console.WriteLine(\转帐操作完成!\); fromAccount.DisplayRemainAccount();

toAccount.DisplayRemainAccount();//实际中你是看不到对方的余额的,所以运行结果有点奇怪,不是吗? } } }

第二部分 实战提高

本实验内容较多,故希望同学能仔细理解上述代码,分析清楚,将自己对代码的理解写在下面,写清代码是如何完成银行个人业务系统的功能的(定义了哪些类,业务流程控制等等)。 答:

首先创建了一个名为“关羽”和“关夫人”的用户用来测试程序。进入用户界面,看到银行信息介绍及提供的业务,由while构成的循环用户可以持续选择办理各种业务直至选择“4退出”.

选择1,则进入“存款”操作,调用函数HandleDesposit。输入存款金额并更改账户余额信息,提示操作成功。调用DisplayRemainAccount函数显示操作后的账户信息。

选择2,则进入“提款”操作,调用HandleWithDraw函数。根据提示输入提款金额,通过if条件判断,若输入金额大于余额,则提示操作失败。若合法,则从账户中减去提款金额,提示操作成功。并调用DisplayRemainValue函数显示操作后的账户信息。

选择3,则进入“转账”操作,调用函数HandleTransfer,此函数有两个参数,一个是转出账户,一个是转入账户。通过if 条件判断合法性,若合法则对相应的转出和转入账户的余额进行加减。(此程序默认由关羽账户转入关夫人账户) 选择4,则循环结束,程序结束运行

此程序定义了一个PersonalAccount的类,成员为一个账户的基本信息

定义了一个GlobalSettings的类,成员为此程序,银行和创建者的相关信息。

22

C#程序设计实验指导书

23

C#程序设计实验指导书

第三部分 知识总结

学生总结 完成上机训练模块花费的时间 完成实战提高模块花费的时间 本次实验对你而言的难点 本次实验的收获 请将问题答案写在下面空白处 希望老师强化讲解的知识要点 希望老师帮助回答的问题 本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处 问题答疑 实验评语 实验得分 24

C#程序设计实验指导书

任务六 实现继承和抽象类

实验目的

编写一个单一继承的C#程序

编写一个抽象类,并用一个类继承这个抽象类

第一部分 上机训练

1、在学校教务管理系统中,有三种用户,一种是系统管理员,一种是学生,一种是教师,编写C#类实现该继承关系。系统管理员/学生/教师都有用户名和密码属性,并都有Login和显示自身信息的方法,另外,学生拥有班级和成绩两个特殊属性以及查询成绩这一方法,教师拥有部门和工资两个特殊属性以及查询工资这一方法,系统管理员可以添加学生和教师信息。由于教师和学生个人信息不同,所以学生和教师重载基类的DisplayInfo方法。(本例和教材一致,再次出现的目的是通过反复训练,理解继承的作用) 1)类的继承关系可以表示如下:

2)创建控制台应用程序,命名为SchoolManagement 3)创建名为User的基类,基类定义了用户名和密码属性,以及Login和DisplayInfo方法

using System;

using System.Collections.Generic; using System.Text;

25


C#程序设计实验指导书及答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新部编本小学语文一年级上册b-p-m-f优质课一等奖教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: