ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python实现学生管理系统

2021-12-01 17:33:43  阅读:121  来源: 互联网

标签:student 管理系统 Python self 学生 key print input name


要求:

1.学生的信息有:姓名、学号、年龄、性别、出生日期、地址、电话、E-mail等。
2.功能:
·系统以菜单方式工作
·学生信息录入功能(学生信息,用文件保存)–>来自输入
·学生信息浏览功能–>输出
·查询、排序功能–>算法
按学号查询、按姓名查询、学生信息的删除与修改。

代码(不全):


import os

class Student(object):
		def _init_(self,sid,name,age=None,gender=None,
						birth=None,address=None,tel = None,mail= None):
			self.sid = sid
			self.name = name
			self.age = age
			self.gender = gender
			self.birth = birth
			self.address = address
			self.tel = tel
			self.mail = mail
		def _str_(self):
			return "%s: %s: %s: %s:"(8) %(self.sid,self.name,self.age,
                                          self.gender,self.birth,self.address,self.tel,self.mail)

class StudentManage(object):
		Students = []
		def _init_(self):
			filename = 'students.csv'
			if os.path.exsits(filename):
				with open(filename) as f:
					for line in f:
						into = line.split(':')
						Studentobj = Student(*into)
						self.Students.append(Studentobj)
				print("加载缓存的学生信息成功")
			else:
				print("无缓存的学生信息")
		def add(self):
			sid = input("学号:")
			name = input("姓名:")
			age = input("年龄:")
			gender = input("性别:(1-男 2-女)")
			birth = input("出生日期(年-月-日):")
			address = input("地址:")
			tel = input("联系方式:")
			mail = input("电子邮箱:")
			stu = Student(sid,name,age,gender,birth,address,tel,mail)
			self.Students.append(stu)
			print("录入学生[%s]信息成功"%(name))
		def show(self):
			print("学生信息展示".center(50,'*'))
			for student in  self.Students:
				print('_'*50)
				print(str(student))
		def search(self,key,Value):
			if key in ['sid','name']:
				for student in self.Students:
					if getattr(student,key)==Value:
						print(str(student))
					else:print("未找到符合条件的学生信息!")
			else:
				print("系统只支持根据【学号】和【姓名】查询!")

		def sort(self, key):
			# 根据指定的key值进行排序
			sorted_students = sorted(self.students, key=lambda x: int(getattr(x, key)) if x else None)
			for student in sorted_students:
				print(student)

		def delete(self, key, value):
			if key in ['sid', 'name']:
				for student in self.students:
					if getattr(student, key) == value:
						self.students.remove(student)
						print("删除属性值[%s]为[%s]的学生信息" % (key, value))
				else:
					print("未找到符合条件的学生信息!")
			else:
				print("当前系统只支持根据 [学号] 和 [姓名] 删除!")


		def modify(self, key, oldvalue, newvalue):
			if key in ['sid', 'name']:
				for student in self.students:
					if getattr(student, key) == oldvalue:
						setattr(student, key, newvalue)
						print("修改属性值[%s]为[%s]的学生信息为[%s]成功" % (key, oldvalue, newvalue))
				else:
					print("未找到符合条件的学生信息!")
			else:
				print("当前系统只支持根据 [学号] 和 [姓名] 修改!")

		def save(self):
			filename = 'students.csv'
			f = open(filename, 'w')
			for student in self.students:
				f.write(str(student) + '\n')
			print("写入学生信息成功!")

			f.close()

		def main(self):
			manager = StudentManage()
			while True:
				menu = """
								学生信息管理系统
					1. 学生信息录入
					2. 学生信息浏览
					3. 学生信息查询
					4. 学生信息排序
					5. 学生信息的删除
					6. 学生信息的修改
					7. 退出
				请输入正确的选择:    """

				choice = input(menu)
				if choice == '1':
					manager.add()
					manager.save()
				elif choice == '2':
					manager.show()
				elif choice == '3':
					key = input("查询(sid-根据学号, name-根据姓名): ")
					value = input("查询值: ")
					manager.search(key, value)
				elif choice == '4':
					key = input("排序(sid-根据学号, age-根据年龄): ")
					manager.sort(key)
				elif choice == '5':
					key = input("删除(sid-根据学号, name-根据姓名): ")
					value = input("删除的属性值: ")
					manager.delete(key, value)
				elif choice == '6':
					key = input("修改(sid-根据学号, name-根据姓名): ")
					value1 = input("旧的属性值: ")
					value2 = input("新的属性值: ")
					manager.modify(key, value1, value2)
				elif choice == '7':
					exit(0)
				else:
					print("请输入正确的选择!")

		main()
					`

这是大一某次的实验,大三在笔记本子发现了代码,决定移动至CSDN上,扔掉本子。搜索发现,代码和别人的一抹一样,应该是大一时抄袭别人的代码,应付实验。(废物!!!)

在这里插入图片描述

只是为了保存一下代码,想看看曾经自己都学过什么,若有冒犯原博主,删!

标签:student,管理系统,Python,self,学生,key,print,input,name
来源: https://blog.csdn.net/weixin_48060069/article/details/121658630

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有