赞
踩
哈喽大家好,不知道大家本学期有没有学习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()
-
好的以上就是学生管理系统代码的全部操作,感觉有用的小伙伴可以点点关注点赞支持一下
谢谢大家!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。