/*开户、存款、挂失、补卡、取款、转账、余额查询、密码修改、交易查询、锁定账号、解锁账号等*/
/*C#第7天 请参考by-Qy*/

using System;
using System.Collections.Generic;
using System.Threading;
using System.Collections;
namespace 模拟银行业务
{
//新卡不得继承错误次数 挂失金额要转移 3次输出提示
class Program
{
private ArrayList nums = new ArrayList();
////创建公开静态Dictionary方法使用集合
//public static Dictionary<int, User> Data = new Dictionary<int, User>();
//List泛型集合确实比Dictionary好用。。。
public static List<User> Data = new List<User>();

//判断是否可以载入柜员窗口
static bool Testing;
//记录挂失的索引
static int ReportNumber;
//用户界面的循环
static bool usMain = true;
//记录谁的卡号进入了用户界面[索引]
static int WhoCarsNumber;
//给编号使用
static int Number=9999;
static bool Testing2;
static void Main()
{
while (true)
{
HomePage();
if (Testing)
{
CounterEmployee();
}
if (Testing2)
{
UserMain();
}

}
}

/// <summary>
/// 主页面,判断入口代码
/// </summary>
public static void HomePage()
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\n\n **** 欢迎使用传销银行系统 ****\n\n\n\n\n\n");
Console.Write(" 1. 柜员入口 2. 用户入口\n\n\n");
Console.Write(" 请选择入口代码:");
Console.ForegroundColor = ConsoleColor.Yellow;
string entrance = Console.ReadLine();
if (entrance == "1")
{
//柜员入口
AuthorizationCode();
}
else if (entrance == "2")
{
//用户入口
UserAccess();
}
else
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("\n\n\n 输入格式不正确按任意键重新输入。");
Console.ReadKey();
}
}

/// <summary>
/// 生成6位授权码,判断输入的授权码是否正确
/// </summary>
public static void AuthorizationCode()
{
Console.ForegroundColor = ConsoleColor.Red;
int AuthorizationCode = new Random().Next(100000, 1000000);
Console.Write("\n 本次登录授权码为:");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(AuthorizationCode.ToString());
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 请输入授权码:");
Console.ForegroundColor = ConsoleColor.Yellow;
string inputAuthorizationCode = Console.ReadLine();
if (inputAuthorizationCode != AuthorizationCode.ToString())
{
Testing = false;
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("\n 错误授权码,请按任意键继续");
Console.ReadKey();
return;
}
Testing = true;

}

/// <summary>
/// 柜员窗口
/// </summary>
public static void CounterEmployee()
{
while (true)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n\n\n **** 欢迎使用传销银行柜员系统 ****\n\n\n\n\n\n");
Console.Write(" 1. 开户 2. 挂失\n\n\n");
Console.Write(" 3. 补卡 4. 解锁\n\n\n");
Console.Write(" 5. 退出\n");
Console.Write(" -------------------------\n");
Console.Write(" 请选择操作代码:");
string Choice = Console.ReadLine();

if(Choice=="5")
{
Testing = false;//防止二次操作默认可进入柜员界面
break;
}
else if (Choice == "1")
{
OpenAnAccount();
}
else if (Choice == "2")
{
ReportTheLoss();
}
else if (Choice == "3")
{
FillCard();
}
else if (Choice == "4")
{
OnLocking();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 无效的操作代码,按任意键继续...");
Console.ReadKey();
}
}
}

/// <summary>
/// 用户窗口
/// </summary>
public static void UserMain()
{
while (usMain)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\n\n\n **** 欢迎使用传销银行系统 ****\n\n\n\n\n\n");
Console.Write(" 1. 存款 2. 取款\n\n");
Console.Write(" 3. 转账 4. 交易查询\n\n");
Console.Write(" 5. 显示余额 6. 修改密码\n\n");
Console.Write(" 7. 账户信息 8. 退出\n\n");
Console.Write(" -------------------------\n");
Console.Write(" 请选择操作代码:");
string Choice = Console.ReadLine();
if (Choice == "8")
{
Testing2 = false;//防止二次操作默认可进入用户界面
Data[WhoCarsNumber].WrongTimess = 1;
break;
}
else if (Choice == "1")
{
Deposit();
}
else if (Choice == "2")
{
WithdrawMoney();
}
else if (Choice == "3")
{
TransferAccounts();
}
else if (Choice == "4")
{
Transaction();
}
else if (Choice == "5")
{
Balance();
}
else if (Choice == "6")
{
ModifyPpassword();
}
else if (Choice == "7")
{
Information();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 无效的操作代码,按任意键继续...");
Console.ReadKey();
}
}
}

