1 # 1.创建并输出菜单, 菜单是不可变的. 所以使用元组
2 # menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出")
3
4 # 存储用户的信息 id: {'name':'名字', 'weight':体重, 'height':身高}
5 # 例如:目前有两个用户信息:1. 汪峰, 2. 章子怡
6 # 存储结构:
7 # {
8 # 1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7},
9 # 2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4}
10 # }
11 # bodies = {}
12
13 # body_id = 1 # 编号从1开始
14
15 # 体质指数(BMI)= 体重(kg)÷ (身高(m) x 身高(m))
16 # 体重的单位: KG
17 # 身高的单位: m
18 # 需求:首先。打印菜单,然后用户输入选择的菜单项
19 # 输入1:进入录入环节。用户需要录入:名字,身高,体重.
20 # 由程序计算出BMI指数. 保存到bodies字典中. 第一个用户的id是1, 第二个是2, 以此类推
21 # 录入完毕后. 提示用户是否继续录入. 如果选择是, 则继续进行录入, 直到用户输入否. 则返回到主菜单
22 # 输入2: 进入查询环节, 提示用户输入要查询的人的id. 如果不存在,给与提示, 如果存在. 则显示出该用户的全部信息(名字,身高,体重,BMI)
23 # 然后提示用户是否继续查询. 如果选择是, 继续进行查询, 直到用户输入否, 返回主菜单
24 # 输入3: 进入删除环节, 提示用户输入要删除的人的id, 如果id不存在, 给与提示, 如果存在, 则执行删除操作. 并提示删除成功.
25 # 然后提示用户是否继续删除, 如果是, 继续让用户选择要删除的id, 直到用户输入否, 返回主菜单
26 # 输入4: 进入修改环节, 首先让用户输入要修改的人的id, 根据id查找用户信息, 如果不存在, 给与提示, 如果存在, 将用户原信息进行打印,
27 # 然后提示用户输入新的名字, 身高, 体重. 由程序重新计算BMI指数. 并将新的信息保存在bodies中. 同时给用户展示新的用户信息
28 # 然后提示用户是否继续修改, 如果是, 则继续要求用户输入id信息. 直到用户输入否, 返回主菜单.
29 # 输入5: 程序退出.
30 # 输入其他任何内容. 都予以提示不合法. 让用户重新进行输入
31 menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出")
32 bodies={
33 1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7},
34 2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4}
35 }
36 # bodies = {} # 人
37
38 body_id = 1 # 编号从1开始 key
39
40 l=[] # ids
41
42
43 while 1: # 主菜单
44 for i in menus:
45 print(i)
46 s=input("主菜单:请选择功能:")
47 if s=="1":
48 while 1:
49 print("1, 录入")
50 name = input("请输入名字:")
51 height = float(input("身高m:"))
52 weight = float(input("体重kg:"))
53 b = int(weight/(height**2)) #
54 bodies[body_id]={'name':name, 'weight':weight, 'height':height, 'BMI':b}
55 # print(bodies)
56 body_id+=1
57 jixu = input("是否继续录入y/n:")
58 if jixu.lower()=='y':
59 print("继续录入")
60 else:# n
61 break
62 elif s=="2":
63 while 1:
64 print("2, 查询")
65 d = int(input("请输入要查询的id:"))
66 for i in bodies:
67 l.append(i)
68 if d in l:
69 print("名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"]))
70 else:
71 print("没有该用户")
72 jixu = input("是否继续查询y/n:")
73 if jixu.lower() == 'y':
74 print("继续查询")
75 else: # n
76 break
77 elif s=="3":
78 print("3, 删除")
79 while 1:
80 print("3, 删除")
81 d = int(input("请输入要删除的id:"))
82 for i in bodies:
83 l.append(i)
84 if d in l:
85 print("名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"]))
86 del bodies[d]
87 else:
88 print("没有该用户")
89 jixu = input("是否继续删除y/n:")
90 if jixu.lower() == 'y':
91 print("继续删除")
92 else: # n
93 break
94 elif s=="4":
95 print("4, 修改")
96 while 1:
97 print("4, 修改")
98 d = int(input("请输入要修改的id:"))
99 for i in bodies:
100 l.append(i)
101 if d in l:
102 print("原信息!!!名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"]))
103 name = input("新名字:")
104 height = float(input("新身高m:"))
105 weight = float(input("新体重kg:"))
106 b = int(weight / (height ** 2)) #
107 bodies[body_id] = {'name': name, 'weight': weight, 'height': height, 'BMI': b}
108 print("新信息!!!名字%s,身高%s,体重%s,BMI%s" % (
109 bodies[d]["name"], bodies[d]["height"], bodies[d]["weight"], bodies[d]["BMI"]))
110 else:
111 print("没有该用户")
112 jixu = input("是否继续修改y/n:")
113 if jixu.lower() == 'y':
114 print("继续修改")
115 else: # n
116 break
117 elif s=="5":
118 print("5, 退出")
119 break
120 else:
121 print("输入有误!")