Python实现学生成绩管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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]
= 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()
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]<a[j]:
temp = stulist[i]
stulist[i] = stulist[j]
stulist[j] = temp
界⾯截图如下:
源码:
# -*- coding: UTF-8 -*-
import os
import re
import numpy as np
class Student: #定义⼀个学⽣类
def __init__(self):
= ''
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.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", "a")
file_object.write(stu.ID)
file_object.write(" ")
file_object.write()
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, '\t' ,,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',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", "w")
for stu in stulist:
print stu.ID, , stu.score1,stu.score2, stu.score3, stu.sum
file_object.write(stu.ID)
file_object.write(" ")
file_object.write()
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", "w")
for stu in stulist:
#print li.ID, , li.score
file_object.write(stu.ID)
file_object.write(" ")
file_object.write()
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()
= raw_input("请输⼊学⽣的姓名")
while True:
stu.ID = raw_input("请输⼊学⽣的ID")
p = pile('^[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, '\t' ,,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum def Sort(stulist): #按学⽣成绩排序
Stu = []
sum_count = []
for li in stulist:
temp = []
temp.append(li.ID)
temp.append()
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]<a[j]:
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]
= s[1]
stu.score1 = s[2]
stu.score2 = s[3]
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()
= raw_input("请输⼊学⽣的姓名")
while True:
stu.ID = raw_input("请输⼊学⽣的ID")
p = pile('^[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)
更多学习资料请关注专题《》。

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

相关文档
最新文档