/// <summary>
/// 进入用户界面前的验证{存在、挂失、锁住、锁住三次记录}
/// </summary>
public static void UserAccess()
{

Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 卡号:");
Console.ForegroundColor = ConsoleColor.White;
if (DoesItExist(Console.ReadLine()))
{
if (TFReport())
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 此账户已挂失!按任意键继续操作");
Console.ReadKey();
}
else
{
if (TFLocking())
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 此账户已锁卡,请到柜台解锁!按任意键继续操作");
Console.ReadKey();
}
else
{//至此只要再判断密码
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 密码:");
Console.ForegroundColor = ConsoleColor.White;
if (PassWordReally(Console.ReadLine()))
{
if(Data[ReportNumber].WrongTimess<=3)
{

WhoCarsNumber = ReportNumber;
Testing2= true;
usMain = true;
return;
}

}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 密码错误,输错{0}次",Data[ReportNumber].WrongTimess);
Data[ReportNumber].WrongTimess++;
if (Data[ReportNumber].WrongTimess == 4)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 此账户已锁卡,请到柜台解锁!按任意键继续操作");
Console.ReadKey();
}
if (Data[ReportNumber].WrongTimess > 3)
{
Data[ReportNumber].Locking = true;
}
Console.ReadKey();
}
}
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n 此账户不存在!按任意键继续操作");
Console.ReadKey();
}
}

/// <summary>
/// 开户
/// </summary>
public static void OpenAnAccount()
{

Console.Write("\n 姓名:");
string name = Console.ReadLine();
while(name=="")
{
Console.Write("\n 姓名不能为空,请输入开户人姓名:");
name = Console.ReadLine();
}
Console.Write("\n\n 密码:");
string password = Console.ReadLine();
while (password == "")
{
Console.Write("\n 密码不能为空,请输入新用户密码:");
password = Console.ReadLine();
}
Console.Write("\n\n 该用户的卡号为:");
Console.ForegroundColor = ConsoleColor.Red;
string CarsNumberss = CarsNumber();
Console.Write(CarsNumberss);
Number++;
User Personal = new User(name, password, CarsNumberss,false,false,0,Number, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),1);
//UserIO PersonalIO = new UserIO(CarsNumberss, 999, 0, "", "");
//DataIO.Add(PersonalIO);
Data.Add(Personal);
Console.ForegroundColor = ConsoleColor.White;
Console.Write(",按任意键继续操作");
////遍历测试
//foreach (var item in Data.Values)
//{
// // Console.WriteLine("\n开户人姓名:{0},开户人密码{1},开户人卡号{2}", item.Name, item.Password, item.CarsNumber);
// if (item.Name == "1")
// {
// Console.WriteLine("存在了!");
// }
//}//成功咦!这个方法可行好得很
//判读输入的姓名是否存在
//bool a = User.Equals(Data.Values, "1");
//if (a)
//{
// Console.WriteLine("发现1了!");
//}
Console.ReadLine();

}

/// <summary>
/// 生成随机银行卡号且不重复
/// </summary>
public static string CarsNumber()
{
jump: int CarsNumber1 = new Random().Next(100000, 1000000);
Thread.Sleep(15);//延时15ms以上不然随机数前几位一样
int CarsNumber2 = new Random().Next(100000000, 1000000000);
string us_CarsNumber = CarsNumber1.ToString() + " " + CarsNumber2.ToString();
if (Data.Count == 0)//第一位办卡直接输出
{
return us_CarsNumber;
}
else if(DoesItExist(us_CarsNumber))//存在跳转重生
{
goto jump;
}
else
{
return us_CarsNumber;
}
}

