I'm trying to learn to build out an exchange and would like to know how existing exchanges manage user's bitcoin addresses. Do they use Bitcoin Core or Electrum? And does each user have their own wallet.dat file so it doesn't mix up all the addresses together within a wallet?
Generally I would expect that exchanges use their own custom software for this. It might use code taken from some off-the-shelf wallet, or more likely from a freely available Bitcoin library. But trying to use existing wallet software directly would probably be too awkward and inefficient. That simply isn't what wallets like Bitcoin Core and Electrum are designed for.