系统要求

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. SPOJ LCS Longest Common Substring(后缀自动机)题解

    题意: 求两个串的最大\(LCS\). 思路: 把第一个串建后缀自动机,第二个串跑后缀自动机,如果一个节点失配了,那么往父节点跑,期间更新答案即可. 代码: #include<set> # ...

  2. TypeScript 1.7 & TypeScript 1.8

    TypeScript 1.7 & TypeScript 1.8 1 1 https://zh.wikipedia.org/wiki/TypeScript TypeScript是一种由微软开发的 ...

  3. npm & cmd & bash & bin

    npm & cmd & bash & bin bin node_modules & nested npm publish & all src files npm ...

  4. ES6 & import * & import default & import JSON

    ES6 & import * & import default & import JSON import json & default value bug api.js ...

  5. HTTP/1.1 & HTTP/2 & webpack

    HTTP/1.1 & HTTP/2 & webpack Bundling your application is especially powerful for HTTP/1.1 cl ...

  6. H5 下拉刷新、加载更多

    H5 下拉刷新.加载更多 demos const autoLoadMore = (url = ``) => { // todo ... } refs xgqfrms 2012-2020 www. ...

  7. svg & regex

    svg & regex https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reg ...

  8. Docker使用指南

    上文简单介绍了docker,这边记录一下docker的使用. 一.Docker启停 1.启动docker systemctl start docker 2.关闭docker systemctl sto ...

  9. Django Admin 删除文件同时删除资源文件(delete_upload_files)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

  10. Codeblocks支持语法着色