当前位置:
首页 > Python基础教程 >
-
Python实现学生管理系统(面向对象版)
本文实例为大家分享了Python实现学生管理系统的具体代码,供大家参考,具体内容如下
实现从面向过程到面向对象的过度,通过更改前面的学生管理系统实现面向对象,也证明了面向过程可以完美过度到面向对象,从而为以后的程序进步做了进一步优化,方便以后的程序更改。
完整代码如下:
student_main模块中的代码
import student_tools
class Student(student_tools.StudentT):
def __init__(self):
self.user=['wangtaotao']
self.pwd=['123456']
student_tools.StudentT.__init__(self)
#登录
def denglu(self):
users = input("请输入您的用户名:")
pwds = input("请输入您的密码:")
if users in self.user and pwds in self.pwd:
self.student()
else:
print("账号或密码不正确,请重新输入")
#注册
def zhuce(self):
users=input("请输入您要注册的用户名:")
pwds=input("请输入您要注册的密码:")
self.user.append(users)
self.pwd.append(pwds)
print()
print("注册成功!")
print()
#登录界面
def dljiemian(self):
while True:
print("---------------------------")
print(" 学生管理系统登陆界面 V1.0 ")
print(" ")
print(" 1:登 录 ")
print(" 2:注 册 ")
print(" 3:退 出 ")
print(" ")
print("---------------------------")
xx=input("请输入您的选择:")
#1.登录
if xx=='1':
self.denglu()
elif xx=='2':
#2.注册
self.zhuce()
elif xx=='3':
#3.退出
print()
print("成功退出!")
print()
break
else:
print("输入错误,请重新输入")
#学生管理系统
def student(self):
# 调用student_tools模块中的读取文件函数
super().read_file()
while True:
#调用student_tools模块中的界面函数
super().jiemian()
x=input("请输入您的选择:")
#添加学生
if x=='1':
super().add()
#删除学生
elif x=='2':
super().dele()
#修改学生
elif x=='3':
super().xiugai()
#查询学生
elif x=='4':
super().find()
#显示所有学生
elif x=='5':
super().showall()
#保存数据至文件中
elif x=='6':
super().save_file()
#退出学生管理系统,返回上一层登录界面系统
elif x=='7':
print()
print("成功退出学生管理系统!")
break
else:
print()
print("输入错误,请重新输入")
print()
#调用最先执行的登录界面函数
if __name__=='__main__':
wtt=Student()
wtt.dljiemian()
student_tools模块中的代码
import os
class StudentT(object):
def __init__(self):
self.student_list=[]
self.student_dict={}
#学生管理系统界面
@staticmethod
def jiemian():
print("---------------------------")
print(" 学生管理系统 V1.0")
print(" ")
print(" 1:添加学生" )
print(" 2:删除学生" )
print(" 3:修改学生" )
print(" 4:查询学生" )
print(" 5:显示所有学生" )
print(" 6:保存数据" )
print(" 7:退出系统" )
print(" ")
print("---------------------------")
#添加学生
def add(self):
name=input("请输入录入学生姓名:")
cls=input("请输入学生班级:")
age=input("请输入录入学生年龄:")
phone=input("请输入录入学生手机号:")
addr=input("请输入录入学生家庭住址:")
self.student_dict={"name":name,"class":cls,"age":age,"phone":phone,"address":addr}
self.student_list.append(self.student_dict)
print()
print("-----添加学生信息界面-----")
print()
print("姓名\t\t","班级\t\t","年龄\t\t","电话号\t\t","家庭住址\t\t")
for student_dict_1 in self.student_list:
print("%s\t\t%s\t\t%s\t\t%s\t\t%s" %(student_dict_1["name"],
student_dict_1["class"],
student_dict_1["age"],
student_dict_1["phone"],
student_dict_1["address"]))
print()
print("录入成功!")
print()
#删除学生
def dele(self):
name_del=input("请输入想要删除的学生姓名:")
for student_dict_1 in self.student_list:
if name_del in student_dict_1["name"]:
self.student_list.remove(student_dict_1)
print()
print("删除%s信息成功!" % name_del)
print()
break
else:
print()
print("您输入的学生姓名错误,请重新输入")
print()
#修改学生
def xiugai(self):
name_xiugai=input("请输入想要修改的学生姓名:")
for student_dict_1 in self.student_list:
if name_xiugai == student_dict_1["name"]:
print()
print("-----修改界面-----")
print()
print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
print("%s\t\t%s\t\t%s\t\t%s\t\t%s" %(student_dict_1["name"],
student_dict_1["class"],
student_dict_1["age"],
student_dict_1["phone"],
student_dict_1["address"]))
#回车不修改
student_dict_1["name"]=self.new_input(student_dict_1["name"],"请输入修改后的学生姓名[回车不修改]:")
student_dict_1["class"]=self.new_input(student_dict_1["class"],"请输入修改后的学生班级[回车不修改]:")
student_dict_1["age"]=self.new_input(student_dict_1["age"],"请输入修改后的学生年龄[回车不修改]:")
student_dict_1["phone"]=self.new_input(student_dict_1["phone"],"请输入修改后的学生手机号[回车不修改]:")
student_dict_1["address"]=self.new_input(student_dict_1["address"],"请输入修改后的学生家庭地址[回车不修改]:")
print()
print("修改成功!")
print()
break
else:
print()
print("您输入的学生姓名错误,请重新输入")
print()
#查找学生
def find(self):
find_name=input("请输入需要查找的学生姓名:")
for student_dict_1 in self.student_list:
if find_name == student_dict_1["name"]:
print()
print("-----查询结果界面-----")
print()
print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (student_dict_1["name"],
student_dict_1["class"],
student_dict_1["age"],
student_dict_1["phone"],
student_dict_1["address"]))
else:
print()
print("-----查询结果界面-----")
print()
print("无此学生信息")
#显示所有学生信息
def showall(self):
if len(self.student_list)>0:
print()
print("-----显示所有学生信息-----")
print()
print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
for student_dict_1 in self.student_list:
print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (student_dict_1["name"],
student_dict_1["class"],
student_dict_1["age"],
student_dict_1["phone"],
student_dict_1["address"]))
else:
print()
print("暂无数据!")
print()
#设置用户不输入内容返回原值,输入内容返回新内容
def new_input(self,yuanzhi,message):
self.input_str=input(message)
if len(self.input_str)>0:
return self.input_str
else:
return yuanzhi
#保存数据至文件中
def save_file(self):
f = open("student2.txt", 'w', encoding='utf-8')
f.write(str(self.student_list))
f.close()
print("数据保存至student1.txt文件成功!")
#将数据读取至变量中
def read_file(self):
if os.path.exists('student2.txt'):
f = open('student2.txt', 'r', encoding='utf-8')
ret = f.read()
self.student_list=eval(ret)
f.close()
print("数据读取成功!")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持
原文链接:https://blog.csdn.net/WangTaoTao_/article/details/95927398
栏目列表
最新更新
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
Java使用poi生成word文档的简单实例
计算机二级考试MySQL常考点 8种MySQL数据库
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比