系统要求

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. sqli-libs(7) bool盲注

    首先打开网页后,发现页面显示outfile,  对不起,看不懂,  就直接加 ' 发现报错了 后来,查看源码得知 他是两个括号括起来的 我们就可以构造我们的payload了, 首先查询当前数据库的长度 ...

  2. HTML5 Canvas 画图组件 All In One

    HTML5 Canvas 画图组件 All In One Canvas SVG Canvas + SVG refs https://www.infoq.cn/article/1BVg9VDSmqyHv ...

  3. ECMAScript 7 (ES 2016 /ES7 ) Ecma-262 7Edition

    Standard ECMA-262 ECMAScript 2016 Language Specification 7th edition (June 2016) http://www.ecma-int ...

  4. pub package all in one

    pub package all in one best practice The pubspec file https://dart.dev/tools/pub/pubspec demo name: ...

  5. Transporter iOS App

    Transporter iOS App apple store app store connect https://appstoreconnect.apple.com/ Transporter &am ...

  6. how to write an ebook that can support published by format PDF, Epub, Mobi and so on

    how to write an ebook that can support published by format PDF, Epub, Mobi and so on 如何写一本自己的电子书,支持各 ...

  7. 揭秘高倍矿币 Baccarat BGV,为何NGK DeFi的财富效应如此神奇?

    作为区块链4.0代表的NGK公链,这次也将借助它自己的DeFi版块NGK Baccarat,开启属于它自己的千倍财富之旅. 如果说,比特币能让没有银行账户的人,可以在全球任何时间.地点都能自由进行交易 ...

  8. 人物传记——Kyle Tedford:持之以恒的品质从哪里来?

    心理学家表示,95%的人类行为发生在无意识中,而大多数这种行为是由习惯引起的.习惯,就像我们大脑设定的程序.通过每日持续努力,你会把坚持的习惯节奏慢慢进入身体中,并且会很容易加持下去. 做事三分钟热度 ...

  9. 01.Numpy数组的基本应用

    数组的创建 数组的访问 数组的合并 数组的分割 数组创建 >>> import numpy as np 创建一维数组 >>> x = np.arange(10) & ...

  10. Python算法_爬楼梯(08)

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2输出: 2解释: 有两种方 ...