C++课程设计报告模拟银行管理系统Word文档格式.docx

上传人:b****6 文档编号:18633115 上传时间:2022-12-30 格式:DOCX 页数:18 大小:56.89KB
下载 相关 举报
C++课程设计报告模拟银行管理系统Word文档格式.docx_第1页
第1页 / 共18页
C++课程设计报告模拟银行管理系统Word文档格式.docx_第2页
第2页 / 共18页
C++课程设计报告模拟银行管理系统Word文档格式.docx_第3页
第3页 / 共18页
C++课程设计报告模拟银行管理系统Word文档格式.docx_第4页
第4页 / 共18页
C++课程设计报告模拟银行管理系统Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C++课程设计报告模拟银行管理系统Word文档格式.docx

《C++课程设计报告模拟银行管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告模拟银行管理系统Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

C++课程设计报告模拟银行管理系统Word文档格式.docx

功能:

实现在银行系统中用户开设自己的账户。

基本思想:

利用Set_account()函数,用户输入自己的账号,姓名,密码,开户金额,然后进行保存,并记录用户个数加1。

具体步骤:

先定义几个变量,用来保存用户输入的账号,姓名,密码,开户金额,用户按照相应的提示输入相应的数据,如账号是整型,姓名是字符型等。

语句描述如下:

1.cout<

<

endl<

"

请输入开户号:

;

2.cin>

>

id;

3.cout<

请输入开户人姓名:

4.cin>

nam;

5.cout<

请输入开户密码:

6.cin>

passw;

7.cout<

请输入存入金额:

8.cin>

m;

因为开户金额只能是大于0的数字,所以,需要对输入的数据进行判断,以确保输入无误,当输入都正确后,用Save()函数进行保存,并让记录用户数目的静态成员变量acnum加1,语句描述如下:

9.while(m<

=0)

10.{

11.cout<

请输入正确的数字!

endl;

12.cin>

13.}

14.consumer*acc=newconsumer(id,nam,passw,m);

15.account[acnum]=acc;

16.cout<

开户成功!

!

17.acnum++;

18.save();

2.销户功能:

实现删除账户的操作。

有开户的,那肯定也有销户的,但是销户函数比开户函数步骤简单些。

因为它是把该账号所有的信息都删除,不需要对该账号的信息进行筛选。

输入要销户的账号,把该账号的所有信息删除。

先输入要销户的账号,然后,进行查找,看该账号是否存在,不存在则返回,存在则删除该账号的所有信息,同时,记录账号数目的静态成员变量acnum减1,并用save()函数对修改后的数据进行保存,语句描述如下:

19.intflag=1;

20.inti=0;

21.while((i<

acnum)&

&

(flag))

22.{

23.if(id==account[i]->

get_id())

24.{

25.flag=0;

26.}

27.else

28.{

29.i++;

30.}

31.}

32.if(flag)

33.{

34.

35.cout<

帐号不存在!

36.return;

37.}

38.for(intj=i;

j<

acnum;

j++)

39.{

40.account[j]=account[j+1];

41.}

42.account[acnum-1]=NULL;

43.acnum--;

44.cout<

注销成功!

45.save();

体会:

这个销户函数步骤虽然简单,但比开户函数更有技巧性,因为它需要判断要销户的账号是否存在。

我是定义了一个中间变量flag,先让它等于1,然后用while循环进行查找,看是否有该账号,如果账号存在,则令flag=0,这样就可以通过flag的值来判断是否有相同的账号,语句描述如下:

46.intflag=1;

