yangbaowen 发表于 2022-4-4 17:50:25

使用python设计一个小型的学生宿舍管理系统,系统用户为宿舍管理员。

本帖最后由 yangbaowen 于 2022-4-4 19:29 编辑

使用python设计一个小型的学生宿舍管理系统,系统用户为宿舍管理员。
功能要求:
(1)学生信息:学号,姓名,性别(男/女),宿舍房间号,联系电话。
(2)系统功能如下。
1.可按学号查找某一位学生的具体信息。
2.可以录入新的学生的信息。
3.可以显示现有的所有的学生的信息。
程序要求:
(1)使用函数,列表,字典,字符串,条件循环等。
(2)程序规模在80~200行。

songwentao 发表于 2022-4-4 17:50:26

代码(记得选为最佳答案哦!):
def clear():
    global info
    info = {}

def introduction():
    print('请选择功能.....')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员')
    print('4.查询学员')
    print('5.显示所有学员')
    print('6.退出系统')
    print('-'*20)

def add():
    global info
    temp = []
    temp2 = input('请输入学号')
    if temp2 in info:
      print('字典中已有此人')
    else:
      temp.append('姓名:'+input('请输入姓名'))
      temp.append('性别:'+input('请输入性别'))
      temp.append('宿舍房间号:'+input('请输入宿舍房间号'))
      temp.append('联系电话:'+input('请输入联系电话'))
      info = temp


def delete():
    global info
    temp = input('请输入要删除学员的学号')
    try:
      info.pop(temp)
    except KeyError:
      print('输入错误!没有学号为'+temp+'的人!')

def modify():
    global info
    temp = input('请输入要修改学员的学号')
    if temp not in info:
      print('字典中没有此人')
    else:
      temp.append(input('请输入姓名'))
      temp.append(input('请输入性别'))
      temp.append(input('请输入宿舍房间号'))
      temp.append(input('请输入联系电话'))
      info = temp

def search():
    global info
    temp = input('请输入要搜索学员的学号')
    temp2 = info.get(temp,'没有此人!\n')
    print('学号:',temp)
    for each in temp2:
      print(each,end='')
    print('\n')

def all():
    global info
    for each in info:
      temp = each
      temp2 = info.get(temp,'没有此人!')
      print('学号:',temp)
      for each in temp2:
            print(each,end='')
      print('\n')

clear()
while True:
    introduction()
    i = str(input('请输入功能序号:'))
    if i == '1':
      add()
    elif i == '2':
      delete()
    elif i == '3':
      modify()
    elif i == '4':
      search()
    elif i== '5':
      all()
    elif i == '6':
      break
    else:
      print('输入功能有误,请重新输入')

qq1151985918 发表于 2022-4-4 21:23:11

本帖最后由 qq1151985918 于 2022-4-4 21:31 编辑

网上搜一大把,自己做也很简单的嘛,要不了一个小时就做好了
论坛搜索 通讯录,自己修改下就好了,一大把

wp231957 发表于 2022-4-4 21:24:00

这不够优秀,需要添加数据库,做B/S或者GUI

yangbaowen 发表于 2022-4-4 23:05:59

"""
系统简介:添加学员,删除学员,修改学员信息,查询学员信息,显示所有学员信息,退出系统
程序步骤分析
    1 显示功能界面
    2 用户输入功能序号
    3 根据用户输入的功能序号,执行不同的功能(函数)
"""


def info_print():#显示功能界面
    print('请选择功能.....')
    print('1.添加学员')
    print('2.删除学员')
    print('4.查询学员')
    print('5.显示所有学员')
    print('6.退出系统')
    print('-'*20)
info = []



def add_info():
    """添加学员信息"""
    new_id = input('请输入学号')
    new_name = input('请输入姓名')
    new_gender = input('请输入性别')
    new_housenumber = input('请输入宿舍房间号')
    new_tel = input('请输入联系电话')
    global info
    for i in info:
      if new_name == i['name']:
            print('此用户已存在')
            return    #return作用:退出当前函数,后面添加的信息不执行
    info_dict = dict()
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['gender'] = new_gender
    info_dict['housenumber'] = new_housenumber
    info_dict['tel'] = new_tel
    info.append(info_dict)
    print(info)




def del_info():
    """删除学员"""
    del_name = input('请删除要删除学员的姓名')
    global info
    for i in info:
      if del_name == i['name']:
            info.remove(i)
            break
    else:
      print('该学员不存在')
    print(info)
   
   
   
   
def modify_info():
    """修改学员信息的函数"""
    modify_name = input('请输入需要修改学员信息的名字')
    global info
    for i in info:
      if modify_name == i['name']:
            #将tel对应的值修改,并终止此循环
            i['tel'] = input('请输入修改后的手机号')
            break
    else:
      print('该学员不存在')
    print(info)
def search_name():
    """查询学员信息的函数"""
    search_name1 = input('请输入要查询学员的姓名')
    global info
    for i in info:
      if search_name1 == i['name']:
            print('查询到的信息如下')
            print("该学员的学号是{i['id]},姓名是{i['name']},性别是{i['gender']},宿舍房间号是{i['housenumbber']},联系电话是{i['tel']}")
            break
    else:
      pass

   
def print_all():
    """显示所有学员信息的函数"""
    print('学号\t姓名\t性别\t宿舍号\t联系电话\t')
    for i in info:
      print(f"{i['id']}\t{i['name']}\t{i['gender']}\t{i['housenumber']}\t{i['tel']}")
      
      
      
      
      
      
while True:#系统需循环使用,当用户输入功能6才退出循环
    info_print()
    user_num = input('请输入功能序号:')
    if user_num == '1':
      add_info()
    elif user_num == '2':
      del_info()
    elif user_num == '3':
      modify_info()
    elif user_num == '4':
      search_name()
    elif user_num == '5':
      print_all()
    elif user_num =='6':
      exit_flag = input('确认要退出系统吗?Yes or Not')
      if exit_flag == 'Yes':
            break
    else:
      print('输入功能有误,请重新输入')

niubro 发表于 2022-4-5 09:03:39

yangbaowen 发表于 2022-4-4 23:05


学员名字不是唯一值,用学号做关键字更稳妥一些

yangbaowen 发表于 2022-4-5 22:39:05

niubro 发表于 2022-4-5 09:03
学员名字不是唯一值,用学号做关键字更稳妥一些

好的

yangbaowen 发表于 2022-4-5 22:39:48

songwentao 发表于 2022-4-4 17:50
代码(记得选为最佳答案哦!):

{:10_275:}

yangbaowen 发表于 2022-4-5 22:40:23

qq1151985918 发表于 2022-4-4 21:23
网上搜一大把,自己做也很简单的嘛,要不了一个小时就做好了
论坛搜索 通讯录,自己修改下就好了,一大把

🆗

yangbaowen 发表于 2022-4-5 22:44:07

wp231957 发表于 2022-4-4 21:24
这不够优秀,需要添加数据库,做B/S或者GUI

哈哈,不太懂,刚学

yangbaowen 发表于 2022-4-8 23:14:22

   info = temp第47行报错了Undefined name'temp2'
页: [1]
查看完整版本: 使用python设计一个小型的学生宿舍管理系统,系统用户为宿舍管理员。