停车管理系统(sqlite3+tkinter)

一.设计数据库

import sqlite3
#打开管理员数据库
con=sqlite3.connect("e:\\data1.db")
#创建游标对象
cur=con.cursor()
#插入初始管理员数据
cur.execute("create table guanliyuan(name char(10),rname char(10),id char(20) primary key)")
list1=[('陌上','王默','130224200101034727'),('离殇','王然','130224200201064727')]
for i in list1:
    cur.execute("insert into guanliyuan values(?,?,?)",i)
con.commit()
cur.close()
con.close()
import sqlite3
import datetime
#打开用户数据库
con=sqlite3.connect("e:\\data2.db")
#创建游标对象
cur=con.cursor()
#插入初始用户信息
cur.execute("create table yonghu(carid char(10) primary key,cardirect char(8),name char(10),rname char(10),id char(20),hm char(11),gotime datetime,totime datetime)")
list2=[('京0000','A区','杨幂','杨幂','130224200301064727','15324052851',datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,2,30,30)),
       ('津0001','B区','赵丽颖','赵丽颖','130224200401064727','15324052852',datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,3,30,30)),
       ('冀0002','A区','金晨','金晨','130224200501064727','15324052853',datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,4,30,30))]
for i in list2:
    cur.execute("insert into yonghu values(?,?,?,?,?,?,?,?)",i)
con.commit()
cur.close()
con.close()
import sqlite3
import datetime
#打开费用数据库
con=sqlite3.connect("e:\\data3.db")
#创建游标对象
cur=con.cursor()
cur.execute("create table feiyong(carid char(10) primary key,cardirect char(8),money float,gotime datetime,totime datetime)")
list3=[('京0000','A区',2,datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,2,30,30)),
      ('津0001','B区',4,datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,3,30,30)),
      ('冀0002','A区',6,datetime.datetime(2022,1,1,1,30,30),datetime.datetime(2022,1,1,4,30,30))]
for i in list3:
    cur.execute("insert into feiyong values(?,?,?,?,?)",i)
con.commit()
cur.close()
con.close()
import sqlite3
import datetime
#打开密码数据库
con=sqlite3.connect("e:\\data4.db")
#创建游标对象
cur=con.cursor()
cur.execute("create table mima(name char(10),password char(20))")
list4=[('杨幂','yangmi'),('赵丽颖','zhaoliying'),('金晨','jinchen'),('陌上','130224200101034727'),('离殇','130224200201064727')]
for i in list4:
    cur.execute("insert into mima values(?,?)",i)
con.commit()
cur.close()
con.close()

二.创建停车管理系统

1.管理员系统:一个管理用户停车信息的系统,面向于停车信息的管理人员和停车的用户这两类人

2.用户信息管理系统:用于管理人员查询和修改所有的用户信息

3.用户消费管理系统:用于用户对个人信息实现查询、添加、删除、修改

4.帮助应用系统:用于用户对个人消费信息的查询

#主窗口
import tkinter
from PIL import Image, ImageTk
from tkinter import messagebox
import sqlite3
import datetime
import pandas as pd
def opendata1():
    #打开密码数据库
    con=sqlite3.connect("e:\\data1.db")
    #创建游标对象
    cur=con.cursor()
    return cur,con
def opendata2():
    #打开密码数据库
    con=sqlite3.connect("e:\\data2.db")
    #创建游标对象
    cur=con.cursor()
    return cur,con
def opendata3():
    #打开密码数据库
    con=sqlite3.connect("e:\\data3.db")
    #创建游标对象
    cur=con.cursor()
    return cur,con
def opendata4():
    #打开密码数据库
    con=sqlite3.connect("e:\\data4.db")
    #创建游标对象
    cur=con.cursor()
    return cur,con
#注册测试
def zhuce1(v1,v2):
    a=v1.get()
    b=v2.get()
    h4=opendata4()
    h4[0].execute("select * from mima")
    for i in h4[0].fetchall():
        r1=i[0]
        r2=i[1]
        j=True
        if r1==a :
            tkinter.messagebox.showinfo("提示信息","该用户已存在!")
            j=False
            break
    if j:
        h4[0].execute("insert into mima values(?,?)",(a,b))
    h4[1].commit()
    h4[0].close()
    h4[1].close()
