利用python编写学籍管理系统实现下图功能:
注:使用python3.x编写
所要实现的功能
1、能循环输入内容
2、展示功能
- 1新增学生
- 2显示全部
- 3查询学生
- 4退出系统
3、让用户输入希望执行的操作
4、新增列表
- 提示用户输入姓名
- 输入电话
- 输入QQ号
- 输入邮箱
- 提示新增信息成功
5、显示全部
- 将所有信息打印出来
6、查询学生
一、普通实现:
student = [{'姓名':'小明','电话':'666666','QQ':'222222','邮箱':'123@qq.com'}]
student1 = ['姓名','电话','QQ','邮箱']
while True:
print('学籍管理系统')
print('-'*50)
print('1:新增学生',
'2:显示全部',
'3:查询学生',
'4:退出系统')
print('-'*50)
dic={}
sr = input('请输入所要执行的序号:')
if sr == '4':
print('程序退出中……!')
break
if sr.isdigit():#判断输入是否为数字
sr = int(sr)
if 0<sr<4:#判断输入是否超出范围
if sr == 1:
name = input('输入姓名:')
tel = input('输入电话:')
QQ = input('输入QQ:')
mail = input('输入邮箱:')
dic['姓名'] = name
dic['电话'] = tel
dic['QQ'] = QQ
dic['邮箱'] = mail
student.append(dic)#将字典添加到列表
print('用户添加成功!')
if sr == 2:
for i in student1:
print(i.ljust(5), end='\t\t\t')#ljust左对齐
print()
for g in student:
for h in g.values():
print(h.ljust(5),end='\t\t\t')
print()
continue
if sr == 3:
cz = input('请输入所查询的姓名:')
for a in range(0,len(student)):#查看student中字典存在个数
if student[a]['姓名'] == cz:#当输入的姓名和字典中的姓名一样就往下执行
print('姓名:{} 电话:{} QQ:{} 邮箱:{}'.format(student[a]['姓名'],student[a]['电话'],
student[a]['QQ'],student[a]['邮箱']))
print('[1]修改 [2] 删除 [0] 返回上一级菜单,请选择要执行的操作。')
caozuo = input('请输入你要执行操作的序号:')
if caozuo == '0':
print('正在返回上一级菜单')
break
if caozuo == '1':
new_name = input('请输入新的姓名')
new_tel = input('请输入新的电话')
new_qq = input('请输入新的QQ')
new_mail = input('请输入新的邮箱')
student[a]['姓名'] = new_name
student[a]['电话'] = new_tel
student[a]['QQ'] = new_qq
student[a]['邮箱'] = new_mail
print('修改成功!!')
if caozuo == '2':
del student[a]
print('删除成功##')
elif a == len(student) - 1:
print('请输入的姓名不存在')
else:
print('看清范围在输入。。。')
else:
print('请输入数字!!')
运行测试:
续!
二、函数实现:
list1 = [] #保存所有学员信息
def show_menu():
"""
展示功能
"""
print('学籍管理系统')
print('-' * 50)
print('1:新增学生',
'2:显示全部',
'3:查询学生',
'4:退出系统',)
print('-' * 50)
def add_student():
"""
新增学员函数
:return:
"""
print('-' * 20 +'新增学员'+'-' * 20)
dic = {}
dic['name'] = input('请输入姓名:')
dic['tel'] = input('请输入电话:')
dic['QQ'] = input('请输入QQ:')
dic['mail'] = input('请输入邮箱:')
list1.append(dic)
print('添加名片成功')
def show_student():
"""
显示所有学员信息
:return:
"""
print('-' * 20 +'显示所有学员内容'+'-' * 20)
if not list1:
print('还没有添加学员')
return
for i in['姓名','电话','QQ','邮箱']:
print(i,end='\t\t\t')
print()
for dic in list1:
name = dic['name']
tel = dic['tel']
QQ = dic['QQ']
mail = dic ['mail']
print('{}\t\t\t{}\t\t\t{}\t\t\t{}\t\t\t'.format(name,tel,QQ,mail))
def refer_name():
"""
查询学员信息
:return:
"""
print('-' * 20 +'查询学员'+'-' * 20)
seek_name = input('请输入想要查询的名字:')
for dic in list1:
if seek_name == dic['name']:
print3('姓名:{}\t\t\t电话:{}\t\t\tQQ:{}\t\t\t邮箱:{}\t\t\t'.format(dic['name'],
dic['tel'],dic['QQ'],dic['mail']))
print('[1]修改[2]删除[0]返回上一级菜单,请选择要执行的操作。')
num = input('请输入要操作的序号:')
if num in ['1','2','0']:
if num == '1':
dic['name'] = input_card_info(dic['name'],'请输入新的姓名:')
dic['tel'] = input_card_info(dic['tel'],'请输入新的电话:')
dic['QQ'] = input_card_info(dic['QQ'],'请输入新的QQ:')
dic['mail'] = input_card_info(dic['mail'],'请输入新的邮箱:')
print('修改成功')
return
elif num == '2':
list1.remove(dic)
print('删除成功')
return
elif num == '0':
return
else:
print('输入有误')
else:
print('你输入的姓名不存在!')
def input_card_info(dic_value,tip_massage):
"""
判断用户是否输入了内容
"""
#提示用户输入内容
result_str = input(tip_massage)
#针对用户输入的进行判断,如果输入直接返回结果
if len(result_str) > 0:
return result_str
#如果没有输入内容将返回原来内容
else:
return dic_value
while True:
show_menu()
xuhao = input('请输入想要执行的序号:')
list = ['1','2','3','4']
if xuhao in list:
if xuhao == '1':
add_student()
elif xuhao == '2':
show_student()
elif xuhao == '3':
refer_name()
elif xuhao == '4':
print('程序退出中!!!')
break
else:
print('输入有误,请看清序号!')
运行测试:
续!
三、面向对象实现
class StudentManage(object):
lst1 = [] # 保存所有学员信息
@staticmethod
def show_menu():
"""
展示功能
"""
print('-' * 40)
print('1:新增名片',
'2:显示全部',
'3:查询名片',
'4:退出系统')
print('-' * 40)
def add_student(self):
"""
新增学员函数
"""
print('-----------新增名片---------------')
dic = {}
dic['name'] = input('请输入姓名:')
dic['age'] = input('请输入年龄:')
dic['tel'] = input('请输入电话:')
dic['mail'] = input('请输入邮箱:')
self.lst1.append(dic)
print('添加名片成功!')
def show_student(self):
"""
显示所有学员信息
"""
print('------------显示所有名片内容--------------')
if not self.lst1:
print('还没有添加学员。')
return
for i in ['姓名', '年龄', '电话', '邮箱']:
print(i, end='\t\t\t')
print()
for dic in self.lst1:
name = dic['name']
age = dic['age']
tel = dic['tel']
mail = dic['mail']
print('{}\t\t\t{}\t\t\t{}\t\t\t{}\t\t\t'.format(name, age, tel, mail))
def refer_name(self):
"""
查询学员信息
"""
print('-------------查询名片--------------')
seek_name = input('请输入想要查询的名字:')
for dic in self.lst1:
if seek_name == dic['name']:
print('姓名:{}\t\t\t年龄:{}\t\t\t电话:{}\t\t\t邮箱:{}\t\t\t'.format(dic['name'], dic['age'], dic['tel'],
dic['mail']))
print('【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。')
num = input('请输入操作的序号:')
if num in ['1', '2', '0']:
if num == '1':
dic['name'] = self.input_card_info(dic['name'], '请输入新姓名:')
dic['age'] = self.input_card_info(dic['age'], '请输入新年龄:')
dic['tel'] = self.input_card_info(dic['tel'], '请输入新电话:')
dic['mail'] = self.input_card_info(dic['mail'], '请输入新邮箱:')
print('修改成功!')
return
elif num == '2':
self.lst1.remove(dic)
print('删除成功!')
return
elif num == '0':
return
else:
print('输入有误。')
else:
print('你输入的姓名不存在!')
def input_card_info(self, dic_value, tip_massage):
"""判断用户是否输入了内容"""
# 1.提示用户输入内容
result_str = input(tip_massage)
# 2.针对用户输入的进行判断,如果输入,直接返回结果
if len(result_str) > 0:
return result_str
# 3.如果没有输入内容将会返回原来内容
else:
return dic_value
while True:
StudentManage.show_menu()
student = StudentManage()
xuhao = input('请输入想要执行的序号:')
lst = ['1', '2', '3', '4']
if xuhao in lst:
if xuhao == '1':
student.add_student()
elif xuhao == '2':
student.show_student()
elif xuhao == '3':
student.refer_name()
elif xuhao == '4':
print('程序退出中--->盘它')
break
else:
print('输入有误,请看清序号!')