美文网首页
Day07--课后作业(学生管理系统)

Day07--课后作业(学生管理系统)

作者: zxhlcl | 来源:发表于2018-10-10 00:10 被阅读0次

简单的学生管理系统
用一个变量来保存一个班级的学生信息,学生信息包括:姓名、学号、成绩(英语、体育、美术、数学)、年龄
b.给这个班级添加学生
c.根据姓名查看班级里的某个学生的信息
d.根据姓名删除一个指定的学生信息
e.查看班级的所有的学生信息
f.求指定的学生平均成绩

提示:用一个列表来存整个班级的学生信息;列表的每个元素是字典,来存储每个学生的信息
解决办法
代码一:该代码较为复杂,没有考虑到输入参数为字符的情况,也没有考虑到系统的完备性

students =[ ]
print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
temp=input('>>>')
while temp=="1" or temp=="2" or temp=="3" or temp=="q":
    if temp=="1":
        flag=1
        while flag==1:
            name=input('请输入学生的姓名:')
            age=input('请输入学生的年龄:')
            tel=input("请输入学生的电话号码:")
            #============================业务逻辑代码====================================
            students.append({'name':name,'ID': None,'score': None ,'age':age,'tel': tel })
            #===========================================================================
            print("1、继续添加 \n","2、返回上一层")
            flag = int(input(">>>"))
            if flag != 1:
                print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
                temp = input('>>>')
    elif temp=="2":
        print("1、查看所有学生信息 \n", "2、根据名字查看学生信息\n","3、返回上一次")
        flag=int(input(">>>"))
        if flag == 1:
            temp = 0
            #=========================业务逻辑代码======================
            for i in range(len(students)):
                for keys in students[i]:
                    print(i, end="  ")
                    print(keys + ':' + str(students[i][keys]), end=",")
                print()
            #==========================================================
        elif flag==2:
            temp = 0
            # =========================业务逻辑代码======================
            name=input("请输入学生姓名>>>")
            count=0 #记录学生信息个数,后面需判断有无学生信息
            for i in range(len(students)):
                if name==students[i]['name']:
                    count+=1
                    for keys in students[i]:
                        print(i, end="  ")
                        print(keys + ':' + str(students[i][keys]), end=",")
                    print()
            if count==0:
                print("没有该学生信息")

            # ==========================================================
        else:
            print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
            temp = input('>>>')
    elif temp=="3":
        flag=1
        while flag == 1:
            name=input("请输入要删除的学生姓名:")
            # =========================业务逻辑代码======================
            col=[]#用于记录学生编号,后面判断输入的学生编号是否有误
            count=0 #用于记录查找的学生信息个数,判断有无学生信息
            for i in range(len(students)):
                if name == students[i]['name']:
                    count+=1
                    col.append(i)
                    for keys in students[i]:
                        print(i, end="  ")
                        print(keys + ':' + str(students[i][keys]), end=",")
                    print()
            if count==0:
                print("没有改学生信息,无法删除")
            elif count!=0:
                index=int(input('请选择要删除的学生编号:'))
                while True:
                    if index not in col:
                        index=int(input("输入有误,请重新输入>>>"))
                    else:
                        students.remove(students[index])
                        print("删除成功!")
                        break
            # ==========================================================
            print("1、继续删除 \n", "2、返回上一层")
            flag = int(input(">>>"))
            if flag !=1:
                print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
                temp = input('>>>')
    elif temp=="q":
        break


代码二:(优化后的代码)
优化项:
1、每一层级均对输入的参数进行判断,符合对应的选项再执行,若不符合则要求重新输入参数
2、每一层级执行完逻辑代码,均可再次进行操作,系统性较强

students=[ ]
listitems=['1','2','3','q']

while True:
    print('==================千峰学生管理系统===============')
    print('1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统',sep= "")
    print("==================================================")
    items=input('>>>')


    while True:
        if items not in listitems:
            print("输入的编号有误,请重新输入")
            items=input('>>>')
        else:
            break
#添加学生:
    if items==listitems[0]:
        col=['1','2']
        while True:
            name = input('请输入学生的姓名:')
            age = input('请输入学生的年龄:')
            tel = input("请输入学生的电话号码:")
            # ============================业务逻辑代码====================================
            students.append({'name': name, 'ID': None, 'score': None, 'age': age, 'tel': tel})
            # ===========================================================================
            print("1、继续添加 \n", "2、返回上一层")
            flag=input(">>>")
            while True:
                if flag not in col:
                    print('输入的编号有误,请重新输入')
                    flag=input(">>>")
                else:
                    break
            if flag==col[0]:
                continue
            elif flag==col[1]:
                break
#查找学生:
    elif items==listitems[1]:
        col = ['1', '2','3']
        while True:
            print("1、查看所有学生信息 \n", "2、根据名字查看学生信息\n", "3、返回上一层",sep='')
            flag=input(">>>")
            while True:
                if flag not in col:
                    print('输入的编号有误,请重新输入')
                    flag=input(">>>")
                else:
                    break
            if flag==col[0]:
                print("*******************学生信息如下*****************************")
                # =========================业务逻辑代码======================
                for i in range(len(students)):
                    for keys in students[i]:
                        print(i, end="  ")
                        print(keys + ':' + str(students[i][keys]), end=",")
                    print()
                # ==========================================================
                print("*************************************************************")
                print("请继续您的操作:")
                continue
            elif flag==col[1]:
                print("*******************学生信息如下******************************")
                # =========================业务逻辑代码======================
                name = input("请输入学生姓名>>>")
                count = 0  # 记录学生信息个数,后面需判断有无学生信息
                for i in range(len(students)):
                    if name == students[i]['name']:
                        count += 1
                        for keys in students[i]:
                            print(i, end="  ")
                            print(keys + ':' + str(students[i][keys]), end=",")
                        print()
                if count == 0:
                    print("没有该学生信息")
                # ==========================================================
                print("*******************学生信息如下****************************")
                print("请继续您的操作:")
                continue
            elif flag==col[2]:
                break
#删除学生:
    elif items==listitems[2]:
        col=['1','2']
        indexs = []  # 用于记录学生编号,后面判断输入的学生编号是否有误
        count = 0  # 用于记录查找的学生信息个数,判断有无学生信息
        while True:
            name = input("请输入要删除的学生姓名:")
            # =========================业务逻辑代码======================
            for i in range(len(students)):
                if name == students[i]['name']:
                    count += 1
                    indexs.append(str(i))
                    for keys in students[i]:
                        print(i, end="  ")
                        print(keys + ':' + str(students[i][keys]), end=",")
                    print()
            if count == 0:
                print("没有改学生信息,无法删除")
            elif count != 0:
                index = input('请选择要删除的学生编号:')
                while True:
                    if index not in indexs:
                        index = input("输入有误,请重新输入>>>")
                    else:
                        students.remove(students[int(index)])
                        print("删除成功!")
                        print("******************************************")
                        break
            print("请继续您的操作:")
            print("1、继续删除 \n", "2、返回上一层",sep="")
            flag = input(">>>")
            while True:
                if flag not in col:
                    print('输入的编号有误,请重新输入')
                    flag=input(">>>")
                else:
                    break
            if flag==col[0]:
                continue
            elif flag==col[1]:
                break
            # ==========================================================

#退出系统:
    elif items==listitems[3]:
        break

相关文章

网友评论

      本文标题:Day07--课后作业(学生管理系统)

      本文链接:https://www.haomeiwen.com/subject/sgeuaftx.html