47.while((i<

48.{

49.if(id==account[i]->

50.{

51.flag=0;

52.}

53.else

54.{

55.i++;

56.}

57.}

58.if(flag)

59.{

60.

61.cout<

62.return;

63.}

这样就可以判断账号是否存在,并显示出来。

当登陆系统和转账时,同样都需要判断账号是否存在,本可以把这段代码编译成一个功能函数,专门用来判断账号是否存在,可以程序变的更简洁,但因为需要修改的地方不少,所以就没去做了,如果下次我还碰到这样的问题,那一定要采用。

3.转账功能:

实现用户与用户之间进行转账的操作。

首先登陆自己的账号,然后,输入别人的账号以及转账的数目。

创建一个transfer()函数,当用户登陆账号后,如果进行转账操作,则调用它。

进行转账时首先输入别人账号,这时需要判断输入的账号是否存在,这跟前面销户函数的一样,用while+if来实现,然后输入你要转给别人的钱的数目,这个数目跟前面你开户输入的数目一样,不能为负数,因为不可能你转账给别人,还让别人减少钱,同时这个数目也不能大于你自己账户里金额,如果这些都符合,则进行可以转账,自己的账户减少一定的金额,别人账户增加相应的金额。

64.cout<

请输入帐号:

65.cin>

66.intflag=1;

67.inti=0;

68.while((i<

69.{

70.if(id==account[i]->

71.flag=0;

72.elsei++;

73.}

74.if(flag)

75.{

76.cout<

77.return;

78.}

79.floatb;

80.cout<

请输入你要转帐的金额:

81.cin>

b;

82.while(b<

83.{

84.cout<

85.cout<

$>

86.cin>

87.}

88.if(account[x]->

get_money()<

b)

89.cout<

对不起,金额不够!

90.else

91.{

92.account[x]->

dec_money(b);

93.account[i]->

add_money(b);

94.}

这个功能函数虽然没什么难的地方,但它有一些实际问题要考虑,我们转账的时候,不可能会让别人的金额减少,不然,谁还敢去银行存钱。

当我们写其他程序时,同样要牢记,函数实现的功能要与实现相符合。

4.用户登陆功能:

定义enter_account()函数,当用户登陆时,调用此函数,用户输入自己的账号,密码后,并可以进行相应的操作。

主要步骤:

用户登陆时,输入自己的账号,这时,与前面销户函数,转账函数一样,判断账号是否存在,如果存在,则输入账号的密码,如果密码正确,则显示该账号的信息,如:

用户的姓名啊,余额啊,同时还可以进行其他的操作,如取钱,存钱,转账,修改密码等。

描述语句如下:

95.cout<

请选择你要进行的操作:

1)查看信息"

endl

96.<

2)取款"

3)存款"

4)修改密码"

97.<

5)转账"

6)返回"

98.cin>

n;

99.switch(n)

100.{

101.case1:

account[i]->

display();

break;

102.case2:

fetchmoney();

save();

103.case3:

savemoney();

104.case4:

change_passwd();

105.case5:

transfer(i);

106.case6:

return;

107.}

这个函数功能简单,但是必不可少,用户可以通过这个函数来管理自己的账号。

在后面作判断时,因为只可能出现1到6,所以采用switch()来判断,虽然采用if,else的嵌套可以实现,但看着会觉的很复杂。

5.开始菜单功能:

显示操作信息,用户可以根据显示的信息,按照提示,进行相应的操作。

算法思想:

用cout输出操作信息,如输出“1)用户开户2)账户登陆3)帐户注销4)退出系统”,用户根据上面显示的信息,按照提示,可以进行相应的操作,如输入1,则调用开户函数,用户并可以进行开户操作了,如果输入的不是1到4,则重新输入,描述语句如下:

108.cout<

请你输入相应的操作序号进行操作:

109.cout<

1)用户开户"

2)账户登陆"

110.<

3)帐户注销"

4)退出系统"

111.cout<

请选择>

112.cin>

113.while(n<

1||n>

4)

114.{

115.cout<

请输入正确的操作序号!

116.cout<

请选择>

117.cin>

118.}

119.switch(n)

120.{

121.case1:

set_account();

122.break;

123.case2:

enter_account();

124.break;

125.case3:

del_account();

126.break;

127.case4:

exitYH();

128.break;

129.}

这个功能是整个程序的开始,通过它来调用其他功能函数进行其他的操作,本来可以把它做的更美观点的,但感觉没什么实际意思就没去修改了。

6.读取与保存功能:

用来保存用户的信息以及登陆时读取用户的信息。

利用ofstream,ifstream输入输出流,将用户的信息保存在文件里,

创建输入输出流ofstream,ifstream,将用户的信息保存进来,当用户登陆时,则对保存的信息进行读取,看是否有相符合的信息,实现语句如下:

//保存

130.ofstreamoutfile("

bankdat.dat"

ios:

:

out);

131.intn=0;

132.outfile<

acnum<

"

133.for(;

n<

n++)

134.{

135.outfile<

account[n]->

ID<

136.outfile<

money<

137.outfile<

name<

138.outfile<

passwd<

139.}

140.outfile.close();

//读取

141.ifstreaminfile("

in);

142.if(!

infile)

143.{

144.cerr<

读取错误,无资料中!

145.return;

146.}

147.intn=0;

148.intid,m;

149.stringnam,passw;

150.infile>

