python课程设计--学生管理系统
系统要求
1.添加学生
2.删除学生
3.修改学生信息
4.查询学生
5.查看所有学生信息
6.学生信息数据的存储与读取
源码:student.py
#coding:utf-8
2 #定义学员类
3 class student(object):
4 #初始化实例对象的属性
5 def __init__(self,name,gender,tel):
6 self.name = name
7 self.sex = gender
8 self.tel = tel
9
10 def __str__(self):
11 return f"学员的名字:{self.name},学员的{self.sex},学 员的电话号码{self.tel}"
12
13
源码:maneger.py
#coding:utf-8
2 from student import *
3 class manager(object):
4 def __init__(self):
5 #存储学生数据的列表
6 self.student_list = []
7
8 def show_menu(self):
9 print("功能菜单...")
10 print("1.添加学员")
11 print("2.删除学员")
12 print("3.修改学员信息")
13 print("4.查询学员信息")
14 print("5.显示所有学员")
15 print("6.保存学员信息.")
16 print("7.退出系统")
17 #程序入口
18 def run(self):
19 #加载学员信息
20 self.load_student()
21 while True:
22 self.show_menu()
23 #用户输入功能序号
24 number = int(input("请输入功能序号:"))
25 if number == 1:
26 #添加学员
27 self.add_student()
28 if number == 2:
29 #删除学员
30 self.del_student()
31 if number == 3:
32 #修改学生信息
33 self.change_student_info()
34 if number == 4:
35 #查询学生信息
36 self.seach_student()
37 if number == 5:
38 #显示所有学生信息
39 self.display_all_student()
40 if number == 6:
41 #保存学生信息
42 self.save_student_info()
43 if number == 7:
44 #退出系统
45 break
46 #系统功能函数
47 def show_menu(self):
48 print("功能菜单...")
49 print("1.添加学员")
50 print("2.删除学员")
51 print("3.修改学员信息")
52 print("4.查询学员信息")
53 print("5.显示所有学员")
print("6.保存学员信息.")
55 print("7.退出系统")
56
57 def add_student(self):
58 name = input("请输入学生姓名:")
59 sex = input("请输入学生的性别:")
60 tel = input("请输入学生的电话号码:")
61 #创建学员对象
62 student1 = student(name,sex,tel)
63 self.student_list.append(student1)
64 print(self.student_list)
65 print(student1)
66
67 def del_student(self):
68 remove_name = input("请输入需要删除的学生的姓名:")
69 for i in self.student_list:
70 if i.name == remove_name:
71 #直接移除一个对象
72 self.student_list.remove(i)
73 break
74 else:
75 print("查无此人")
76 print(self.student_list)
77
78 def change_student_info(self):
79 change_name = input("请输入学生姓名:")
80 for i in self.student_list:
81 if i.name == change_name:
82 i.name = input("新的姓名:")
83 i.sex = input("新的性别:")
84 i.tel = input("新的电话号码:")
85 print(f"学员信息{i.name},{i.sex},{i.tel}")
86 break
87 else:
88 print("查无此人")
89
90 def seach_student(self):
91 seach_name = input("学生姓名:")
92 for i in self.student_list:
93 if i.name == seach_name:
94 print(f"学员信息{i.name},{i.sex},{i.tel}")
95 break
96 else:
97 print("查无此人")
98
99 def display_all_student(self):
100 print("姓名\t性别\t手机号")
101 for i in self.student_list:
print(f"{i.name}\t{i.sex}\t{i.tel}")
103
104 def save_student_info(self):
105 f = open("student.data","w")
106 #文件写入学员数据
107 #注意:文件写入的数据不能是学员对象的内存地址,需要
把学员数据转化成列表字典数据再做存储
108 new_list = [i.__dict__ for i in self.student_list]# 列表解析
109 #[{"name":},{"sex":},{"tel":}]
110 f.write(str(new_list))
111 #关闭文件
112 f.close()
113
114 def load_student(self):
115 #进行一个文件的检测,看文件是否存在
116 try:
117 f = open("student.data","r")
118 except:
119 f = open("student.data","w")
120 else:
121 data = f.read()
122 #文件中读取的数据都是字符串且字符串内部为字典,故需
要转换数据类型在转换字典为对象后从存储到学员列表
123 new_list = eval(data)
124 #字典转化为对象,类似与c语言中的类型强转
125 self.student_list = [student(i["name"],i["sex"] ,i["tel"]) for i in new_list]#列表解析
126 finally:
127 f.close()
源码:main.py
#conding:utf-8
2 #导入模块
3 from maneger import *
4
5 #程序入口
6 #保证当前文件运行才创建对象
7 if __name__ == "__main__":
8 student_manager = manager()
9 student_manager.run()
10
#运行截图
功能菜单...
1.添加学员
2.删除学员
3.修改学员信息
4.查询学员信息
5.显示所有学员
6.保存学员信息.
7.退出系统
请输入功能序号:
代码还有许多可以优化的地方,比如在添加学员时进行名字是否重复的扫描等等。大家可以尝试着去完善代码。
python课程设计--学生管理系统的更多相关文章
- java课程设计 学生管理系统
学生成绩管理系统 可实现功能 学生管理系统 查询学生信息:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 查询学生成绩:每个人都有数学.Java与体育与选修课 查询学生课程 进行公选课选课 教师 ...
- Java课程设计——学生成绩管理系统(201521123003 董美凤)
Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...
- 记C++课程设计--学生信息管理系统
C++课程设计--学生信息管理系统 ...
- C语言课程设计(成绩管理系统)
C语言课程设计(成绩管理系统) 翻到了大学写的C语言课程设计,缅怀一下 内容: 增加学生成绩 查询学生成绩 删除 按照学生成绩进行排序 等 #include <stdio.h> #incl ...
- C++课程设计 通讯录管理系统 原码及解析
设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...
- python开发的学生管理系统
python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...
- Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
一.团队课程设计博客链接 学生成绩管理系统 二.个人负责模块或任务说明 学生成绩录入 显示所有学生信息 显示各科平均成绩 显示学生成绩(按降序排序) 三.自己的代码提交记录截图 四.自己负责模块或任务 ...
- JAVA课程设计---学生基本信息管理系统(201521123039 王兴)
1.团队课程设计博客链接 http://www.cnblogs.com/zyjjj/p/7061880.html 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方 ...
- Java课程设计—学生成绩管理系统(54号童欢)
1. 团队课程设计博客链接 http://www.cnblogs.com/wufuckshuo/p/7063183.html 2.个人责模块或任务说明 负责模块/任务:主函数(调用其他的功能函数),添 ...
- Java课程设计 学生基本信息管理系统 团队博客
学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...
随机推荐
- 修改jupyter-notebook的python3版本
将默认的kernel修改为对应的python即可: /home/a/.virtualenvs/YOUR_VENV/bin/python -m pip install ipykernel /home/a ...
- WebIDE All In One
WebIDE All In One web IDE Visual Studio Code vscode Code editing Redefined. Free. Built on open sour ...
- TypeScript with React
TypeScript with React # Make a new directory $ mkdir react-typescript # Change to this directory wit ...
- how to using js to realize notes feature on the website
how to using js to realize notes feature on the website js & notes demos https://medium.com/brow ...
- website text select notes menu
website text select notes menu website 文字选择笔记菜单(下划线, 标记, 复制, 分享) 下划线, 标记 https://time.geekbang.org/ ...
- where is the storage location of the browser's HTTP cache? disk or memory
where is the storage location of the browser's HTTP cache? disk or memory HTTP cache & storage l ...
- taro 禁用滚动事件
taro 禁用滚动事件 禁止 Modal 蒙层下面的页面的内容跟随滚动 https://github.com/NervJS/taro/issues/3980 https://github.com/Ne ...
- DoH & DNS over HTTPS
DoH & DNS over HTTPS DNS over HTTPS(DoH)服务 http://mozilla.com.cn/thread-422231-1-1.html https:// ...
- SPC算力空投来袭!对话NGK!华盛顿金融特别报道
近日华盛顿金融时报联合波士顿商业报等多家知名金融媒体专访了NGK. NGK代表马特彼得森就表示NGK在新的一年里将会继续以生态建设者为中心,以打造高倍币孵化器为目标,不断推进NGK项目的落地,踏踏实实 ...
- 「NGK每日快讯」12.3日NGK公链第30期官方快讯!