学习目标
- Python 编程语言 L1 - 基础语法
实战需求
学生管理系统旨在提供一个简洁、高效的解决方案,用于管理学校中学生的个人信息。该系统将支持学生数据的增删改查操作,并以科学化、系统化和规范化的方式维护信息。
功能拆解
-
学生信息包含
- 编号
sid
, 姓名name
, 年龄age
, 性别gender
四个信息 - 每个学生信息使用
字典
形式保存 - 使用
列表
保存所有学生的信息
- 编号
-
实现菜单函数
menu
,输出下列菜单信息,并返回用户输入的编号print("*****************************") print("* 学生管理系统 *") print("* 1. 添加新学生信息 *") print("* 2. 通过学号修改学生信息 *") print("* 3. 通过学号删除学生信息 *") print("* 4. 通过姓名删除学生信息 *") print("* 5. 通过学号查询学生信息 *") print("* 6. 通过姓名查询学生信息 *") print("* 7. 显示所有学生信息 *") print("* 8. 退出系统 *") print("*****************************")
-
定义管理函数
studentManager
,用来实现整体业务逻辑。- 对用户输入内容进行输入校验
- 根据用户输入内容选择不同功能执行
-
因程序中需要多次对编号及姓名进行输入,故抽取函数获取对应的数据。
- 获取编号函数
getID
, 输入编号并返回(字符串类型)eg. s01
- 获取姓名函数
getName
, 输入姓名并返回(字符串类型) - 获取姓名函数
getAge
, 输入年龄并返回(整型) - 获取姓名函数
getGender
, 输入性别并返回(字符串类型)
- 获取编号函数
-
实现添加学生函数
addStudent
- 函数参数为
编号
,姓名
,年龄
,性别
四个参数 - 输出添加操作的结果提示信息
- 返回对应结果信息
- 要求编号不可重复。
- 函数参数为
-
实现通过编号修改学生信息函数
modifyStudentByID
- 参数为
学号
- 如果学生存在,则进行修改,不存在输出提示信息
- 返回是否修改成功
- 参数为
-
实现通过学号删除学生函数
deleteStudentByID
- 参数为
学号
- 如果学生存在,则进行删除并输出提示信息,不存在则仅输出提示
- 返回是否删除成功
- 参数为
-
实现通过姓名删除学生函数
deleteStudentByName
- 参数为
姓名
- 如果学生存在,则进行删除(同名学生全部删除)并输出提示信息,不存在则仅输出提示
- 返回是否删除成功
- 参数为
-
实现通过学号查询学生函数
queryStudentByID
- 参数为
学号
- 如果学生存在,则输出学生信息,不存在输出提示信息
- 返回是否查询成功
- 参数为
-
实现通过姓名查询学生函数
queryStudentByName
- 参数为
姓名
- 如果学生存在,则输出学生信息(同名学生全部输出),不存在输出提示信息
- 返回是否查询成功
- 参数为
-
实现显示所有学生信息函数
showAllInfo
- 输出所有学生信息
实战代码
# 定义一个全局变量,用来保存学生的信息,方法各个函数之间进行访问
students = []
# 菜单函数
def menu():
print("****************************************")
print("* 学生管理系统 *")
print("* 1. 添加新学生信息 *")
print("* 2. 通过学号修改学生信息 *")
print("* 3. 通过学号删除学生信息 *")
print("* 4. 通过姓名删除学生信息 *")
print("* 5. 通过学号查询学生信息 *")
print("* 6. 通过姓名查询学生信息 *")
print("* 7. 显示所有学生信息 *")
print("* 8. 退出系统 *")
print("****************************************")
select_op = input("输入编号选择操作:")
return select_op
# 获取学号
def getSid():
sid = input("请输入学生ID:")
return sid
# 获取姓名
def getName():
name = input("请输入学生姓名:")
return name
# 获取年龄
def getAge():
while True:
age = input("请输入学生年龄:")
if age.isdigit():
return int(age)
else:
print("输入年龄不合法,请输入数字")
# 获取性别
def getGender():
gender = input("请输入学生性别:")
return gender
# 添加学生
def addStudent(sid, name, age, gender):
for s in students:
if s["sid"] == sid:
print("学号已存在,添加失败")
return "添加失败"
else:
student = {"sid": sid, "name": name, "age": age, "gender": gender}
students.append(student)
print("添加学生信息成功")
return '添加成功'
# 通过学号修改学生信息
def modifyStudentByID(sid):
for s in students:
if s["sid"] == sid:
name = getName()
age = getAge()
gender = getGender()
s["name"] = name
s["age"] = age
s["gender"] = gender
print("修改成功")
return "修改成功"
else:
print(f'没有 {sid} 对应的学生信息')
return "修改失败"
# 通过ID删除学生信息
def deleteStudentByID(sid):
for s in students:
if s["sid"] == sid:
students.remove(s)
print("删除成功")
return "删除成功"
else:
print(f'没有 {sid} 对应的学生信息')
return "删除失败"
# 通过学生姓名 删除所有符合的学生
def deleteStudentByName(name):
exist_s = []
# 找出所有要删除的学生
for s in students:
if s['name'] == name:
exist_s.append(s)
# 开始删除
if len(exist_s) > 0:
for s in exist_s:
students.remove(s)
print(f"学号 { s['sid'] } 的学生删除成功")
else:
print(f"成功删除 {len(exist_s)} 个学生")
return "删除成功"
else:
print("学号不存在,无法删除")
return "删除失败"
# 通过学号查询学生信息
def queryStudentByID(sid):
for s in students:
if s["sid"] == sid:
print(f"学号 {sid} 的学生信息如下:")
print(s)
return "查询成功"
else:
print(f"学号 {sid} 的学生不存在")
return "查询失败"
# 通过姓名查询学生信息
def queryStudentByName(name):
result = []
for s in students:
if s["name"] == name:
result.append(s)
if len(result) > 0:
print(f"姓名为 {name} 的学生共 {len(result)} 名,信息如下:")
for s in result:
print(s)
return "查询成功"
else:
print(f"姓名为 {name} 的学生不存在")
return "查询失败"
# 显示所有学生信息
def showAllInfo():
print("所有学生信息如下:")
for s in students:
print(s)
# 管理函数
def studentManager():
while True:
select_op = menu()
if len(select_op) == 1 and select_op in "12345678":
if select_op == "1":
sid = getSid()
name = getName()
age = getAge()
gender = getGender()
addStudent(sid, name, age, gender)
elif select_op =="2":
sid = getSid()
modifyStudentByID(sid)
elif select_op =="3":
sid = getSid()
deleteStudentByID(sid)
elif select_op =="4":
name = getName()
deleteStudentByName(name)
elif select_op =="5":
sid = getSid()
queryStudentByID(sid)
elif select_op =="6":
name = getName()
queryStudentByName(name)
elif select_op =="7":
showAllInfo()
else:
break
else:
print("输入的数据不合法,请输入在合法范围内的操作编号!!!")
# 程序入口
if __name__ == '__main__':
studentManager()
总结
- Python 是一门简单易学易用的高级编程语言
- Python 得益于庞大的社区和丰富的库使得应用领域非常广泛