第一个类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace  My Bank

{
class Bank
{
Person[] user = new Person[30];
public void CreatAccount()
{
bool result;
for (int i = 0; i < user.Length; i++)
{
if (user[i] == null)
{
user[i] = new Person();
Console.WriteLine("请输入用户名:");
user[i].name = Console.ReadLine();
user[i].number = user[i].name;
do
{
Console.WriteLine("请输入密码");
user[i].password = Console.ReadLine();
Console.WriteLine("请再次输入密码:");
string passwords = Console.ReadLine();
result = IsSame(user[i].password, passwords);
if (!result)
{
Console.WriteLine("两次密码不一致,重新输入:");
}
} while (!result);
Console.WriteLine("请输入身份证号:");
user[i].idNumber = Console.ReadLine();
Console.WriteLine("请输入存款金额:");
user[i].money = int.Parse(Console.ReadLine());
Console.WriteLine("账户:{0},用户名:{1},存款金额:{2},创建成功!", user[i].number, user[i].name, user[i].money);
break;
}

}

}
private bool IsSame(string password, string passwords)
{
if (password == passwords)
{
return true;
}
return false;
}
public void WithDraw()
{
Console.WriteLine("请输入账号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码");
string pwd = Console.ReadLine();
Person a = checkOutAccount(account, pwd);
if (a != null)
{
Console.WriteLine("请输入取款金额");
double outmoney = double.Parse(Console.ReadLine());
double result = UserMoney(outmoney, a);
if (result == -1)
{
Console.WriteLine("取款失败");
}
else
{
Console.WriteLine("取款成功,当前金额{0}", a.money);
}

}
else
{
Console.WriteLine("账号或密码不存在");
}
}
private double UserMoney(double outmoney, Person people05)
{
if (outmoney > 0)
{
if (outmoney <= people05.money)
{
people05.money -= outmoney;
return people05.money;
}
else
{
return -1;
}
}
else
{
return -1;
}
}
public void Show()
{
Console.WriteLine("请输入账号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
Person checkIn = checkOutAccount(account, password);
if (checkIn == null)
{
Console.WriteLine("账号或密码错误");
}
else
{
Console.WriteLine("账户余额是{0}", string.Format("{0:F3}", checkIn.money.ToString()));
}

}
public void Theme()
{
Console.WriteLine("=================欢迎使用自动银行服务============================");
Console.WriteLine("1.存款2.取款3.转账4.查询余额5.退出6.修改密码 7.继续注册账户");
Console.WriteLine("================================================================");
do
{
Console.WriteLine("请选择:");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
AddMoney();
continue;
case 2:
WithDraw();
continue;
case 3:
Transfer();
continue;
case 4:
Show();
continue;
case 5:
break;
case 6:
Change();
continue;
case 7:
CreatAccount();
continue;
default:
Console.WriteLine("输入无效");
continue;
}
break;
} while (true);

}
public void Transfer()
{
Console.WriteLine("请输入转出账号:");
string outAccount = Console.ReadLine();
Console.WriteLine("请输入转出账户密码");
string outPassword = Console.ReadLine();
Console.WriteLine("请输入转入账号");
string inAccount = Console.ReadLine();
Console.WriteLine("请输入转账金额");
double tranMoney = double.Parse(Console.ReadLine());
double outMoney = 0, inMoney = 0;
int result = Back(outAccount, outPassword, inAccount, tranMoney, ref outMoney, ref inMoney);
if (result == 1)
{
Console.WriteLine("转账成功,转出账号{0}余额为:{1},转入账号{2}余额为:{3}", outAccount, outMoney, inAccount, inMoney);
}
else if (result == -1)
{
Console.WriteLine("转出账户账号或密码错误");
}
else if (result == -2)
{
Console.WriteLine("转入账号不正确");
}
else if (result == -3)
{
Console.WriteLine("转账操作失败");
}
}
public void AddMoney()
{
Console.WriteLine("请输入账号:");
string account = Console.ReadLine();
Person a = InAccount(account);
if (a != null)
{
Console.WriteLine("请输入存款:");
int addMoney = int.Parse(Console.ReadLine());
a.money += addMoney;
Console.WriteLine("存款成功:余额{0}", a.money);
}
else
{
Console.WriteLine("账号不存在");
}
}
public void Change()
{
Console.WriteLine("请输入账号:");
string isAccount = Console.ReadLine();
Console.WriteLine("请输入密码:");
string isPassword = Console.ReadLine();
Person c = AChange(isAccount, isPassword);
if (c != null)
{
Console.WriteLine("请输入新密码:");
string password1 = Console.ReadLine();
Console.WriteLine("请再次输入密码:");
string password2 = Console.ReadLine();
if (PChange(password1, password2, ref c) == null)
{
Console.WriteLine("两次密码不一致");
}
else
{
Console.WriteLine("密码修改成功");
}
}
else
{
Console.WriteLine("账号或密码错误");
}
}
private Person InAccount(string inAccount)
{
foreach (Person temp in user)
{
if (inAccount == temp.number)
{
return temp;
}

}
return null;
}
private int Back(string outAccount, string outPassword, string inAccount, double tranMoney, ref double outMoney, ref double inMoney)
{
Person a = checkOutAccount(outAccount, outPassword);
if (a == null)
{
return -1;
}
Person b = checkInAccount(inAccount, outAccount);
if (b == null)
{
return -2;
}
outMoney = checkOutMoney(tranMoney, ref a);
if (outMoney <= 0)
{
return -3;
}
inMoney = checkInMoney(ref b, tranMoney);
if (inMoney < b.money)
{
return -3;
}

return 1;
}
private Person checkOutAccount(string outAccount, string outPassword)
{
foreach (Person temp in user)
{
if (outAccount == temp.number && outPassword == temp.password)
{
return temp;
}
}
return null;
}
private Person checkInAccount(string inAccount, string outAccount)
{
foreach (Person temp in user)
{
if (inAccount == temp.number && outAccount != inAccount)
{
return temp;
}

}
return null;
}
private double checkOutMoney(double tranMoney, ref Person people01)
{
if (people01 != null)
{
if (tranMoney <= people01.money)
{
people01.money -= tranMoney;
return people01.money;
}
return people01.money;
}
return people01.money;
}
private double checkInMoney(ref Person people02, double tranMoney)
{
people02.money += tranMoney;
return people02.money;
}
private Person AChange(string account, string oldPassword)
{
foreach (Person temp in user)
{
if (account == temp.number && oldPassword == temp.password)
{
return temp;
}
return null;
}
return null;
}
private string PChange(string num1, string num2, ref Person people03)
{
if (num1 == num2)
{
people03.password = num1;
return people03.password;
}
return null;
}
}
}

