简单的说一下每个板块的作用
这个load函数,是导入进来文件的数据
def load():
data=xlrd.open_workbook('data.xls')
table=data.sheets()[0]
n=table.nrows
for i in range(0,n):
stu.append(table.row_values(i))
print(stu)
然后我们看这个save_data的函数,因为我们每当更改了信息以后,我们需要将更改完毕的信息保存到文件里,需要调用这个函数。
def save_data():
xls=xlwt.Workbook(encoding='UTF-8')
sheet=xls.add_sheet('sheet1')
sz=len(stu)
for i in range(0,sz):
for j in range(0,9):
sheet.write(i,j,label=stu[i][j])
xls.save('data.xls')
show函数的作用是为了将所有所有学生的数据展示出来。
这个if s[0]==‘姓名’:特判是因为导入的文件第一行是属性,你不可以把属性输出出来
def show():
cnt=1
for s in stu:
if s[0]=='姓名':
continue
print("%d.姓名:%s 性别:%s 学号:%s 语文成绩:%.1f 数学成绩:%.1f 英语成绩:%.1f qq号码:%d 电话号码:%d 家庭住址:%s"
%(cnt,s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8]))
cnt+=1
这个板块是查找学生,以学号的方式进行查找
def se_stu():
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
print("姓名:%s 性别:%s 学号:%s 语文成绩:%.1f 数学成绩:%.1f 英语成绩:%.1f qq号码:%d 电话号码:%d 家庭住址:%s"
% (s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]))
break
if flag==False:
print("未查询到该学生信息")
添加学生,把内容追加到学生列表尾端
def add():
global stu
name = input("请输入学生姓名:")
sex = input("请输入性别:")
num = input("请输入学号")
chin = float(input("请输入语文成绩"))
math = float(input("请输入数学成绩"))
eng = float(input("请输入英语成绩"))
phone = int(input("请输入手机号"))
qq = int(input("请输入qq号"))
address = input("请输入家庭地址")
s=[name,sex,num,chin,math,eng,phone,qq,address]
stu.append(s)
save_data()
print("保存成功")
更改学生的某些内容,以学号查找学生
def change():
global stu
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
print("请选择修改内容:\n""1.语文成绩\n""2.数学成绩\n""3.英语成绩\n""4.手机号\n""5.qq号\n""6.家庭地址" )
x=int(input())
if x==1:
z = float(input("请输入修改后内容"))
s[3]=z
elif x==2:
z = float(input("请输入修改后内容"))
s[4]=z
elif x==3:
z = float(input("请输入修改后内容"))
s[5]=z
elif x==4:
z = int(input("请输入修改后内容"))
s[6]=z
elif x==5:
z = int(input("请输入修改后内容"))
s[7]=z
elif x==6:
z = input("请输入修改后内容")
s[8] = z
else:
print("无此选项")
break
if flag==False:
print("未查询到该学生信息")
else:
save_data()
print("保存成功")
查出每门课的平均分等
def se_course():
chin,math,eng=0,0,0
for s in stu:
if s[0]=='姓名':
continue
chin+=s[3]
math+=s[4]
eng+=s[5]
print("语文成绩平均分:"+str(chin/len(stu))[0:5])
print("数学成绩平均分:"+str(math/len(stu))[0:5])
print("英语成绩平均分:" + str(eng/len(stu))[0:5])
查出学生的成绩
def se_score():
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
ans=s[3]+s[4]+s[5]
print("姓名: "+s[0])
print("语文成绩: %.1f 数学成绩 %.1f 英语成绩 %.1f "%(s[3],s[4],s[5]))
print("总成绩: "+str(ans))
print("平均成绩: "+str(ans/3)[0:5])
break
if flag==False:
print("未查询到该学生信息")
完整代码:
import xlrd
import xlwt
stu=[]
# def load():
# global stu
# file=open('data.txt',mode='r',encoding='UTF-8')
# contents = file.readlines()
# for msg in contents:
# msg = msg.strip('\n')
# student = msg.split(' ')
# stu.append(student)
# file.close()
# #print(stu)
def load():
data=xlrd.open_workbook('data.xls')
table=data.sheets()[0]
n=table.nrows
for i in range(0,n):
stu.append(table.row_values(i))
print(stu)
def save_data():
xls=xlwt.Workbook(encoding='UTF-8')
sheet=xls.add_sheet('sheet1')
sz=len(stu)
for i in range(0,sz):
for j in range(0,9):
sheet.write(i,j,label=stu[i][j])
xls.save('data.xls')
def show():
cnt=1
for s in stu:
if s[0]=='姓名':
continue
print("%d.姓名:%s 性别:%s 学号:%s 语文成绩:%.1f 数学成绩:%.1f 英语成绩:%.1f qq号码:%d 电话号码:%d 家庭住址:%s"
%(cnt,s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8]))
cnt+=1
def se_stu():
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
print("姓名:%s 性别:%s 学号:%s 语文成绩:%.1f 数学成绩:%.1f 英语成绩:%.1f qq号码:%d 电话号码:%d 家庭住址:%s"
% (s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]))
break
if flag==False:
print("未查询到该学生信息")
def add():
global stu
name = input("请输入学生姓名:")
sex = input("请输入性别:")
num = input("请输入学号")
chin = float(input("请输入语文成绩"))
math = float(input("请输入数学成绩"))
eng = float(input("请输入英语成绩"))
phone = int(input("请输入手机号"))
qq = int(input("请输入qq号"))
address = input("请输入家庭地址")
s=[name,sex,num,chin,math,eng,phone,qq,address]
stu.append(s)
save_data()
print("保存成功")
def change():
global stu
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
print("请选择修改内容:\n""1.语文成绩\n""2.数学成绩\n""3.英语成绩\n""4.手机号\n""5.qq号\n""6.家庭地址" )
x=int(input())
if x==1:
z = float(input("请输入修改后内容"))
s[3]=z
elif x==2:
z = float(input("请输入修改后内容"))
s[4]=z
elif x==3:
z = float(input("请输入修改后内容"))
s[5]=z
elif x==4:
z = int(input("请输入修改后内容"))
s[6]=z
elif x==5:
z = int(input("请输入修改后内容"))
s[7]=z
elif x==6:
z = input("请输入修改后内容")
s[8] = z
else:
print("无此选项")
break
if flag==False:
print("未查询到该学生信息")
else:
save_data()
print("保存成功")
def delete():
global stu
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
print("姓名:%s 性别:%s 学号:%s 语文成绩:%.1f 数学成绩:%.1f 英语成绩:%.1f qq号码:%d 电话号码:%d 家庭住址:%s"
% (s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]))
x=int(input("确认删除该名学生?\n确认请按1,推出请按2"))
if x==1:
stu.remove(s)
break
if flag==False:
print("未查询到该学生信息")
else:
save_data()
print("保存成功")
def se_course():
chin,math,eng=0,0,0
for s in stu:
if s[0]=='姓名':
continue
chin+=s[3]
math+=s[4]
eng+=s[5]
print("语文成绩平均分:"+str(chin/len(stu))[0:5])
print("数学成绩平均分:"+str(math/len(stu))[0:5])
print("英语成绩平均分:" + str(eng/len(stu))[0:5])
def se_score():
a=input("请输入学生学号:")
flag=False
for s in stu:
if a==s[2]:
flag=True
ans=s[3]+s[4]+s[5]
print("姓名: "+s[0])
print("语文成绩: %.1f 数学成绩 %.1f 英语成绩 %.1f "%(s[3],s[4],s[5]))
print("总成绩: "+str(ans))
print("平均成绩: "+str(ans/3)[0:5])
break
if flag==False:
print("未查询到该学生信息")
load()
# print("欢迎使用学生管理系统\n"
# "1.显示所有学生信息\n"
# "2.查询学生信息\n"
# "3.添加学生信息\n"
# "4.修改学生信息\n"
# "5.删除学生信息\n"
# "6.查询课程平均分\n"
# "7.查询学生成绩\n"
# "8.退出系统\n")
while 1:
print("欢迎使用学生管理系统\n"
"您是学生还是老师?\n"
"1.老师\n2.学生\n"
"3.退出系统\n")
x=int(input("请输入你所选的操作: "))
if x==1:
input("请输入账号:")
z=input("请输入密码:")
if z=='666666':
while 1:
print('输入正确,进入系统成功:')
print("欢迎使用学生管理系统\n"
"1.显示所有学生信息\n"
"2.查询学生信息\n"
"3.添加学生信息\n"
"4.修改学生信息\n"
"5.删除学生信息\n"
"6.查询课程平均分\n"
"7.查询学生成绩\n"
"8.退出系统\n")
n = int(input("请输入你所选的操作: "))
if n == 1:show()
elif n == 2: se_stu()
elif n == 3: add()
elif n == 4: change()
elif n == 5: delete()
elif n == 6: se_course()
elif n == 7: se_score()
elif n == 8: break
else: print("输入号码错误,请重新输入\n")
y=int(input("按1继续,按2退出系统: "))
if y==1: continue
else: break
else:
print('密码错误,返回主菜单')
elif x==2:
while 1:
print("欢迎使用学生管理系统\n"
"1.查询学生信息\n"
"2.查询课程平均分\n"
"3.查询学生成绩\n"
"4.退出系统\n")
n=int(input('请输入选择的操作:'))
if n==1: se_stu()
elif n==2: se_course()
elif n==3: se_score()
else: break
else:
break