Is this coursework ?
There is a forum at this site that is probably better suited for discussing conceptual models. However….
If you ask the members of this forum to answer this problem you will probably get several different solutions so it’s difficult for me to suggest the de facto solution. I will highlight a couple of things to think about and you can decide whether they are relevant or not and how to incorporate them.
As your model stands, I can create multiple reservations for different people in the same room at the same time. That’s good for the hotel manager as they get good utilisation but the guests might not be happy sharing a room with several strangers (maybe they will be happy

). So your PK for reservation needs to be such that only one guest can book a room at any one time. Also, you’ve used room_num as your FK in reservation. I think you mean Room_ID (same in other tables).
What’s the purpose of Bill ? Think of it this way, suppose Bill is not there, how would you go about generating the information to produce a bill. I suspect you can get most of it without Bill using some queries (although I haven’t personally thought it through). You should not store calculated fields i.e. subtotal, finaltotal – you should be able to calculate these when needed. I’m not suggesting you shouldn’t have a bill table but just think again what you need to record in it that isn’t either recorded elsewhere or can’t be recorded elsewhere. If you do have a bill table, what is the relationship between bill and reservation – how many bills are associated with one reservation ? See my point ?
Where do you get your room charges from ? Obviously you have a table called Room_Rates, however, this currently isn’t related to anything so isn’t being used. You could choose to relate it to reservation but you might want to consider how you manage rate changes. There different views about how best to do this.
hth
Chris