跳转到主内容
极星编程网:以代码为星,赴技术山海!

手把手教你做python学生管理系统

目录

一、用户类(User):

(1)注册:

1、判断用户名是否已经被注册过

2、注册成功

3、是否需要继续追加注册用户

(2)登录:

1、用户名未注册

2、登录成功

3、三次输入用户名和密码错误,登录失败

二、学生类(Student):

三、学生管理类(StudentManagerSystem):

(1)增加学生信息(2)删除学生信息(3)修改学生信息

1、按学号进行筛选索引

2、选择修改的项可以为单项或全部

(4)查询单个学生信息(5)查询所有学生信息(6)退出系统

四、测试

1、注册

2、登录

3、添加学生信息

4、修改学生信息

5、查询单个学生信息

6、查询多个学生信息

五、运行代码

总结学生管理系统主要分为以下三个大类:

一、用户类(User):

属性:

用户名(username)、密码(password)

功能:

注册(register)、登录(login)

(1)注册:

1、判断用户名是否已经被注册过

2、注册成功

3、是否需要继续追加注册用户

def register(self):# 新用户注册while True:username = input("请输入用户名:") if username in self.users_database:print(f"用户名{username}已存在,请重新输入!") continue

password = input('请输入密码:') self.users_database[username] = password print(f"用户{username}注册成功!")

choice = input('是否继续注册用户?(y/n): ').lower() if choice != 'y':break

(2)登录:

1、用户名未注册

2、登录成功

3、三次输入用户名和密码错误,登录失败

def login(self):# 登录验证(检查注册状态+3次尝试机会)

for i in range(3): # 0, 1, 2 username = input("请输入用户名:")

# 先检查用户是否注册if username not in self.users_database:print(f"用户名 {username} 未注册,请先注册!") return False

password = input("请输入密码:")

if self.users_database[username] == password:self.username = username self.password = password self.logged_in = True print("登录成功!") return True

# 只在还有尝试机会时显示提示if i < 2:print(f"密码错误,您还有{2 - i}次机会")

else: # 3次尝试都失败print("您已连续3次输入错误,请重新登录!") return False

二、学生类(Student):

属性:

学生信息(学号、姓名、性别、年龄、地址、电话)

三、学生管理类(StudentManagerSystem):

属性:

学生信息

方法:

增加学生信息、删除学生信息、修改学生信息、查询单个学生信息、查询所有学生信息、退出系统(1)增加学生信息按学号进行筛选索引def add_student(self):# 增加学生信息sid = input("请输入学生学号:") if sid in self.students:print("该学号已存在!") return

sname = input("请输入学生姓名:") ssex = input("请输入学生性别:") try:sage = int(input("请输入学生年龄:")) address = input("请输入地址:")# 电话改为字符串,避免以0开头的号码问题tel = input("请输入电话:") self.students[sid] = Student(sid, sname, ssex, sage, address, tel) print("添加成功!") except ValueError:print("年龄必须为数字!")(2)删除学生信息按学号进行筛选索引def delete_student(self):if not self.students:print("当前无任何学生信息!") return# 删除学生信息sid = input("请输入要删除的学生学号:") if sid in self.students:del self.students[sid]print("删除成功!") else:print("未找到该学号的学生!")(3)修改学生信息

1、按学号进行筛选索引

2、选择修改的项可以为单项或全部

def modify_student(self):if not self.students:print("当前无任何学生信息!") return# 修改学生信息sid = input("请输入要修改的学生学号:") if sid not in self.students:print("未找到该学号的学生!") return

student = self.students[sid]student.display_info()

print("\n请选择要修改的项:") print("1: 学号 2: 姓名 3: 性别 4: 年龄 5: 地址 6: 电话 7: 全部 8:退出")

try:choice = input("请输入选择(1-8): ") if choice == '7':new_sid = input("新的学号:") new_sname = input("新的名字:") new_ssex = input("新的性别:") new_sage = int(input("新的年龄:")) new_address = input("新的地址:") new_tel = input("新的电话:")

# 如果学号改变,需要先删除旧的再添加新的if new_sid != sid:del self.students[sid]self.students[new_sid] = Student(new_sid, new_sname, new_ssex,new_sage, new_address, new_tel) else:# 学号没变,直接修改对象属性student.sname = new_sname student.ssex = new_ssex student.sage = new_sage student.address = new_address student.tel = new_tel else:if choice == '1':new_sid = input("新的学号:") if new_sid != sid:self.students[new_sid] = self.students.pop(sid) self.students[new_sid].sid = new_sid elif choice == '2':student.sname = input("新的名字:") elif choice == '3':student.ssex = input("新的性别:") elif choice == '4':student.sage = int(input("新的年龄:")) elif choice == '5':student.address = input("新的地址:") elif choice == '6':student.tel = input("新的电话:") elif choice == '8':return else:print("无效选择!") return

print("修改成功!") except ValueError:print("输入数据有误!")(4)查询单个学生信息按学号进行筛选索引def find_student_by_sid(self):if not self.students:print("当前无任何学生信息!") return# 查询单个学生信息sid = input("请输入学生学号:") if sid in self.students:self.students[sid].display_info() else:print("未找到该学号的学生!")(5)查询所有学生信息def list_all_students(self):if not self.students:print("当前无任何学生信息!") return# 查询所有学生信息print("\n================== 所有学生信息 ==================") for sid, student in self.students.items():student.display_info() print("="*50)(6)退出系统

四、测试

1、注册

2、登录

3、添加学生信息

4、修改学生信息

5、查询单个学生信息

6、查询多个学生信息

五、运行代码

全部运行代码放在这里:

class User:def __init__(self, username=None, password=None):self.users_database = {} # 类级别的用户数据库self.username = username self.password = password self.logged_in = False

