美文网首页
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