使用python写的一个小系统
程序员文章站
2022-05-25 08:56:21
...
最近在学习python写了一个学生管理系统,参考https://blog.csdn.net/weixin_45650412/article/details/103107054(感谢大牛的分享),不过小编对部分代码可读性进行了调整并新增了部分逻辑如姓名重复、手机号格式简单处理、查询、显示、新增、修改、删除之后的回调学生信息以及删除和修改学生信息的友好提示,以及不删除不修改进行回调。下面贴出我自己的源码,供大家学习交流。本人对python小白一个。望大家指正
#!/usr/bin/python3
# coding=utf-8
"""使用python创建学生管理系统"""
""" 1.Python函数式编程实现思路 """
""" 使用字典把学生的姓名、qq、微信进行封装 """
""" 使用列表(list)装学生的信息 """
""" 实现对列表中字典数据进行增、删、改、查 """
import random
class StudentsSys(object):
def __init__(self):
self.names = []
self.info = "1:新增|2:删除|3:修改|4:查找|5:显示|6:退出系统"
def print_menu(self):
"""学生管理系统菜单"""
print("="*50)
print("\t学生管理系统菜单")
print("\t1:添加学生信息")
print("\t2:删除学生信息")
print("\t3:修改学生信息")
print("\t4:查找学生信息")
print("\t5:显示学生信息")
print("\t6:退出学生管理系统")
print("=" * 50)
def caozuo_zhiling(self):
print("\n")
print("~"*50)
print(self.info)
print("~"*50)
def addInfo(self):
self.students = {}
self.students['name'] = input("请输入学生姓名:")
for name in self.names:
if self.students["name"] == name["name"]:
print("姓名重复,请重新输入!")
self.start()
self.students['phone'] = input("请输入学生的手机号:")
if len(self.students['phone']) != 11:
print("请输入正确格式的手机号!")
return
self.students['email'] = input("请输入学生的邮箱:")
self.names.append(self.students)
#print(self.names)
self.saveInfo()
self.showInfo()
def delInfo(self):
def_name = input("请输入您要删除的学生姓名:")
print("您确定要删除该学生信息吗?删除属于不可逆操作,请您仔细考虑!")
msg = input("确认删除,请按'y',返回请按'n'")
if msg == "y":
for name in self.names:
if def_name == name.get("name"):
self.names.remove(name)
self.saveInfo()
self.showInfo()
else:
self.showInfo()
def modifyInfo(self):
modify_name = input("请输入您要修改的学生姓名:")
flag = 0
msg = input("确认修改,请按'y',返回请按'n'")
if msg == "y":
for name in self.names:
if modify_name == name["name"]:
new_name = input("请输入新的名字:")
name["name"] = new_name
flag = 1
self.showInfo()
if flag == 0:
print("该名学生%s不存在" % modify_name)
self.showInfo()
else:
self.showInfo()
def findInfo(self):
find_name = input("请输入你要查找的姓名:")
flag = 0
for name in self.names:
for value in name.values():
if find_name == value:
flag = 1
print("找到了:{}".format(find_name))
break
if flag == 0:
print("没有找到:{}".format(find_name))
def loadInfo(self):
file = open("students.txt","a+")
file.seek(0,0)
content = file.read()
if len(content) > 0:
self.names = eval(content)
def saveInfo(self):
file = open("students.txt","w")
file.write(str(self.names))
file.close()
def showInfo(self):
print("\n")
print("\t当前学生系统信息")
print("~"*50)
print("\t姓名\t\t手机号\t\t邮箱")
for name in self.names:
msg = "\t"+name.get("name")+"\t\t"+name.get("phone")+"\t"+name.get("email")
print(msg)
print("~"*50)
def numberIsdigit(self):
number = input("请输入指令:")
if number.isdigit():
number = int(number)
if number == 1:
self.addInfo()
elif number == 2:
self.delInfo()
elif number == 3:
self.modifyInfo()
elif number == 4:
self.findInfo()
elif number == 5:
self.showInfo()
elif number == 6:
msg = input("您确定要退出学生管理系统吗?,如果您确定退出请输入'y',继续使用请输入'n':")
if msg == "y":
print("成功退出学生管理系统,欢迎您的下次使用!")
if msg == "n":
self.start()
else:
print("请输入正确的指令,指令为1-6的纯数字!")
def start(self):
self.print_menu()
self.loadInfo()
self.caozuo_zhiling()
self.numberIsdigit()
s = StudentsSys()
s.start()
效果图:
推荐阅读
-
详解使用element-ui table组件的筛选功能的一个小坑
-
一个计算身份证号码校验位的Python小程序
-
如何使用react做一个简易的后台管理系统
-
使用Python实现一个简单的项目监控
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
Windows系统中使用C#读取文本文件内容的小示例
-
使用Python编写一个模仿CPU工作的程序
-
使用Python的Twisted框架实现一个简单的服务器
-
python写的一个squid访问日志分析的小程序
-
使用Python写一个量化股票提醒系统