import tkinter as tk
import time
import pandas as pd
import random
import tkinter.messagebox as mbox
def fun5():
path1 ='D://用户数据.xls'
path2 ='D://充值消费数据.xls'
col=['会员号','电话','姓名','密码','积分','充值','消费','余额']
df=pd.read_excel(data_path,columns=col)
df.to_excel(path1)
df=pd.read_excel(czxf)
df.to_excel(path2)
tk.messagebox.showwarning(message='已经放在D盘中,自己找去')
def find(vipnumber):
df=pd.read_excel(data_path)
for i in range(int(df.values.shape[0])):
if str(df.values[i][0])==str(vipnumber):
return df.values[i]
return 0
print(vipnumber)
def fun1_1():
aaa=find(e1.get())
bbb=e2.get()
try:
if aaa==0:
tk.messagebox.showwarning(message='没有该会员')
var2.set('');var3.set('');var4.set('');
except:
if str(bbb)==str(aaa[3]) or str(bbb)==str(aaa[1]):
var2.set(str(aaa[7]));var3.set(str(aaa[4]));var4.set(str(aaa[2]));
else:
tk.messagebox.showwarning(message='密码或电话错误')
var2.set('');var3.set('');var4.set('');
def fun1():
global flag
destroy(flag)
print(flag)
flag=1
number.place(x=300,y=150)
e1.place(x=500,y=170)
phone.place(x=270,y=250)
e2.place(x=500,y=270)
b11.place(x=1000,y=200)
name1.place(x=300,y=350)
name2.place(x=500,y=350)
balance1.place(x=300,y=450)
balance2.place(x=500,y=450)
jifen1.place(x=300,y=550)
jifen2.place(x=500,y=550)
password_path='1.txt'
data_path='222.xls'
czxf='充值消费记录.xls'
window=tk.Tk()
window.title('登记系统')
window.geometry('1900x900')
def xiaofei(name,k):
df=pd.read_excel(data_path)
for i in range(df.values.shape[0]):
if str(df.values[i][0])==name:
d1=df.values
d1[i][7]=float(d1[i][7])-float(k)
if d1[i][7]>=0:
d1[i][6]=float(d1[i][6])+float(k)
d1[i][4]=float(d1[i][4])+float(k)//100
tk.messagebox.showwarning(message='消费成功')
df=pd.DataFrame(d1)
df.to_excel(data_path)
col=['会员号','时间','姓名','金额','类型']
df1=pd.read_excel(czxf)
time1=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
d2=[d1[i][0],time1 ,d1[i][2],k,'消费']
df2=pd.DataFrame([d2],columns=col)
frames=[df1,df2]
df3=pd.concat(frames)
df3.to_excel(czxf)
break
else:
tk.messagebox.showwarning(message='您的余额不足')
def fun4_1():
aaa=find(e43.get())
bbb=e41.get()
try:
if aaa==0:
tk.messagebox.showwarning(message='没有该会员')
except:
if str(bbb)==str(aaa[3]) or str(bbb)==str(aaa[1]):
if e43.get()=='':
tk.messagebox.showwarning(message='请输入消费金额')
else:
if tk.messagebox.askquestion(message=aaa[2])=='yes':
xiaofei(e43.get(),float(e42.get()))
else:
tk.messagebox.showwarning(message='密码或电话错误')
def chongzhi(name,k):
col=['会员号','电话','姓名','密码','积分','充值','消费','余额']
df=pd.read_excel(data_path)
for i in range(df.values.shape[0]):
if str(df.values[i][0])==name:
d1=df.values
d1[i][7]=float(d1[i][7])+float(k)
d1[i][5]=float(d1[i][5])+float(k)
df=pd.DataFrame(d1)
df.to_excel(data_path)
break
col=['会员号','时间','姓名','金额','类型']
df1=pd.read_excel(czxf)
time1=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
d2=[d1[i][0],time1 ,d1[i][2],k,'充值']
df2=pd.DataFrame([d2],columns=col)
frames=[df1,df2]
df3=pd.concat(frames)
df3.to_excel(czxf)
def destroy(i):
var2.set('');var3.set('');var4.set('');e1.setvar('')
e2.delete(0,tk.END);e1.delete(0,tk.END)
if i==0:
pass
elif i==1:
number.place_forget()
e1.place_forget()
e2.place_forget()
phone.place_forget()
b11.place_forget()
name1.place_forget()
name2.place_forget()
balance1.place_forget()
balance2.place_forget()
jifen1.place_forget()
jifen2.place_forget()
elif i==2:
number.place_forget()
jifen2.place_forget()
name1.place_forget()
e3.place_forget()
phone1.place_forget()
e4.place_forget()
password.place_forget()
e2.place_forget()
b21.place_forget()
elif i==3:
number.place_forget()
e1.place_forget()
b31.place_forget()
l31.place_forget()
e31.place_forget()
else:
number.place_forget()
e41.place_forget()
e42.place_forget()
e43.place_forget()
l41.place_forget()
l42.place_forget()
b41.place_forget()
def fun2():
global flag
destroy(flag)
print(flag)
flag=2
number.place(x=300,y=150)
global a2
a2=random.randint(100000,999999)
while(aaa(a2)):
a2=random.randint(100000,999999)
var3.set(str(a2))
jifen2.place(x=500,y=150)
name1.place(x=280,y=250)
e3.place(x=500,y=270)
phone1.place(x=280,y=350)
e4.place(x=500,y=370)
password.place(x=280,y=450)
e2.place(x=500,y=470)
b21.place(x=1000,y=200)
def fun3():
global flag
destroy(flag)
print(flag)
flag=3
number.place(x=300,y=150)
e1.place(x=500,y=170)
b31.place(x=1000,y=200)
l31.place(x=300,y=250)
e31.place(x=500,y=270)
def fun4():
global flag
destroy(flag)
print(flag)
flag=4
number.place(x=300,y=150)
e43.place(x=500,y=170)
b41.place(x=1000,y=200)
l41.place(x=280,y=250)
e41.place(x=500,y=270)
l42.place(x=280,y=350)
e42.place(x=500,y=370)
def aaa(a):
df=pd.read_excel('222.xls')
for i in range(df.values.shape[0]):
if str(df.values[i][0])==a:
return 1
return 0
def fun3_1():
aaa=find(e1.get())
try:
if aaa==0:
tk.messagebox.showwarning(message='没有该会员')
except:
if e31.get()=='':
tk.messagebox.showwarning(message='请输入金额')
else:
if tk.messagebox.askquestion(message=aaa[2])=='yes':
chongzhi(e1.get(),e31.get())
tk.messagebox.showwarning(message='充值成功')
def fun2_1():
if e2.get()=='' or e4.get()=='' or e3.get()=='':
tk.messagebox.showwarning(message='请完善个人信息')
else :
if tk.messagebox.askquestion(message='是否确定')=='yes':
d2=[str(a2),str(e4.get()),str(e3.get()),str(e2.get()),0,0,0,0]
df2=pd.DataFrame([d2])
df1=pd.read_excel(data_path)
frames=[df1,df2]
dd=pd.concat(frames)
dd.to_excel(data_path)
tk.messagebox.showwarning(message='注册成功')
def judge():
with open(password_path)as f:
if f.read()==password_e.get():
l.pack_forget()
password_e.pack_forget()
password_b.pack_forget()
b5.place(x=10,y=50)
b1.place(x=10,y=120)
b2.place(x=10,y=270)
b3.place(x=10,y=420)
b4.place(x=10,y=570)
else:
var1.set("密码错误")
def login():
l.pack()
password_e.pack(pady=10)
password_b.pack()
#登陆按钮
photo=tk.PhotoImage(file='welcome.gif')
l_pic=tk.Label(image=photo)
l_pic.pack()
var1=tk.StringVar()
var1.set("请输入密码")
l=tk.Label(window,width=20,height=2,bg='red',textvariable=var1)
password_e=tk.Entry(window,show='*',width=20)
password_b=tk.Button(window,width=20,height=3,text='确定',command=judge)
#菜单按钮
b1=tk.Button(window,width=10,height=2,text='查询',command=fun1,bg='red',font=("黑体", 30, "bold"))
b2=tk.Button(window,width=10,height=2,text='注册',command=fun2,bg='yellow',font=("黑体", 30, "bold"))
b3=tk.Button(window,width=10,height=2,text='充值',command=fun3,bg='blue',font=("黑体", 30, "bold"))
b4=tk.Button(window,width=10,height=2,text='消费',command=fun4,bg='green',font=("黑体", 30, "bold"))
b5=tk.Button(window,width=10,height=2,text='导出数据',command=fun5)
#fun1按钮
number=tk.Label(window,width=10,height=2,text='会员号',font=("黑体", 30, "bold"))
phone=tk.Label(window,width=10,height=2,text='电话或密码',font=("黑体", 30, "bold"))
balance1=tk.Label(window,width=10,height=2,text='余额',font=("黑体", 30, "bold"))
jifen1=tk.Label(window,width=10,height=2,text='积分',font=("黑体", 30, "bold"))
name1=tk.Label(window,width=10,height=2,text='姓名',font=("黑体", 30, "bold"))
var4=tk.StringVar();var2=tk.StringVar();var3=tk.StringVar();var2.set('');var3.set('');var4.set('');
balance2=tk.Label(window,width=10,height=2,textvariable=var2,font=("黑体", 30, "bold"))
jifen2=tk.Label(window,width=10,height=2,textvariable=var3,font=("黑体", 30, "bold"))
name2=tk.Label(window,width=10,height=2,textvariable=var4,font=("黑体", 30, "bold"))
b11=tk.Button(window,width=20,height=3,text='确定查询',bg='red',command=fun1_1)
e1=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
e2=tk.Entry(window,show='*',width=20,font=("黑体", 30, "bold"))
#fun2按钮
phone1=tk.Label(window,width=10,height=2,text='电话',font=("黑体", 30, "bold"))
password=tk.Label(window,width=10,height=2,text='密码',font=("黑体", 30, "bold"))
e3=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
e4=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
b21=tk.Button(window,width=20,height=3,text='确定注册',bg='yellow',command=fun2_1)
#fun3按钮
b31=tk.Button(window,width=20,height=3,text='确定充值',bg='blue',command=fun3_1)
l31=tk.Label(window,width=10,height=2,text='充值金额',font=("黑体", 30, "bold"))
e31=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
#fun4按钮
b41=tk.Button(window,width=20,height=3,text='确定消费',bg='green',command=fun4_1)
e42=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
e41=tk.Entry(window,width=20,show='*',font=("黑体", 30, "bold"))
e43=tk.Entry(window,width=20,font=("黑体", 30, "bold"))
l42=tk.Label(window,width=10,height=2,text='消费金额',font=("黑体", 30, "bold"))
l41=tk.Label(window,width=10,height=2,text='密码',font=("黑体", 30, "bold"))
flag=0
login()
window.mainloop()
里面有几个文件
1.txt
222.xls
充值消费记录.xls
welcome.gif