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一些学习记录

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务