3484浏览
查看: 3484|回复: 6

[资源] 基于python的寝室管理系统

[复制链接]
题目:
学生信息包括
学号(唯一)  姓名  性别  年龄  寝室(一间寝室最多安排4人)
寝室编号 男生(100 101 102) 女生(200 201 202)

功能包括:
1. 可以录入学生信息
2. 录入过程中可以为其分配寝室(可选自动分配或手动分配,手动分配的话如果选择的寝室人员已满,提示重新分配)
3. 可以打印各寝室人员列表(做到表格打印是加分项)
4. 可以用学号索引打印特定学生信息,可以打印所有学生信息(做到表格打印是加分项)
5. 可以为学生调整寝室(一人调整到其他寝室,两人交换寝室等,自由发挥)
6. 程序启动时,将文件中的学生信息自动导入系统

  1. #!/usr/bin/python# -*- coding: UTF-8 -*-
  2. studentinformations=[]
  3. def recover():
  4.     global studentinformations
  5.     f=open("f1.txt",'r')
  6.     content1 = f.read()
  7.     studentinformations=eval(content1)
  8.     f.close()
  9.     zhuye()
  10. def zhuye():
  11.     while True:
  12.         printmenu()
  13.         key=int(input("请输入功能对应的数字:"))
  14.         if key==1:
  15.             addstudentinformations()
  16.         elif key==2:
  17.             delstudentinformations()
  18.         elif key==3:
  19.             modifystudentinformations()
  20.         elif key==4:
  21.             displaystudentinformations()
  22.         elif key==5:
  23.             printbedroominformations()
  24.         elif key==6:
  25.             saveallinformations()
  26.         elif key==7:
  27.             print("退出系统")
  28.             exit()
  29.         else:
  30.             print("抱歉,你输入的信息有误,请重新输入")
  31. def addstudentinformations():
  32.     global studentinformations
  33.     global newinformation
  34.     newinformation={}
  35.     studentname=raw_input("请输入学生姓名:")
  36.     studentphone=int(input("请输入手机号码:"))
  37.     studentage=int(input("请输入学生的年龄:"))
  38.     studentid=int(input("请输入学生的学号:"))
  39.     for i in studentinformations:
  40.         n=int(i['id'])
  41.         if studentid==n:
  42.             print("你输入的学号已经存在了")
  43.             zhuye()
  44.         else:
  45.             None
  46.     studentsex=raw_input("请输入学生的性别:")
  47.     if studentsex=='男':
  48.         print("男生的寝室有100、101、102")
  49.         studentbedid=int(input("请输入学生的寝室号:"))
  50.         if studentbedid==100 or studentbedid==101 or studentbedid==102:
  51.             i=0
  52.             for y in studentinformations:
  53.                 n=int(y['bedid'])
  54.                 if studentbedid==n:
  55.                     i=i+1
  56.                 else:
  57.                     None
  58.             if i>=4:
  59.                 zhuye()
  60.             else:
  61.                 None   
  62.         else:
  63.             print("你输入的信息有误,请重新输入")
  64.             zhuye()
  65.     else:
  66.         print("女生的寝室有200、201、202")
  67.         studentbedid=int(input("请输入学生的寝室号:"))
  68.         if studentbedid==200 or studentbedid==201 or studentbedid==202:
  69.             i=0
  70.             for y in studentinformations:
  71.                 n=int(y['bedid'])
  72.                 if studentbedid==n:
  73.                     i=i+1
  74.                 else:
  75.                     None
  76.             if i>=4:
  77.                 print("抱歉,该寝室已经满员")
  78.                 zhuye()
  79.             else:
  80.                 None   
  81.         else:
  82.             print("你输入的信息有误,请重新输入")
  83.             zhuye()
  84.     newinformation['name'] = studentname
  85.     newinformation['phone']=  studentphone
  86.     newinformation['id']=studentid
  87.     newinformation['sex']= studentsex
  88.     newinformation['age']= studentage
  89.     newinformation['bedid']= studentbedid
  90.     studentinformations.append(newinformation)
  91.     print("信息添加成功")
  92. def displaystudentinformations():
  93.     print("="*30)
  94.     print("学生的信息如下;")
  95.     print("序号    姓名         性别        手机号码     寝室号       学生号")
  96.     i=1
  97.     for tempinfo in studentinformations:
  98.         print("%d%12s%12s%12d%12d%12d" %(i, tempinfo['name'], tempinfo['sex'], tempinfo['phone'], tempinfo['bedid'],tempinfo['id']))
  99.         i =i+1
  100.     print("="*30)
  101. def printbedroominformations():
  102.     print("="*30)
  103.     c=int(input("请输入寝室号:"))
  104.     print("寝室      姓名           性别        电话        年龄")
  105.     for i in studentinformations:
  106.         y=int(i['bedid'])
  107.         if c==y :
  108.             print("%d%12s%12s%12d%12d" %(i['bedid'], i['name'], i['sex'], i['phone'],i['age'] ))
  109.         else:
  110.             None
  111.     print("="*30)
  112. def printmenu():
  113.     print("="*30)
  114.     print("     学生管理系统     ")
  115.     print("1.添加学生信息")
  116.     print("2.删除学生信息")
  117.     print("3.修改学生信息")
  118.     print("4.显示所有学生信息")
  119.     print("5.打印寝室成员列表")
  120.     print("6.保存所有信息")
  121.     print("7.退出系统")
  122.     print("="*30)
  123. def saveallinformations():
  124.     f=open('f1.txt','w')
  125.     f.write(str(studentinformations))
  126.     print("------存储完毕--------")
  127.     f.close()
  128. def delstudentinformations():
  129.     c=int(input("请输入要删除的序号:"))
  130.     studentinformations.pop(c-1)
  131. def modifystudentinformations():
  132.     c=int(input("更换单人寝室请按1,双人对换请按2:"))
  133.     if c==1:
  134.         l=int(input("请输入你的序号"))
  135.         studentsex=studentinformations[l-1]['sex']
  136.         if studentsex=='男':
  137.             print("男生的寝室有100、101、102")
  138.             studentbedid=int(input("请输入你要更换的寝室:"))
  139.             if studentbedid==100 or studentbedid==101 or studentbedid==102:
  140.                 i=0
  141.                 for y in studentinformations:
  142.                     n=int(y['bedid'])
  143.                     if studentbedid==n:
  144.                         i=i+1
  145.                     else:
  146.                         studentinformations[l-1]['bedid']=studentbedid
  147.                 if i>=4:
  148.                     zhuye()
  149.                 else:
  150.                     None
  151.             else:
  152.                 print("你输入的信息有误,请重新输入")
  153.                 zhuye()
  154.         else:
  155.             print("女生的寝室有200、201、202")
  156.             studentbedid=int(input("请输入你要更换的寝室:"))
  157.             if studentbedid==200 or studentbedid==201 or studentbedid==202:
  158.                 i=0
  159.                 for y in studentinformations:
  160.                     n=int(y['bedid'])
  161.                     if studentbedid==n:
  162.                         i=i+1
  163.                     else:
  164.                         None
  165.                 if i>=4:
  166.                     print("抱歉,该寝室已经满员")
  167.                     zhuye()
  168.                 else:
  169.                     studentinformations[l-1]['bedid']=studentbedid  
  170.             else:
  171.                 print("你输入的信息有误,请重新输入")
  172.                 zhuye()
  173.         studentinformations[l-1]['bedid']=studentbedid
  174.     else:
  175.         i=int(input("请输入一个序号:"))
  176.         y=int(input("请输入另一个序号:"))
  177.         m=int(studentinformations[i-1]['bedid'])
  178.         n=int(studentinformations[y-1]['bedid'])
  179.         if studentinformations[i-1]['sex']==studentinformations[y-1]['sex']:
  180.             studentinformations[i-1]['bedid']=n
  181.             studentinformations[y-1]['bedid']=m
  182.             print("更换寝室成功")
  183.         else:
  184.             print("抱歉,你输入的信心错误")
  185.             zhuye()
  186. recover()   
  187. print(studentinformations)
  188. zhuye(<span style="background-color: rgb(255, 255, 255);">)</span>
