fresh_bank、、

最近新学习了一个bank系统来和大家分享一下,新人求罩!

破索式之_链子枪_

废话不多说了直接本主题

如果我们要写出bank系统,就要先考虑这个问题:总共需要几个类?

既然是银行系统,那么必不可少的就是银行了,               这里我们就需要一个1.银行类

我们都知道去银行办理业务都是要有一张属于你自己的卡    所以这里就需要一个2.卡的类

有了这些类,我们在main方法里进行调用这些就ok了,接下来我就带大家一起来实现一个bank!

首先我们先来个卡的类,因为通篇下来都是要从这里调用他们的初始赋值的;

 1 class Card
 2     {
 3         private string cardNo;//卡号
 4         private string cardOwner;//持卡人
 5         private string cardPwd;//密码
 6         private double balance;//余额
 7
 8         public double Balance
 9         {
10             get { return balance; }
11             set { balance = value; }
12         }
13         public string CardPwd
14         {
15             get { return cardPwd; }
16             set { cardPwd = value; }
17         }
18
19         public string CardOwner
20         {
21             get { return cardOwner; }
22             set { cardOwner = value; }
23         }
24
25         public string CardNo
26         {
27             get { return cardNo; }
28             set { cardNo = value; }
29         }
30
31     }

ok!  大家看上去是不是感觉很简单呢? 其实接下来更加的简单哦~

接下来就到了我们的bank模块,大家都知道bank一般都是有好多功能的对吧?

那么这些东东到底是怎么实现的呢?  就让我们一起来走进bank的真相吧!

那么 大家所熟知的bank功能都有什么呢?大致就是下面这些喽!

1.开户  2.存款 3.取款  4.查询余额 5.转账  6.修改密码  7.退出  8.输出所有账户的持卡人以及余额

对吧,    那么我们也就按照步骤来一步步的实现bank中的每一项功能吧>>>>>>>>>>

//开户模块

 1 Console.WriteLine("欢迎进入开户模块");
 2             Console.WriteLine("请输入卡号");
 3             string cardNo = Console.ReadLine();
 4             Console.WriteLine("请输入密码");
 5             string cardPwd = Console.ReadLine();
 6             Console.WriteLine("请输入用户名");
 7             string cardOwner = Console.ReadLine();
 8             Console.WriteLine("请输入开户后要存储的金额");
 9             double balance = double.Parse(Console.ReadLine());
10             //将bank里的值重新赋给Card中
11             Card card = new Card();
12             card.CardNo = cardNo;
13             card.CardPwd = cardPwd;
14             card.CardOwner = cardOwner;
15             card.Balance = balance;
16
17             //将card对象赋值给数组第一个为null的项目
18             for (int i = 0; i < cards.Length; i++)
19             {
20                 if (cards[i]==null)
21                 {
22                     cards[i] = card;
23                     Console.WriteLine("开户成功!");
24                     break;
25                 }
26             }

 //存款模块

 1 Console.WriteLine("请输入您的账号");
 2             string cardno = Console.ReadLine();
 3             for (int i = 0; i < cards.Length; i++)
 4             {
 5                     if (cards[i] != null && cards[i].CardNo == cardno)
 6                     {
 7                         flag = true;
 8                         Console.WriteLine("请输入密码");
 9                         string pwd = Console.ReadLine();
10                         if (cards[i].CardPwd == pwd)
11                         {
12                             Console.WriteLine("恭喜您登陆成功!请输入您要存款的金额:");
13                             double GiveMoney = double.Parse(Console.ReadLine());
14                             cards[i].Balance = cards[i].Balance + GiveMoney;
15                             Console.WriteLine("恭喜您存款成功,您的当前余额为:{0}", cards[i].Balance);
16                             break;
17                         }
18                         else
19                         {
20                             Console.WriteLine("您输入的密码有误!");
21                             break;
22                         }
23                     }
24             }

 //取款模块

 1 Console.WriteLine("请输入您的账号");
 2             string cardno = Console.ReadLine();
 3             for (int i = 0; i < cards.Length; i++)
 4             {
 5                 if (cards[i] != null && cards[i].CardNo == cardno)
 6                 {
 7                     flag1 = true;
 8                     Console.WriteLine("请输入密码");
 9                     string pwd = Console.ReadLine();
10                     if (cards[i].CardPwd == pwd)
11                     {
12                         Console.WriteLine("恭喜您登陆成功!请输入您要取款的金额:");
13                         double TakeMoney = double.Parse(Console.ReadLine());
14                         cards[i].Balance = cards[i].Balance - TakeMoney;
15                         Console.WriteLine("恭喜您存款成功,您的当前余额为:{0}", cards[i].Balance);
16                         break;
17                     }
18                     else
19                     {
20                         Console.WriteLine("您输入的密码有误!");
21                         break;
22                     }
23                 }
24             }