/// <summary>
/// 输入卡号,判断卡号是否存在,存在true;得到输入卡号的索引
/// </summary>
/// <returns>bool值存在true</returns>
public static bool DoesItExist(string us_CarsNumbers)
{
for (int i = 0; i < Data.Count; i++)
{
if(Data[i].CarsNumberS==us_CarsNumbers)
{
ReportNumber = i;

return true;
}
}
return false;
}

/// <summary>
/// 输入姓名,判断姓名是否存在,存在true
/// </summary>
/// <returns>bool值存在true</returns>
public static bool NameExist(string us_Name)
{
for (int i = 0; i < Data.Count; i++)
{
if (Data[i].Name == us_Name)
{
return true;
}
}
return false;
}

/// <summary>
/// 挂失
/// </summary>
public static void ReportTheLoss()
{
Console.Write("\n\n 挂失卡号:");

if (DoesItExist(Console.ReadLine()))
{
if (TFReport())
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 该卡号已挂失!请按任意键继续操作");
Console.ReadKey();
return;
}
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 确定要挂失当前账号吗(Y/N)?");
if (YN(Console.ReadLine()))
{
//挂失操作不能登入可以补卡,补卡后挂失的账户被删除
Data[ReportNumber].ReportLoss = true;
Console.WriteLine("\n\n 挂失成功!\n\n 请按任意键继续操作");
Console.ReadKey();
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\n 系统找不到指定账户,请按任意键继续操作");
Console.ReadKey();
}
}

/// <summary>
/// 补卡
/// </summary>
public static void FillCard()
{
Console.Write("\n\n 姓名:");
string us_NameFC = Console.ReadLine();
Console.Write("\n\n 请输入已挂失的卡号:");
if (NameExist(us_NameFC)==true && DoesItExist(Console.ReadLine()))
{//姓名卡号存在判断是否挂失给予明了提示
if(TFReport())
{
long MoneyReport = Data[ReportNumber].Money;
//挂失过可以补卡操作 补卡?删除自身重新生成?恩
Data.RemoveAt(ReportNumber);
//DataIO.RemoveAt(ReportNumber);
Console.Write("\n\n 用户 {0} 新的卡号为:",us_NameFC);
Console.ForegroundColor = ConsoleColor.Red;
string CarsNumberss = CarsNumber();
Console.Write(CarsNumberss);
Console.ForegroundColor = ConsoleColor.White;
Console.Write("\n\n 请输入新的密码:");
string password = Console.ReadLine();
while (password == "")
{
Console.Write("\n 密码不能为空,请输入新用户密码:");
password = Console.ReadLine();
}
Number++;
User PersonalFC = new User(us_NameFC, password, CarsNumberss, false,false,MoneyReport,Number, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),1);
//UserIO PersonalIO = new UserIO(CarsNumberss, 999, 0, "", "");
//DataIO.Add(PersonalIO);
Data.Add(PersonalFC);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\n 补卡成功,请按任意键继续操作");
Console.ReadKey();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 未挂失的账户不能补卡,按任意键继续!");
Console.ReadKey();
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 系统找不到指定账户,按任意键继续!");
Console.ReadKey();
}

}

