我的python作业03
str1 # text # 1. 注册新会员 # 2. 查看所有会员 # 3. 查询会员信息 # 4. 续费会员卡 # 5. 添加新课程 # 6. 查看所有课程 # 7. 预约课程 # 8. 统计信息 # 9. 显示预约日志 # 10. 退出系统 members{ 12345678911:{name:lisi,type:1,remain_days:22,points:10}, 12345678912: {name: kid, type: 2, remain_days: 70, points: 20}, 12345678913: {name: demo, type: 3, remain_days: 330, points: 30}, } courses{ C101:{name:fly,coach:robot1,capacity:60,booked:20}, C102: {name: jump, coach: bird1, capacity: 100, booked: 30}, C103: {name: swim, coach: fish1, capacity: 90, booked: 40}, } reservations[] def register_member(members: dict) - None: while True: phone_num input(请输入手机号) if phone_num in members: print(手机号已存在请重新输入) continue name_new input(请输入姓名) card_type input(请输入卡号类型(1月卡/2季卡/3年卡)) if card_type 1: rm_days 30 elif card_type 2: rm_days 90 elif card_type 3: rm_days 365 else: print(类型输入错误默认月卡) card_type 1 rm_days 30 members[phone_num] { name: name_new, type: card_type, remain_days: rm_days, points: 0 } print(添加成功) break def show_all_members(members: dict) - None: if members {}: print(当前暂无会员信息) else: for key, value in members.items(): print(f用户的手机号是:{key},姓名:{value[name]},类型:{value[type]},剩余天数:{value[remain_days]},积分:{value[points]}) def query_member(members: dict) - None: check input(请输入你要查询的手机号) if check in members: j members[check] print(f用户的手机号是:{check},姓名:{j[name]},类型:{j[type]},剩余天数:{j[remain_days]},积分:{j[points]}) else: print(不存在该用户) def renew_membership(members: dict) - None: phone_input input(请输入手机号) if phone_input not in members: print(该手机号不存在) return value members[phone_input] print(f当前卡类型:{value[type]},剩余天数:{value[remain_days]}) consume_extends input(请输入你要续费的类型1/2/3) if consume_extends 1: value[points] 50 value[remain_days] 30 elif consume_extends 2: value[points] 150 value[remain_days] 90 elif consume_extends 3: value[points] 600 value[remain_days] 365 else: print(输入类型错误续费失败) return print(f续费成功手机号:{phone_input},姓名:{value[name]},类型:{value[type]},剩余天数:{value[remain_days]},积分:{value[points]}) def add_course(courses: dict) - None: course_input input(请输入要添加的新课程编号) if course_input in courses: print(课程已存在) else: crsname_add input(请输入课程名称) coachnm_add input(请输入教练姓名) new_capacity int(input(请输入容量)) new_booked 0 new_course {name: crsname_add, coach: coachnm_add, capacity: new_capacity, booked: new_booked} courses[course_input] new_course print(添加成功) def show_all_courses(courses: dict) - None: if courses {}: print(暂无课程信息) else: for key, value in courses.items(): remain value[capacity] - value[booked] print(f课程编号:{key},名称:{value[name]},教练:{value[coach]},容量:{value[capacity]},已预订人数:{value[booked]},剩余名额:{remain}) def reserve_course(members: dict, courses: dict, reservations: list) - None: vipnum_input input(请输入您的会员手机号) if vipnum_input not in members: print(会员号不存在) return if members[vipnum_input][remain_days] 0: print(会员卡已过期无法预约) return look4 input(请输入你要选择的课程编号) if look4 not in courses: print(课程不存在) return course courses[look4] if course[capacity] course[booked]: print(该课程已约满) return course[booked] 1 members[vipnum_input][points] 10 log1 (预约, vipnum_input, look4, course[name], 2026-4-1) reservations.append(log1) print(预约成功) def get_statistics(members: dict, courses: dict) - None: total_members len(members) print(f——————会员总数{total_members}——————) type_counts {1: 0, 2: 0, 3: 0} for info in members.values(): t info[type] if t in type_counts: type_counts[t] 1 print(f月卡(1)人数{type_counts[1]}) print(f季卡(2)人数{type_counts[2]}) print(f年卡(3)人数{type_counts[3]}) high_points -1 top_mem None for phone, info in members.items(): if info[points] high_points: high_points info[points] top_mem (phone, info[name], info[points]) if top_mem: print(f——————积分最高会员——————) print(f手机号:{top_mem[0]}姓名:{top_mem[1]}积分:{top_mem[2]}) max_rate -1 top_course None full_list [] for cid, info in courses.items(): if info[capacity] 0: continue rate info[booked] / info[capacity] rate round(rate, 2) if rate max_rate: max_rate rate top_course (cid, info[name], rate) if info[booked] info[capacity]: full_list.append((cid, info[name])) if top_course: print(f——————预约率最高课程——————) print(f课程编号:{top_course[0]}名称:{top_course[1]}预约率:{top_course[2]}) if full_list: print(f——————已约满课程——————) for item in full_list: print(f课程编号:{item[0]}名称:{item[1]}) else: print(——————所有课程均有空位——————) def show_statistics(members: dict, courses: dict) - None: print(预约日志) if len(reservations) 0: print(暂无预约记录) else: for log in reservations: print(log) def show_reservations(reservations: list) - None: print(感谢使用系统即将退出...) def main(): while True: print(str1) choose input(请选择功能) if choose 1: register_member(members) elif choose 2: show_all_members(members) elif choose 3: query_member(members) elif choose 4: renew_membership(members) elif choose 5: add_course(courses) elif choose 6: show_all_courses(courses) elif choose 7: reserve_course(members, courses,reservations) elif choose 8: get_statistics(members, courses) elif choose 9: show_statistics(members, courses) elif choose 10: show_reservations(reservations) break if __name__ __main__: main()