//转账模块

注意!注意!

上面的对于大家来说基本上就是过家家~    那么接下来我要讲的就是本文的真正的藏金殿了!

对于转账相信对于我这样的初学者也是被搞得头晕脑胀的吧?

接下来就让我们一起来ko他吧!

 1 Console.WriteLine("请输入您的账号");
 2             string cardno = Console.ReadLine();
 3             for (int i = 0; i < cards.Length; i++)
 4             {
 5                 if (cards[i] != null && cards[i].CardNo == cardno)
 6                 {
 7                     flag2 = true;
 8                     Console.WriteLine("请输入密码");
 9                     string pwd = Console.ReadLine();
10                     if (cards[i].CardPwd == pwd  && cards[i].Balance!=0)
11                     {
12                         if (cards[i].Balance!=0)
13                         {
14                         Console.WriteLine("恭喜您登陆成功!请输入您要转账的对象账户:");
15                         string Target = Console.ReadLine();
16                         for (int j = 0; j < cards.Length; j++)
17                         {
18                             if (cards[j].CardNo.Equals( Target) || cards[j].CardNo!=null )
19                             {
20                                 Console.WriteLine("请输入您的操作金额:");
21                                 double Transform = double.Parse(Console.ReadLine());
22                                 if (Transform < cards[i].Balance && Transform != 0)
23                                 {
24                                     cards[i].Balance -= Transform;
25                                     cards[j].Balance += Transform;
26                                     Console.WriteLine("恭喜您转账成功!您的当前余额为:{0}", cards[i].Balance);
27                                     break;
28                                 }
29                                 else
30                                 {
31                                     Console.WriteLine("请输入正确的操作金额:");
32                                 }
33                             }
34                             break;
35                         }
36                         break;
37                         }
38                         else
39                         {
40                             Console.WriteLine("您当前的余额不足!不能进行转账!");
41                         }
42                     }
43                     else
44                     {
45                         Console.WriteLine("您输入的密码有误!");
46                         break;
47                     }
48                 }
49             }
50             return flag2;
51         }
52
53         //查询余额
54         public bool SelectMoney()
55         {
56             bool flag3 = false;
57             Console.WriteLine("===================");
58             Console.WriteLine("这里是查询余额模块");
59             Console.WriteLine("===================");
60
61             Console.WriteLine("请输入您的账号");
62             string cardno = Console.ReadLine();
63             for (int i = 0; i < cards.Length; i++)
64             {
65                 if (cards[i] != null && cards[i].CardNo == cardno)
66                 {
67                     flag3 = true;
68                     Console.WriteLine("请输入密码");
69                     string pwd = Console.ReadLine();
70                     if (cards[i].CardPwd == pwd)
71                     {
72                         Console.WriteLine("恭喜您登陆成功!您的当前余额为:{0}:",cards[i].Balance);
73                         Welcome();
74                         break;
75                     }
76                     else
77                     {
78                         Console.WriteLine("您输入的密码有误!");
79                         break;
80                     }
81                 }
82             }

怎么样?   看到这么调理清晰的把转账给大家呈现出来,是不是有点小惊讶?  

//修改密码

 1 Console.WriteLine("请输入您的账号");
 2             string cardno = Console.ReadLine();
 3             for (int i = 0; i < cards.Length; i++)
 4             {
 5                 if (cards[i] != null && cards[i].CardNo == cardno)
 6                 {
 7                     flag4= true;
 8                     Console.WriteLine("请输入你的密码");
 9                     string pwd = Console.ReadLine();
10                     if (cards[i].CardPwd == pwd)
11                     {
12                         Console.WriteLine("请输入您的新密码:");
13                         string pwd3=Console.ReadLine();
14                         Console.WriteLine("请再次输入您的新密码:");
15                         string pwd2=Console.ReadLine();
16                         if (pwd2==pwd3)
17                         {
18                             cards[i].CardPwd = pwd3;
19                         }
20                         Console.WriteLine("恭喜您密码修改成功!您的新密码是{0}",cards[i].CardPwd);
21                         Welcome();
22                         break;
23                     }
24                     else
25                     {
26                         Console.WriteLine("您输入的密码有误!");
27                         break;
28                     }
29                 }
30             }    

//退卡   略....

其实在写这样的项目时,小编总结出来个方法,在这里分享给大家:就是每次拿到一个项目时,不要感觉头大,首先总体的把内容过一下,

梳理出思路,这样在接下来的编程中就会感觉涛涛不绝~~!

感谢大家的耐心观看!关注我,给你最好的呈现~

时间: 2024-08-28 10:14:30

fresh_bank、、的相关文章

C的|、||、&amp;、&amp;&amp;、异或、~、!运算

位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有:     &(按位与).|(按位或).^(按位异或).~ (按位取反). 其中,按位取反运算符是单目运算符,其余均为双目运算符.     位运算符的优先级从高到低,依次为~.&.^.|, 其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符.    (1)按位与运算符(&) 

angularjs 指令—— 绑定策略(@、=、&amp;)

angularjs 指令—— 绑定策略(@.=.&) 引入主题背景:angular 的指令配置中的template可以直接使用硬编码写相应的代码,不过也可以根据变量,进行动态更新.那么需要用到那些变量,因用法的不同,所以需要设置合适的绑定策略. 一.@ 绑定策略 @ 绑定策略,它的作用就是能把指令配置的独立Scope下变量的值等于根据@绑定的指令属性的值.(指令属性的值可以使用表达式,但是得出来的值一定是字符串.) 1.上代码: html代码 <!DOCTYPE html> <h

(转载)Android xml资源文件中@、@android:type、@*、?、@+引用写法含义以及区别

原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法含义以及区别 一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor=&

shell之 $()、``、${ }、$(( ))与(())

$().``用来作命令替换 ${ }用来作变量替换(以下内容来自shell十三问) (1).    变量的界定         $ A=B         $ echo $AB 该命令执行时,将AB整体看作一个变量,而不是变量$A与字母B的连接.         $ A=B         $ echo ${A}B 该命令执行后将输出:BB (2).    特殊功能,对于字符串的处理有很大的帮助. 首先,定义变量 file=/dir1/dir2/dir3/my.file.txt,下面的命令将取得

Android xml资源文件中@、@android:type、@*、?、@+含义和区别

一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor="@android:color/opaque_red" 注意:其实@android:type/name是@[package:]type/name 的一个子类 二[email protected]*

&amp;&amp;(短路与)、&amp;、|、||(短路或)

Java语言中的&&(短路与).&.|.||(短路或)区别: &&是逻辑 &是位 当&两边是整数时执行的是位运算,而两边是boolean值时执行的是逻辑运算. 代码如下: 运行结果如下: &的逻辑运算和&&逻辑运算是存在一定不同的: &逻辑运算时两边都会计算的,而&&则在左边为假时则直接返的是false不再计算右边. 代码如下: 运行结果如下: 这两个例子中,第一个会抛出异常,而第二个则什么不会输出也不

shell中各种括号的作用()、(())、[]、[[]]、{}

一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b c d) 2.双小括号 (( ))

