Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    chương trình mô phỏng quy trình sắp xếp hàng đặt vế xem phim

    ai có thể giúp mk được ko plsss ( thực sự qá khó vs mk
    Đề 2
    viết chương trình mô phỏng quy trình sắp xếp hàng đặt vế xem phim như sau :
    Danh sách liên kết A chứa số ghế của các ghế trống trong rạp (ban đàu khởi tạo các số ghế từ 1 đến n).
    danh sách hàng đợi B chứa số thứ tự xếp hàng của khách.
    dang sách liên kết C chứa thông tin khách hàng đã mua vé( số ghế, tên)
    chức năng lấy số xếp hàng: thêm vào nút B, nếu B rỗng thì nút thêm sẽ có số thứ tự xếp hàng là 1 ,ngược lại thì số thứ tự xếp hàng là K+1 với K là số thứ tự của nút cuối của B
    chức năng mua vé:nếu còn ghế trống và có khách đang chờ mua vé thì xóa nút khỏi B ,lấy tên khách hàng và số ghế khách chọn để thêm nút C đồng thời loại số ghế đó khỏi A
    chức năng hủy vé : xóa nút khỏi C dồng thời loại số ghế đó khỏi A,
    chức năng hiển thị : hiển thị thông tin những vé đã bán ( DSLK C

  2. #2
    Ngày tham gia
    Feb 2014
    Bài viết
    0
    // quanlybanve.cpp : Defines the entry point for the console application.
    //
    #include"stdafx.h"
    #include <iostream>
    #include <string>

    using namespace std;

    struct NodeA
    {
    int soghetrong;
    NodeA *tiep;
    };
    struct listA
    {
    NodeA*dau, *cuoi;
    };
    typedef struct QueueA *maytrong;

    struct NodeB
    {
    int sothutuxephang[33];
    NodeB *tiep;
    };
    struct QueueB {
    NodeB *dau, *cuoi;
    };
    struct NodeC {
    char tenkhach[33];
    int soghe;
    NodeC *tiep;
    };
    struct ListC {
    NodeC *dau, *cuoi;
    };
    void putA(listA &m, int x)
    {
    NodeA *data1 = new NodeA[1];
    data1->soghetrong = x;
    data1->tiep = NULL;
    if (m.dau == NULL)m.dau = m.cuoi = data1;
    else
    {
    m.cuoi->tiep = data1;
    m.cuoi = data1;
    }
    }
    int get(listA &m)
    {
    NodeA *x = new NodeA[1];
    x = m.dau;
    m.dau = m.dau->tiep;
    int y = x->soghetrong;
    delete x;
    return y;
    }
    void showA(listA m)
    {
    NodeA *x1;
    x1 = m.dau;
    cout << "---------------------------------------------------------";
    if (x1 == NULL)
    cout << "
    Khong con ghe trong nao ca";
    }
    void showC(ListC m)
    {
    NodeC *x2;
    x2 = m.dau;
    if (x2 == NULL)
    cout << "
    danh sach rong";
    else
    {
    cout << "
    Danh sach khach hang mua ve:";
    cout << "
    ten khach\t\tsoghe";
    do
    {
    cout << x2->tenkhach << "\t" << x2->soghe << "\t" << endl;
    x2 = x2->tiep;
    } while (x2 != NULL);
    }
    }
    void putC(ListC &a, int soghe, char tenkhach[33])
    {
    NodeC *h = new NodeC[1];
    (h->tenkhach, tenkhach);
    h->soghe = soghe;
    h->tiep = NULL;
    if (a.dau == NULL)
    a.dau = a.cuoi = h;
    else
    {
    a.cuoi->tiep = h;
    a.cuoi = h;
    }
    }
    void getC(ListC &C, int x)
    {
    NodeC *h;
    h = C.dau;
    if (h->soghe == x)
    {
    C.dau = C.dau->tiep;
    delete h;
    }
    else
    {
    while (h->tiep->soghe != x&&h != C.cuoi)
    h = h->tiep;
    if (h == C.cuoi)cout << "
    Xoa that bai";
    else
    {
    NodeC *h2;
    h2 = h->tiep;
    if (h2 != C.cuoi)
    h->tiep = h->tiep->tiep;
    else
    {
    h->tiep = NULL;
    C.cuoi = h;
    }
    delete h2;
    }
    }
    }
    void putB(QueueB &m, int sothutuxephang)
    {
    NodeB *data2 = new NodeB[1];
    data2->tiep = NULL;
    if (m.dau == NULL)
    m.cuoi = m.dau = data2;
    else
    {
    m.cuoi->tiep = data2;
    m.cuoi = data2;
    }
    }

    void getB(QueueB &B, int sothutuxephang)
    {
    NodeB *data3;
    data3 = B.dau;
    B.dau = B.dau->tiep;
    delete data3;
    }
    void showB(QueueB m)
    {
    NodeB *x4;
    x4 = m.dau=m.cuoi=NULL;
    if (x4 == NULL)
    cout << "
    Khong co khach hang nao ca";
    else
    {
    cout << "
    so thu tu xep hang cua khach:";
    while (x4 != NULL)
    {
    cout << "so thu tu xep hang " << x4->sothutuxephang;
    x4 = x4->tiep;
    }
    }
    }
    void muave(listA &A, QueueB &B, ListC &C)
    {
    char ten[33];
    int soghe;
    cout << "
    ---------------------------------------------------------";
    cout << "Nhap ten khach:";
    cin.ignore(1);
    cin.getline(ten,33);
    if (A.dau != NULL)//A khac rong
    {
    cout << "nhap so ghe: ";
    cin >> soghe;
    int z = get(A);
    putC(C, soghe, ten);
    cout << "Da cap ghe cho khach hang:" << z << ten[20];
    }
    else
    {
    cout << "Khong con ghe trong nen khach da duoc them vao hang doi B:";
    putB(B, soghe);
    }
    }
    void xoave(listA &A, ListC &C)
    {
    int x5;
    cout << "---------------------------------------------------------";
    if (C.dau == NULL)
    cout << "
    Khong co khach hang nao tra ve";
    else
    {
    cout << "
    Nhap vao so ghe muon huy: ";
    cin >> x5;
    //Tim xem x co trong C khong?
    NodeC *h;
    h = C.dau;
    while (h != NULL)
    {
    if (h->soghe == x5)break;
    else
    h = h->tiep;
    }
    if (h != NULL)//Co x trong C
    {
    //Loai bo h khoi C
    getC(C, x5);
    //Them x vao A
    putA(A, x5);
    cout << "Tra ghe thanh cong, so ghe duoc dua vao danh sach A";
    cin >> x5;
    }
    else
    cout << "So ghe tra nhap khong chinh xac";
    }
    }
    int main()
    {
    listA A;//DS ghe trong
    QueueB B;//Danh sach khach lay so thu tu xep hang
    ListC C;//thong tin khach mua ve
    A.dau = A.cuoi = NULL;
    B.dau = B.cuoi = NULL;
    C.dau = C.cuoi = NULL;
    //Khoi tao A
    cout << "Nhap so ghe cua cac ghe trong trong rap: ";
    int n;
    cin >> n;
    for (int i = 1;i <= n;i++)
    putA(A, i);
    int check;
    lap:
    cout << endl << endl << " QUAN LY BAN VE XEM PHIM O RAP " << endl;
    cout << " -------------------------------------------------------------" << endl;
    cout << " | Lua chon cac chuc nang. |" << endl;
    cout << " | Bam so 1 :lay so xep hang. |" << endl;
    cout << " | Bam so 2 :de chon chuc nang mua ve. |" << endl;
    cout << " | Bam so 3 :de chon chuc nang huy ve. |" << endl;
    cout << " | bam so 4 :de hien thi thong tin. |" << endl;
    cout << " | Bam so 0 :neu ban muon thoat khoi chuong trinh. |" << endl;
    cout << " -------------------------------------------------------------" << endl << endl;
    cin >> check;
    switch (check)
    {
    case 0:return 0;
    case 1:showB(B);
    goto lap;
    case 2: muave(A, B, C);
    goto lap;
    case 3: xoave(A, C);
    goto lap;
    case 4:
    showC(C);
    goto lap;
    default:cout << "Xin moi ban lua chon lai: ";
    goto lap;
    }
    }
    vẫn còn vài chức năng chưa ổn đinh [IMG]images/smilies/biggrin.png[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •