文章目录
-
- 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 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)
目录
- 一、用户类(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、查询多个学生信息
- 五、运行代码
- 总结
学生管理系统主要分为以下三个大类:
属性:用户名(username)、密码(password)
功能:注册(register)、登录(login)
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 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)







全部运行代码放在这里:
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实现学生管理系统(面向对象版)