/// <summary>
/// 解锁
/// </summary>
public static void OnLocking()
{
Console.Write("\n\n 需解锁的卡号:");
if (DoesItExist(Console.ReadLine()))
{
if(TFReport())
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 此账号已挂失,按任意键继续操作");
Console.ReadKey();
}
else if(TFLocking())
{
Console.Write("\n\n 确定要解锁此账号么?(Y/N)");
if(YN(Console.ReadLine()))
{
Data[ReportNumber].Locking = false;
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 解锁成功,按任意键继续操作");
Data[ReportNumber].WrongTimess = 1;
Console.ReadKey();
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 此账号未锁住,按任意键继续操作");
Console.ReadKey();
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 系统找不到指定账号,按任意键继续操作");
Console.ReadKey();
}
}

/// <summary>
/// 判断是否已经挂失,挂失返回true
/// </summary>
public static bool TFReport()
{
if(Data.Count !=0)
{
return Data[ReportNumber].ReportLoss;
}
else
{
Console.WriteLine("本银行还木有顾客!望!眼!欲!穿!呐!");
return false;
}
}

/// <summary>
/// 判断是否已经锁住,锁住返回true
/// </summary>
public static bool TFLocking()
{
if (Data.Count != 0)
{
return Data[ReportNumber].Locking;
}
else
{
return false;
}
}

/// <summary>
///判断Y/N是Y输出true
/// </summary>
/// <param name="shuru">bool</param>
/// <returns></returns>
public static bool YN(string shuru)
{
if(shuru=="Y" || shuru == "y")
{
return true;
}
else
{
return false;
}
}

/// <summary>
/// 判断输入的密码是否正确,正确true
/// </summary>
public static bool PassWordReally(string pw)
{
if (Data[ReportNumber].Password==pw)
{
return true;
}
return false;
}
/// <summary>
/// 存款、100的倍数不为负数或0
/// </summary>
public static void Deposit()
{
Console.Write("\n\n 请输入交易金额:");
Console.ForegroundColor=ConsoleColor.White;
long input= Convert.ToInt64(Console.ReadLine());
if (input==0 || input<0)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 存款金额不能为零或负数!");
Continue();
}
else
{
if (input % 100 == 0)
{
Data[ReportNumber].Money += input;

UserIO transaction = new UserIO(input, "存款");

Data[ReportNumber].List.Add(transaction);

Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 存款成功!");
Continue();
}
else//eg:1
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 交易额必须是 100 的整数倍!");
Continue();
}
}

}
/// <summary>
/// 取款
/// </summary>
public static void WithdrawMoney()
{
Console.Write("\n\n 请输入交易金额:");
Console.ForegroundColor = ConsoleColor.White;
int input = Convert.ToInt32(Console.ReadLine());
if (input == 0 || input < 0)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 取款金额不能为零或负数!");
Continue();
}
else
{
if (input % 100 == 0)
{
if (Data[ReportNumber].Money >= input)
{
Data[ReportNumber].Money -= input;
//记录
UserIO transaction = new UserIO(input, "取款");

Data[ReportNumber].List.Add(transaction);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 取款成功!");
Continue();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 余额不足!");
Continue();
}

}
else//eg:1
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 交易额必须是 100 的整数倍!");
Continue();
}
}

}

/// <summary>
/// 用户面板输出判断是否继续?输入Y继续,别的退出用户界面!
/// </summary>
public static void Continue()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("\n\n 还继续操作吗(Y/N)?");
if (!YN(Console.ReadLine()))
{
Testing2 = false;
Data[WhoCarsNumber].WrongTimess = 1;
usMain = false;
}
}
/// <summary>
/// 转账
/// </summary>
public static void TransferAccounts()
{
Console.Write("\n\n 收款方卡号:");
if (DoesItExist(Console.ReadLine()))
{//转账条件分析 挂失 不存在 均不能转 ,锁定可转-解锁与否不影响
//转账金额与交易额要求相同,不能转给自己
if (TFReport())
{
Console.ForegroundColor = ConsoleColor.White;
Console.Write("\n\n 对方账户已挂失");
Continue();
}
else
{
if (ReportNumber == WhoCarsNumber)
{
Console.ForegroundColor = ConsoleColor.White;
Console.Write("\n\n 不允许给自己转账");
Continue();
}
else
{
Console.Write("\n\n 请输入转账金额:");
Console.ForegroundColor = ConsoleColor.White;
int input = Convert.ToInt32(Console.ReadLine());
if (input == 0 || input < 0)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 转账金额不能为零或负数!");
Continue();
}
else
{
if (input % 100 == 0)
{//转账开始
Data[ReportNumber].Money += input;
Data[WhoCarsNumber].Money -= input;
//记录
UserIO transaction = new UserIO(input, "转入");

Data[ReportNumber].List.Add(transaction);
//----------++++--------------------------
UserIO transactions = new UserIO(input, "转出");

Data[WhoCarsNumber].List.Add(transactions);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 转账 {0}元 成功!",input);
Continue();
}
else//eg:1
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 转账金额必须是 100 的整数倍!");
Continue();
}
}

}
}
}
else
{
Console.ForegroundColor = ConsoleColor.White;
Console.Write("\n\n 系统找不到指定用户");
Continue();
}
}