#注册界面
def zhuce():
    t1=tkinter.Toplevel(root)
    t1.geometry("300x150")
    t1.title("注册界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\流星.jpg"))
    tkinter.Button(t1,image=image1,text="停车管理系统注册界面",compound="top").pack()
    tkinter.Label(t1,width=6,text="用户名").place(x=40,y=10)
    tkinter.Label(t1,width=6,text="密码").place(x=40,y=60)
    v1=tkinter.StringVar()
    v2=tkinter.StringVar()
    tkinter.Entry(t1,width=20,textvariable=v1).place(x=100,y=10)
    tkinter.Entry(t1,width=20,textvariable=v2,show="*").place(x=100,y=60)
    tkinter.Button(t1,width=6,text="注册",fg="black",command=lambda:zhuce1(v1,v2)).place(x=180,y=100)
    t1.mainloop()
#登陆测试
def denglu(a,b):
    a=a.get()
    b=b.get()
    h4=opendata4()
    h4[0].execute("select * from mima")
    f=True
    for i in h4[0].fetchall():
        r1=i[0]
        r2=i[1]
        if r1==a and r2==b:
            print("登录成功!")
            chengxu()
            f=False
            break
    if f :
        tkinter.messagebox.showinfo("提示信息","信息输入错误!")
    h4[1].commit()
    h4[0].close()
    h4[1].close()
#是否为管理员
def gly():
    t3=tkinter.Toplevel()
    t3.geometry("300x150")
    image1=ImageTk.PhotoImage(Image.open("e:\\流星.jpg"))
    tkinter.Button(t3,image=image1,text="管理员登陆界面",compound="top").pack()
    tkinter.Label(t3,width=6,text="姓名").place(x=40,y=10)
    tkinter.Label(t3,width=6,text="身份证号").place(x=40,y=60)
    v1=tkinter.StringVar()
    v2=tkinter.StringVar()
    tkinter.Entry(t3,width=20,textvariable=v1).place(x=100,y=10)
    tkinter.Entry(t3,width=20,textvariable=v2,show="*").place(x=100,y=60)
    tkinter.Button(t3,width=6,text="登录",fg="black",command=lambda:gly1(v1,v2)).place(x=180,y=100)
    t3.mainloop()
#管理员登陆测试
def gly1(a,b):
    a=a.get()
    b=b.get()
    h4=opendata1()
    h4[0].execute("select * from guanliyuan")
    f=True
    for i in h4[0].fetchall():
        r1=i[1]
        r2=i[2]
        if r1==a and r2==b:
            glyxt()
            f=False
            break
    if f :
        tkinter.messagebox.showinfo("提示信息","信息输入错误!")
    h4[1].commit()
    h4[0].close()
    h4[1].close()
#管理员系统查询
def glyxt1(v1,v2,v3,v4,v5,v6,v7,v8,v9):
    h4=opendata2()
    h4[0].execute("select * from yonghu")
    for i in h4[0].fetchall():
        if i[0]==v1.get():
            v2.set(i[1])
            v3.set(i[2])
            v4.set(i[3])
            v5.set(i[4])
            v6.set(i[5])
            v7.set(i[6])
            v8.set(i[7])
            break
    h4[1].commit()
    h4[0].close()
    h4[1].close()
    h2=opendata3()
    h2[0].execute("select * from feiyong")
    for i in h2[0].fetchall():
        if i[0]==v1.get():
            v9.set(i[2])
            tkinter.messagebox.showinfo("提示信息","查询成功")
            break
    h2[1].commit()
    h2[0].close()
    h2[1].close()
