python宿舍管理系统!

要求可添加书学生星系,修改,删除,浏览,查找,宿舍统计,导出学生信息。可设计登录和退出页面


#功能区页面
def MainMenu_hyb():
    print('*'*80)
    print("|---------------------------|")
    print("|----请输入选择编号(0~7)----|")
    print("|---1--添加学生住宿信息-------|")
    print("|---2--修改学生住宿信息-------|")
    print("|---3--删除学生信息-----------|")
    print("|---4--浏览学生信息-----------|")
    print("|---5--查找住宿信息-----------|")
    print("|---6--宿舍统计---------------|")
    print("|---7-导出学生信息------------|")
    print("|---0--退出系统---------------|")

#查询学生信息页面
def p_look_hyb():
    print("*"*80)
    print("----------------------------")
    print("-----请输入编号--------------")
    print("-----1-按照学生姓名查询------")
    print("-----2-按宿舍号查询----------")
    print("-----3-按照宿舍楼查询--------")
    print("-----4-按照学号查询----------")
    print("-----5-返回-----------------")
    print("---------------------------")

#登录页面
def denglu1():
    print("------------------请确定是否继续登录?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")


#登录功能是否进行代码
#类似函数有很多,解释都一样!!!!!!!!!!!!!!!!!!!!!!!!!
def denglu_hyb():
    Stop_hyb=True
    while Stop_hyb:#定义一个while循环
        denglu1()
        m=input("请输入菜单选项:1或0:")
        if int(m)==1:
            denglu()#若进行登录就跳到此函数当中
        elif int(m)==0:
            Stop_hyb = False#不进行就返回
        else:
            print("不支持该选项!")
            
#是否进行注册print页面
def zhuce_hyb2():
    print("------------------请确定是否继续注册?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")


#类似代码,省略解释
def zhuce_hyb():
    Stop_hyb=True
    while Stop_hyb:
        zhuce_hyb2()
        m=input("请输入菜单选项:1或0:")
        if int(m)==1:
            zhuce_hyb1()
        elif int(m)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")

def tc():
    print("------------------请确定是否继续退出?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")



def tc_hyb():
    Stop_hyb=True
    while Stop_hyb:
        tc()
        m=input("请输入菜单选项:1或0:")
        if int(m)==1:
            exit(0)#终止程序的简单粗暴之法,很多种用法!使用要实现import sys这个库不用装,系统自带。
        elif int(m)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")


      
#统计功能
#统计功能里用宿舍号查询实现代码
def sh_all_hyb():
    global p_hyb
    ssh=input("输入宿舍号:")
    f_hyb=False
    n=0
    for key in p_hyb.keys():
        if p_hyb[key]['宿舍号']==ssh:
            print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            #print('学号','姓名',"性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
            #for key,value in p_hyb.items():
                #for pr_hyb in value.values():
                    #print(pr_hyb,end=' '*2)
                #print(' '*2)
            n+=1
    print(n)






#统计功能,按照宿舍楼统计
def sushelou_all_hyb():
    global p_hyb
    sushelou=input("输入宿舍楼号:")
    f_hyb=False
    n=0
    for key in p_hyb.keys():
        if p_hyb[key]['宿舍楼']==sushelou:
            print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
            n+=1
    print(n)

#统计功能,按照楼层号统计
def lch_all_hyb():
    global p_hyb
    lch=input("输入楼层号:")
    f_hyb=False
    n=0
    for key in p_hyb.keys():
        if p_hyb[key]['楼层号']==lch:
            print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
            n+=1
    print(n)

def all():
    print("-------------------------------------")
    print("-----请输入你要选择的编号(1~4)--------")
    print("-----1-按照宿舍号统计--------------")
    print("-----2-按照宿舍楼统计------------")
    print("-----3-按照楼层号统计-----------------")
    print("-----4-返回--------------------------")
    print("-------------------------------------")

#统计功能里的各种按钮实现
def all_hyb():
    Stop_hyb=True
    while Stop_hyb:
        all()
        j= input("请输入菜单选项:1 ~4:")
        if int(j)==1:
            #按照宿舍号统计
            sh_all_hyb()
        elif int(j)==2:
            #按照宿舍楼统计
            sushelou_all_hyb()
        elif int(j)==3:
            #按照楼层号统计
            lch_all_hyb()
        elif int(j)==4:
            Stop_hyb = False
        else:
            print("不支持该选项")

