C#模拟银行窗口模拟系统(控制台)

该博客介绍了一个使用C#编写的银行窗口模拟系统,模拟了银行8点至12点的业务处理过程,包括存钱和取钱。系统采用数据结构中的队列、Random类和DateTime类进行模拟,利用System.Threading.Timer执行窗口业务处理,并记录详细信息到文件。运行结果展示了在不同时间点,如非营业时间和营业时间内系统的行为。
摘要由CSDN通过智能技术生成

源码下载

模拟内容

模拟银行的业务处理过程,银行有三个窗口,每天8点开门,12点关门,银行业务主要包括两种:存钱和取钱,每件业务的处理时间为3~5分钟。
分析银行的具体业务办理情况,通过随机数生成并模拟银行业务办理事件处理过程,分析各个窗口的排队长短,编写程序最终实现完整处理过程,建立“银行窗口模拟系统”。

1.如果程序开始运行时产生的随机时间在8-12点之间,则运行该程序,否则提示银行已关门;
2.程序开始运行时,随机产生当时银行存在的人数,及三个窗口的排列情况,并按其先后顺序排序1,2,3……;
3.随机产生每个窗口正在办理业务的情况,包括存钱和取钱,及其每个窗口正在办理业务所剩余的时间,并表示出来;
4.程序运行中随机产生每个时刻进来的人数,并进行排列;
5.假如第一个人处理完业务,则队列依次前移;
6.假如到了12点,系统提示银行停止办理业务。

模拟思路

使用数据结构中的队列存放银行的所有客户,使用c#中的random类的对象生成随机数产生随机时间,使用c#中的Datetime类进行时间与字符串之间的转换和时间的比较和运算,只有产生的随机时间在8:00-12:00之间才能进入系统,使用c#中的System.Threading.Timer线程计时器实现定时执行三个窗口的处理业务的过程,最后使用c#的StreamWriter类将业务的具体信息写入到文件。

编程实现

首先定义几个全局变量,分别为银行初始人数,初始生成的随机时间,之后的时间都在次基础上增加,直到银行的关门时间12:00,一个队列模拟银行的排队队列,一个定时器对象定时执行三个窗口的函数。

	    public static int peoplenum = 30;//银行初始人数
        public static string time;//生成的初始随机时间
        public static Queue<string> queue = new Queue<string>();//排队队列
        public static Timer myTimer;//定时器对象

编些一个函数模拟银行的欢迎界面。

   //欢迎界面
        public static void welcome()
        {
   
            Console.WriteLine("\t\t 银行业务模拟与离散事件模拟程序系统");
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine("温馨提示:");
            Console.WriteLine("开门时间:早上8点,关门时间:早上12点");
            Console.WriteLine("------------------------------------------------");
        }

编写函数用于比较当前随机生成的时间是否在银行的上班时间,如果在就询问用户是否需要进入系统,如果用户选择是则开始模拟银行的业务处理流程。

 //比较随机时间是否在8:00-12:00
        public static void cmpTime()
        {
   
            time = getDate();
            string starttime = "08:00:00";
            string endtime = "12:00:00";
            DateTime rantime = Convert.ToDateTime(time);
            DateTime stime = Convert.ToDateTime(starttime);
            DateTime etime = Convert.ToDateTime(endtime);
            Console.Write("当前时间是:"+time);
            if (rantime > stime && rantime < etime)
            {
   
                Console.WriteLine("是否要进入系统?(输入yes进入系统,输入其他内容退出系统)" 
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LongTermism

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值