Làm sao tính được tổng thành tiền theo tên loại?

Cho 2 kiểu struct, sau khi nhập lưu vào 2 mảng. Làm sao tính được tổng thành tiền theo tenLoai ? Mối quan hệ giữa hai struct là maPL.

// Tạo kiểu cấu trúc danh sách phân loại
typedef struct {
	char maPL[10];
	char tenLoai[20];
}phanLoai;

// Tạo kiểu cấu trúc danh sách Vật tư
typedef struct {
	char maSo[10];
	char tenVatTu[20];
	char donVi[10];
	unsigned int soLuong;
	float donGia;
	float thanhTien;
	char maPL[10];
}vatTu;

bạn để í 2 struct này có chung 1 key đó là maPL. Bạn dựa vào maPL này để tính tổng tiền theo tên loại nha.

2 Likes

mình biết vậy nhưng không biết cách cộng thành tiền những cái có tên loại giống nhau vào bạn ạ. nên lúc hiển thị nếu có 2 vật tư cùng tên loại thì nó vẫn bị hiện thành 2 hàng.

Sau khi tính tổng bạn hình thành cấu trúc (loại, tổng), giờ thì sắp xếp theo tên loại rồi chạy dọc theo cộng lại.

2 Likes

Hi đơn giản thì bạn làm như này ạ:

tong_tien_xuat(ten_loai):
  for (phanLoai_array):
     if ten_loai == phanLoai_array[i].tenLoai
         loạiCanTim_array[].pushback(phanLoai_array[i])
  for (vatTu_array):
     for (loaiCanTim_array):
       if vatTu_array[].maPL == loaiCanTim_array[].maPL:
          tongtien+= thanhtien;
                 break;
 return tongtien;

Đây là cách đơn giản nhất để lấy tổng tiền của 1 loại. Bạn thử xem xem, nhưng chắc là chạy chậm và tốn tài nguyên đấy.

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