哈喽大家好,不知道大家本学期有没有学习python课程,临近期末,是不是正在为了期末python设计作业发愁,哈哈哈哈不用担心,本期本博主为大家带来了一个操作简单,但是集合了各个知识点的用法的项目———学生管理系统
学会了这个项目可以让大家很好的练习与了解python的基础操作,在python的学习中更上一层楼,而不是草率的交一个学长的陈年老代码应付差事。话不多说,上操作吧
(完整版代码在最下边,复制到pycharm就直接能用了!)
首先是“系统”的入口,我们要打印一个菜单,说明这个项目的作者是谁,然后就是基于系统的各种操作,无非就是哪几种,增删查改嘛!
def menu():
print("输入:1.新增学生")
print("输入:2.显示学生")
print("输入:3.查找学生")
print("输入:4.删除学生")
print("输入:5.修改学生")
print("输入:0.退出程序")
choice = input("请输入你的选择:")
return choice
# 入口
def main():
print("--------------------------------------")
print(" 贰月磐石的学生管理系统 ")
print("--------------------------------------")
load()
while True:
c = menu()
if c == '1':
# 新增学生
insert()
elif c == '2':
# 显示所有学生
show()
elif c == '3':
# 查找学生
find()
elif c == '4':
# 删除学生
delete()
elif c== '5':
#修改信息
update()
elif c == '0':
# 退出程序
print("程序退出")
sys.exit(0)
else:
print()
print("输入有误,重新输入")
print()
代码通俗易懂,六种操作,增 显 查 删 改 退 分别对应1 2 3 4 5 0
否则就会告诉用户,你输入错了,要重新输入!
细心的小伙伴会发现,在main函数里,还有一个自定义函数load,那么它的作用是什么呢?
让我们边看代码边讲解:
def load():
# 文件不存在,就跳过读档
if not os.path.exists('student.txt'):
return
global students
# 清空列表
students = []
with open('student.txt', 'r', encoding='utf8') as f:
for line in f:
# 去除换行符
line = line.strip()
t = line.split('\t')
# 检查行信息是否完整
if len(t) != 4:
print("文件中的行信息不完整:", line)
continue
student = {
'学号': t[0],
'名字': t[1],
'性别': t[2],
'班级': t[3]
}
students.append(student)
print(f"目前文件存储了{len(students)}个学生")
我们在与这个项目同目录下,新建一个txt文件,用来存放我们要管理的学生的数据
使用这个函数里的文件操作,还需要两个插件:
import os.path import sys
这两个插件,在复制完整代码时,直接下载就会了
以上代码的内容就是对文件的基本操作,看不懂的同学简单搜索一下,就能看懂这个操作了
首先你创建的txt必须和py文件同目录
这是文件里的格式
然后是五个操作的函数
def insert():
print("[新增学生开始]")
studentID = input('请输入学生学号:')
name = input("请您输入学生姓名:")
gender = input("请输入学生性别(注意本系统不支持美国性别,如:沃尔玛购物袋):")
if gender not in ("男", "女"):
print("性别都能出错,你二波一啊")
print("新增失败了你个二波一,赶紧重新开始")
return
classname = input("请输入学生的班级:")
student_info = {
'学号': studentID,
'名字': name,
'性别': gender,
'班级': classname
}
global students
students.append(student_info)
save()
print("\n[新增学生结束]\n")
对学生进行增加操作
def show():
# 遍历全局变量的列表
print("开始显示学生:")
for i in students:
print(f'{i["学号"]}\t{i["名字"]}\t{i["性别"]}\t{i["班级"]}')
print(f"全部学生打印完毕,一共是有:{len(students)}人\n ")
对文件中现存的所有学生进行显示
def find():
#根据姓名查找
print("开始查找")
cnt=0
name=input("请输入要查找同学的姓名:")
for i in students:
if name == i["名字"]:
print(f'{i["学号"]}\t{i["名字"]}\t{i["性别"]}\t{i["班级"]}')
cnt+=1
print(f"查找结束,共找到{cnt}个名字为{name}的学生\n")
按照学生姓名进行查找操作,大家有兴趣可以自己写按照学号查找,不写也无伤大雅
def delete():
print("删除学生开始\n")
studentid=input("请输入要删除学生的学号:")
for i in students:
if studentid==i["学号"]:
print(f"即将删除学号为{studentid}的学生")
students.remove(i)
save()
print("删除结束")
根据学号对学生进行删除操作,大家有兴趣可以自己写按照姓名删除,不写也无伤大雅
def update():
print("[修改学生信息]")
studentid = input("请输入要修改信息的学生学号: ")
for i in students:
if studentid == i["学号"]:
print(f"{i['学号']}\t{i['名字']}\t{i['性别']}\t{i['班级']}")
new_name = input("请输入新的学生姓名: ")
new_gender = input("请输入新的学生性别: ")
new_classname = input("请输入新的学生班级: ")
if new_name:
i['名字'] = new_name
if new_gender:
i['性别'] = new_gender
if new_classname:
i['班级'] = new_classname
print("学生信息已更新。")
save() # 保存修改后的信息到文件
return
print(f"找不到学生学号为 {studentid} 的信息。")
print("\n[修改学生信息结束]\n")
根据学号对学生进行修改操作,大家有兴趣可以自己写按照姓名修改,不写也无伤大雅
以上就是我们项目的基本操作 增删查改显 代码通俗易懂,还有大量的注释以供大家参考,如果有不懂的地方,可以在评论区或者私信给博主,一定知无不言。
import os.path
import sys
students = []
def save():
# 存入文件
#相对路径
with open("student.txt",'w',encoding='utf8')as f:
for i in students :
f.write(f'{i["学号"]}\t{i["名字"]}\t{i["性别"]}\t{i["班级"]}\n')
print(f"存档成功,成功存储了{len(students)}个同学")
def load():
# 文件不存在,就跳过读档
if not os.path.exists('student.txt'):
return
global students
# 清空列表
students = []
with open('student.txt', 'r', encoding='utf8') as f:
for line in f:
# 去除换行符
line = line.strip()
t = line.split('\t')
# 检查行信息是否完整
if len(t) != 4:
print("文件中的行信息不完整:", line)
continue
student = {
'学号': t[0],
'名字': t[1],
'性别': t[2],
'班级': t[3]
}
students.append(student)
print(f"目前文件存储了{len(students)}个学生")
def menu():
print("输入:1.新增学生")
print("输入:2.显示学生")
print("输入:3.查找学生")
print("输入:4.删除学生")
print("输入:5.修改学生")
print("输入:0.退出程序")
choice = input("请输入你的选择:")
return choice
def insert():
print("[新增学生开始]")
studentID = input('请输入学生学号:')
name = input("请您输入学生姓名:")
gender = input("请输入学生性别(注意本系统不支持美国性别,如:沃尔玛购物袋):")
if gender not in ("男", "女"):
print("性别都能出错,你二波一啊")
print("新增失败了你个二波一,赶紧重新开始")
return
classname = input("请输入学生的班级:")
student_info = {
'学号': studentID,
'名字': name,
'性别': gender,
'班级': classname
}
global students
students.append(student_info)
save()
print("\n[新增学生结束]\n")
def show():
# 遍历全局变量的列表
print("开始显示学生:")
for i in students:
print(f'{i["学号"]}\t{i["名字"]}\t{i["性别"]}\t{i["班级"]}')
print(f"全部学生打印完毕,一共是有:{len(students)}人\n ")
def find():
#根据姓名查找
print("开始查找")
cnt=0
name=input("请输入要查找同学的姓名:")
for i in students:
if name == i["名字"]:
print(f'{i["学号"]}\t{i["名字"]}\t{i["性别"]}\t{i["班级"]}')
cnt+=1
print(f"查找结束,共找到{cnt}个名字为{name}的学生\n")
def delete():
print("删除学生开始\n")
studentid=input("请输入要删除学生的学号:")
for i in students:
if studentid==i["学号"]:
print(f"即将删除学号为{studentid}的学生")
students.remove(i)
save()
print("删除结束")
def update():
print("[修改学生信息]")
studentid = input("请输入要修改信息的学生学号: ")
for i in students:
if studentid == i["学号"]:
print(f"{i['学号']}\t{i['名字']}\t{i['性别']}\t{i['班级']}")
new_name = input("请输入新的学生姓名: ")
new_gender = input("请输入新的学生性别: ")
new_classname = input("请输入新的学生班级: ")
if new_name:
i['名字'] = new_name
if new_gender:
i['性别'] = new_gender
if new_classname:
i['班级'] = new_classname
print("学生信息已更新。")
save() # 保存修改后的信息到文件
return
print(f"找不到学生学号为 {studentid} 的信息。")
print("\n[修改学生信息结束]\n")
# 入口
def main():
print("--------------------------------------")
print(" 贰月磐石的学生管理系统 ")
print("--------------------------------------")
load()
while True:
c = menu()
if c == '1':
# 新增学生
insert()
elif c == '2':
# 显示所有学生
show()
elif c == '3':
# 查找学生
find()
elif c == '4':
# 删除学生
delete()
elif c== '5':
#修改信息
update()
elif c == '0':
# 退出程序
print("程序退出")
sys.exit(0)
else:
print()
print("输入有误,重新输入")
print()
main()
好的以上就是学生管理系统代码的全部操作,感觉有用的小伙伴可以点点关注点赞支持一下
谢谢大家!!!