实验报告三.docx

上传人:b****5 文档编号:28446906 上传时间:2023-07-13 格式:DOCX 页数:18 大小:19.18KB
下载 相关 举报
实验报告三.docx_第1页
第1页 / 共18页
实验报告三.docx_第2页
第2页 / 共18页
实验报告三.docx_第3页
第3页 / 共18页
实验报告三.docx_第4页
第4页 / 共18页
实验报告三.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

实验报告三.docx

《实验报告三.docx》由会员分享,可在线阅读,更多相关《实验报告三.docx(18页珍藏版)》请在冰豆网上搜索。

实验报告三.docx

实验报告三

攀枝花学院实验报告

实验课程:

VisualC#.NET程序设计教程实验项目:

上机实验5实验日期:

系:

数计学院成绩:

1、实验目的

1、区分静态类与非静态类,掌握静态字段、静态方法和静态构造函数的定义方法。

2、理解类的继承性与多态性,掌握其应用方法。

3、理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。

4、理解分部类和命名空间的概念,掌握分部类和命名空间的使用方法。

2、实验要求

1.熟悉Visual的基本操作方法。

2.认真阅读本章相关内容,尤其是案例。

3.实验前进行程序设计,完成源程序的编写任务。

4.反复操作,直到不需要参考教材、能熟练操作为止。

3、实验步骤

1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(小学生、中学生、大学生)将分别创建不同的学生对象,并输入当前的学生总人数、该学生的姓名、学生类型和平均成绩。

具体要求如下:

(1)每个学生都有的字段为:

姓名、年龄。

(2)小学生的字段还有语文、数学,用来表示这两科的成绩。

(3)中学生在此基础上多了英语成绩。

(4)大学生只有必修课和选修课两项成绩。

(5)学生类具有方法来统计自己的总成绩,并输出。

(6)通过静态成员自动记录学生总人数。

(7)成员初始化能通过构造函数完成。

源程序如下:

usingSystem;

using;

using;

using;

using;

using;

usingTest3_1

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

publicabstractclassStudent

{

protectedstringname;

protectedintage;

protectedstaticintnumber;

publicStudent(stringname,intage)

{

=name;

=age;

number++;

}

publicstringName{get{returnname;}}

publicvirtualstringtype

{

get{return"学生";}

}

publicabstractdoubletotal();

publicabstractdoubleAverage();

publicstringgetInto()

{

stringresult=("总人数:

{0},姓名:

{1},{2},{3}岁",number,Name,type,age);

if(type=="小学生")

result+=(",平均成绩为{0:

N2}:

\n",total()/2);

elseif(type=="中学生")

result+=(",平均成绩为{0:

N2}:

\n",total()/3);

else

result+=(",总学分为{0:

N2}:

\n",total());

returnresult;

}

}

publicclassPupil:

Student

{

protecteddoublechinese;

protecteddoublemath;

publicPupil(stringname,intage,doublechinese,doublemath)

:

base(name,age)

{

=chinese;

=math;

}

publicoverridestringtype

{

get

{

return"小学生";

}

}

publicoverridedoubletotal()

{

returnchinese+math;

}

}

publicclassMiddle:

Student

{

protecteddoublechinese;

protecteddoublemath;

protecteddoubleenglish;

publicMiddle(stringname,intage,doublechinese,doublemath,doubleenglish)

:

base(name,age)

{

=chinese;

=math;

=english;

}

publicoverridestringtype

{

get

{

return"中学生";

}

}

publicoverridedoubletotal()

{

returnchinese+math+english;

}

}

publicclassUniversity:

Student

{

protecteddoublemajors;

protecteddoubleelective;

publicUniversity(stringname,intage,doublemajors,doubleelective)

:

base(name,age)

{

=majors;

=elective;

}

publicoverridestringtype

{

get

{

return"大学生";

}

}

publicoverridedoubletotal()

{

returnmajors+elective;

}

}

privatevoidbtpupil_Click(objectsender,EventArgse)

{

intage=;

doublechinese=;

doublemath=;

Pupilp=newPupil,age,chinese,math);

+=();

}

privatevoidbtMiddle_Click(objectsender,EventArgse)

{

intage=;

doublechinese=;

doublemath=;

doubleenglish=;

Middlep=newMiddle,age,chinese,math,english);

+=();

}

privatevoidbtUniversity_Click(objectsender,EventArgse)

{

intage=;

doublechinese=;

doublemath=;

Universityu=newUniversity,age,chinese,math);

+=();

}

}

}

运行结果如图所示:

 

2、完善上机实验4-3设计的银行帐户管理系统,增加一个VIP账户的管理。

程序功能如下:

(1)当单击“创建VIP账户”按钮时,其中卡号为随机生成的一个在500000到999999之间的值,初始余额为10000元。

(2)在“取款”文本框中输入取款金额后,单击“取款”按钮,如果余额不足,VIP用户可以透支1000元,如取款800,,而余额是400,如透支超过1000元,如取款1600,而余额是400。

(3)其中操作同上机实验4-3。

(4)要求:

在上机实验4-3的基础上,通过继承和多态实现上述操作。

源程序如下:

usingSystem;

using;

using;

using;

using;

using;

