-
23-12-2014, 11:45 AM #1Junior Member
- 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
View more random threads:
- Hàm Queue trong C
- Sử dụng đệ quy trong if else?
- Friend Function | Xin chỉ giúp lỗi sai
- Ghi 1 định dạng char xuống file
- Danh sách liên kết..
- Nếu muốn biết thời gian chạy của một chương trình trong c thì phải làm thế nào?
- Tìm dòng dài nhất file C++
- VS2010 không nhận các hàm trong conio.h
- Anh em xem hộ bài này lỗi ở dâu với...
- Tính 1+ x/1! + x^2/2!+...+x^n/n!
-
23-12-2014, 12:17 PM #2Junior Member
- 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) );
-
23-12-2014, 12:39 PM #3Junior Member
- 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
-
23-12-2014, 12:43 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
dùng 2 chiều vì để có thể lưu đc nhiều sách
Dùng C sao ko được sử dụng struct?
-
23-12-2014, 12:47 PM #5Junior Member
- 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?
-
23-12-2014, 12:56 PM #6Junior Member
- 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à.
-
23-12-2014, 01:32 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi giapnguyen.pfiev
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 - - -
Gửi bởi phanthekhuong
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.
-
23-12-2014, 01:34 PM #8Junior Member
- 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
-
23-12-2014, 04:36 PM #9Junior Member
- 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é.
-
24-12-2014, 04:06 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi giapnguyen.pfiev
Không chỉ dừng lại ở việc sử dụng nguyên liệu cao cấp, mỗi công trình còn được "chăm sóc" bằng 4 dịch vụ xuất sắc của Tre Nghệ. Từ việc tư vấn, thiết kế đến thi công và hoàn thiện, mọi quy trình đều...
Chất Lượng và Sáng Tạo: Kiến Trúc...