首先展示一下面向函数的学生管理系统,使用了Python语言编写。
stus = {1001:["张三",89.56],1002:["李四",95.80]}
#查询学生信息,修改学生信息,删除学生信息,增加学生信息
def main():
print("*****欢迎使用学生管理系统*****")
print("1.查询学生信息")
print("2.添加学生信息")
print("3.修改学生信息")
print("4.删除学生信息")
print("0.退出学生管理")
num=int(input("请选择你要使用的功能"))
if num==1:
querystus()
elif num==2:
addstus()
elif num==3:
modifystus()
elif num==4:
delstus()
elif num==5:
showall()
elif num==0:
print("程序退出中...")
exit()
else :
print("输入错误,请重新输入")
main()
def key():
s = input("输入Y继续,输入N退出")
if s == "Y" or s == "y":
return True
elif s == "N" or s == "n":
return False
else:
print("输入错误请重新输入")
key()
def querystus():
sno = int(input("请输入您要查询学生的学号"))
if sno in stus:
print("学生信息查询成功")
print("学号:"+str(sno)+" 姓名:"+str(stus[sno][0])+" 成绩:"+str(stus[sno][1]))
print("是否要继续查询学生信息")
key_c = key()
if key_c:
querystus()
else:
main()
else:
print("您要查询的学生信息不存在,请重新输入")
querystus()
def addstus():
sno = int(input("请输入要添加学生的学号"))
if sno in stus:
print("学号信息已被使用,请重新输入学号")
addstus()
else :
name = input("请输入学生姓名")
score = float(input("请输入学生成绩"))
stus[sno] = [name,score]
print(stus,end="")
print("学生信息添加成功,是否需要继续添加学生信息")
key_c = key()
if(key_c):
addstus()
else:
main()
def delstus():
sno = int(input("请输入你要删除的学生信息的学号"))
if sno in stus:
print(str(stus[sno]) + "信息删除*****")
del stus[sno]
print("学生信息删除成功,是否需要继续删除学生信息")
else:
print("学生信息不存在,请重新输入")
delstus()
key_c = key()
if key_c:
delstus()
else:
main()
def modifystus():
sno = int(input("请输入您要修改学生信息的学号"))
if sno in stus:
print("学号:"+str(sno)+" 姓名:"+str(stus[sno][0])+" 成绩:"+str(stus[sno][1]))
num = int(input("请输入你要修改的学生信息:1.姓名;2.成绩。"))
if num == 1:
sname = input("请输入姓名")
stus[sno][0] = sname
else:
score = int(input("请输入成绩"))
stus[sno][1] = score
print("学生信息修改成功,是否需要继续修改学生信息")
key_c = key()
if key_c:
modifystus()
else:
main()
else:
print("学号输入错误,请重新输入")
modifystus()
main()
面向函数的编程是将编程分成N件事情,然后按照步骤执行函数实现目的。
面向对象的编程方法,是将整个过程封装成一个大类,在这个类中详细分解执行每个步骤,只需要执行类就可以实现目的。
学生管理系统的主要对象有:学生类、管理学生的类,因此有以下两个大类:
学生类
class Student:
def __init__(self,sid,sname,scope,scity):
self.__sid = sid
self.__sname = sname
self.__scope = scope
self.__scity = scity
def __str__(self):
return f"{self.__sid}\t{self.__sname}\t{self.__scope}\t{self.__scity}"
# 封装方法
def getSid(self):
return self.__sid
def setSid(self,sid):
self.__sid = sid
def getSname(self):
return self.__sname
def setSname(self,sname):
self.__sname = sname
def getScope(self):
return self.__scope
def setScope(self,scope):
self.__scope = scope
def getScity(self):
return self.__scity
def setScity(self,scity):
self.__scity = scity
学生管理类
from Student import Student
class School():
#创建学生容器
stus = []
def menu(self):
print("---进入学生管理系统---")
print("---1.添加学生---")
print("---2.修改学生---")
print("---3.查询学生---")
print("---4.删除学生---")
print("---0.退出系统---")
num = int(input("请输入要选择的功能"))
if num == 1:
self.addstu()
elif num == 2:
self.modifyStu()
elif num == 3:
self.showStu()
elif num == 4:
self.delStu()
elif num == 0:
print("---退出学生管理系统---")
return
else:
print("输入错误,请重新调用")
self.menu()
def key(self):
s = input("输入Y继续,输入N返回主界面")
if s == "Y" or s == "y":
return True
elif s == "N" or s == "n":
return False
else:
print("输入错误请重新输入")
self.key()
# 添加学生
def addstu(self):
sno = int(input('请输入学生学号:'))
for i in self.stus:
if sno == i.getSid():
print("您输入的学号信息已存在,请重新输入")
self.addstu()
sname = input("请输入学生姓名:")
scope = int(input("请输入学生成绩:"))
scity = input("请输入学生住址:")
s = Student(sno,sname,scope,scity)
self.stus.append(s)
print("学生信息添加成功")
print("学号:"+str(s.getSid())+" 姓名:"+s.getSname()+" 成绩: "+str(s.getScope())+" 住址:"+s.getScity())
key_c = self.key()
if key_c:
self.addstu()
else:
for i in self.stus:
print(i)
self.menu()
# 修改学生信息
def modifyStu(self):
sno = int(input("请输入要修改的学生学号:"))
flag = False
for i in self.stus:
if sno == i.getSid():
flag = True
break
if flag :
print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
id = int(input("请输入您要修改的学号:"))
i.setSid(id)
name = input("请输入您要修改的姓名:")
i.setSname(name)
scope = int(input("请输入您要修改的成绩:"))
i.setScope(scope)
city = input("请输入您要修改的住址:")
i.setScity(city)
print("---学生信息修改完成---")
print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
else:
print("学生信息不存在")
key_c = self.key()
if key_c:
self.modifyStu()
else:
self.menu()
# 查询学生
def showStu(self):
sno = int(input("请输入要查询的学生学号:"))
flag = False
for i in self.stus:
if sno == i.getSid():
print("学生信息查询完成")
flag = True
if flag:
print(f"学号:{i.getSid()},姓名:{i.getSname()},成绩:{i.getScope()},住址:{i.getScity()}")
else:
print("学生信息不存在,请重新输入学号")
key_c = self.key()
if key_c:
self.showStu()
else:
self.menu()
# 删除学生
def delStu(self):
sno = int(input("请输入要删除的学生学号:"))
t = 0
for i in self.stus:
if sno == i.getSid():
break
else:
t += 1
print("---学生信息删除中---")
self.stus.pop(t)
print("---学生信息删除成功---")
sc1 = School()
sc1.menu()