#管理员系统修改
def glyxt2(v1,v2,v3,v4,v5,v6,v7,v8,v9):
    h4=opendata2()
    h4[0].execute("select * from yonghu")
    for i in h4[0].fetchall():
        if i[0]==v1.get():
            if v2.get()!="":
                if v3.get()!="":
                    if v4.get()!="":
                        if v5.get()!="":
                            if v6.get()!="":
                                if v7.get()!="":
                                    if v8.get()!="":
                                        h4[0].execute("update yonghu set carid=?,cardirect=?,name=?,rname=?,id=?,hm=?,gotime=?,totime=? where carid=? ",(v1.get(),v2.get(),v3.get(),v4.get(),v5.get(),v6.get(),v7.get(),v8.get(),v1.get()))
                                        tkinter.messagebox.showinfo("提示信息","修改成功")
                                        break
    h4[1].commit()
    h4[0].close()
    h4[1].close()
    h2=opendata3()
    h2[0].execute("select * from feiyong")
    for i in h2[0].fetchall():
        if i[0]==v1.get():
            #moneychange(v1)
            h2[0].execute("update feiyong set money=? where carid=?",(((pd.to_datetime(v8.get())-pd.to_datetime(v7.get())).seconds/3600*2),v1.get()))
            break
    h2[1].commit()
    h2[0].close()
    h2[1].close()
#管理员系统界面
def glyxt():
    t4=tkinter.Toplevel()
    t4.geometry("850x600")
    t4.title("管理员系统界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\雪途.jpg"))
    v1=tkinter.StringVar()
    v2=tkinter.StringVar()
    v3=tkinter.StringVar()
    v4=tkinter.StringVar()
    v5=tkinter.StringVar()
    v6=tkinter.StringVar()
    v7=tkinter.StringVar()
    v8=tkinter.StringVar()
    v9=tkinter.StringVar()
    v1.set("")
    v2.set("")
    v3.set("")
    v4.set("")
    v5.set("")
    v6.set("")
    v7.set("")
    v8.set("")
    v9.set("")
    tkinter.Button(t4,image=image1,text="管理员系统界面",compound="top").pack()
    tkinter.Label(t4,width=12,bg="blue",text="车牌号").place(x=100,y=10)
    tkinter.Label(t4,width=12,bg="purple",text="车区").place(x=100,y=60)
    tkinter.Label(t4,width=12,bg="green",text="用户名").place(x=100,y=110)
    tkinter.Label(t4,width=12,bg="black",fg="white",text="姓名").place(x=100,y=160)
    tkinter.Label(t4,width=12,bg="red",text="身份证号码").place(x=100,y=210)
    tkinter.Label(t4,width=12,bg="orange",text="手机号码").place(x=100,y=260)
    tkinter.Label(t4,width=12,bg="pink",text="入场时间").place(x=100,y=310)
    tkinter.Label(t4,width=12,bg="blue",text="出场时间").place(x=100,y=360)
    tkinter.Label(t4,width=12,bg="purple",text="价格").place(x=100,y=410)
    tkinter.Entry(t4,width=20,textvariable=v1).place(x=200,y=10)
    tkinter.Entry(t4,width=20,textvariable=v2).place(x=200,y=60)
    tkinter.Entry(t4,width=20,textvariable=v3).place(x=200,y=110)
    tkinter.Entry(t4,width=20,textvariable=v4).place(x=200,y=160)
    tkinter.Entry(t4,width=20,textvariable=v5).place(x=200,y=210)
    tkinter.Entry(t4,width=20,textvariable=v6).place(x=200,y=260)
    tkinter.Entry(t4,width=20,textvariable=v7).place(x=200,y=310)
    tkinter.Entry(t4,width=20,textvariable=v8).place(x=200,y=360)
    tkinter.Entry(t4,width=20,textvariable=v9).place(x=200,y=410)
    tkinter.Button(t4,width=5,text="查询",command=lambda:glyxt1(v1,v2,v3,v4,v5,v6,v7,v8,v9)).place(x=800,y=450)
    tkinter.Button(t4,width=5,text="修改",command=lambda:glyxt2(v1,v2,v3,v4,v5,v6,v7,v8,v9)).place(x=800,y=500)
    tkinter.Label(t4,text="查询用户信息:请输入车牌号,点击查询修改").place(x=500,y=10)
    tkinter.Label(t4,text="修改用户信息:请在此界面输入修改后的全部信息").place(x=500,y=50)
    tkinter.Label(t4,text="提示:用户可以先查询,再修改,这样可以节约时间").place(x=500,y=90)
    t4.mainloop()