def register(self):# 新用户注册while True:username = input("请输入用户名:") if username in self.users_database:print(f"用户名{username}已存在,请重新输入!") continue

password = input('请输入密码:') self.users_database[username] = password print(f"用户{username}注册成功!")

choice = input('是否继续注册用户?(y/n): ').lower() if choice != 'y':break

def login(self):# 登录验证(检查注册状态+3次尝试机会)

for i in range(3): # 0, 1, 2 username = input("请输入用户名:")

# 先检查用户是否注册if username not in self.users_database:print(f"用户名 {username} 未注册,请先注册!") return False

password = input("请输入密码:")

if self.users_database[username] == password:self.username = username self.password = password self.logged_in = True print("登录成功!") return True

# 只在还有尝试机会时显示提示if i < 2:print(f"密码错误,您还有{2 - i}次机会")

else: # 3次尝试都失败print("您已连续3次输入错误,请重新登录!") return False

def run(self):# 用户系统主界面while True:print("\n================== 用户系统 ==================") choice = input("请选择:1、注册 2、登录 3、退出") if choice == '1':self.register() elif choice == '2':if self.login():# 登录成功后退出用户系统return elif choice == '3':print("退出用户系统!") exit() else:print("无效选择,请重新输入!")

class Student:def __init__(self, sid, sname, ssex, sage, address, tel):self.sid = sid self.sname = sname self.ssex = ssex self.sage = sage self.address = address self.tel = tel

def display_info(self):# 显示学生信息print(f"学号:{self.sid},姓名:{self.sname},性别:{self.ssex},"f"年龄:{self.sage},地址:{self.address},电话:{self.tel}")

class StudentManagerSystem:def __init__(self):self.students = {} # 用字典存储学生对象,键为学号

def add_student(self):# 增加学生信息sid = input("请输入学生学号:") if sid in self.students:print("该学号已存在!") return

sname = input("请输入学生姓名:") ssex = input("请输入学生性别:") try:sage = int(input("请输入学生年龄:")) address = input("请输入地址:")# 电话改为字符串,避免以0开头的号码问题tel = input("请输入电话:") self.students[sid] = Student(sid, sname, ssex, sage, address, tel) print("添加成功!") except ValueError:print("年龄必须为数字!")

def delete_student(self):if not self.students:print("当前无任何学生信息!") return# 删除学生信息sid = input("请输入要删除的学生学号:") if sid in self.students:del self.students[sid]print("删除成功!") else:print("未找到该学号的学生!")

def modify_student(self):if not self.students:print("当前无任何学生信息!") return# 修改学生信息sid = input("请输入要修改的学生学号:") if sid not in self.students:print("未找到该学号的学生!") return

student = self.students[sid]student.display_info()

print("\n请选择要修改的项:") print("1: 学号 2: 姓名 3: 性别 4: 年龄 5: 地址 6: 电话 7: 全部 8:退出")

try:choice = input("请输入选择(1-8): ") if choice == '7':new_sid = input("新的学号:") new_sname = input("新的名字:") new_ssex = input("新的性别:") new_sage = int(input("新的年龄:")) new_address = input("新的地址:") new_tel = input("新的电话:")

# 如果学号改变,需要先删除旧的再添加新的if new_sid != sid:del self.students[sid]self.students[new_sid] = Student(new_sid, new_sname, new_ssex,new_sage, new_address, new_tel) else:# 学号没变,直接修改对象属性student.sname = new_sname student.ssex = new_ssex student.sage = new_sage student.address = new_address student.tel = new_tel else:if choice == '1':new_sid = input("新的学号:") if new_sid != sid:self.students[new_sid] = self.students.pop(sid) self.students[new_sid].sid = new_sid elif choice == '2':student.sname = input("新的名字:") elif choice == '3':student.ssex = input("新的性别:") elif choice == '4':student.sage = int(input("新的年龄:")) elif choice == '5':student.address = input("新的地址:") elif choice == '6':student.tel = input("新的电话:") elif choice == '8':return else:print("无效选择!") return

print("修改成功!") except ValueError:print("输入数据有误!")

def find_student_by_sid(self):if not self.students:print("当前无任何学生信息!") return# 查询单个学生信息sid = input("请输入学生学号:") if sid in self.students:self.students[sid].display_info() else:print("未找到该学号的学生!")

def list_all_students(self):if not self.students:print("当前无任何学生信息!") return# 查询所有学生信息print("\n================== 所有学生信息 ==================") for sid, student in self.students.items():student.display_info() print("="*50)

def run(self):"""学生管理系统主界面"""while True:print("\n================== 学生管理系统 ==================") print("1: 添加学生") print("2: 删除学生") print("3: 修改学生") print("4: 单个查询") print("5: 全部查询") print("6: 退出系统")

choice = input("请输入您的选择(1-6): ")

if choice == '1':self.add_student() elif choice == '2':self.delete_student() elif choice == '3':self.modify_student() elif choice == '4':self.find_student_by_sid() elif choice == '5':self.list_all_students() elif choice == '6':print("退出学生管理系统!") break else:print("无效选择,请重新输入!")

if __name__ == '__main__':# 创建用户系统并运行user_system = User() user_system.run()

# 用户登录成功后,进入学生管理系统student_manager = StudentManagerSystem() student_manager.run()总结到此这篇关于python学生管理系统的文章就介绍到这了,更多相关python学生管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:python版学生管理系统python实现学生管理系统python学生管理系统代码实现基于python实现学生管理系统详解用python实现基本的学生管理系统(文件存储版)(python3)

用python实现学生管理系统基于Python实现简单学生管理系统Python实现学生管理系统的完整代码(面向对象) python实现学生管理系统源码Python实现学生管理系统(面向对象版)

相关文章