系统要求

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. JS编程练习:将目标节点内部的子节点逆序

    将目标节点内部的子节点逆序 1 <body> 2 <div> 3 <p></p> 4 <span></span> 5 <e ...

  2. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  3. NGK流动性挖矿 实现资金飞轮效应增长

    2020年被称为DeFi元年,DeFi无疑是目前整个加密货币市场中最亮眼的地方.得益于流动性挖矿的火热,DeFi 市场规模也得以飞速发展.可以说,流动性挖矿是DeFi爆发的最主要催化剂,同时它也在吸引 ...

  4. 【python】递归听了N次也没印象,读完这篇你就懂了

    听到递归总觉得挺高大上的,为什么呢?因为对其陌生,那么今天就来一文记住递归到底是个啥. 不过先别急,一起来看一个问题:求10的阶乘(10!). 求x的阶乘,其实就是从1开始依次乘到x.那么10的阶乘就 ...

  5. 【微前端】微前端最终章-qiankun指南以及微前端整体探索

    序 这才2月中旬,广州就已经渐渐地进入了夏季,--夏天总是让人焦虑的.过年闲暇时间写下了微前端这系列的终章,欢迎拍砖.如果你习惯直接上手代码,不妨跳到实践一节,直接上代码教程玩一玩. qiankun原 ...

  6. 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总

    在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...

  7. 整合shiro+jwt大体思路

    springboot整合shiro大体上的思路: 1.自定义一个类Realm extends AuthorizingRealm{} 主要是对token授权和认证 重写2个方法 doGetAuthori ...

  8. MySQL 常用命令手册 增删改查大法

    一.数据库操作 创建数据库 语法: CREATE DATABASE database_name; 删除数据库 删除数据库务必谨慎!因为执行删除命令后,所有数据将消失. 语法: DROP DATABAS ...

  9. Redis6.0.9主从搭建

    所谓主从,大家都知道主是写数据,而从是进行数据的拷贝. 1:配置 主节点 127.0.0.1 6379 从节点 127.0.0.1 6378 先将单机版的配置文件赋值两份出来,原先的配置中主要改动有: ...

  10. SpringBoot 配置文件以及依赖 加上跨域配置文件

    配置目录: application.properties的配置 #设置服务端口号 server.port = 8090 #配置数据源 spring.datasource.driver-class-na ...