/// <summary>
/// 余额
/// </summary>
public static void Balance()
{
Console.Write("\n\n 账户余额为: {0}.0 元",Data[WhoCarsNumber].Money);
Continue();
}
/// <summary>
/// 修改密码
/// </summary>
public static void ModifyPpassword()
{
Console.Write("\n\n 请输入新的密码:");
Console.ForegroundColor = ConsoleColor.White;
Data[WhoCarsNumber].Password = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("\n\n 重置密码成功");
Continue();
}
/// <summary>
/// 账户信息
/// </summary>
public static void Information()
{
Console.Write("\n\n 编号:{0}\n 姓名:{1}\n 密码:{2}\n 卡号:{3}\n 开户日期:{4}\n 余额: {5}.0 元",Data[WhoCarsNumber].Number,Data[WhoCarsNumber].Name,Data[WhoCarsNumber].Password,Data[WhoCarsNumber].CarsNumberS,Data[WhoCarsNumber].Time,Data[WhoCarsNumber].Money);
Continue();
}
/// <summary>
/// 交易查询
/// </summary>
public static void Transaction()
{
Console.ForegroundColor = ConsoleColor.White;
Console.Write("\n\n \t交易号\t交易额 \t\t日期 \t\t\t类型\n \t----------------------------------------------------------------------");
//输出当前用户的交易记录
foreach (UserIO u in Data[WhoCarsNumber].List)
u.ShowTransaction();

Continue();
}
}

//User集合
public class User
{
public string Name { get; set; }
public string Password { get; set; }
public string CarsNumberS { get; set; }
//挂失默认false
public bool ReportLoss { get; set; }
//锁住状态默认false
public bool Locking { get; set; }
public long Money { get; set; }
//编号
public int Number { get; set; }
public string Time { get; set; }

//错误次数
public int WrongTimess { get; set; }

public List<UserIO> List
{
get
{
return list;
}

set
{
list = value;
}
}

//交易列表???
List<UserIO> list = new List<UserIO>();

public User() { }
//改动集合必须改动 补卡 开户
public User(string us_Name, string us_Psw, string us_CarsNumber,bool us_ReportTheLoss,bool us_Locking,long us_Money,int us_Number,string us_Time,int us_WrongTimes)
{
Name = us_Name;
Password = us_Psw;
CarsNumberS = us_CarsNumber;
ReportLoss = us_ReportTheLoss;
Locking = us_Locking;
Money = us_Money;
Number = us_Number;
Time = us_Time;
WrongTimess = us_WrongTimes;
}

}

//User交易
public struct UserIO
{
//交易号
public int TransactionNumber { get; set; }
//交易额
public long IOMoney { get; set; }
//交易日期
public DateTime IOTime { get; set; }
//交易类型
public string IOType { get; set; }

static int no = 1000;

//改动集合必须改动 补卡 开户
public UserIO(long us_IOMoney,string us_IOType)
{

TransactionNumber = no++;
IOMoney = us_IOMoney;
IOTime = DateTime.Now;
IOType = us_IOType;
}

public void ShowTransaction()
{
Console.Write("\n \t{0}\t{1}\t\t{2}\t\t\t{3}", TransactionNumber, IOMoney, IOTime.ToString("yyyy-MM-dd hh:mm:ss"),IOType);
}
}

}