151.for(;

152.{

153.infile>

154.infile>

155.infile>

156.infile>

157.account[n]->

passwd;

158.consumer*acc=newconsumer(id,nam,passw,m);

159.account[n]=acc;

160.}

161.infile.close();

162.cout<

读取资料正常!

我很少用文件的形式来保存信息,因为自己对这一块不太懂,感觉很陌生,这一次也是参考了别人的程序才能编写完成,用了这个方法后,发现这种方法还是很有优势的,将信息保存下来后,你把VS关了,下次登陆时,还可以读取到上次的信息,因为它会在文件夹里会生成一个dat类型的文件,将信息保存在这个文件里。

以后有机会,我一定要多试试这种方法,好好的掌握它。

以上都是YH(银行类)里的功能函数,它们主要是用来实现用户对银行系统的操作,而下面的Consumer(客户类)里的功能的函数,它们则主要是用来实现对自己账户的操作。

Consumer(客户类)中的成员函数:

1.存钱功能:

可以对自己的账户进行存款。

先输入存钱的数目,当然又要判断输入的数目是否为负数或者0,如果是,则重新输入。

存完钱后,你有可能还需要进行操作,因此,后面再作个判断,描述语句如下:

163.do

164.{

165.cout<

你要存多少钱:

endl;

166.cin>

c;

167.while(c<

168.{

169.cout<

170.cin>

171.}

172.money=money+c;

173.cout<

操作已成功!

174.cout<

是否要继续该项操作:

(Y/N)"

175.cin>

ch;

176.while(ch!

='

n'

ch!

N'

Y'

y'

177.{

178.cout<

(Y/N)"

179.cin>

180.}

181.}

182.while(ch=='

||ch=='

);

有些程序,虽然实现的功能的差不多,但有的人写的就是好,我觉的好可能就好在他考虑了一般人使用这个程序的习惯,让程序变的更人性化了,别人用起来舒服,顺手,自然感觉就好。

所以,我们以后写程序的时候一定要留心观察,注意细节,尽量多站在用户角度思考问题,这样才能做的更好,更受用户欢迎。

8.取钱功能;

可以冲自己的账号进行取钱的操作。

这个函数跟前面的存钱函数差不多,先是输入你要取钱的数目,并判断输入的数目是否符合要求,不符合则重新输入。

同样,输入完后,可能还需要进行该操作,因此,在后面再作个判断,描述语句如下:

183.do

184.{

185.cout<

186.cin>

187.while(c<

188.{

189.cout<

190.cin>

191.}

192.money=money+c;

193.cout<

194.cout<

195.cin>

196.while(ch!

197.{

198.cout<

199.cin>

200.}

201.}

202.while(ch=='

203.}

9.修改密码功能;

用于修改用户自己账号的登陆密码。

创建change_passwd()函数用以修改密码,当用户输入修改密码的操作时,就可以直接调用它。

因为密码一旦丢失,则不能登陆相应的账号,会造成无法挽回的损失,所以,当你在修改密码时,一般都会被要求输入2次,以免产生错误。

这个系统也是一样,修改密码时,要求输入2次,如果前后输入的不同,则修改密码失败,重新输入,直到2次输入的密码相同,才修改密码成功。

204.stringpwd,repwd;

205.cout<

请输入新密码:

206.cin>

pwd;

207.cout<

请再输入一次新密码:

208.cin>

repwd;

209.while(pwd!

=repwd)

210.{

211.cout<

你输入的两次密码不一样,请重新输入!

212.cout<

213.cin>

214.cout<

215.cin>

216.}

217.passwd=pwd;

218.cout<

密码修改成功,请牢记!

俗话说的好“不怕一万,就怕万一”,成功可能离你只有一步,但因为你的疏忽也错过。

因此我们做任何事情都应该要细心,注意观察,万万不可大意。

同时我们在写程序时,还要考虑到别人容易出错的地方,并提醒他们,以免他们出错了而怪你写的程序有问题。

三、程序结构:

Main()函数包括2个类,图形显示如下:

图1:

程序的函数结构

在YH(银行)中包含8个函数,图形显示如下:

图2:

在Consumer(客户类)中还包括4个函数,图形显示如下:

图3:

四、系统运行:

这里只显示一下“开户”与“登陆”功能,其它功能用户可以自行调试查看.

------------------------------------------------------------------

1)用户开户

2)账户登陆

3)帐户注销

4)退出系统

1

你输入1,并选择了开户。

然后按照提示输入账号,姓名,密码等。

001

liu

123

100

按照上面的操作,在这个银行系统中开户成功。

于是,你可以用你刚开的账号进行登陆了。

选择2,然后输入自己的账号,密码。

2

请输入密码:

输入完毕后,按回车。

如果,账号和密码输入无误的话,则会显示这个账号的信息,表明登陆成功。

**********************************

*  用户姓名:

*  帐号:

1

*  余额:

 100

以上便是登陆后显示的信息,与你在开户时输入的完全一致。

五、源程序:

1.

#include<

iostream>

2.

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

当前位置:首页 > 小学教育 > 其它课程

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

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