#用户信息管理系统查询
def yhxxxt1(v1,v2,v3,v4,v5,v6,v7,v8):
    h4=opendata2()
    h4[0].execute("select * from yonghu")
    f=True
    for i in h4[0].fetchall():
        if i[0]==v1.get():
            v2.set(i[1])
            v3.set(i[2])
            v4.set(i[3])
            v5.set(i[4])
            v6.set(i[5])
            v7.set(i[6])
            v8.set(i[7])
            tkinter.messagebox.showinfo("提示信息","查询成功")
            f=False
            break
    if f:
        tkinter.messagebox.showinfo("提示信息","查无此人")
    h4[1].commit()
    h4[0].close()
    h4[1].close()
#用户信息管理系统添加
def yhxxxt2(v1,v2,v3,v4,v5,v6,v7,v8):
    h1=opendata2()
    h1[0].execute("select * from yonghu")
    f=True
    for i in h1[0].fetchall():
        if i[0]==v1.get():
            moneychange(v1)
            tkinter.messagebox.showinfo("提示信息","该用户的信息已存在")
            f=False
            break
    if f:
        h1[0].execute("insert into yonghu values (?,?,?,?,?,?,?,?)",(v1.get(),v2.get(),v3.get(),v4.get(),v5.get(),v6.get(),v7.get(),v8.get()))
        tkinter.messagebox.showinfo("提示信息","添加成功")
    h1[1].commit()
    h1[0].close()
    h1[1].close()
#用户信息管理系统删除
def yhxxxt3(v1,v2,v3,v4,v5,v6,v7,v8):
    h1=opendata2()
    h1[0].execute("select * from yonghu")
    f=True
    for i in h1[0].fetchall():
        if i[0]==v1.get():
            h1[0].execute("delete from yonghu where carid=? ",(v1.get(),))
            f=False
            tkinter.messagebox.showinfo("提示信息","删除成功")
            break
    if f:
        tkinter.messagebox.showinfo("提示信息","删除失败,请检查车牌号信息是否正确")
    h1[1].commit()
    h1[0].close()
    h1[1].close()
#用户信息管理系统修改
def yhxxxt4(v1,v2,v3,v4,v5,v6,v7,v8):
    h4=opendata2()
    h4[0].execute("select * from yonghu")
    f=True
    for i in h4[0].fetchall():
        if i[0]==v1.get():
            if v2.get()!="":
                if v3.get()!="":
                    if v4.get()!="":
                        if v5.get()!="":
                            if v6.get()!="":
                                if v7.get()!="":
                                    if v8.get()!="":
                                        h4[0].execute("update yonghu set carid=?,cardirect=?,name=?,rname=?,id=?,hm=?,gotime=?,totime=? where carid=?",(v1.get(),v2.get(),v3.get(),v4.get(),v5.get(),v6.get(),v7.get(),v8.get(),v1.get()))
                                        tkinter.messagebox.showinfo("提示信息","修改成功")
                                        f=False
                                        break
    if f:
        tkinter.messagebox.showinfo("提示信息","修改失败,请检查车牌号信息是否正确")
    h4[1].commit()
    h4[0].close()
    h4[1].close()