def in_hyb_print():
    print("你将导入文件,此系统导入固定文件student。txt,请确定是否继续?")
    print("--------------------------是-1----------------------")
    print("--------------------------否-0----------------------")


def out_hyb():
    Stop_hyb=True
    while Stop_hyb:
        in_hyb_print()
        j= input("请输入菜单选项:1或0:")
        if int(j)==1:
            out_student_hyb()
        elif int(j)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")


def print_add_hyb():
    print("------------------请确定是否继续?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")



def add_hyb1():
    Stop_hyb=True
    while Stop_hyb:
        print_add_hyb()
        m= input("请输入菜单选项:1或0:")
        if int(m)==1:
            add_hyb()
        elif int(m)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")

def change_hyb1():
    print("------------------请确定是否继续?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")

def change_hyb2():
    Stop_hyb=True
    while Stop_hyb:
        change_hyb1()
        n= input("请输入菜单选项:1或0:")
        if int(n)==1:
            change_hyb()
        elif int(n)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")


def del_hyb1():
    print("------------------请确定是否继续?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")

def del_hyb2():
    Stop_hyb=True
    while Stop_hyb:
        del_hyb1()
        k= input("请输入菜单选项:1或0:")
        if int(k)==1:
            del_p_hyb()
        elif int(k)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")



def zhuce1():
    print("------------------请确定是否继续?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")



def first():
    print("------------欢迎来到北京联合大学宿舍管理系统-----------")
    print("---请点击登录(1)或先注册用户(2)退出系统请按(0)---")


def scan():
    print("------------------请确定是否继续?-------------------")
    print("-----------------------是-1-------------------------")
    print("-----------------------否-0-------------------------")

def scan_hyb():
    Stop_hyb=True
    while Stop_hyb:
        scan()
        k= input("请输入菜单选项:1或0:")
        if int(k)==1:
            see()
        elif int(k)==0:
            Stop_hyb = False
        else:
            print("不支持该选项!")




#添加学生信息功能
def add_hyb():
    global p_hyb
    id=input ("学号:")
    name=input("姓名:")
    sex_hyb=input("性别:")
    old_hyb=input("年龄:")
    count=input("班级:")
    sushelou=input("宿舍楼:")
    lch=input("楼层号:")
    ssh=input("宿舍号:")
    new_p_hyb={
        "学号":id,
        "姓名":name,
        "性别":sex_hyb,
        "年龄":old_hyb,
        "班级":count,
        "宿舍楼":sushelou,
        "楼层号":lch,
        "宿舍号":ssh
    }
    p_hyb[id]=new_p_hyb#主字典获取信息,若遇相同,功能都一样!!!!!!!!!!!!
    #prod[ssh]=newProd
    print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
    for key,value in p_hyb.items():
        for p in value.values():
            print(p,end=' '*2,)
        print(' '*2)

#def zhuce_hyb():
    #Stop_hyb=True
    #while Stop_hyb:
        #zhuce1()
        #k= input("请输入菜单选项:1或0:")
        #if int(k)==1:
            #zhuce_hyb1()
        #elif int(k)==0:
            #Stop_hyb=False
        #else:
            #print("不支持该选项!")
#注册功能!!
def zhuce_hyb1():
    #p_zhuce_hyb={}
    #global p_zhuce_hyb

    id1=input ("账号:")
    id2=input("密码:")
    name=input("姓名:")
    new_zhuce_hyb={
        "账号":id1,
        "密码":id2,
        "姓名":name
    }
    global p_zhuce_hyb
    global p_hyb
    p_zhuce_hyb[id1]=new_zhuce_hyb
    #prod[ssh]=newProd
    print("账号","密码","姓名")
    for key,value in p_zhuce_hyb.items():
        for p in value.values():
            print(p,end=' '*2,)
        print(' '*2)
    print("恭喜你,注册成功!")


#def denglu():
    #l_hyb=False
    #for i in range(3):
        #id3=input("请输出你的账号:")
        #id4=input("请输入你的密码:")
        #name1=input("请输入你的名字:")
        #if id3 and id4 and name1 in p_zhuce_hyb.items():
            #print("恭喜你登录成功!")
            #denglu_hyb()
        #else:
            #print("登录失败!")
            #print("请查看你的用户是否正确?")
            #print("若你忘记密码,请联系管理员!")
    #if l_hyb is False:
        #print("输入超过三次,你的id已经被删除!")
        #del p_zhuce_hyb[id3]
