鱼C论坛

 找回密码
 立即注册
查看: 3243|回复: 10

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

[复制链接]
发表于 2022-4-4 17:50:25 | 显示全部楼层 |阅读模式
60鱼币
本帖最后由 yangbaowen 于 2022-4-4 19:29 编辑

使用python设计一个小型的学生宿舍管理系统,系统用户为宿舍管理员。
功能要求:
(1)学生信息:学号,姓名,性别(男/女),宿舍房间号,联系电话。
(2)系统功能如下。
1.可按学号查找某一位学生的具体信息。
2.可以录入新的学生的信息。
3.可以显示现有的所有的学生的信息。
程序要求:
(1)使用函数,列表,字典,字符串,条件循环等。
(2)程序规模在80~200行。
最佳答案
2022-4-4 17:50:26
代码(记得选为最佳答案哦!):
  1. def clear():
  2.     global info
  3.     info = {}

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

  13. def add():
  14.     global info
  15.     temp = []
  16.     temp2 = input('请输入学号')
  17.     if temp2 in info:
  18.         print('字典中已有此人')
  19.     else:
  20.         temp.append('姓名:'+input('请输入姓名'))
  21.         temp.append('性别:'+input('请输入性别'))
  22.         temp.append('宿舍房间号:'+input('请输入宿舍房间号'))
  23.         temp.append('联系电话:'+input('请输入联系电话'))
  24.         info[temp2] = temp


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

  32. def modify():
  33.     global info
  34.     temp = input('请输入要修改学员的学号')
  35.     if temp not in info:
  36.         print('字典中没有此人')
  37.     else:
  38.         temp.append(input('请输入姓名'))
  39.         temp.append(input('请输入性别'))
  40.         temp.append(input('请输入宿舍房间号'))
  41.         temp.append(input('请输入联系电话'))
  42.         info[temp2] = temp

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

  51. def all():
  52.     global info
  53.     for each in info:
  54.         temp = each
  55.         temp2 = info.get(temp,'没有此人!')
  56.         print('学号:',temp)
  57.         for each in temp2:
  58.             print(each,end='')
  59.         print('\n')

  60. clear()
  61. while True:
  62.     introduction()
  63.     i = str(input('请输入功能序号:'))
  64.     if i == '1':
  65.         add()
  66.     elif i == '2':
  67.         delete()
  68.     elif i == '3':
  69.         modify()
  70.     elif i == '4':
  71.         search()
  72.     elif i== '5':
  73.         all()
  74.     elif i == '6':
  75.         break
  76.     else:
  77.         print('输入功能有误,请重新输入')
复制代码

最佳答案

查看完整内容

代码(记得选为最佳答案哦!):
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-4 17:50:26 | 显示全部楼层    本楼为最佳答案   
代码(记得选为最佳答案哦!):
  1. def clear():
  2.     global info
  3.     info = {}

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

  13. def add():
  14.     global info
  15.     temp = []
  16.     temp2 = input('请输入学号')
  17.     if temp2 in info:
  18.         print('字典中已有此人')
  19.     else:
  20.         temp.append('姓名:'+input('请输入姓名'))
  21.         temp.append('性别:'+input('请输入性别'))
  22.         temp.append('宿舍房间号:'+input('请输入宿舍房间号'))
  23.         temp.append('联系电话:'+input('请输入联系电话'))
  24.         info[temp2] = temp


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

  32. def modify():
  33.     global info
  34.     temp = input('请输入要修改学员的学号')
  35.     if temp not in info:
  36.         print('字典中没有此人')
  37.     else:
  38.         temp.append(input('请输入姓名'))
  39.         temp.append(input('请输入性别'))
  40.         temp.append(input('请输入宿舍房间号'))
  41.         temp.append(input('请输入联系电话'))
  42.         info[temp2] = temp

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

  51. def all():
  52.     global info
  53.     for each in info:
  54.         temp = each
  55.         temp2 = info.get(temp,'没有此人!')
  56.         print('学号:',temp)
  57.         for each in temp2:
  58.             print(each,end='')
  59.         print('\n')

  60. clear()
  61. while True:
  62.     introduction()
  63.     i = str(input('请输入功能序号:'))
  64.     if i == '1':
  65.         add()
  66.     elif i == '2':
  67.         delete()
  68.     elif i == '3':
  69.         modify()
  70.     elif i == '4':
  71.         search()
  72.     elif i== '5':
  73.         all()
  74.     elif i == '6':
  75.         break
  76.     else:
  77.         print('输入功能有误,请重新输入')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-4 21:23:11 | 显示全部楼层
本帖最后由 qq1151985918 于 2022-4-4 21:31 编辑