#用户信息管理系统界面
def yhxxxt():
    t5=tkinter.Toplevel()
    t5.geometry("850x600")
    t5.title("用户信息管理系统界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\雪途.jpg"))
    v1=tkinter.StringVar()
    v2=tkinter.StringVar()
    v3=tkinter.StringVar()
    v4=tkinter.StringVar()
    v5=tkinter.StringVar()
    v6=tkinter.StringVar()
    v7=tkinter.StringVar()
    v8=tkinter.StringVar()
    v9=tkinter.StringVar()
    v1.set("")
    v2.set("")
    v3.set("")
    v4.set("")
    v5.set("")
    v6.set("")
    v7.set("")
    v8.set("")
    v9.set("")
    tkinter.Button(t5,image=image1,text="用户信息管理系统界面",compound="top").pack()
    tkinter.Label(t5,width=12,bg="blue",text="车牌号").place(x=100,y=10)
    tkinter.Label(t5,width=12,bg="purple",text="车区").place(x=100,y=60)
    tkinter.Label(t5,width=12,bg="green",text="用户名").place(x=100,y=110)
    tkinter.Label(t5,width=12,bg="black",fg="white",text="姓名").place(x=100,y=160)
    tkinter.Label(t5,width=12,bg="red",text="身份证号码").place(x=100,y=210)
    tkinter.Label(t5,width=12,bg="orange",text="手机号码").place(x=100,y=260)
    tkinter.Label(t5,width=12,bg="pink",text="入场时间").place(x=100,y=310)
    tkinter.Label(t5,width=12,bg="blue",text="出场时间").place(x=100,y=360)
    tkinter.Entry(t5,width=20,textvariable=v1).place(x=200,y=10)
    tkinter.Entry(t5,width=20,textvariable=v2).place(x=200,y=60)
    tkinter.Entry(t5,width=20,textvariable=v3).place(x=200,y=110)
    tkinter.Entry(t5,width=20,textvariable=v4).place(x=200,y=160)
    tkinter.Entry(t5,width=20,textvariable=v5).place(x=200,y=210)
    tkinter.Entry(t5,width=20,textvariable=v6).place(x=200,y=260)
    tkinter.Entry(t5,width=20,textvariable=v7).place(x=200,y=310)
    tkinter.Entry(t5,width=20,textvariable=v8).place(x=200,y=360)
    tkinter.Button(t5,width=5,text="查询",command=lambda:yhxxxt1(v1,v2,v3,v4,v5,v6,v7,v8)).place(x=800,y=350)
    tkinter.Button(t5,width=5,text="添加",command=lambda:yhxxxt2(v1,v2,v3,v4,v5,v6,v7,v8)).place(x=800,y=400)
    tkinter.Button(t5,width=5,text="删除",command=lambda:yhxxxt3(v1,v2,v3,v4,v5,v6,v7,v8)).place(x=800,y=450)
    tkinter.Button(t5,width=5,text="修改",command=lambda:yhxxxt4(v1,v2,v3,v4,v5,v6,v7,v8)).place(x=800,y=500)
    tkinter.Label(t5,text="查询用户信息:请输入车牌号,点击查询").place(x=500,y=10)
    tkinter.Label(t5,text="修改用户信息:请在此界面输入修改后的全部信息,点击修改").place(x=500,y=50)
    tkinter.Label(t5,text="提示:用户可以先查询,再修改,这样可以节约时间").place(x=500,y=90)
    tkinter.Label(t5,text="添加用户信息:请在此界面输入需添加的全部信息,点击添加").place(x=500,y=130)
    tkinter.Label(t5,text="删除用户信息:请输入车牌号,点击删除").place(x=500,y=170)
    t5.mainloop()
#消费用户管理系统的查询界面
def xfyhglxt1(v1,v2,v3,v4,v5):
    h2=opendata3()
    h2[0].execute("select * from feiyong")
    f=True
    for i in h2[0].fetchall():
        if i[0]==v1.get():
            v2.set(i[1])
            v3.set(i[2])
            v4.set(i[3])
            v5.set(i[4])
            f=False
            break
    if f:
        tkinter.messagebox.showinfo("提示信息","查询失败,请检查车牌号信息是否正确")
    h2[1].commit()
    h2[0].close()
    h2[1].close()
