Files

19-matching-MN-to-N

电信业务场景

套餐适用M:N→N条。多个合同关联多个套餐的组合匹配,输出按套餐件数(N件)的适用明细。

M:N matching — output N records (one per detail match).

Tests the scenario where both input files may contain duplicate keys. The program performs a grouped match: for each key where at least one master record exists, the program outputs every detail record for that key, then skips all master records for that key.

Test data

File Records Keys
master.dat 4 KEY00001 (x2), KEY00002 (x2)
detail.dat 5 KEY00001 (x2), KEY00003 (x3)
  • Matched key: KEY00001 -> 2 output records (2 detail records)
  • Unmatched master key: KEY00002 (skipped)
  • Unmatched detail key: KEY00003 (skipped)

Algorithm

  1. Read both files synchronously (both assumed sorted by key).
  2. When keys match: output all detail records in the group, then skip all master records in the group.
  3. When master key < detail key: skip all master records with that key (no matching detail).
  4. When detail key < master key: skip all detail records with that key (no matching master).

Expected output

  • output.dat: 2 records x 45 bytes = 90 bytes
  • Program displays: 19-matching-MN-to-N: PASS
  • Script displays: 19-matching-MN-to-N: ALL TESTS PASSED