系统要求

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课程设计--学生管理系统的更多相关文章

  1. java课程设计 学生管理系统

    学生成绩管理系统 可实现功能 学生管理系统 查询学生信息:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 查询学生成绩:每个人都有数学.Java与体育与选修课 查询学生课程 进行公选课选课 教师 ...

  2. Java课程设计——学生成绩管理系统(201521123003 董美凤)

    Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...

  3. 记C++课程设计--学生信息管理系统

                                                                                  C++课程设计--学生信息管理系统     ...

  4. C语言课程设计(成绩管理系统)

    C语言课程设计(成绩管理系统) 翻到了大学写的C语言课程设计,缅怀一下 内容: 增加学生成绩 查询学生成绩 删除 按照学生成绩进行排序 等 #include <stdio.h> #incl ...

  5. C++课程设计 通讯录管理系统 原码及解析

    设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...

  6. python开发的学生管理系统

    python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...

  7. Java课程设计—学生成绩管理系统(201521123005 杨雪莹)

    一.团队课程设计博客链接 学生成绩管理系统 二.个人负责模块或任务说明 学生成绩录入 显示所有学生信息 显示各科平均成绩 显示学生成绩(按降序排序) 三.自己的代码提交记录截图 四.自己负责模块或任务 ...

  8. JAVA课程设计---学生基本信息管理系统(201521123039 王兴)

    1.团队课程设计博客链接 http://www.cnblogs.com/zyjjj/p/7061880.html 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方 ...

  9. Java课程设计—学生成绩管理系统(54号童欢)

    1. 团队课程设计博客链接 http://www.cnblogs.com/wufuckshuo/p/7063183.html 2.个人责模块或任务说明 负责模块/任务:主函数(调用其他的功能函数),添 ...

  10. Java课程设计 学生基本信息管理系统 团队博客

    学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...

随机推荐

  1. H.264视频压缩标准

    H.264 这部分一直在讲,但是却没有系统的来说.接下来要详细. 参看:H.264视频压缩标准 一.简介 H.264是最新的视频压缩标准,它也称为MPEG-4 Part 10或AVC(高级视频编码). ...

  2. 2021-2-16:请问你知道分布式设计模式中的Quorum思想么?

    有效个数(Quorum) 有效个数(Quorum)这个设计模式一般是指分布式系统的每一次修改都要在大多数实例上通过来确定修改通过. 问题背景 在一个分布式存储系统中,用户请求会发到一个实例上.通常在一 ...

  3. js load more select

    js load more select searchable scroll load more append to list refs xgqfrms 2012-2020 www.cnblogs.co ...

  4. ossutilmac64

    ossutilmac64 ossutil是以命令行方式管理OSS数据的工具,提供方便.简洁.丰富的存储空间(Bucket)和文件(Object)管理命令,支持Windows.Linux. Mac平台. ...

  5. 如何在 网站页面中插入ppt/pdf 文件,使用插件,Native pdf 支持,chrome,Edge,Firefox,

    1 经过测试:在网页中插入 ppt 不好使:可能是浏览器=>同源策略 error?             pdf 可以正常使用:   <前提:一定要放在服务器端才行!> 2 经过e ...

  6. free open movie API all in one

    free open movie API all in one movie API TMDb API The Movie Database https://www.themoviedb.org/docu ...

  7. Chrome & console.log & color & js

    Chrome & console.log & color & js console.log & color // OK log(`%cchat_list =\n%c${ ...

  8. APC推出鞋底缓震科技 两款中高端跑鞋将陆续上市

    近日,英国知名运动品牌APC(公司编号:08703733)推出了全新的鞋底缓震科技 NOVR,该项技术将首先应用于两款跑步鞋上,随后陆续应用到其他重点鞋类产品. 是对于各大运动品牌来说,鞋底研发一直是 ...

  9. 知名金融媒体采访行业大咖,多方推动BGV茁壮成长

    近来,多家知名金融媒体如纽约金融时报.伦敦金融时报等采访NGK官方代表洛索斯夫,以及美国当地行业大咖马库斯等人. 受访的NGK官方代币洛索斯夫回答道,近期官方将会推出NGK的书籍<NGK公链底层 ...

  10. django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化

    目录结构 1.前言 2.完整的操作步骤 2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码 2.2.第二步:查看表animal对应的列表展示页面默认的数据展示 2.3.第 ...