• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python实现简单成绩录入系统

python 搞代码 4年前 (2022-01-07) 22次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了python实现简单成绩录入系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

学了一个多月的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() tkinter.messagebox.showwarning('提示','请输入数字') def btn4_login(): x y=var_score.get() tkinter.messagebox.showinfo('录入成功') 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() #核心函数 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) 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) btn1_login(): pop=seacharID(stulist,y) if tkinter.messagebox.showwarning('错误','该学号已存在') var_id.set("") var_user.set("") y.isdigit()==True: conunt=0 sum_opp=0 stu.name=x stu.id=y root_e.destroy() for in stu.lessons.values(): conunt+=1 stu.sum=str(sum_opp) average_opp=int(stu.sum)/conunt stu.average=str(average_opp) stulist.append(stu) write(stulist) menu() tkinter.messagebox.showwarning('提示','您输入了非数字的内容') var_id.set(" ") btn2_login(): 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() #删除页面------------------------------------------------------------------ deling(): root=Tk() root.title('删') root.geometry('200x200+230+330') label(root,text='学号' btn_ok(): x.isdigit()==True: count=0 i stulist: i.id==x: stulist.remove(i) tkinter.messagebox.showinfo("提示",'成功删除该学生信息') root.destroy() count+=1 tkinter.messagebox.showinfo(title='错误' ,message='不存在该账户!' ) var_del.set('') tkinter.messagebox.showerror('警告','请输入数字') btn_cancel(): var_del=StringVar() entry_del=Entry(root,textvariable=var_del,width=10) entry_del.place(x=80,y=50) root.mainloop() #修改页面--------------------------------------------------------------- change(): root.title("改") var_change=StringVar() entry_change=Entry(root,textvariable=var_change,width=10) entry_change.place(x=80,y=50) var_ok(): counton=0 entry() counton+=1 tkinter.messagebox.showerror('错误','不存在该账户!') tkinter.messagebox.showerror('警告','输入数字id') var_cancel(): #查询页面------------------------------------------------------------------ next_i(x): window=Tk() window.title('显示信息') window.geometry('400x200') ai_name=i.name ai_id=i.ID ai_lesson=str(i.lessons) ai_sum=i.sum ai_ave=i.average label(window,height=2,width=8,text=ai_name).pack() window.mainloop() search(): root.title('') next_i(x) tkinter.messagebox.showerror('警告','请输入数字id') var_display=StringVar() entry_display=Entry(root,textvariable=var_display,width=10) entry_display.place(x=80,y=50) #排序页面-------------------------------------------------------------- display(x): window.title() contunt=0 x: contunt+=1 all_list=['第'+str(contunt)+'名:'] all_list.append('姓名:'+i.name+'\\') all_list.append('学号:'+i.id+'\\') m,n 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() sorting(): range(len(stulist)-1): j range(i+1,len(stulist)): temp=student_main() stulist[i].average<stulist[j].average: stulist[i]=stulist[j] stulist[j]=temp display(stulist) #菜单------------------------------------------------------ menu(): root.title('主视面') root.geometry('250x300+150+100') var_one(): var_two(): deling() var_three(): change() var_four(): search() var_five(): sorting() var_six(): var0=Label(root,text='--------------菜单--------------',font=('Arial',13),width=30,height=1) var0.pack() var1=Button(root,text='1.添加界面',bg='Silver',font=('Arial',12),width=20,height=1,bd=0,command=var_one) var1.pack(pady=4) var2=Button(root,text='2.删除界面',bg='Silver',font=('Arial',12),width=20,height=1,bd=0,command=var_two) var2.pack(pady=4) var3=Button(root,text='3.更改界面',bg='Silver',font=('Arial',12),width=20,height=1,bd=0,command=var_three) var3.pack(pady=4) var4=Button(root,text='4.查询界面',bg='Silver',font=('Arial',12),width=20,height=1,bd=0,command=var_four) var4.pack(pady=4) var6=Button(root,text='退出',bg='Silver',font=('Arial',12),width=20,height=1,bd=0,command=var_six) var6.pack(pady=4) menu()<pre></div><p>file_read模块部分</p><p>(file_read主要是将我储存在txt文件中的数据转化成stulist列表,来进行检验,防止录入同一个id)</p><div class="gaodaimacode"><pre class="prettyprint linenums"> class student_main(): def __init__(self): self.name ='' self.ID='' self.lessons={} self.sum='' self.average='' def read(): stulist=[] x=[] f=open('all_student.txt','r') t=open('all_lesson.txt','r') line=f.readlines() lene=t.readlines() for i in range(len(line)): if (i+1)%2==1:#这里主要是读取和储存是出现了莫名的空行,我只好多录入一个空行好方便读取 y=student_main() x=line[i].split(" ") y.name=x[0] y.ID=x[1] j=int((i+1)/2) z=eval(lene[j]) y.lessons=z y.sum=x[2] y.average=x[3] stulist.append(y) return stulist 

file_write模块部分

(主要是将menu中获得的数据进行储存)

 class student_main(): def __init__(self): self.name ='' self.ID='' self.lessons={} self.sum='' self.average='' def write(stulist): f=open('all_student.txt','w') for i in stulist: f.write(i.name+' '+i.I<mark style="color:transparent">来源gaodaimacom搞#^代%!码网</mark>D+' '+i.sum+' '+i.average) f.write('\n') f.close() t=open('all_lesson.txt','w') for i in stulist: t.write(str(i.lessons)) t.write('\n') t.close()

还要自己建立两个TXT文本,一个叫all_lesson.txt,另一个叫all_student.txt。

因为student类中的lesson是用字典储存的,我实在找不到怎么把他完整的读出来的语句只好分开存储了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是python实现简单成绩录入系统的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python实现简单成绩录入系统

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址