运算符(+、-、*、/)

运算符(+.-.*./) 最近在LeetCode 上刷题,遇到一个非常有趣的题目,题目的大概意思就是在不使用运算符的情况下实现两个数的加法...原题点这里>>> 说实话,刚看到这题目,我是一脸懵逼的. 后来仔细想想,如果不能用运算符,那肯定是用原始方法了(位运算). 后来,的确也证明我的想法是正确的.不过还是有种思路没想到,是参考了网上的. 在这里,我就来说说我所知道的两个方案.方法low,大牛可以点击右上角的×了... 注:以下讨论均基于整数之间的四则运算!部分来自网络~ [加法] 方

Makefile的编写及四个特殊符号的意义@、[email&#160;protected]、$^、$&lt;

我们先看三段C++程序: 一.line1的源码 line1.h 1 #ifndef _LINE_1_H 2 #define _LINE_1_H 3 void line1_print(const char *strMsg); 4 #endif line1.cpp 1 #include "line1.h" 2 #include <stdio.h> 3 void line1_print(const char *strMsg) 4 { 5 printf("This is

JAVA程序,基本数据类型、、数据类型转换、变量和常量、常用运算符

一.基本数据类型 整数类型:byte.short. int(常用).long(较常用)     定义某个变量          int  a=10: 浮点类型(小数):float.double(常用) 字符类型:char  字符(不是字符串)     char  b='a' 转义字符类:  常用的\\反斜杠字符    \t垂直制表符     \r 回车        \n换行 布尔类型(逻辑类型):  true .false 二.类型转换 强制转换与自动转换 int  m=1  : long n