usingTest3_2

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

publicclassAccount

{

protectedintcardNo;

protecteddecimalbalance;

publicAccount()

{

Randomr=newRandom();

cardNo=(100000,500000);

balance=100;

}

publicdecimalBalance

{

get{return;}

}

publicintCardNo

{

get{return;}

}

publicvirtualboolGetMoney(decimalmoney,outstringmessage)

{

if(money<0)

{

message="操作失败!

\n输入金额不正确!

";

returnfalse;

}

elseif(balance>=money)

{

balance-=money;

message="操作成功!

\n取款"+money+"元";

returntrue;

}

else

{

message="操作失败!

\n余额不足!

";

returnfalse;

}

}

publicboolSaveMoney(decimalmoney,outstringmessage)

{

if(money<0)

{

message="操作失败!

\n输入金额不正确!

";

returnfalse;

}

else

{

balance+=money;

message="操作成功!

\n存款"+money+"元";

returntrue;

}

}

}

publicclassVIPAccount:

Account

{

publicVIPAccount()

{

Randomr=newRandom();

cardNo=(500000,1000000);

balance=10000;

}

publicoverrideboolGetMoney(decimalmoney,outstringmessage)

{

if(money<0)

{

message="操作失败!

\n输入金额不正确!

";

returnfalse;

}

elseif(balance>=money)

{

balance-=money;

message="操作成功!

\n取款"+money+"元";

returntrue;

}

elseif(balance+1000>=money)

{

balance-=money;

message="操作成功!

\n取款"+money+"元,透支"+(-balance)+"元";

returntrue;

}

else

{

message="操作失败!

?

\n余额不足!

";

returnfalse;

}

}

}

Accountaccount;

privatevoidbtVIPAccount_Click(objectsender,EventArgse)

{

account=newVIPAccount();

intaccountNo=;

stringmessage=("创建VIP账户成功,用户卡号为:

{0}",accountNo);

="\n"+message+"\n";

}

privatevoidbtAccount_Click(objectsender,EventArgse)

{

account=newVIPAccount();

intaccountNo=;

stringmessage=("创建账户成功,用户卡号为:

{0}",;

="\n"+message+"\n";

}

privatevoidbtGet_Click(objectsender,EventArgse)

{

stringmessage;

if(account==null)

message="请先创建账户!

";

elseif=="")

message="请输入取款金额!

";

else

{

decimalmoney=;

(money,outmessage);

}

="\n"+message+"\n";

}

privatevoidbtSave_Click(objectsender,EventArgse)

{

stringmessage;

if(account==null)

message="请先创建账户!

";

elseif=="")

message="请输入存款金额!

";

else

{

decimalmoney=;

(money,outmessage);

}

="\n"+message+"\n";

}

privatevoidbtBalance_Click(objectsender,EventArgse)

{

if(account==null)

{

="请先创建用户!

";

}

else

{

decimalmo=;

intcardIdNo=;

="储蓄卡账户:

\r\n"+cardIdNo+"\r\n当前余额为a:

\r\n"+mo+"元";

}

}

}

}

运行结果如图所示:

3、声明一个接口IPlayer,包含5个接口方法:

播放、停止、暂停、上一首和下一首。

设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例测试程序,单击“MP3”按钮后,再单击“播放”按钮的效果。

如果单击“AVI”按钮后,再单击“播放”按钮,则应显示“正在播放AVI视频!

”。

源程序如下:

usingSystem;

using;

using;

using;

using;

using;

usingTest3_3

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

interfaceIPlayer

{

stringPlay();

stringStop();

stringPause();

stringPre();

stringNext();

}

publicclassMP3:

IPlayer

{

publicstringPlay()

{

return"正在播放MP3歌曲!

";

}

publicstringStop()

{

return"停止播放MP3歌曲!

";

}

publicstringPause()

{

return"暂停播放MP3歌曲!

";

}

publicstringPre()

{

return"播放上一首MP3歌曲!

";

}

publicstringNext()

{

return"播放下一首MP3歌曲!

";

}

}

publicclassAVI:

IPlayer

{

publicstringPlay()

{

return"正在播放AVI歌曲!

";

}

publicstringStop()

{

return"停止播放AVI歌曲!

";

}

publicstringPause()

{

return"暂停播放AVI歌曲!

";

}

publicstringPre()

{

return"播放上一首AVI歌曲!

";

}

publicstringNext()

{

return"播放下一首AVI歌曲!

";

}

}

IPlayerip;

MP3m;

AVIa;

privatevoidbtMP3_Click(objectsender,EventArgse)

{

m=newMP3();

ip=(IPlayer)m;

}

privatevoidbtAVI_Click(objectsender,EventArgse)

{

a=newAVI();

ip=(IPlayer)a;

}

privatevoidbtPre_Click(objectsender,EventArgse)

{

=();

}

privatevoidbtStop_Click(objectsender,EventArgse)

{

=();

}

privatevoidbtPlay_Click(objectsender,EventArgse)

{

=();

}

privatevoidbtPause_Click(objectsender,EventArgse)

{

=();

}

privatevoidbtNext_Click(objectsender,EventArgse)

{

=();

}

}

}

运行结果如图所示:

 

四、实验总结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1