您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页Python实现学生成绩管理系统

Python实现学生成绩管理系统

来源:小侦探旅游网
Python实现学⽣成绩管理系统

本⽂实例为⼤家分享了Python实现学⽣成绩管理系统的具体代码,供⼤家参考,具体内容如下基本功能:

输⼊并存储学⽣的信息:通过输⼊学⽣的学号、姓名、和分数,然后就可以把数据保存在建⽴的student⽂件⾥⾯。打印学⽣的所有信息:通过⼀个打印函数就可以把所有的信息打印在屏幕上。

修改学⽣信息:这个功能⾸先通过查询功能查询出该学⽣是否存在,如果存在就对该学⽣的信息进⾏修改,如果不存在则返回到主界⾯。

删除学⽣信息:该功能是对相应的学⽣进⾏删除操作,如果学⽣存在就查找到进⾏删除。按学⽣成绩进⾏排序: 这个功能是按照学⽣的成绩进⾏排序,对学⽣的信息进⾏操作。

查找学⽣信息:这个功能通过输⼊学号,查找该学⽣的信息,如果有该学号就输出该学⽣的信息,没有该学号就提⽰输⼊的学号不存在。初始化功能

系统在开始使⽤之前先进⾏初始化功能,判断students.txt⽂件中是否保存的有学⽣的信息,如果有就把⽂件的内容读取出来,供接下来的操作使⽤,如⽤没有就初始化⼀个空的列表,⽤来保存⽤户的输⼊,程序中接下来的所有数据都会保存在该列表中相当与⼀个数据缓冲区。

⾸先是打开⽂件操作,对⽂件中的内容进⾏读取操作,由于在⽂件中保存的内容是由空格进⾏分割的,并且每⼀个学⽣的信息都占⽤⼀⾏,⾸先读出所有的内容,先进⾏按照换⾏进⾏分割,得到每个⼈的信息,然后再对每个⼈的信息进⾏安装空格分隔,得到每个⼈的详细信息包括⽤户的姓名,学号,成绩。

def Init(stulist): #初始化函数 print \"初始化......\"

file_object = open('students.txt', 'r') for line in file_object: stu = Student()

