首页 > 试题

accountname

更新时间:2022-12-09 20:08:20 阅读: 评论:0

2018年临沂中考数学试卷及答案-庖丁解牛的意思


2022年12月9日发(作者:smile意思)

(完整)面向对象程序设计

(完整)面向对象程序设计

编辑整理:

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们

对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)面向对象程序设计)

的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进

步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以

下为(完整)面向对象程序设计的全部内容。

(完整)面向对象程序设计

实验一

实验一面向对象程序设计

1.实验目的

(1).掌握如何创建类和对象

(2)。掌握如何为定义的类编写相应的方法

(3).掌握如何通过属性访问对象中的数据

(4)。掌握如何创建基类及其派生类

2.实验内容

实验要求为个人银行存款定义两类,一个活期存款账户CheckingCustom类,另一个

是定期存款FixedCustom类.

用户操作界面如图:

图1

3。

实验

中实

现的功能如下:

(完整)面向对象程序设计

(1).创建活期账户时,必须提供账户名和开户金额,而账号则根据存款分类自动生

成。

(2)。无论活期还是定期账户都可以随时存款、取款。

(3)。活期存款账号范围为10001~19999,活期存款利息一律按当前余额的0.5%计

算。每次取款时无论存款时间长短都要根据余额结算一次利息,并将利息附加到余

额中,然后取出指定款数,向现有账户追加存款时,不进行计算。

(4).定期存款账号范围为20001~29999,活期存款利息方法如下:如果当前余额大

于500,利息6%,否则利息3%。每次取款时无论存款时间长短都要根据余额结算一

次利息,并将利息附加到余额中,然后取出指定款数,向现有账户追加存款时,不进

行计算。

(5).要允许用户随时查询自己的存款信息,查询时要提供用户名、存款类型和账号。

(6)。程序要易于扩充,即需要增加存款业务类型时,要能够利用已经实现的功能,

尽量用少的代码实现。

4.实验步骤

(1)。创建一个名为bankcustom的Windows窗体应用程序,在【解决方案资源管理

器】中,重命名为MainForm。cs,然后再次窗体上完成个人存款业务处理

的设计界面。

界面如下:

图2

(2).添

加一个

类文件

Custom。

cs,处

理活期

存款和

定期存

款共有

的业务.

1)声

明三个

属性:

AccountName:账户名称

AccountNumber:账号(自动生成)

AccountBalance:账户余额

(完整)面向对象程序设计

2)提供一个公共的Deposit方法,向账户中添加存款

3)提供一个公共的Withdraw方法,从账户取款

Custom。cs的代码如下:

usingSystem;

c;

usingSystem。Linq;

namespaceWindowsFormsApplication1

classCustom

{

privatestringaccountName;//开户名

publicCustomTypeBankCustomType{get;protectedt;}//存款

类型

publicstringAccountNumber{get;protectedt;}//账号

publicfloatAccountBalance{get;protectedt;}//账户余额

publicstringAccountName//姓名

get

returnaccountName;

}

t

{

if(string。IsNullOrEmpty(value))

{

thrownewException(”账户不能为null或空字符串”);

}

el

for(inti=0;i〈;i++)

{

if(er(value[i])==fal)

{

thrownewException("账户只允许用汉字和字母

组成”);

}

el

{accountName=value;}

}

(完整)面向对象程序设计

}

}

publicList〈string>PerAccountList{get;t;}

publicvoidDiposit(floatmoney)//存款

if(money<=0)

thrownewException(”存款不能为0或负值”);

}

el

{

AccountBalance+=money;

AddList("存款",money);

protectedvoidAddList(stringtypeInfo,floatmoney)

{

(string。Format(

"账号:{0},姓名:{1},存款类型:{2},”+"{3:yyyy—MM-dd

[HH:mm:ss]}{4}{5:f2}元,余额{6:f2}元”,

AccountNumber,

AccountName,

BankCustomType,

,

typeInfo,

money,

AccountBalance));

}

publicboolValidBeforeWithdraw(floatmoney)

if(money<=0)

thrownewException(”取款余额不能无0或负数”);

//returnfal;

}

if(money〉AccountBalance)

thrownewException("取款数不能大于余额”);

//returnfal;

(完整)面向对象程序设计

returntrue;

}

publicvirtualvoidWithdraw(floatmoney)

{

AccountBalance-=money;

AddList(”取款”,money);

}

}

}

(3).向项目中添加一个名为CheckingCustom。cs类文件,让其继承自Custom类,在

CheckingCustom类中处理活期存款业务。

代码如下:

usingSystem;

tions。Generic;

usingSystem。Linq;

usingSystem。Text;

namespaceWindowsFormsApplication1

