Quasi-cyclic low-density parity-check codes based on finite set systems