main.py
import tkinter as tk
from MinaPage import MianPage
from change import Change
from login import Login
from tkinter import messagebox
from db import db
class main1:
def init(self, master):
self.root = master
self.root.geometry('500x360')
self.root.title('智能康复检测监督系统')
self.page = tk.Frame(root)
self.page.pack()
tk.Label(self.page).grid(row=0, column=0)
tk.Label(self.page, text='***************************************').grid(row=1, column=1)
tk.Label(self.page, text='* 欢迎进入智能康复检测监督系统 *').grid(row=2, column=1)
tk.Label(self.page, text='***************************************').grid(row=3, column=1)
tk.Button(self.page, text='用户', command=self.log).grid(row=6, pady=10, column=0)
tk.Button(self.page, text='管理员', command=self.root.destroy).grid(row=6, column=2)
def log(self):
self.page.destroy()
MianPage(self.root)
def logi(self):
self.page.destroy()
Login(self.root)
if name== 'main':
root = tk.Tk()
main1(master=root)
root.mainloop()
root2 = tk.Tk()
root2.geometry('300x160')
root2.title("登录界面")
username = tk.StringVar()
password = tk.StringVar()
lab_1 = tk.Label(root2, text="欢迎欢迎", height=3)
lab_1.grid(row=0, column=0, sticky="w" + "e")
lab_2 = tk.Label(root2, text="账户:")
lab_3 = tk.Entry(root2, textvariable=username)
lab_4 = tk.Label(root2, text="密码:")
lab_5 = tk.Entry(root2, textvariable=password)
lab_1.grid(row=1, column=1)
lab_2.grid(row=2, column=1)
lab_3.grid(row=2, column=2)
lab_4.grid(row=3, column=1)
lab_5.grid(row=3, column=2)
def login():
name = username.get()
pwd = password.get()
flag, message = db.check_login(name, pwd)
if flag:
for widget in root2.winfo_children():
widget.destroy()
Change(root2)
else:
messagebox.showwarning(title='警告', message=message)
but_dr = tk.Button(root2, text="登陆", command=login)
but_dr.grid(row=4, column=1)
root2.mainloop()
MinaPage.py
import tkinter as tk
from views import AboutFrame, InsertFrame
class MianPage:
def init(self, master: tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')
self.create_page()
def create_page(self):
self.about_frame = AboutFrame(self.root)
self.insert_frame = InsertFrame(self.root)
menubar = tk.Menu(self.root)
menubar.add_command(label='录入', command=self.show_insert)
menubar.add_command(label='关于', command=self.show_about)
menubar.add_command(label='退出', command=quit)
self.root['menu'] = menubar
def show_insert(self):
self.insert_frame.pack()
self.about_frame.pack_forget()
def show_about(self):
self.about_frame.pack()
self.insert_frame.pack_forget()
if name == 'main':
root = tk.Tk()
MianPage(master=root)
root.mainloop()
views.py
import tkinter as tk
from tkinter import messagebox
from db import db
class AboutFrame(tk.Frame):
def init(self, root):
super().init(root)
tk.Label(self, text='关于作品:本作品由tkinter制作').pack()
tk.Label(self, text='关于作者:黄龙').pack()
class InsertFrame(tk.Frame):
def init(self, root):
super().init(root)
li = tk.StringVar()
pre1 = tk.StringVar()
pre2 = tk.StringVar()
su = tk.StringVar()
he = tk.StringVar()
tk.Label(self, text='血脂中甘油三酯(mmol/L):').grid(row=4, pady=10, column=1)
tk.Entry(self, textvariable=li).grid(row=4, column=2)
tk.Label(self, text='舒张压(mmHg):').grid(row=5, pady=10, column=1)
tk.Entry(self, textvariable=pre1).grid(row=5, column=2)
tk.Label(self, text='收缩压(mmHg):').grid(row=6, pady=10, column=1)
tk.Entry(self, textvariable=pre2).grid(row=6, column=2)
tk.Label(self, text='血糖(mmol/L):').grid(row=7, pady=10, column=1)
tk.Entry(self, textvariable=su).grid(row=7, column=2)
tk.Label(self, text='心率(次/分):').grid(row=8, pady=10, column=1)
tk.Entry(self, textvariable=he).grid(row=8, column=2)
def loe():
self.__init__(root)
lii = str(li.get())
pre11 = str(pre1.get())
pre22 = str(pre2.get())
suu = str(su.get())
hee = str(he.get())
flag, message = db.all(lii, pre11, pre22, suu, hee)
if flag:
print('登录成功')
messagebox.showwarning(title='结果', message=message)
else:
messagebox.showwarning(title='警告', message=message)
tk.Button(self, text='提交', command=loe).grid(row=15, column=2)
class ChangeFrame(tk.Frame):
def init(self, root):
super().init(root)
self.li = tk.StringVar()
self.pre1 = tk.StringVar()
self.pre2 = tk.StringVar()
self.su = tk.StringVar()
self.he = tk.StringVar()
self.create_page()
def create_page(self):
tk.Label(self, text='请填写修改的数值').grid(row=1, column=1)
tk.Label(self, text='血脂中甘油三酯(mmol/L):').grid(row=4, pady=10, column=1)
tk.Entry(self, textvariable=self.li).grid(row=4, column=2)
tk.Label(self, text='舒张压(mmHg):').grid(row=5, pady=10, column=1)
tk.Entry(self, textvariable=self.pre1).grid(row=5, column=2)
tk.Label(self, text='收缩压(mmHg):').grid(row=6, pady=10, column=1)
tk.Entry(self, textvariable=self.pre2).grid(row=6, column=2)
tk.Label(self, text='血糖(mmol/L):').grid(row=7, pady=10, column=1)
tk.Entry(self, textvariable=self.su).grid(row=7, column=2)
tk.Label(self, text='心率(次/分):').grid(row=8, pady=10, column=1)
tk.Entry(self, textvariable=self.he).grid(row=8, column=2)
tk.Button(self, text='修改', command=self.recode_info).grid(row=15, column=2)
tk.Label(self).grid(row=16, column=2)
def recode_info(self):
stu = {"li": self.li.get(), "pre1": self.pre1.get(), "pre2": self.pre2.get(), "su": self.su.get(), "he": self.he.get()}
print(stu)
print(type(self.li))
db.write_json_data([stu])
messagebox.showwarning(title='提示', message='修改成功')
db.py
import json
import winsound
class MysqlDatabases:
def init(self):
self.users = json.loads(open('users.json', mode='r', encoding='utf-8').read())
self.sj = json.loads(open('sj.json', mode='r', encoding='utf-8').read())
def check_login(self, username, password):
for user in self.users:
if username == user['username']:
if password == user['password']:
return True, '登录成功'
else:
return False, '登录失败,密码不存在'
return False, '登录失败,用户不存在'
def all(self, lii, pre11, pre22, suu, hee):
for be in self.sj:
if float(lii) < float(be['li']):
if float(pre11) < float(be['pre1']):
if float(pre22) < float(be['pre2']):
if float(suu) <= float(be['su']):
if float(be['he']) >= float(hee):
duration = 1000 # millisecond
freq = 440 # Hz
return True, '您的身体健康'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和'
else:
if float(be['he']) >= float(hee):
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
'您的的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动'
else:
if suu <= be['su']:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
else:
if pre22 >= be['pre2']:
if suu <= be['su']:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if suu <= be['su']:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
else:
if pre11 < be['pre1']:
if pre22 < be['pre2']:
if suu <= be['su']:
if hee <= be['he']:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if suu <= be['su']:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if pre22 < be['pre2']:
if suu <= be['su']:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if suu <= be['su']:
if 100 >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
if be['he'] >= hee:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您其他指标正常,但是处于亚健康,请日常根据建议调整'
else:
print('您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和')
print('您其他指标正常,但是处于亚健康,请日常根据建议调整')
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
'您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
'您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
'您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
'请重视您的身体,每天按时检查'
return False, '输入错误'
def get_json_data(self):
with open('sj.json', 'rb') as f:
params = json.loads(f)
for i in range(len(params)):
params[i]['score'] = params[i]['score']*10
print("params", params)
dict = params
f.close()
return dict
def write_json_data(self, dict):
with open('sj.json', 'w') as r:
json.dump(dict, r)
r.close()
db = MysqlDatabases()
if name == 'main':
print(db.check_login('abc', '111'))
print(db.all('1.6', '70', '120', '5', '70'))
change.py
import tkinter as tk
from views import ChangeFrame
class Change:
def init(self, master: tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')
self.create_page()
def create_page(self):
self.change_frame = ChangeFrame(self.root)
menubar = tk.Menu(self.root)
menubar.add_command(label='修改', command=self.show_change)
menubar.add_command(label='退出', command=quit)
self.root['menu'] = menubar
def show_change(self):
self.change_frame.pack()
if name == 'main':
root = tk.Tk()
Change(master=root)
root.mainloop()
login.py
import tkinter as tk
class Login:
def init(self,master:tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')
self.page = tk.Frame(root)
self.page.pack()
tk.Label(self.page).grid(row=0, column=0)
tk.Label(self.page, text='***************************************').grid(row=1, column=1)
tk.Label(self.page, text='* 欢迎进入智能康复检测监督系统 *').grid(row=2, column=1)
tk.Label(self.page, text='***************************************').grid(row=3, column=1)
tk.Button(self.page, text='用户', command=self.log).grid(row=4, pady=10, column=1)
tk.Button(self.page, text='管理员', command=self.logi).grid(row=4, column=2)
if name == 'main':
root = tk.Tk()
Login(master=root)
root.mainloop()
sj.json
[{"li": "1.7", "pre1": "100", "pre2": "140", "su": "7", "he": "100"}]
users.json
[{"username": "123", "password": "123"}, {"username": "abc", "password": "111"}]
上面是全部代码和对应文件名(加粗字体 其实是有下划线如_name_ == '_main_‘,不知怎么显示不出来)
需要再实现两个功能,复选框怎么实现,调试很久都报错,请教大家
(1,在用户界面里的录入界面如图所示再添加一个复选框,内容为 平静/剧烈运动
选平静对血脂,血压等判断不改变,如选剧烈运动对db.py的all方法判断血压be['pre1']+20,be['pre2']+20和血糖be['su']+1,心率be['he']+30,血脂li不变)
(2,用户录入三次数据及以上会取录入的平均值作为db.py的all方法判断的依据,会把平均值替换到sj.json里
[{"li": "1.7", "pre1": "100", "pre2": "140", "su": "7", "he": "100"}]