line = line.strip(\"\\n\") s = line.split(\" \") stu.ID = s[0] stu.name = s[1] stu.score = s[2] stulist.append(stu) print \"初始化成功!\"

成绩排序实现

这部分代码是按照学⽣成绩的⾼低进⾏排序,在实现的时候,⾸先是把所有⼈的成绩放到⼀个列表⾥⾯然后使⽤插⼊排序,按照成绩的⼤⼩对StuList中保存的学⽣信息的地址进⾏排序

def Sort(stulist): #按学⽣成绩排序 Stu = []

sum_count = [] for li in stulist: temp = []

temp.append(li.ID) temp.append(li.name)

temp.append(int(li.score1)) temp.append(int(li.score2)) temp.append(int(li.score3)) temp.append(int(li.sum))

sum_count.append(int(li.sum)) Stu.append(temp)

#print sum_count #print Stu; #print stulist

insertSort(sum_count, stulist) #print stulist; display(stulist)

def insertSort(a, stulist): for i in range(len(a)-1):

#print a,i

for j in range(i+1,len(a)): if a[i]temp = stulist[i] stulist[i] = stulist[j] stulist[j] = temp

界⾯截图如下:

源码:

# -*- coding: UTF-8 -*-import osimport re

import numpy as np

class Student: #定义⼀个学⽣类 def __init__(self): self.name = '' self.ID =''

self.score1 = 0 self.score2 = 0 self.score1 = 0 self.sum = 0

def searchByID(stulist, ID): #按学号查找看是否学号已经存在 for item in stulist: if item.ID == ID: return True

def Add(stulist,stu): #添加⼀个学⽣信息 if searchByID(stulist, stu.ID) == True: print\"学号已经存在!\" return False

stulist.append(stu)

print stu.name,stu.ID, stu.score1, stu.score2, stu.score3, stu.sum; print \"是否要保存学⽣信息?\"

nChoose = raw_input(\"Choose Y/N\") if nChoose == 'Y' or nChoose == 'y': file_object = open(\"students.txt\

file_object.write(stu.ID) file_object.write(\" \")

file_object.write(stu.name) file_object.write(\" \")

file_object.write(str(stu.score1)) file_object.write(\" \")

file_object.write(str(stu.score2)) file_object.write(\" \")

file_object.write(str(stu.score3)) file_object.write(\" \")

file_object.write(str(stu.sum)) file_object.write(\"\\n\") file_object.close() print u\"保存成功!\"

def Search(stulist, ID): #搜索⼀个学⽣信息 print u\"学号 姓名 语⽂ 数学 英语 总分\" count = 0

for item in stulist: if item.ID == ID:

print item.ID, '\' ,item.name,'\', item.score1,'\',item.score2, '\', item.score3, '\',item.sum break count = 0

if count == len(stulist): print \"没有该学⽣学号!\"

def Del(stulist, ID): #删除⼀个学⽣信息 count = 0

for item in stulist: if item.ID == ID: stulist.remove(item) print \"删除成功!\" break

count +=1

# if count == len(stulist): # print \"没有该学⽣学号!\"

file_object = open(\"students.txt\ for stu in stulist:

print stu.ID, stu.name, stu.score1,stu.score2, stu.score3, stu.sum file_object.write(stu.ID) file_object.write(\" \")

file_object.write(stu.name) file_object.write(\" \")

file_object.write(str(stu.score1)) file_object.write(\" \")

file_object.write(str(stu.score2)) file_object.write(\" \")

file_object.write(str(stu.score3)) file_object.write(\" \")

file_object.write(str(stu.sum)) file_object.write(\"\\n\") file_object.close() # print \"保存成功!\" file_object.close()

def Change(stulist, ID): count = 0

for item in stulist: if item.ID == ID: stulist.remove(item)

file_object = open(\"students.txt\ for stu in stulist:

#print li.ID, li.name, li.score file_object.write(stu.ID) file_object.write(\" \")

file_object.write(stu.name) file_object.write(\" \")

file_object.write(str(stu.score1)) file_object.write(\" \")

file_object.write(str(stu.score2)) file_object.write(\" \")

file_object.write(str(stu.score3)) file_object.write(\" \")

file_object.write(str(stu.sum)) file_object.write(\"\\n\") # print \"保存成功!\" file_object.close()

stu = Student()

stu.name = raw_input(\"请输⼊学⽣的姓名\") while True:

stu.ID = raw_input(\"请输⼊学⽣的ID\") p = re.compile('^[0-9]{3}$') if p.match(stu.ID): break else:

print \"输⼊的有错误!\" while True:

stu.score1 = int(raw_input(\"请输⼊学⽣语⽂成绩\")) if stu.score1 <= 100 and stu.score1 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\" while True:

stu.score2 = int(raw_input(\"请输⼊学⽣数学成绩\")) if stu.score2 <= 100 and stu.score2 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\" while True:

stu.score3 = int(raw_input(\"请输⼊学⽣英语成绩\")) if stu.score3 <= 100 and stu.score3 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\"

stu.sum = stu.score1 + stu.score2 + stu.score3 Add(stulist,stu)

def display(stulist): #显⽰所有学⽣信息 print u\"学号 姓名 语⽂ 数学 英语 总分\" for item in stulist:

print item.ID, '\' ,item.name,'\', item.score1,'\',item.score2, '\', item.score3, '\',item.sumdef Sort(stulist): #按学⽣成绩排序 Stu = []

sum_count = [] for li in stulist: temp = []

temp.append(li.ID) temp.append(li.name)

temp.append(int(li.score1)) temp.append(int(li.score2)) temp.append(int(li.score3)) temp.append(int(li.sum))

sum_count.append(int(li.sum)) Stu.append(temp)

#print sum_count #print Stu; #print stulist

insertSort(sum_count, stulist) #print stulist; display(stulist)

def insertSort(a, stulist): for i in range(len(a)-1): #print a,i

for j in range(i+1,len(a)): if a[i]temp = stulist[i] stulist[i] = stulist[j] stulist[j] = temp #return a

def Init(stulist): #初始化函数 print \"初始化......\"

file_object = open('students.txt', 'r') for line in file_object: stu = Student()

line = line.strip(\"\\n\") s = line.split(\" \") stu.ID = s[0] stu.name = s[1] stu.score1 = s[2] stu.score2 = s[3]

stu.score3 = s[4] stu.sum = s[5] stulist.append(stu) file_object.close() print \"初始化成功!\" main()

def main(): #主函数 该程序的⼊⼝函数 while True:

print \"*********************\" print u\"--------菜单---------\" print u\"增加学⽣信息--------1\" print u\"查找学⽣信息--------2\" print u\"删除学⽣信息--------3\" print u\"修改学⽣信息--------4\" print u\"所有学⽣信息--------5\" print u\"按照分数排序--------6\" print u\"退出程序------------0\" print \"*********************\"

nChoose = raw_input(\"请输⼊你的选择:\") if nChoose == \"1\": stu = Student()

stu.name = raw_input(\"请输⼊学⽣的姓名\") while True:

stu.ID = raw_input(\"请输⼊学⽣的ID\") p = re.compile('^[0-9]{3}$') if p.match(stu.ID): break else:

print \"输⼊的有错误!\" while True:

stu.score1 = int(raw_input(\"请输⼊学⽣语⽂成绩\")) if stu.score1 <= 100 and stu.score1 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\" while True:

stu.score2 = int(raw_input(\"请输⼊学⽣数学成绩\")) if stu.score2 <= 100 and stu.score2 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\" while True:

stu.score3 = int(raw_input(\"请输⼊学⽣英语成绩\")) if stu.score3 <= 100 and stu.score3 > 0 : break else:

print \"输⼊的学⽣成绩有错误!\"

stu.sum = stu.score1 + stu.score2 + stu.score3 Add(stulist,stu)

if nChoose == '2':

ID = raw_input(\"请输⼊学⽣的ID\") Search(stulist, ID)

if nChoose == '3':

ID = raw_input(\"请输⼊学⽣的ID\") Del(stulist, ID) if nChoose == '4':

ID = raw_input(\"请输⼊学⽣的ID\") Change(stulist, ID) if nChoose == '5': display(stulist) if nChoose == '6': Sort(stulist)

if nChoose == '0': break

if __name__ == '__main__': stulist =[]Init(stulist)

更多学习资料请关注专题《》。

以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务