模拟银行业务的JS实现的更多相关文章

  1. trao 模拟点击 & js auto click

    trao 模拟点击 & js auto click 日历上选择某一天,在 scrollview 自动定位到选择的那一天 click 后获取 item 的 e.target.offsetLeft ...

  2. 前后端分离开发——模拟数据mock.js

    mock.js 生成模拟数据,拦截ajax请求 <script type="text/javascript" src="http://libs.baidu.com/ ...

  3. Jmeter_前端RSA加密下的登陆模拟_引用js文件实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在一次项目实战中,前端登录使用了RSA加密,使用LoadRunner压测的第一步,就是模拟用户登录,可惜loadRunner11并不能录制前端的加 ...

  4. 【CSS3】纯CSS代码实现模拟时钟,+js对时功能。

    使用CSS3纯代码来实现模拟时钟,及指针动画功能. 在这里主要使用到css3一些基本元素: border-radius:圆角边框,画圆形:表盘 Transform:变换,旋转,扭曲:刻度盘,指针形状 ...

  5. 流量分析系统----实现-echarts模拟迁移(bmap.js/china.js)

    china.js: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  6. Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)

    在一次项目实战中,前端登录使用了RSA加密,使用LoadRunner压测的第一步,就是模拟用户登录,可惜loadRunner11并不能录制前端的加密过程,并且安装的LR是基于C语言版,网络上关于RSA ...

  7. js模拟类

    ECMAScript6已经支持了class,但之前版本都不支持类,但是可以通过一些方法来模拟类. js中的类,既是重点,也是难点,很多时候都感觉模棱两可. 首先强调一下js中很重要的3个知识点:thi ...

  8. 本地模拟服务器CDN(静态HTML,CSS,JS)开发

    本地模拟服务器CDN(静态HTML,CSS,JS)开发 所谓本地开发环境就是和线上cdn(a.longencdn.cn)一样的目录结构和功能,提供了一个本地镜像,开发者直接在本地镜像的对应目录中作开发 ...

  9. 流量分析系统----讲解-echarts模拟迁移(结合china.js)

    百度 Echarts 地图->模拟迁徙,实现自动切换地图 小航哥注释: 1.本文主要是把模拟迁移的流程讲了一遍,讲的很好.具体实现参考航哥这篇随笔“流量分析系统----实现-echarts模拟迁 ...

随机推荐

  1. 构建最小JDK Docker镜像

    参考: https://my.oschina.net/shyloveliyi/blog/1627020 1.首先下载jre,下载地址是https://www.java.com/en/download/ ...

  2. Linux定时任务 结合PHP实现实时监控

    首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务. 所有用户定义的 crontab 都被保存在/var/spool/cron ...

  3. JS call和apply方法使用

    总是对call和apply方法使用存在迷惑,特此记录一下 一句话理解这两个方法: call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call ...

  4. MVC基于角色权限控制--用户管理

    用户管理模块包括 新增用户.修改用户.展示用户列表.删除用户.用户角色分配.用户角色删除.用户权限分配 这里只介绍关于权限有关的 用户角色分配.用户角色删除.用户权限分配 新建控制器 UserInfo ...

  5. Mysql中select的正确姿势

    引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln ...

  6. 【技术文档】jeecg3.7.3-maven搭建环境入门

    JEECG 微云快速开发平台(3.7.3)Eclipse-Maven版本手把手入门手册 官方标准开发工具:1. IDE        Eclipse Java EE IDE for Web Devel ...

  7. elasticsearch-java异常

    1. Unsupported major.minor version 52.0 java的jdk版本过低导致,需要更换为jdk1.8+ 2. elasticsearch 的version在pom中提示 ...

  8. Python集合的基本操作

    #-*coding:utf-8 -* list =set([2,3,4]) list2 =set([5,3,7]) #交集 #print (list.intersection(list2)) #并集 ...

  9. idea 常见快捷键记录下

    keymaps 选择的是eclipse ctrl shif u              大小写转换 ctrl  o                   类方法列表 ctrl shif alt u  ...

  10. vue 设置背景

    <span :style="{ 'background': 'url(' + aboutImg1 + ') no-repeat center center', 'background- ...