#登录功能!!
def denglu():
    global p_zhuce_hyb
    global p_hyb
    f_hyb=True
    id1=input("请输出你的账号:")
    id2=input("请输入你的密码:")
    name=input("请输入你的名字:")

    #if_continue=0
    while f_hyb:
        #if if_continue==1:
            #return
        #a_hyb=True
    #n=0
        #while a_hyb:
        for key in p_zhuce_hyb.keys():#先遍历键!!若遇一样,功能都相同!!!!
            #if if_continue==1:
                #return
            if p_zhuce_hyb[key]['账号']==id1 and p_zhuce_hyb[key]['密码']==id2 and p_zhuce_hyb[key]['姓名']==name:#判断账号,密码和姓名是否都在字典里!!!若遇一样,功能都相同!!!!
                print("恭喜你登录成功!")
                print("欢迎来到北京联合大学宿舍管理系统")
                #global p_zhuce_hyb,p_hyb
                mai_hyb()#若登录成功,则跳到主功能区页面!!!!
                break

        else:
            print("账号或密码错误,请重新输入!")
            #global p_zhuce_hyb,p_hyb
            denglu()#密码错误后,提示你密码错误,同时跳回函数开头,重新输入账号密码名字!
                #a_hyb=False
                #f_hyb=False



        #if f_hyb==False:
            #print("登录错误!")
            #f_hyb=False


#主功能区页面!!!
def mai_hyb():
    global p_zhuce_hyb
    ma_hyb=True
    while ma_hyb:
        MainMenu_hyb()
        x = input("请输入菜单选项:0 ~7:")
    #异常处理
        try :
            a=int(x)
        except Exception:
            print ("error")
            continue
        if int(x)==1:
            add_hyb1()#添加学生住宿信息
        elif int(x)==2:
            change_hyb2()#修改学生住宿信息
        elif int(x)==3:
            del_hyb2()#删除学生住宿信息
        elif int(x)==4:
            scan_hyb()#浏览学生住宿信息
        elif int(x)==5:
            look_hyb()#查找学生住宿信息
        elif int(x)==6:#统计学生住宿信息
            all_hyb()
        elif int(x)==7:
            out_hyb()#导出学生信息
        elif int(x)==0:
            print("感谢使用本软件!")
            print("是否退出系统?")
            print("----是-任意键----")
            print("----否-1----")
            #以下,通俗理解就是做任意键,若你输入字母,系统直接将2赋值给b,意思是,无论如何,只要你输入字母,b的值都是2,当然除了1,其他数字也行
            try:
                b=int(input("请输入你的选择:"))
            except:
                b=2
            #tuichu()
            #return
            if b==1:
                #global p_zhuce_hyb,p_hyb
                Stop_hyb = False
                #sys.exit(1)
            else:

                mai_hyb1()
        else:
            print("不支持的选项")


#删除学生信息!!!
def del_p_hyb():
    global p_hyb
    print("请输入要删除的住宿生学号,输入0返回")
    id=input("学生学号:")
    if int(id)==0:
        return
    else:
        if id not in p_hyb.keys():#遍历,不存在就输出,叫你重新输入!
            print("该学生不存在!")
        else:
            del p_hyb[id]#删除字典值固定代码
            print("学生信息已删除!")


#浏览功能实现
def see():
    global p_hyb
    print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
    for key,value in p_hyb.items():
        for p in value.values():
            print(p,end=' '*2)
        print(' '*2)



#修改学生信息功能是在
def change_hyb():
    global p_hyb
    id=input("学生学号:")
    if id not in p_hyb.keys():
        print("此学生不存在")
    else:
        print("请重新修改以下信息!")
        print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
        for key,val in p_hyb[id].items():
            print(val,end=' '*2)
        print('')
        name=input("姓名")
        sex_hyb=input("性别:")
        old_hyb=input("年龄:")
        count=input("班级")
        sushelou=input("宿舍楼")
        lch=input("楼层号")
        ssh=input("宿舍号")
        #s_count=input("销售量")
        new_p_hyb={
            "学号":id,
            "姓名":name,
            #这里需要将str转为float,或者计算时进行转换
            "性别":sex_hyb,
            "年龄":old_hyb,
            "班级":count,
            "宿舍楼":sushelou,
            "楼层号":lch,
            "宿舍号":ssh
            #"销售量":s_count
        }
        p_hyb[id]=new_p_hyb
        #prod[ssh]=newProd
        print("信息已更改!")
        print("修改后的学生信息:")
        print('学号','姓名',"性别","年龄","班级","宿舍楼","楼层号","宿舍号")
        for key,val in p_hyb[id].items():
            print(val,end=' '*2)
        print('')