{

classCheckingCustom:Custom

{

privatestaticintnewAccountNumber=10001;

publicfloatInterestRate

{

get{return0。005f;}

}

publicCheckingCustom(stringaccountName,floataccountBalance)

if(newAccountNumber>19999)

thrownewException("活期存款账户已经用完”);

el

{

this。AccountName=accountName;

this。AccountBalance=accountBalance;

this。BankCustomType=CustomType.活期存款;

tNumber=ng();

newAccountNumber++;

PerAccountList=newList〈string〉();

AddList(”开户",accountBalance);

}

(完整)面向对象程序设计

publicoverridevoidWithdraw(floatmoney)

if(ValidBeforeWithdraw(money)==fal)

return;

floatrate=InterestRate*AccountBalance;

AccountBalance+=rate;

AddList("利息结算”,rate);

aw(money);

}

}

(4)。向项目中添加一个名为FixedCustom。cs类文件,让其继承自Custom类,在

FixedCustom类中处理定期存款业务.

代码如下:

usingSystem;

usingSystem。c;

usingSystem。Linq;

usingSystem。Text;

namespaceWindowsFormsApplication1

{

classFixedCustom:Custom

privatestaticintnewAccountNumber=20001;

publicfloatInterestRate

get

{

if(AccountBalance〉500)

return0。06f;

el

return0。03f;

publicFixedCustom(stringaccountName,floataccountBalance)

{

if(newAccountNumber>29999)

{

thrownewException("定期存款账户已用完");

el

(完整)面向对象程序设计

tName=accountName;

tBalance=accountBalance;

this。BankCustomType=CustomType。定期存款;

tNumber=ng();

newAccountNumber++;

PerAccountList=newList();

AddList("开户”,accountBalance);

publicoverridevoidWithdraw(floatmoney)

{

if(ValidBeforeWithdraw(money)==fal)

return;

floatrate=InterestRate*AccountBalance;

AccountBalance+=rate;

AddList("利息结算”,rate);

ba。Withdraw(money);

}

(5).定义一个枚举类,实现选择活期存款或定期存款

代码如下:

usingSystem;

tions。Generic;

;

usingSystem。Text;

namespaceWindowsFormsApplication1

{

publicenumCustomType

{

活期存款,

定期存款

}

(6).完成主界面的程序功能,代码如下:

usingSystem;

usingSystem。Collections。Generic;

entModel;

usingSystem。Drawing;

(完整)面向对象程序设计

;

s。Forms;

namespaceWindowsFormsApplication1

{

publicpartialclassForm1:Form

{

privatestaticSortedDictionary〈string,Custom>customers=new

SortedDictionary

publicForm1()

{

InitializeComponent();

string[]accountTypeString=Enum。GetNames(typeof

(CustomType));

。AddRange(accountTypeString);

comboBoxNewAccountType。SelectedIndex=0;

osition=FormStartPosition。CenterScreen;

}

privatevoidbutton1_Click(objectnder,EventArg)

floatmoney;

if(float。TryPar(textBoxInitMoney。Text,outmoney)==

fal)

MessageBox。Show("开户金额不正确”,”无法开

户”,,MessageBoxIcon。Question);

return;

}

CreateCustom(,textBoxAccountName。

Text,money);

}

privatevoidCreateCustom(stringcustomTypeString,string

urName,floatinitMoney)

CustomnewCustom=null;

if(customTypeString==”活期存款")

try

(完整)面向对象程序设计

{

newCustom=newCheckingCustom(urName,initMoney);

}

catch(Exceptionex)

{

MessageBox。Show(ng());

}

el

{

try

newCustom=newFixedCustom(urName,initMoney);

catch(Exceptionex)

{

(ex。ToString());

return;

}

if(newCustom!=null)

customers。Add(newCustom。AccountNumber,newCustom);

UpdateAccountInfo(tNumber);

}

privatevoidUpdateAccountInfo(stringaccount)

();

Customcustom=customers[account];

foreach(varinfoincustom。PerAccountList)

{

listBoxUrInfo。Items。Add(info);

}

}

privatevoidbutton2_Click(objectnder,EventArg)

{

floatmoney;

if(!ParMoney(textBoxMoney。Text,”存款",out

money))return;

Customcustom=GetCustom();

(完整)面向对象程序设计

if(custom==null)return;

try

custom。Diposit(money);

UpdateAccountInfo(custom。AccountNumber);

}

catch(Exceptionex)

{

MessageBox。Show(ng());

}

privateboolParMoney(stringmoneyString,stringtypeInfo,out

floatmoney)

{

if(float。TryPar(moneyString,outmoney)==fal)

{

(typeInfo+”金额不正确","",

,on);

returnfal;

}

returntrue;

privateCustomGetCustom(stringkey)

if(!nsKey(key))

("无此账户,请先开户!”);

returnnull;

}

el

{

returncustomers[key];

privatevoidbutton3_Click(objectnder,EventArg)

floatmoney;

if(!ParMoney(textBoxMoney。Text,"取款",out

money))return;

Customcustom=null;

custom=GetCustom();

(完整)面向对象程序设计

if(custom==null)return;

try

custom。Withdraw(money);

UpdateAccountInfo(custom。AccountNumber);

catch(Exceptionex)

{

MessageBox。Show(ex。Message);

}

}

5。实验效果:

图3主界面

(完整)面向对象程序设计

图4开户界面

图5存款业务界面

图6取款业务界面

(完整)面向对象程序设计

六、错误调试

开始编程序的时候出现了很多错误,有的是由于自己粗心打错的缘由,比如说把

publicCustomTypeBankCustomType{get;protectedt;}里面的分号写到外面。后面把程

序写好之后开始运行,出现下面的错误提示:

图7错误一

问题如下:

namespaceWindowsFormsApplication1

{

classEnum

{

publicenumCustomType

{

活期存款,定期存款

}

}

}

这段程序不应该这样写,而是把应该把classEnum{}去掉,这样这个问题就解决了.

把程序写完就可以运行了.但是运行之后不断带入数字,发现用户存款为负数的时候

也可以开户,这不符合我们的程序要求,

图8错误二

遇到这个问题的时候,我们知道是哪里出了错误,只要把数据类型转换一下,问题就

可以得到解决,但想了很多办法,都不见效,最后把课本仔细研究了一番,想出了

一个解决的办法,把程序floatmoney;if((,outmoney)==

(完整)面向对象程序设计

fal)改为:floatmoney=32(textBox2。Text);intr=32

();if(r〈=0)

改完之后,继续运行程序如图:

图9错误三

上述的问题经过我和同学们一起奋斗,终于将此次试验的结果调试出来了。花了很

多时间,但是很值得。

本文发布于:2022-12-09 20:08:20,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/74655.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:endanger
标签:accountname
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图