Python实现学生管理系统(面向对象版)
本文实例为大家分享了Python实现学生管理系统的具体代码,供大家参考,具体内容如下
实现从面向过程到面向对象的过度,通过更改前面的学生管理系统实现面向对象,也证明了面向过程可以完美过度到面向对象,从而为以后的程序进步做了进一步优化,方便以后的程序更改。
完整代码如下:
student_main模块中的代码
import student_toolsclass 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()breakelse: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("成功退出学生管理系统!")breakelse:print()print("输入错误,请重新输入")print()#调用最先执行的登录界面函数if __name__=='__main__':wtt=Student()wtt.dljiemian()
student_tools模块中的代码
import osclass StudentT(object):def __init__(self):self.student_list=[]self.student_dict={}#学生管理系统界面@staticmethoddef 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()breakelse: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()breakelse: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_strelse: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("数据读取成功!")
【Python实现学生管理系统(面向对象版)】以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 逻辑回归的理解与python示例
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum