public Cmo(int _max_count) { set_start_id(); time = 0; all_clients = 0; refused_clients = 0; tot_xchg = 0; tot_acnt = 0; tot_cred = 0; tot_card = 0; is_working = true; day_time = 300; //рабочий день - 5 минут)) set_random_creatime(); RT = request_type.NONE; clients = new Queue[2]; clients[0] = new Queue(_max_count); //очередь на 1-2 кассы (обмен) clients[1] = new Queue(_max_count); //очередь на 3-7 кассы (остальные операции) kasses = new Operator[7]; for (int i = 0; i < 7; i++) { if (i < 2) { kasses[i] = new Operator(kassa_type.N12); } else { kasses[i] = new Operator(kassa_type.N37); } } }
public Cmo(int _max_count) { set_start_id(); time = 0; all_clients = 0; refused_clients = 0; tot_xchg = 0; tot_acnt = 0; tot_cred = 0; tot_card = 0; is_working = true; day_time = 300; //рабочий день - 5 минут)) set_random_creatime(); RT = request_type.NONE; clients = new Queue[2]; clients[0] = new Queue(_max_count); //очередь на 1-2 кассы (обмен) clients[1] = new Queue(_max_count); //очередь на 3-7 кассы (остальные операции) kasses = new Operator[7]; for (int i = 0; i < 7; i++) { if (i < 2) kasses[i] = new Operator(kassa_type.N12); else kasses[i] = new Operator(kassa_type.N37); } }
private Request create_request() //генерация заявки { int caser; caser = rnd.Next(4); //тип заявки выбирается случайным образом switch (caser) { case 0: RT = request_type.ACNT; time = 30; tot_acnt++; break; case 1: RT = request_type.CARD; time = 80; tot_card++; break; case 2: RT = request_type.CRED; time = 60; tot_cred++; break; case 3: RT = request_type.XCHG; time = 50; tot_xchg++; break; } Request r = new Request(ID++, time, true, RT); return(r); }
public Request(Request _other) { ID = _other.ID; service_time = _other.service_time; request_state = _other.request_state; operation = _other.operation; }
private request_type type_operation(string s) { switch (s) { case "ACNT": _type = request_type.ACNT; BANK.set_acnt(); break; case "CARD": _type = request_type.CARD; BANK.set_card(); break; case "CRED": _type = request_type.CRED; BANK.set_cred(); break; case "XCHG": _type = request_type.XCHG; BANK.set_xchg(); break; } return(_type); }
private Random dec; //отклонение от среднего времени обработки заявки #endregion Fields #region Constructors public Request() { ID = 0; service_time = 0; request_state = false; operation = request_type.NONE; }
public Request(int _ID, int _service_time, bool _request_state, request_type _operation) { ID = _ID; service_time = _service_time; request_state = _request_state; operation = _operation; }
private Random dec; //отклонение от среднего времени обработки заявки public Request() { ID = 0; service_time = 0; request_state = false; operation = request_type.NONE; }
public ActionResult DeleteConfirmed(int id) { request_type request_type = db.request_type.Find(id); db.request_type.Remove(request_type); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "id,name")] request_type request_type) { if (ModelState.IsValid) { db.Entry(request_type).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(request_type)); }
public ActionResult Create([Bind(Include = "id,name")] request_type request_type) { if (ModelState.IsValid) { db.request_type.Add(request_type); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(request_type)); }
// GET: /Request_types/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } request_type request_type = db.request_type.Find(id); if (request_type == null) { return(HttpNotFound()); } return(View(request_type)); }
request_type RT; //тип заявки public Cmo() { ID = 0; time = 0; creating_time = 0; all_clients = 0; tot_xchg = 0; tot_acnt = 0; tot_cred = 0; tot_card = 0; day_time = 0; is_working = true; refused_clients = 0; RT = request_type.NONE; }
private int tot_xchg; //всего хсhg #endregion Fields #region Constructors public Cmo() { ID = 0; time = 0; creating_time = 0; all_clients = 0; tot_xchg = 0; tot_acnt = 0; tot_cred = 0; tot_card = 0; day_time = 0; is_working = true; refused_clients = 0; RT = request_type.NONE; }
private int set_service_time(request_type operation, int dec) { int service_time = 0; if (operation == request_type.ACNT) { service_time = 30 + dec; } else if (operation == request_type.XCHG) { service_time = 50 + dec; } else if (operation == request_type.CARD) { service_time = 80 + dec; } else { service_time = 60 + dec; } return(service_time); }
private request_type type_operation(string s) { switch (s) { case "ACNT": _type = request_type.ACNT; BANK.set_acnt(); break; case "CARD": _type = request_type.CARD; BANK.set_card(); break; case "CRED": _type = request_type.CRED; BANK.set_cred(); break; case "XCHG": _type = request_type.XCHG; BANK.set_xchg(); break; } return _type; }
private void button1_Click(object sender, EventArgs e) { int n = int.Parse(textBox2.Text); //общее количество заявок List <Request> list_client = new List <Request>(); int ID = 1; Random rnd = new Random(); request_type operation = request_type.NONE; int start_time; int service_time = 0; int timer = 20; int dec = 0; int tot_reject_XCHG = 0; //количество отказов первого типа int tot_reject_ACNT = 0; //количетво отказов второго типа double tot_queue_count1 = 0; double tot_queue_count2 = 0; double avr_queue_count1 = 0; double avr_queue_count2 = 0; //генерируем заявки for (int i = 0; i < n; i++) { int type = rnd.Next(4); switch (type) { case 0: operation = request_type.ACNT; dec = rnd.Next(-10, 10); service_time = set_service_time(operation, dec); break; case 1: operation = request_type.CARD; dec = rnd.Next(-10, 10); service_time = set_service_time(operation, dec); break; case 2: operation = request_type.CRED; dec = rnd.Next(-10, 10); service_time = set_service_time(operation, dec); break; case 3: operation = request_type.XCHG; dec = rnd.Next(-10, 10); service_time = set_service_time(operation, dec); break; } start_time = timer + rnd.Next(-10, 10); list_client.Add(new Request(ID, start_time, service_time, true, operation)); ID++; timer += 5; } foreach (Request client in list_client) { textBox1.Text += client.ID + " " + client.operation + " " + client.start_time + " " + "\r\n"; } //создаем кассы ID = 1; List <Kassa> list_kassa = new List <Kassa>(7); for (int i = 0; i < 7; i++) { if (i == 0 || i == 1) { list_kassa.Add(new Kassa(ID, kassa_type.N12)); ID++; } else { list_kassa.Add(new Kassa(ID, kassa_type.N37)); ID++; } } foreach (Kassa kassir in list_kassa) { textBox3.Text += kassir.state + " " + kassir.k_type + "\r\n"; } //создаем очереди для заявок int q_volume = int.Parse(textBox4.Text); Queue <Request> q12 = new Queue <Request>(q_volume); Queue <Request> q37 = new Queue <Request>(q_volume); List <Request> list_ready = new List <Request>(n); int global_time = 0; ///* while (list_ready.Count != n) { //освобождаем кассы foreach (Kassa kassir in list_kassa) { if (kassir.state == operator_state.Occuped && (kassir.cl.start_time + kassir.cl.service_time) == global_time) { list_ready.Add(kassir.cl); kassir.cl = null; kassir.state = operator_state.Vacant; } } //добавляем из очередей новые заявки в свободные кассы foreach (Kassa kassir in list_kassa) { if (kassir.state == operator_state.Vacant && kassir.k_type == kassa_type.N12 && q12.Count != 0) { kassir.cl = q12.Peek(); kassir.state = operator_state.Occuped; q12.Dequeue(); } if (kassir.state == operator_state.Vacant && kassir.k_type == kassa_type.N37 && q37.Count != 0) { kassir.cl = q37.Peek(); kassir.state = operator_state.Occuped; q37.Dequeue(); } } foreach (Request client in list_client) { if (client.start_time == global_time) { foreach (Kassa kassir in list_kassa) { if (kassir.state == operator_state.Vacant && kassir.k_type == kassa_type.N12 && client.operation == request_type.XCHG) { kassir.cl = client; kassir.state = operator_state.Occuped; break; } if (kassir.state == operator_state.Vacant && kassir.k_type == kassa_type.N37) { if (client.operation == request_type.ACNT || client.operation == request_type.CARD || client.operation == request_type.CRED) { kassir.cl = client; kassir.state = operator_state.Occuped; break; } } if (kassir.state == operator_state.Occuped && kassir.ID == 2 && client.operation == request_type.XCHG) { if (q12.Count == q_volume) { client.request_state = false; list_ready.Add(client); tot_reject_XCHG++; } else { q12.Enqueue(client); } break; } if (kassir.state == operator_state.Occuped && kassir.ID == 7) { if (client.operation == request_type.ACNT || client.operation == request_type.CARD || client.operation == request_type.CRED) { if (q37.Count == q_volume) { client.request_state = false; list_ready.Add(client); tot_reject_ACNT++; } else { q37.Enqueue(client); } } } } } } tot_queue_count1 += q12.Count; tot_queue_count2 += q37.Count; global_time++; } // */ foreach (Request client in list_ready) { textBox5.Text += client.ID + " " + client.operation + " " + client.start_time + " " + client.service_time + " " + client.request_state + "\r\n"; } textBox6.Text = tot_reject_XCHG.ToString(); textBox7.Text = tot_reject_ACNT.ToString(); avr_queue_count1 = Math.Round(tot_queue_count1 / global_time, 3); textBox8.Text = avr_queue_count1.ToString(); avr_queue_count2 = Math.Round(tot_queue_count2 / global_time, 3); textBox9.Text = avr_queue_count2.ToString(); textBox3.Text = global_time.ToString(); }
//генерация заявки private Request create_request() { int caser; caser = rnd.Next(4); //тип заявки выбирается случайным образом switch (caser) { case 0: RT = request_type.ACNT; time = 30; tot_acnt++; break; case 1: RT = request_type.CARD; time = 80; tot_card++; break; case 2: RT = request_type.CRED; time = 60; tot_cred++; break; case 3: RT = request_type.XCHG; time = 50; tot_xchg++; break; } Request r = new Request(ID++, time, true, RT); return r; }