学了一个多月的python,做了一个小程序:python实现简单成绩录入系统,实验一下
专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业丽水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。menu部分
from tkinter import*#这是一个python模块,python3中都有 import tkinter.messagebox#这也是一个模块 from file_read import read from file_write import write class student_main():#定义一个学生类 def __init__(self): self.name ='' self.ID='' self.lessons={} self.sum='' self.average='' stulist=read() stu=student_main() #登录页面-------------------------------------------------------------------- def seacharID(stulist,ID):#这是一个对是否重复id的检验 for x in stulist: if x.ID==ID: return True #这是一个成绩录入时的主要函数 def next(): root_next=Tk() root_next.title('成绩录入') root_next.geometry('200x200+230+330') var_lesson=StringVar() var_score=StringVar() Label(root_next,text='课程名').place(x=20,y=50) Label(root_next,text='成绩').place(x=20,y=90) enter_lesson=Entry(root_next,textvariable=var_lesson,width=15) enter_lesson.place(x=70,y=50) enter_score=Entry(root_next,textvariable=var_score,width=15) enter_score.place(x=70,y=90) def btn3_login(): x=var_lesson.get() y=var_score.get() if y.isdigit()==True: if int(y)>100: tkinter.messagebox.showerror('错误','请输入正确的成绩!!!') var_score.set('') elif int(y)<0: tkinter.messagebox.showerror('错误','请输入正确的成绩!!!') var_score.set('') else: stu.lessons[x]=y root_next.destroy() next() else: tkinter.messagebox.showwarning('提示','请输入数字') def btn4_login(): x=var_lesson.get() y=var_score.get() stu.lessons[x]=y tkinter.messagebox.showinfo('录入成功') root_next.destroy() btn3=Button(root_next,text='录入新学科',bg='#5EAEFF',bd=0,command=btn3_login) btn3.place(y=130,width=99,height=20) btn4=Button(root_next,text='完成',bg='#FF6868',bd=0,command=btn4_login) btn4.place(x=101,y=130,width=99,height=20) #页面循环 root_next.mainloop() #核心函数 def entry(): root_e=Tk() root_e.title("增") root_e.geometry('200x200+230+330') var_user=StringVar() var_ID=StringVar() Label(root_e,text='姓名').place(x=20,y=50) Label(root_e,text='ID').place(x=20,y=90) enter_user=Entry(root_e,textvariable=var_user,width=15) enter_user.place(x=70,y=50) enter_user.focus() enter_ID=Entry(root_e,textvariable=var_ID,width=15) enter_ID.place(x=70,y=90) def btn1_login(): x=var_user.get() y=var_ID.get() pop=seacharID(stulist,y) if pop==True: tkinter.messagebox.showwarning('错误','该学号已存在') var_ID.set("") var_user.set("") else: if y.isdigit()==True: conunt=0 sum_opp=0 stu.name=x stu.ID=y root_e.destroy() next() for x in stu.lessons.values(): sum_opp=sum_opp+int(x) conunt+=1 stu.sum=str(sum_opp) average_opp=int(stu.sum)/conunt stu.average=str(average_opp) stulist.append(stu) write(stulist) menu() else: tkinter.messagebox.showwarning('提示','您输入了非数字的内容') var_ID.set(" ") def btn2_login(): root_e.destroy() menu() btn1=Button(root_e,text='下一步',command=btn1_login,bd=0,bg='Silver') btn1.place(y=140,width=99,height=20) btn2=Button(root_e,text='取消',command=btn2_login,bd=0,bg='Silver') btn2.place(x=100,y=140,width=99,height=20) root_e.mainloop() #删除页面------------------------------------------------------------------ def deling(): root=Tk() root.title('删') root.geometry('200x200+230+330') Label(root,text='学号').place(x=40,y=50) def btn_ok(): x=var_del.get() if x.isdigit()==True: count=0 for i in stulist: if i.ID==x: stulist.remove(i) write(stulist) tkinter.messagebox.showinfo("提示",'成功删除该学生信息') root.destroy() menu() else: count+=1 if count==len(stulist): tkinter.messagebox.showinfo(title='错误',message='不存在该账户!') var_del.set('') else: tkinter.messagebox.showerror('警告','请输入数字') def btn_cancel(): x=tkinter.messagebox.askokcancel('提示','确定离开?') if x==True: root.destroy() menu() var_del=StringVar() entry_del=Entry(root,textvariable=var_del,width=10) entry_del.place(x=80,y=50) btn1=Button(root,bd=0,bg='Silver',command=btn_ok,text='确定') btn1.place(y=110,width=99,height=20) btn2=Button(root,bd=0,bg='Silver',command=btn_cancel,text='取消') btn2.place(x=101,y=110,width=99,height=20) root.mainloop() #修改页面--------------------------------------------------------------- def change(): root=Tk() root.title("改") root.geometry('200x200+230+330') Label(root,text='学号').place(x=40,y=50) var_change=StringVar() entry_change=Entry(root,textvariable=var_change,width=10) entry_change.place(x=80,y=50) def var_ok(): x=var_change.get() if x.isdigit()==True: counton=0 for i in stulist: if x==i.ID: stulist.remove(i) write(stulist) root.destroy() entry() else: counton+=1 if counton==len(stulist): tkinter.messagebox.showerror('错误','不存在该账户!') else: tkinter.messagebox.showerror('警告','输入数字ID') def var_cancel(): x=tkinter.messagebox.askokcancel('提示','确定离开') if x==True: root.destroy() btn1=Button(root,bd=0,bg='Silver',command=var_ok,text='确定') btn1.place(y=110,width=99,height=20) btn2=Button(root,bd=0,bg='Silver',command=var_cancel,text='取消') btn2.place(x=101,y=110,width=99,height=20) root.mainloop() #查询页面------------------------------------------------------------------ def next_i(x): window=Tk() window.title('显示信息') window.geometry('400x200') counton=0 for i in stulist: if i.ID==x: ai_name=i.name ai_ID=i.ID ai_lesson=str(i.lessons) ai_sum=i.sum ai_ave=i.average else: ai_name=' ' ai_ID=' ' ai_lesson='该学号不存在' ai_sum=' ' ai_ave=' ' Label(window,height=2,width=8,text=ai_name).pack() Label(window,height=2,width=8,text=ai_ID).pack() Label(window,height=2,width=100,text=ai_lesson).pack() Label(window,height=2,width=8,text=ai_sum).pack() Label(window,height=2,width=8,text=ai_ave).pack() window.mainloop() def search(): root=Tk() root.title('') root.geometry('200x200+230+330') Label(root,text='学号').place(x=40,y=50) def btn_ok(): x=var_display.get() if x.isdigit()==True: next_i(x) else: tkinter.messagebox.showerror('警告','请输入数字ID') def btn_cancel(): root.destroy() menu() var_display=StringVar() entry_display=Entry(root,textvariable=var_display,width=10) entry_display.place(x=80,y=50) btn1=Button(root,bd=0,bg='Silver',command=btn_ok,text='确定') btn1.place(y=110,width=99,height=20) btn2=Button(root,bd=0,bg='Silver',command=btn_cancel,text='返回主菜单') btn2.place(x=101,y=110,width=99,height=20) root.mainloop() #排序页面-------------------------------------------------------------- def display(x): window=Tk() window.title() contunt=0 for i in x: contunt+=1 all_list=['第'+str(contunt)+'名:'] all_list.append('姓名:'+i.name+'\\') all_list.append('学号:'+i.ID+'\\') for m,n in i.lessons.items(): all_list.append(m+":") all_list.append(n) all_list.append('\\') all_list.append('总分:'+i.sum+'\\') all_list.append('平均分:'+i.average) Label(window,bd=20,text=all_list).pack() window.mainloop() def sorting(): for i in range(len(stulist)-1): for j in range(i+1,len(stulist)): temp=student_main() if stulist[i].average另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:python实现简单成绩录入系统-创新互联
网页链接:http://cdweb.net/article/dgoegd.html