网上搜一大把,自己做也很简单的嘛,要不了一个小时就做好了
论坛搜索 通讯录,自己修改下就好了,一大把
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-4 21:24:00 From FishC Mobile | 显示全部楼层
这不够优秀,需要添加数据库,做B/S或者GUI
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-4 23:05:59 | 显示全部楼层
  1. """
  2. 系统简介:添加学员,删除学员,修改学员信息,查询学员信息,显示所有学员信息,退出系统
  3. 程序步骤分析
  4.     1 显示功能界面
  5.     2 用户输入功能序号
  6.     3 根据用户输入的功能序号,执行不同的功能(函数)
  7. """


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



  17. def add_info():
  18.     """添加学员信息"""
  19.     new_id = input('请输入学号')
  20.     new_name = input('请输入姓名')
  21.     new_gender = input('请输入性别')
  22.     new_housenumber = input('请输入宿舍房间号')
  23.     new_tel = input('请输入联系电话')
  24.     global info
  25.     for i in info:
  26.         if new_name == i['name']:
  27.             print('此用户已存在')
  28.             return    #return作用:退出当前函数,后面添加的信息不执行
  29.     info_dict = dict()
  30.     info_dict['id'] = new_id
  31.     info_dict['name'] = new_name
  32.     info_dict['gender'] = new_gender
  33.     info_dict['housenumber'] = new_housenumber
  34.     info_dict['tel'] = new_tel
  35.     info.append(info_dict)
  36.     print(info)




  37. def del_info():
  38.     """删除学员"""
  39.     del_name = input('请删除要删除学员的姓名')
  40.     global info
  41.     for i in info:
  42.         if del_name == i['name']:
  43.             info.remove(i)
  44.             break
  45.     else:
  46.         print('该学员不存在')
  47.     print(info)
  48.    
  49.    
  50.    
  51.    
  52. def modify_info():
  53.     """修改学员信息的函数"""
  54.     modify_name = input('请输入需要修改学员信息的名字')
  55.     global info
  56.     for i in info:
  57.         if modify_name == i['name']:
  58.             #将tel对应的值修改,并终止此循环
  59.             i['tel'] = input('请输入修改后的手机号')
  60.             break
  61.     else:
  62.         print('该学员不存在')
  63.     print(info)
  64. def search_name():
  65.     """查询学员信息的函数"""
  66.     search_name1 = input('请输入要查询学员的姓名')
  67.     global info
  68.     for i in info:
  69.         if search_name1 == i['name']:
  70.             print('查询到的信息如下')
  71.             print("该学员的学号是{i['id]},姓名是{i['name']},性别是{i['gender']},宿舍房间号是{i['housenumbber']},联系电话是{i['tel']}")
  72.             break
  73.     else:
  74.         pass

  75.    
  76. def print_all():
  77.     """显示所有学员信息的函数"""
  78.     print('学号\t姓名\t性别\t宿舍号\t联系电话\t')
  79.     for i in info:
  80.         print(f"{i['id']}\t{i['name']}\t{i['gender']}\t{i['housenumber']}\t{i['tel']}")
  81.         
  82.         
  83.         
  84.         
  85.         
  86.         
  87. while True:#系统需循环使用,当用户输入功能6才退出循环
  88.     info_print()
  89.     user_num = input('请输入功能序号:')
  90.     if user_num == '1':
  91.         add_info()
  92.     elif user_num == '2':
  93.         del_info()
  94.     elif user_num == '3':
  95.         modify_info()
  96.     elif user_num == '4':
  97.         search_name()
  98.     elif user_num == '5':
  99.         print_all()
  100.     elif user_num =='6':
  101.         exit_flag = input('确认要退出系统吗?Yes or Not')
  102.         if exit_flag == 'Yes':
  103.             break
  104.     else:
  105.         print('输入功能有误,请重新输入')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-5 09:03:39 | 显示全部楼层

学员名字不是唯一值,用学号做关键字更稳妥一些
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 22:39:05 | 显示全部楼层
niubro 发表于 2022-4-5 09:03
学员名字不是唯一值,用学号做关键字更稳妥一些

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 22:39:48 | 显示全部楼层
songwentao 发表于 2022-4-4 17:50
代码(记得选为最佳答案哦!):

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 22:40:23 | 显示全部楼层
qq1151985918 发表于 2022-4-4 21:23
网上搜一大把,自己做也很简单的嘛,要不了一个小时就做好了
论坛搜索 通讯录,自己修改下就好了,一大把

🆗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 22:44:07 | 显示全部楼层
wp231957 发表于 2022-4-4 21:24
这不够优秀,需要添加数据库,做B/S或者GUI

哈哈,不太懂,刚学
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-8 23:14:22 | 显示全部楼层
  1.      info[temp2] = temp
复制代码
第47行报错了Undefined name'temp2'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 09:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表