Cần giúp đỡ bài tập quản lí thư viện

viết một chương trình quản lí thư viện trên nền console của c++ 2013
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 đồng/ngà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ả
    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

.Nếu khó quá thì làm giúp e câu 1 cũng dc ạ…còn câu 2 e cố gắng mò mẫn ạ…do thích lập trình mà chỗ e ko ai biết về lập trình cả…

1 Like

em đã có kiến thức căn bản về C++ chưa?

1 Like

dạ sơ sơ ạ… toàn là tự mò nên rối tùm lum:joy:

sơ sơ là như thế nào? e dùng C/C++ hay C++, C++ thì đơn giản hơn, viết 1 class sách và 1 class quản lý với các thuộc tính và phương thức theo yêu cầu của đề bài. Yêu cầu em phải nắm rõ kiến thức căn bản về class, ngoài ra cần có kỹ thuật lập trình cơ bản như xử chuổi, quản lý con trỏ… Còn nếu dùng C/C++ thì tạo struct sách với các kiểu dữ liệu mà đề bài cho, sau đó viết hàm quản lý các con trỏ với kiểu “sách” em vừa thiết lập, viết hàm theo yêu cầu của đề bài, nó cũng đòi hỏi các kỹ thuật lập trình cơ bản như C++, cấp phát giải phóng bộ nhớ… em xem mình thiếu kiến thức nào thì bổ sung, xem video hướng dẫn C++ có rất nhiều trên youtube, hoặc đọc sách. Rồi viết code ra, up lên đây bí chổ nào mọi người sẽ giúp em.

2 Likes

Bài này áp dụng struct là ra hết nhỉ :smiley:
Đáng tiếc là không có áp dụng được file (con trỏ - struct - tập tin)

ko dc sử dụng struct anh ơi…đề ra v ak…

Sao không được sử dụng struct nhỉ ?

anh coi thử hàm nhập xuát dc chưa ạ… e ko biết làm hàm sủa đổi thông tin vs thêm đọc giả :joy:

void Nhap(int ma[10], char* ten[50], char* dc[50], int cmnd[], int ngay[3], int thang[3], int nam[5], char* gt[4], char* mail[50], int nlap[3], int tlap[3],int namlap[5], int &n)
{
	char ht[50], gtinh[4], email[50], dchi[50];
	printf("\tSo doc gia muon nhap: ");
	scanf_s("%d", &n);
	for (int i = 0; i < n; i++)
	{
		begin:
			printf("\n\nNhap ma doc gia: ");
			fflush(stdin);
			scanf_s("%d", &ma[i]);
			if (i != 0)
			{
				for (int j = 0; j <i; j++)
				{
					if (ma[i] == ma[j])
					{
						printf("Ma doc gia da ton tai. Vui long nhap lai!\n");
						goto begin;
					}
				}
			}
			printf("Nhap ten: ");
			fflush(stdin);
			gets_s(ht);
			ten[i] = _strdup(ht);
			end:
			printf("Nhap CMND: ");
			fflush(stdin);
			scanf_s("%d", &cmnd[i]);
			if (i != 0)
			{
				for (int j = 0; j <i; j++)
				{
					if (cmnd[i] == cmnd[j])
					{
						printf("So CMND da ton tai. Vui long nhap lai!\n\n");
						goto end;
					}
				}
			}
			printf("Nhap ngay sinh: ");
			fflush(stdin);
			scanf_s("%d/%d/%d", &ngay[i], &thang[i], &nam[i]);
			printf("Nhap gioi tinh: ");
			fflush(stdin);
			gets_s(gtinh);
			gt[i] = _strdup(gtinh);
			printf("Nhap dia chi email: ");
			fflush(stdin);
			gets_s(email);
			mail[i] = _strdup(email);
			printf("Nhap dia chi: ");
			fflush(stdin);
			gets_s(dchi);
			dc[i] = _strdup(dchi);
			printf("Nhap ngay lap: ");
			fflush(stdin);
			scanf_s("%d/%d/%d", &nlap[i], &tlap[i], &namlap[i]);
		}
	}

hàm xuât

void Xuat(int ma[10], char* ten[50], char* dc[50], int cmnd[], int ngay[3], int thang[3], int nam[5], char* gt[4], char* mail[50], int nlap[3], int tlap[3], int namlap[5], int n)
{
	for (int i =0; i <n; i++)
	{
		printf("\tMa doc gia: %d\n", ma[i]);
		printf("\tHo ten: %s\n", ten[i]);
		printf("\tCMND: %d\n", cmnd[i]);
		printf("\tNgay sinh: %d/%d/%d \n", ngay[i],thang[i],nam[i]);
		printf("\tGioi tinh: %s\n", gt[i]);
		printf("\tEmai: %s\n", mail[i]);
		printf("\tDia chi: %s\n", dc[i]);
		printf("\tNgay lap: %d/%d/%d \n", nlap[i],tlap[i],namlap[i]);
		printf("\tNgay het han: %d/%d/%d \n\n", nlap[i], tlap[i], namlap[i]+2);
	}
}

cái này là e đang dùng C mà, không phải là C++. Sao e không dùng class, thư viện string, cin, cout. Code sẽ ngắn gọn, dễ nhìn hơn. Rảnh a sẽ viết code để e tham khảo. Lần sau up code để trong thẻ code để dễ nhìn.

@_@… chắc là C mà e nhầm,…A viết giúp e cái hàm sửa đổi thông tin vs thêm độc giả… e ko biết viết kiểu ji luôn :joy: :sob:

nếu dùng mảng 2 chiều thì sao a?? e nghe mấy anh lớp trên bảo dùng mảng 2 chiều khỏe hơn…nhưng e ko biết làm sao…

Dạ không biêtd bạn đã làm xong chưa ạ. Cho mình hỏi với ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?