要求可添加书学生星系,修改,删除,浏览,查找,宿舍统计,导出学生信息。可设计登录和退出页面
#功能区页面
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()