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 10 của 10
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Viết hàm phân loại sách theo thể loại(sach[i], theloai[i], 0
    em đang gặp rắc rối. tình hình là em viết hàm phân loại sách theo thể loại, hiện tại em có 2 mảng là sach[100][50] và thể loại[100][30]. em cho nó chạy trong vòng lặp tương ứng là sach[i] và theloai[i]. tương ứng với sách i này, sẽ là thể loại i kia. VD: sach[3] tương ứng theloai[3],...! em viết mãi không được. huhu. mấy anh giúp em với


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình ko hiểu ý tưởng của bạn lắm, việc bạn sử dụng mảng 2 chiều để làm gì nữa.
    Nếu bạn làm C++, thì sử dụng vector và dùng for_each() cho đơn giản và chương trình dễ hiểu hơn.

    Mình đoán là bạn bạn xây dựng 2 loại dữ liệu ( class Sach, class Catalog ).
    Bạn tham khảo cách làm dưới nhé, ( Có thể code chưa chắc đã build được, vì mình chưa viết code test )


    Mã:
    class OrganizeBook{public:    OrganizeBook( const string& type, vector<Book>& books )    :type( type ), books_( books )    {}     void operator() ( const Book& b )    {        if( b.type() == type_ )            books_.push_back();    } private:    const string& type_;    vector<Book>& books_;}; vector<Book> allBooks; // contained data for all books vector<Book> literatureBooks; // store literature book for_each( allBooks.begin(), allBooks.end(), OrganizeBook( "literature", literatureBooks) );

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    dạ! cảm ơn a mấy nay đã trợ giúp em rất nhiều. thật ra mấy ngày nay em đang làm đồ án: viết 1 phần mềm quản lí thư viện và yêu cầu ko sữ dụng struct hay vecto gì đó mà chỉ dùng mảng 1 chiều, 2 chiều.
    đề bài đây ạ, hơi dài, nếu rãnh anh làm rồi giúp dùm e mai deadline rồi ạ:
    *ý tưởng của e: do ko dùng struct nên mỗi thông tin của sách hoặc độc giả là một mảng 2 chiều( dùng 2 chiều vì để có thể lưu đc nhiều sách, độc giả, ví dụ như tensach[100][20] là có thể lưu đc 100 sách, mỗi tên sách gồm 19 kí tự).
    a xem câu 5 có yêu cầu phân loại sách theo thể loại( ở câu 2 em đã nhập vào sách rồi), giờ em cần phân loại nó ra, đây là code của e, m là số sách đã nhập vào, em lấy lần lược mỗi phần tử ra so sánh với nguyên chuỗi, nếu nó giống nhau tức cùng thể loại thì nó sẽ đc lưu vào 2 mảng mới, rồi e đánh dấu nó bằng cách cho giá trị 2 mảng đánh dấu = -1 để mấy lần sau không điếm nó nữa, sau đó in cái mảng mới ra.

    void soluongsachtheotheloai(int&m, char theloai[][50], char danhdautl[][50], char tensach[][100], char danhdauts[][100])
    {
    int x = 0;
    int danhdau[100] = { 0 };
    system("cls");
    if (m == 0)
    {
    printf("****Danh sach trong!
    ");
    printf("
    \t\t\tNHAN PHIM BAT KI DE TRO VE MENU
    ");
    _getch();
    }
    else if (m != 0)
    {
    for (int k = 0; k < m; k++)
    {
    for (int i = z; i < m; i++)
    {
    if (strcmp(theloai[k], theloai[i])==0)
    {
    if (danhdau[i] == -1)
    {
    continue;
    }
    strcpy(danhdautl[x], theloai[i]);
    strcpy(danhdauts[x], tensach[i]);
    x++;
    z++;
    danhdau[i] = { -1 };
    }
    for (int s = t; s < x; s++)
    {
    printf("\t-%s
    ", danhdauts[s]);
    t++;
    }
    }
    }
    printf("
    \t\t\tNHAN PHIM BAT KI DE TRO VE MENU
    ");
    _getch();
    }
    }

    Thư viện trường Đại học Khoa học tự nhiên TP.HCM cần viết một chương trình quản lí
    thư viện trên nền console và các bạn, những lập trình viên tài năng trong tương lai được
    chọn để thực hiện dự án này.
    Thư viện cần quản lí 3 loại thông tin gồm độc giả, sách và các phiếu mượn/trả sách.
    Thông tin thẻ độc giả cần quản lí bao gồm: mã độc giả, họ tên, CMND, ngày tháng
    năm sinh, giới tính, email, địa chỉ, ngày lập thẻ và ngày hết hạn của thẻ (48 tháng
    kể từ ngày lập thẻ).
    Thông tin sách cần quản lí bao gồm: ISBN (mã sách), tên sách, tác giả, nhà xuất
    bản, năm xuất bản, thể loại, giá sách, số quyển sách.
    Mỗi phiếu mượn/trả sách chứa thông tin về mã độc giả, ngày mượn, ngày trả dự
    kiến, ngày trả thực tế và danh sách ISBN của các sách được mượn. Mỗi sách được
    mượn tối đa trong 7 ngày, nếu quá hạn sẽ bị phạt tiền 5.000 đồnggày. Nếu sách
    bị mất thì độc giả đó sẽ bị phạt số tiền tương ứng 200% giá sách.
    Chương trình có các chức năng sau:
    1. Quản lí độc giả
    a. Xem danh sách độc giả trong thư viện
    b. Thêm độc giảtnhieu/lvlong/htthanh/pmtuan@fit.hcmus.edu.vn
    Trang 5
    c. Chỉnh sửa thông tin một độc giả
    d. Xóa thông tin một độc giả
    e. Tìm kiếm độc giả theo CMND
    f. Tìm kiếm sách theo họ tên
    2. Quản lí sách
    a. Xem danh sách các sách trong thư viện
    b. Thêm sách
    c. Chỉnh sửa thông tin một quyển sách
    d. Xóa thông tin sách
    e. Tìm kiếm sách theo ISBN
    f. Tìm kiếm sách theo tên sách
    3. Lập phiếu mượn sách
    4. Lập phiếu trả sách
    5. Các thống kê cơ bản
    a. Thống kê số lượng sách trong thư viện
    b. Thống kê số lượng sách theo thể loại
    c. Thống kê số lượng độc giả
    d. Thống kê số lượng độc giả theo giới tính
    e. Thống kê số sách đang được mượn
    f. Thống kê danh sách độc giả bị trễ hạn

  4. #4

    dùng 2 chiều vì để có thể lưu đc nhiều sách
    Bạn có thực sự hiểu cấu trúc của mảng 2 chiều ko?
    Dùng C sao ko được sử dụng struct?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    dạ có thể em hiểu nhầm,mong a hướng dẫn dùm e ạ, e chỉ còn câu đó thôi là hoàn tất đồ án ạ vậy ví dụ char tensach[100][50] không phải lưu đc 100 tên sách và mỗi tên sách có 49 kí tự hả a?

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Vậy bạn xây dựng được bao nhiêu chức năng rồi? Bài toán này với ngôn ngữ C, thì mình bạn phải xây dựng struct Book, và tự xây dựng các container
    ( có thể là danh sách liên kêt ). Rồi các chức năng là hoàn toàn thao tác trên container này thôi mà.

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi giapnguyen.pfiev
    Vậy bạn xây dựng được bao nhiêu chức năng rồi? Bài toán này với ngôn ngữ C, thì mình bạn phải xây dựng struct Book, và tự xây dựng các container
    ( có thể là danh sách liên kêt ). Rồi các chức năng là hoàn toàn thao tác trên container này thôi mà.
    Thấy bạn ý bảo yêu cầu k0 đc dùng struct và vector.

    Nhưng mà thấy nếu yêu cầu như thế có vẻ hơi bóp * thì phải

    - - - Nội dung đã được cập nhật ngày 23-12-2014 lúc 06:32 PM - - -

    Trích dẫn Gửi bởi phanthekhuong
    em đang gặp rắc rối. tình hình là em viết hàm phân loại sách theo thể loại, hiện tại em có 2 mảng là sach[100][50] và thể loại[100][30]. em cho nó chạy trong vòng lặp tương ứng là sach[i] và theloai[i]. tương ứng với sách i này, sẽ là thể loại i kia. VD: sach[3] tương ứng theloai[3],...! em viết mãi không được. huhu. mấy anh giúp em với
    Mình thấy có chỗ mâu thuẩn sao ý bạn à, nếu sach[i]=theloai[i]. Vậy sach[1000] sẽ có theloai[1000] trong khi thực thế chỉ có vài chục thể loại.
    Bạn k0 dùng 1 mảng phụ lưu các thể loại riêng biệt(vài chục là max) Sao đó bạn for từ mảng lưu thể loại phụ này rồi for đến cái theloai[1000] kia, cái nào trùng thì ++ thôi.

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    dạ a có thể cụ thể bằng code giúp em được không ạ?http://www.mediafire.com/download/ih...i_Thu_Vien.exe
    đó là file dubug của e, mấy a coi thử, chỉ còn có cái phân loại là e làm ko đc

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Còn có 1 chức năng chưa làm được thôi vậy cũng được rồi, có gì bạn hỏi thêm thầy nhé.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi giapnguyen.pfiev
    Còn có 1 chức năng chưa làm được thôi vậy cũng được rồi, có gì bạn hỏi thêm thầy nhé.
    vâng! dù sao em cũng cảm ơn a đã trợ giúp em rất nhiều [IMG]images/smilies/smile.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
  •