admin管理员组

文章数量:1516870

from  tkinter import *#图形界面包
from tkinter import messagebox
import os.path
import os
import math
import time
import copy
file_list=os.listdir('c:\\')  #返回c盘目录
if 'windowstools' not in file_list:#若不存在目录则创建工作目录
    os.mkdir('c:\\windowstools')
def submit1():#成绩管理
    
    def submit1():
        
        s1=u1.get()
        s2=u2.get()
        if os.path.exists('c:\\windowstools\\'+s1+'.txt')==False:
            messagebox.showinfo('提示','用户名不存在!')      #错与提示
            u1.set('')
            u2.set('')
            return
        f1=open('c:\\windowstools\\'+s1+'.txt','r+');
        ss=f1.readlines()
        s=[]
        f1.close()
        for i in ss:
            s.append(i.replace('\n',''))
        if s[0]!=s2:
            messagebox.showinfo('提示','密码错误!')  #错误提示
            u2.set('')
            return
        u1.set('')
        u2.set('')
        def sub1():
            x=0
            j=0
            n=0
            f1=open('c:\\windowstools\\'+s1+'.txt','r+');
            ss=f1.readlines()
            s=[]
            f1.close()
            for i in ss:
                s.append(i.replace('\n',''))
            w=Toplevel()
            w.title('成绩统计')
            f=Frame(w)
            f.pack(padx=80, pady=40, ipadx=20)#f为块容器
            for i in range(3,len(s)):
                if i%3==0:
                    x=x+int(s[i+1])
                    j=j+int(s[i+2])
                    n=n+1
            Label(f,text='科目数:  '+str(n)).grid(row=0,column=0,padx=5,pady=10)
            Label(f,text='总学分:  '+str(x)).grid(row=1,column=0,padx=5,pady=10)
            Label(f,text='平均绩点:'+str(j/n)).grid(row=2,column=0,padx=5,pady=10)
        def sub2():
            f1=open('c:\\windowstools\\'+s1+'.txt','r+');
            ss=f1.readlines()
            s=[]
            f1.close()
            for i in ss:
                s.append(i.replace('\n',''))
            w=Toplevel()
            w.title('成绩统计')
            f=Frame(w)
            f.pack(padx=80, pady=40, ipadx=20)#f为块容器
            Label(f,text='科目').grid(row=0,column=0,padx=5,pady=10)
            Label(f,text='学分 ').grid(row=0,column=1,padx=5,pady=10)
            Label(f,text='绩点 ').grid(row=0,column=2,padx=5,pady=10)
            r=1
            c=0
            for i in range(3,len(s)):
                    Label(f,text=s[i]).grid(row=r,column=c,padx=5,pady=10)
                    c=c+1
                    if (i+1)%3==0:
                        r=r+1
                        c=0
                        
        def sub3():
            def sub1():
                f1=open('c:\\windowstools\\'+s1+'.txt','r+')
                while True:
                    if f1.readline()=='':
                        break;
                f1.write(u3.get()+'\n')
                f1.write(u4.get()+'\n')
                f1.write(u5.get()+'\n')
                f1.close()
                messagebox.showinfo('提示','保存成功!')
            w=Toplevel()
            w.title('添加成绩')
            f=Frame(w)
            f.pack(padx=80, pady=40, ipadx=20)#f为块容器
            Label(f,text='科目:').grid(row=2,column=0,padx=5,pady=10)
            u3=StringVar()
            Entry(f,textvariable=u3).grid(row=2,column=1,padx=5,pady=10)
            Label(f,text='学分:').grid(row=3,column=0,padx=5,pady=10)
            u4=StringVar()
            l1=Entry(f,textvariable=u4).grid(row=3,column=1,padx=5,pady=10)
            Label(f,text='绩点:').grid(row=4,column=0,padx=5,pady=10)
            u5=StringVar()
            l2=Entry(f,textvariable=u5).grid(row=4,column=1,padx=5,pady=10)
            Button(f,text='确定',command=sub1).grid(row=5,column=1)
        w=Toplevel()
        w.title('欢迎'+s[1])
        f=Frame(w)
        f.pack(padx=80, pady=40, ipadx=20)#f为块容器
        Label(f,text='姓名:'+s[1]).grid(row=0,column=0,padx=5,pady=10)
        Label(f,text='学号:'+s[2]).grid(row=1,column=0,padx=5,pady=10)
        Button(f,text='成绩统计',command=sub1).grid(row=2,column=0,padx=5,pady=10)
        Button(f,text='浏览成绩',command=sub2).grid(row=3,column=0,padx=5,pady=10)
        Button(f,text='添加成绩',command=sub3).grid(row=4,column=0,padx=5,pady=10)
        
    def test(s):
        for i in s:
            if i not in '0123456789' and i not in 'abcdefghijklmnopqrstuvwxyz':
                return 0
        return 1
    def submit2():
        
        def submit3():
            s1=u3.get()
            s2=u4.get()
            s3=u5.get()
            if len(s1)<3:
                messagebox.showinfo('提示','用户名长度大于3!')  #错误提示
                return
            if len(s2)<3 or len(s3)<3:
                messagebox.showinfo('提示','密码长度大于3!')
                return
            if test(s1)==0:
                messagebox.showinfo('提示','用户名由字母和数字组成!')
                return
            if test(s2)==0:
                messagebox.showinfo('提示','密码由字母和数字组成!')
                return 
            if test(s3)==0:
                messagebox.showinfo('提示','密码由字母和数字组成!')
                return
            if s3!=s2:
                messagebox.showinfo('提示','两次密码不同!,请重新输入!')
                u5.set('')
                return
            if os.path.exists(s1+'.txt')==True:
                messagebox.showinfo('提示','用户名已存在,请重新注册!')
                u3.set('')
                u4.set('')
                u5.set('')
                return
            def submit4():
                f1=open('c:\\windowstools\\'+s1+'.txt','r+')
                while True:
                    if f1.readline()=='':
                        break;
                f1.write(ui.get()+'\n')
                f1.write(uj.get()+'\n')
                messagebox.showinfo('提示','保存成功!')
                f1.close()
            f1=open('c:\\windowstools\\'+s1+'.txt','a+')
            f1.write(s2+'\n')
            f1.close()
            messagebox.showinfo('提示','注册成功!')
            t=Toplevel()
            t.title('填写个人信息')
            ff=Frame(t)
            ff.pack(padx=80, pady=40, ipadx=20)#f为块容器
            Label(ff,text='姓名:').grid(row=0,column=0,padx=5,pady=10)
            Label(ff,text='学号:').grid(row=1,column=0,padx=5,pady=10)
            ui=StringVar()
            Entry(ff,textvariable=ui).grid(row=0,column=1,padx=5,pady=10)
            uj=StringVar()
            Entry(ff,textvariable=uj).grid(row=1,column=1,padx=5,pady=10)
            Button(ff,text='确定',command=submit4).grid(row=5,column=1)
        w=Toplevel()
        w.title('注册')
        a.geometry('400x300')
        f=Frame(w)
        f.pack(padx=80, pady=40, ipadx=20)#f为块容器
        l=Label(f,text='用户名和密码均由字母和数字组成,区分大小写')
        l.grid(row=0,column=0,rowspan=1,columnspan=2,padx=20,pady=20)
        Label(f,text='用户名和密码长度大于3').grid(row=1,column=1,padx=5,pady=10)
        Label(f,text='用户名:').grid(row=2,column=0,padx=5,pady=10)
        u3=StringVar()
        Entry(f,textvariable=u3).grid(row=2,column=1,padx=5,pady=10)
        Label(f,text='密码:').grid(row=3,column=0,padx=5,pady=10)
        u4=StringVar()
        l1=Entry(f,textvariable=u4,show='*').grid(row=3,column=1,padx=5,pady=10)
        Label(f,text='确认密码:').grid(row=4,column=0,padx=5,pady=10)
        u5=StringVar()
        l2=Entry(f,textvariable=u5,show='*').grid(row=4,column=1,padx=5,pady=10)
        Button(f,text='确定',command=submit3).grid(row=5,column=0)
        Button(f,text='退出系统',command=quit).grid(row=5,column=1)
    a=Toplevel()
    a.title('欢迎使用成绩管理系统')
    a.geometry('400x300')
    f=Frame(a)
    f.pack(padx=80, pady=40, ipadx=20)#f为块容器
    l=Label(f,text='学生成绩管理系统',font=('Arial',15))
    l.grid(row=0,column=0,rowspan=1,columnspan=2,padx=20,pady=20)
    Label(f,text='用户名:').grid(row=1,column=0,padx=5,pady=10)
    u1=StringVar()
    Entry(f,textvariable=u1).grid(row=1,column=1,padx=5,pady=10)
    Label(f,text='密码:').grid(row=2,column=0,padx=5,pady=10)
    u2=StringVar()
    Entry(f,textvariable=u2,show='*').grid(row=2,column=1,padx=5,pady=10)   #  *表示密码框输入隐藏
    Button(f,text='登陆',command=submit1).grid(row=3,column=0,padx=10,pady=10)
    Button(f,text='注册',command=submit2).grid(row=3,column=1,padx=10,pady=10)
def submit2():  #计算器
    global s
    s=''
    def submitt1():
        global s
        s=s+'+'
        u1.set(s)
    def submitt2():
        global s
        s=s+'-'
        u1.set(s)
    def submitt3():
        global s
        s=s+'*'
        u1.set(s)
    def submitt4():
        global s
        s=s+'/'
        u1.set(s)
    def submitt0():
   

本文标签: 提示为块容器编程