#进行查询功能执行按钮
def look_hyb():
    Stop_hyb=True
    while Stop_hyb:
        p_look_hyb()
        i = input("请输入菜单选项:1 ~3:")
        if int(i)==1:
            #按照学生姓名查询
            Name_hyb()
        elif int(i)==2:
            #按剩余数量查询
            ssnumber_hyb()
        elif int(i)==5:
            #返回
            Stop_hyb = False
        elif int(i)==4:
            #按照学号查询
            xhcx()
        elif int(i)==3:
            #按照宿舍楼查询
            Ssl_hyb()
        else:
            print("不支持该选项")

#查询功能,学号查询
def xhcx():
    global p_hyb#全局变量,若遇相同,功能都一样!!!!!!!
    id=input("学生学号:")
    if id not in p_hyb.keys():
        print("此学生不存在")
    else:
        print("学号","姓名","性别","年龄","班级","宿舍楼","楼层号","宿舍号")
        for key,val in p_hyb[id].items():#遍历字典,若遇一样,功能都一样!!!!!!!!!!!!
            print(val,end=' '*2)#打印,若遇一样,功能相同!!!!!!!!!
        print(" ")

#查询功能,宿舍号查询
def ssnumber_hyb():
    global p_hyb
    ssh=input("输入宿舍号:")
    f_hyb=False
    for key in p_hyb.keys():
        if p_hyb[key]['宿舍号']==ssh:#如果输入的号码与p_hyb字典里一样,就执行下一步,若遇到一样代码,功能都一样!!!!!!!!!
    #if "name" in prod:
            print("")
            print("查询到学生信息信息:\n")
            print('学号','姓名',"性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
    if f_hyb==False:
        print("学生不存在!")









#查询功能,按名字查询!!!
def Name_hyb():
    global p_hyb
    name=input("输入学生的名字:")
    f_hyb=False
    for key in p_hyb.keys():
        if p_hyb[key]['姓名']==name:
    #if "name" in prod:
            print("")
            print("查询到学生信息信息:\n")
            print('学号','姓名',"性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
    if f_hyb==False:
        print("学生不存在!")

#查询功能,按照宿舍楼潮汛
def Ssl_hyb():
    global p_hyb
    sushelou=input("输入楼层号:")
    f_hyb=False
    for key in p_hyb.keys():
        if p_hyb[key]['宿舍楼']==sushelou:
            print("")
            print("查询到学生信息信息:\n")
            print('学号','姓名',"性别","年龄","班级","宿舍楼","楼层号","宿舍号")
            for key,val in p_hyb[key].items():
                print(val,end=' '*2)
            print('')
            f_hyb=True
    if f_hyb==False:
        print("学生不存在!")

#导出学生信息!!!!这个知识点很重要!!!
def out_student_hyb():
    global p_hyb
    file=open('C:\\python\\student.txt','w')#先打开一个空文件,在这里,建议去查一下‘w’的用法,还有r等!!!!
    for i,j in sorted(p_hyb.items()):#遍历字典,sorted让字典有序打入文件当中!
        file.write(str(i)+' '+str(j)+'\n')#写入文件
    file.close()#写入后要关闭文件!!
    print("导入数据成功,请在固定文件查找!")
    print("同时,请你在取走文件的同时,将内容格式化,文件名保留!")


#def denglu_hyb():





#def mai_hyb():
#import sys




#in_first()
p_zhuce_hyb={}#定义一个空字典!!下同!!!
p_hyb={}
import sys#停止程序,库
def mai_hyb1():
    global p_zhuce_hyb#全局变量!
    global p_hyb
    while True:#全局变量!
        first()#系统页面区
        x=int(input("请输入你选择的项目:"))
        #异常处理
        try :
            a=int(x)
        except Exception:
            print ("error")
            continue
        if int(x)==1:

            denglu_hyb()#登录实现函数
                #break
        elif int(x)==2:
            #global p_zhuce_hyb,p_hyb
            zhuce_hyb()#注册实现函数
        elif int(x)==0:
            tc_hyb()#推出实现函数
        else:
            print("不支持该选项")

if __name__=="__main__":#主函数,整段代码先从这里运行
    mai_hyb1()















  • 19
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值