python大作业 学生管理系统 以Excel(xls)格式导入文件
简单的说一下每个板块的作用
这个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
python学习记录 文章被收录于专栏
python一些学习记录