#消费用户管理系统界面
def xfyhglxt():
    t6=tkinter.Toplevel()
    t6.geometry("400x300")
    t6.title("消费用户管理系统界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\雪途.jpg"))
    v1=tkinter.StringVar()
    v2=tkinter.StringVar()
    v3=tkinter.StringVar()
    v4=tkinter.StringVar()
    v5=tkinter.StringVar()
    v1.set("")
    v2.set("")
    v3.set("")
    v4.set("")
    v5.set("")
    tkinter.Button(t6,image=image1,text="消费用户管理系统界面",compound="top").pack()
    tkinter.Label(t6,width=12,bg="blue",text="车牌号").place(x=30,y=10)
    tkinter.Label(t6,width=12,bg="purple",text="车区").place(x=30,y=60)
    tkinter.Label(t6,width=12,bg="green",text="价格").place(x=30,y=110)
    tkinter.Label(t6,width=12,bg="black",fg="white",text="入场时间").place(x=30,y=160)
    tkinter.Label(t6,width=12,bg="red",text="出场时间").place(x=30,y=210)
    tkinter.Entry(t6,width=20,textvariable=v1).place(x=130,y=10)
    tkinter.Entry(t6,width=20,textvariable=v2).place(x=130,y=60)
    tkinter.Entry(t6,width=20,textvariable=v3).place(x=130,y=110)
    tkinter.Entry(t6,width=20,textvariable=v4).place(x=130,y=160)
    tkinter.Entry(t6,width=20,textvariable=v5).place(x=130,y=210)
    tkinter.Button(t6,width=5,text="查询",command=lambda:xfyhglxt1(v1,v2,v3,v4,v5)).place(x=300,y=210)
    tkinter.Label(t6,text="查询用户信息:请输入车牌号,点击查询").place(x=30,y=250)
    t6.mainloop()
#帮助应用系统界面
def bzyhxt():
    t7=tkinter.Toplevel()
    t7.geometry("600x300")
    t7.title("帮助应用系统界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\雪途.jpg"))
    m1=tkinter.StringVar()
    m2=tkinter.StringVar()
    m3=tkinter.StringVar()
    m4=tkinter.StringVar()
    m1.set("停车管理系统是一个管理用户停车信息的系统,面向于停车信息的管理人员和停车的用户这两类人。")
    m2.set("管理员系统:用于管理人员查询和修改所有的用户信息。")
    m3.set("用户信息管理系统:用于用户对个人信息实现查询、添加、删除、修改。")
    m4.set("消费用户管理系统:用于用户对个人消费信息的查询。")
    tkinter.Label(t7,textvariable=m1).place(x=10,y=10)
    tkinter.Label(t7,textvariable=m2).place(x=10,y=60)
    tkinter.Label(t7,textvariable=m3).place(x=10,y=110)
    tkinter.Label(t7,textvariable=m4).place(x=10,y=160)
#程序界面
def chengxu():
    t2=tkinter.Toplevel()
    t2.geometry("750x300")
    t2.title("程序界面")
    image1=ImageTk.PhotoImage(Image.open("e:\\许愿瓶哦.jpg"))
    tkinter.Button(t2,image=image1,text="停车管理系统选择界面",compound="top").pack()
    tkinter.Button(t2,width=20,bg="blue",fg="white",text="管理员系统",command=gly).place(x=80,y=50)
    tkinter.Button(t2,width=20,bg="green",text="用户信息管理系统",command=yhxxxt).place(x=80,y=110)
    tkinter.Button(t2,width=20,bg="black",fg="white",text="用户消费管理系统",command=xfyhglxt).place(x=80,y=170)
    tkinter.Button(t2,width=20,bg="orange",text="帮助应用系统",command=bzyhxt).place(x=80,y=230)
    t2.mainloop()
#主程序
if __name__=="__main__":
    #主窗口设置
    root = tkinter.Tk()
    s1=tkinter.StringVar()#获取StringVar()对象的内容
    s2=tkinter.StringVar()
    root.geometry("850x600")
    #主窗口内插入图片
    image = ImageTk.PhotoImage(Image.open("e:\\汽车.jpg"))
    tkinter.Label(root, image=image, text="停车管理系统", compound="top").pack()
    tkinter.Label(root,text="用户名",width=7,font=('黑体',11,'bold')).place(x=350,y=120)
    tkinter.Label(root,text="密码",width=7,font=('黑体',11,'bold')).place(x=350,y=170)
    entry1=tkinter.Entry(root,width=20,textvariable=s1).place(x=420,y=120)
    entry2= tkinter.Entry(root,width=20,show='*',textvariable=s2).place(x=420,y=170)
    tkinter.Button(root,width=5,text="登录",font=('黑体',11,'bold'),bg="white",command=lambda:denglu(s1,s2)).place(x=390,y=250)
    tkinter.Button(root,width=5,text="注册",font=('黑体',11,'bold'),bg="white",command=zhuce).place(x=470,y=250)
    #显示主窗口
    root.mainloop()

三.界面显示

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值