第二个类 :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace My Bank
{
class Person
{
public string name;
public double money;
public string password;
public string idNumber;
public string number; 
}
}

 测试类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace My Bank
{
class Program
{
static void Main(string[] args)
{
Bank demo = new Bank();
demo.CreatAccount();
demo.Theme();
Console.ReadLine();
}
}
}

C#语言和SQL Server数据库技术_My Bank银行系统的更多相关文章

  1. C#语言和SQL Server数据库技术_前四章错题

      1.在C#中,如果让某个方法只能被它所在的程序集内的其他方法访问,可使用(C)修饰这个方法. (选择一项) A:private B:protected C:internal D:以上都不对 2.下 ...

  2. C#语言和SQL Server 数据库处理

    ---恢复内容开始--- 第七章 用表组织数据 1:数据性分类: 1>实体完整性的约束:检验每行数据是否符合要求 检验每列数据是否符合要求 2>域完整性约束:给定列输入的有效性 3> ...

  3. C#语言和SQL Server第十三 十四章笔记

    十三章  使用ADO.NET访问数据库 十四章使用ADO.NET查询和操作数据库 十三章:                                                       ...

  4. C#语言和SQL Server第八章笔记

    一:                                                                                                   ...

  5. C#语言和SQL Server第十章笔记

    第十章 :使用关键字模糊查询 笔记 一:使用关键字 :LIKE  BETWEEN  IN进行模糊查询 通配符:  一类字符,代替一个或多个真正的字符 与LIKE关键字一起使用 通配符: 解释 实例 符 ...

  6. SQL Server数据库应用技术

    SQL Server数据库应用技术 SQL是Structured Query Language的缩写.SQL是操作命令集,是一种功能齐全的数据库语言.SQL功能强大.简单.易学.使用方便,已经成为了数 ...

  7. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

  8. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  9. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

随机推荐

  1. linux搭建简易网站

    1.检查环境 getenforce #查看seLinux运行状态 Enforcing #强行执行 setenforce #临时关闭selinux vim /etc/selinux/config #编辑 ...

  2. VueRouter爬坑第一篇-简单实践

    VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...

  3. 2、Linux基础练习题

    题目 答案 1.答案 [root@centos7 ~]# date +'%F %T' 2019-07-23 10:21:35 2.答案 [root@centos7 ~]# date +%A -d '- ...

  4. Md5实例

    MD5实例 我的md5源码 当我们对数据进行操作时,存储到数据库时,有时候不希望别人能够看到,通过md5能够实现对数据的加密. java代码 ```javaimport org.springframe ...

  5. JVM 运行参数 & 代码监控

    1.Java代码监控 JDK提供java.lang.management包, 其实就是基于JMX技术规范,提供一套完整的MBean,动态获取JVM的运行时数据,达到监控JVM性能的目的. packag ...

  6. java面试题-Java集合相关

    1. ArrayList 和 Vector 的区别 ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据 Vector是线程安全的,但是性能比ArrayList要低. Ar ...

  7. PHP Laravel 6.2 中用于用户登录的新密码确认流程

    Laravel 发布了 v6.2 版本,它添加了一个新的密码确认功能,该功能使你可以要求已登录的用户重新输入密码,然后才能访问路由. 在你执行敏感操作的时候,这个功能就类似GitHub确认对话框.在 ...

  8. Python Excel 绘制柱形图

    本文主要讲述如何使用Python操作Excel绘制柱形图. 相关代码请参考 https://github.com/RustFisher/python-playground 本文链接:https://w ...

  9. 前端与算法 leetcode 7. 整数反转

    目录 # 前端与算法 leetcode 7. 整数反转 题目描述 概要 提示 解析 解法 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 7. 整数反转 题 ...

  10. requests模块发送带headers的Get请求和带参数的请求

    1.在PyCharm开发工具中新建try_params.py文件: 2.try_params.py文件中编写代码: import requests#设置请求Headers头部header = {&qu ...