01/10/2018, 10:06

Giúp đỡ thuật toán tìm kiếm chuỗi trong mảng

đây là đề bài của em: 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ẻ). Chương trình có các chức năng sau: 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

http://codepad.org/TOVXcG89
ai thông não giúp em cái thuật toán Tìm kiếm sách theo họ tên với ạ
all thanks.1 tuần em suy nghĩ bài này rồi nên mới mạo muội nhờ ac

HK boy viết 12:20 ngày 01/10/2018

Tìm kiếm sách theo họ tên là sao hả bạn?

Nguyen Ca viết 12:08 ngày 01/10/2018

Thì là tim sách theo tên tác giả thôi, tìm kiêm theo tên thì thường là tìm kiếm gần đúng thì sẽ ra 1 danh sách kết quả. C, C++ có hỗ trợ hàm tìm kiếm từ trong chuổi mà.

Nguyễn Khanh viết 12:10 ngày 01/10/2018

Thì là tim sách theo tên tác giả thôi, tìm kiêm theo tên thì thường là tìm kiếm gần đúng thì sẽ ra 1 danh sách kết quả. C, C++ có hỗ trợ hàm tìm kiếm từ trong chuổi mà.

vâng. cám ơn anh. nhưng em không muốn sữ dụng hàm có sẵn

Nguyễn Khanh viết 12:08 ngày 01/10/2018

ví dụ mình có 1 danh sách
rồi mình gọi hàm tìm kiếm theo tên. coi tên người đó có không, nếu có thì in ra các thông tin còn lại như cmnd, mã số, ngày sinh…

HK boy viết 12:19 ngày 01/10/2018

Nếu như danh sách của bạn sắp xếp theo thứ tự từ điển của tên thì bạn dùng tìm kiếm nhị phân, còn nếu danh sách của bạn lưu không theo thứ tự nào cả thì tìm kiếm tuần tự.

Nguyễn Khanh viết 12:18 ngày 01/10/2018

vâng em cũng hiểu điều đó, cái em chưa nghĩ ra là thuật toán ý anh ạ. em đã thử nhiều thuật toán rồi. có lẽ do kiến thức chưa được vững…tưởng chừng như là ra rồi.nhưng lại mắc lỗi không thể so sánh giữa 2 pointer khác loại 1 cái là *char , 1 cái là *THUVIEN. thực sự em cũng ko hiểu chỗ này, rõ ràng 2 cái đều có cùng 1 kiểu là con trỏ kiểu thư viện

Dark.Hades viết 12:19 ngày 01/10/2018

HoTen là char còn tentimkiem là THUVIEN thì sao nó tìm được bạn?
trong c có hà so sánh 2 char bạn dùng để áp dụng vào xem

Nguyễn Khanh viết 12:18 ngày 01/10/2018

chao anh ! sao vay anh

Nguyễn Khanh viết 12:15 ngày 01/10/2018

chào anh. anh có thể fix dùm em lỗi này được ko ạ. em cũng hiểu lỗi như vậy. nhưng nếu em chuyển cái mãng từ THUVIEN thành char thì bị lỗi.hoặc đệ qua HoTen khai báo kiểu THUVIEN cũng bị lỗi. thực tình là em hiểu lỗi đó nhưng không biết cách fix

Dark.Hades viết 12:08 ngày 01/10/2018

Code của bạn khá rối, mình đọc thôi cũng … rồi:
Theo mình thì hàm tìm theo tên chỉ cần n, con trỏ thư viện và tên cần tìm là được rồi

void timkiemten(int n, THUVIEN *pointer, char *tentimkiem)
{
  // Dòng này tùy vào hàm, nếu đã có con trỏ *tentimkiem thì bỏ nhập đi
  // printf("nhap ten ma ban muon tim kiem "); 
  for (int i = 0; i < n; i++)
  {
    if ((pointer + i)->HoTen == tentimkiem)
    {
      printf("%d", i);
    }
  }
}
Nguyễn Khanh viết 12:08 ngày 01/10/2018

vâng cám ơn anh . để a thử.hình như cách này em có làm qua rồi. để e thử lại

Nguyễn Khanh viết 12:21 ngày 01/10/2018

chào anh

2 biến xuất ra được như nhau (abc) như ảnh. thế mà nó lại ko bằng nhau … em cũng chả hiểu nữa. nản thế không biết. và thế em đã bỏ cuộc ,em đã sử dụng hàm
hơi ức!!

HK boy viết 12:20 ngày 01/10/2018

Máy tính của bạn không có nút print screen hử…

Nguyễn Khanh viết 12:07 ngày 01/10/2018

có bác. nhưng trong lúc đó. ko chụp được. bác muốn xem code ko em gửi ạ.
chán thật bác ạ. em sữ dụng hàm strcmp thì êm đẹp rồi. khổ cái ko muốn sữ dụng nó. muốn làm như cách này, mà xem ra trình độ còn kém quá

HK boy viết 12:17 ngày 01/10/2018

Dùng được hàm nào thì cứ dùng thôi. Không nên tránh né nó quá.

Nguyễn Khanh viết 12:08 ngày 01/10/2018

vâng,em cám ơn rất nhiều…
em đóng topic tại đây nhé mọi người

Nguyen Ca viết 12:14 ngày 01/10/2018

strcmp

thế sao ko mở source hàm này lên coi nó viết thế nào :v

Nguyễn Khanh viết 12:07 ngày 01/10/2018

e tự viết lại rồi anh

Bài liên quan
0