复制代码
  1. def recover():
复制代码

将f1.txt的内容提取出来到studentinformations这个列表里面
  1. def zhuye():
复制代码
功能页面的主页面
  1. def addstudentinformations():
复制代码
添加学生信息
  1. def displaystudentinformations():
复制代码
显示已经记录的学生信息
  1. def printbedroominformations():
复制代码
打印相应寝室的学生信息
  1. def printmenu():
复制代码
功能页面的提示信息
  1. def saveallinformations():
复制代码
在退出程序的时候对信息的保存
  1. def delstudentinformations():
复制代码
删除相应学生信息
  1. def modifystudentinformations():
复制代码

修改相应学生信息

这里的主要是通过一个列表包含多个字典的形式对信息进行的相应处理
显示结果:
基于python的寝室管理系统图1

这个是我刚开始学习Python的时候写的,仅供参考。
如果你有更好的建议,欢迎下方留言


基于python的寝室管理系统.zip

1.78 KB, 下载次数: 146

hnyzcj  版主

发表于 2020-10-28 14:22:54

好东西
回复

使用道具 举报

DFSH_Cranberry  中级技师
 楼主|

发表于 2020-10-28 14:31:58


我还没有写完呢,你们就在看了呀
回复

使用道具 举报

hnyzcj  版主

发表于 2020-10-28 18:26:17

你放出来我们就看了
回复

使用道具 举报

DFSH_Cranberry  中级技师
 楼主|

发表于 2020-10-29 10:03:27

hnyzcj 发表于 2020-10-28 18:26
你放出来我们就看了

挺好的,有什么好的建议可以给我这边提哦,后面我会陆续出一些python有关的示例,大家可以一起交流
回复

使用道具 举报

南山1  学徒

发表于 2020-12-4 16:18:27

请问一下这个f1.txt里面是什么内容呢(界面吗)
回复

使用道具 举报

DFSH_Cranberry  中级技师
 楼主|

发表于 2020-12-8 15:31:55

南山1 发表于 2020-12-4 16:18
请问一下这个f1.txt里面是什么内容呢(界面吗)

f1.txt是一个存储的文件夹,是一个列表,所以你可以看到一个[ ],[ ]里面就是存放的相关内容。
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail