python学生管理系统教程-Python学习--面向对象--学生管理系统1.0

之前在面向过程中,做过一个学生管理系统,现在用面向过程的方法来试试。

用面向对象来解决:

封装类:

学生类: 管理系统类:

成员变量   成员变量

id                  pass

name

age

成员方法                成员方法

pass                 展示主菜单方法

添加学生信息

查询学生信息

修改学生信息

删除学生信息

查看所有学生信息

退出系统

创建系统对象

sys_student = Sys ()

存储学生对象的容器{}

while(True):

sys_student=show_menu()

choice=input()if choice == 1:

sysManger.addStudent()

以上是整体思路,下面是实现代码

#学生类

classStudent:def __init__(self, stuId, name, age):

self.stuId=stuId

self.name=name

self.age=agedefstudentoop(self):pass

1 #全局变量

2 new_stuId = ""

3 new_name = ""

4 new_age = ""

5

6 #管理系统类

7 classSys:8 def __init__(self):9 pass

10

11 #展示系统菜单

12 defshow_menu(self):13 print("=" * 56)14 print("一个超�的学生管理系统 v1.0")15 print("1:添加用户信息")16 print("2:查询用户信息")17 print("3:修改用户信息")18 print("4:删除用户信息")19 print("5:显示用户信息")20 print("6:退出系统")21 print("=" * 56)

1 #输入学生菜单

2 defgetinfo(self):3 globalnew_stuId4 globalnew_name5 globalnew_age6 new_stuId = input("请输入学号:")7 new_name = input("请输入名字:")8 new_age = input("请输入年龄:")9

10 #添加学生信息

11 defadd_stus(self):12 #调用getinfo方法

13 self.getinfo()

14     #以ID为Key,将新输入的信息赋值给Student类

15     students[new_stuId] =Student(new_stuId,new_name,new_age)16

17     #打印添加的学生信息

print("ID:%s"%students[new_stuId].stuId,"Name:%s"%students[new_stuId].name,"Age:%s"%students[new_stuId].age)

查询的时候,根据key(Id)来查找。(之前遇到的问题:key值不知道怎么赋值给Student类里)

1 deffind_stus(self):2 find_nameId = input("请输入要查的学号")3 if find_nameId instudents.keys():4 print("学号:%s 名字:%s 年龄:%s" %(students[new_stuId].stuId, students[new_stuId].name, students[new_stuId].age))5 else:6 print("查无此人")

修改学生信息(修改时有BUG,只能按Key修改,key是不会变的,只改变key的值)

1 defalter_stus(self):2 alterId = input("请输入你要修改学生的学号:")3 self.getinfo()4 #当字典中Key相同时,覆盖掉以前的key值

5 if alterId instudents.keys():6 students[new_stuId] =Student(new_stuId, new_name, new_age)7 delstudents[alterId]8 else:9 print("查无此人")

删除学生信息

1 #删除学生信息

2 defdel_stus(self):3 cut_nameID = input("请输入要删除的学号:")4 if cut_nameID instudents.keys()5 delstudents[cut_nameID]6 else:7 print("查无此人")

显示学生所有信息

1 #显示学生信息

2 defshow_stus(self):3 for new_stuId instudents:4 #print("%s %s %s" % ("ID:%s"%new_stuId,"Name:%s"%new_name,"Age:%s"%new_age))

5 print("ID:%s" % students[new_stuId].stuId, "Name:%s" %students[new_stuId].name,6 "Age:%s" %students[new_stuId].age)7

退出系统

1 #退出系统

2 defexit_stus(self):

print("欢迎下次使用")3   exit()

利用循环来调用上面的信息

1 #创建系统对象

2 sys =Sys()3 #定义一个容器来存储学生信息

4 students ={}5 whileTrue:6 sys.show_menu()7 choice = int(input("请选择功能:"))8 if choice == 1:9 sys.add_stus()10 elif choice == 2:11 sys.find_stus()12 elif choice == 3:13 sys.alter_stus()14 elif choice == 4:15 sys.del_stus()16 elif choice == 5:17 sys.show_stus()18 elif choice == 6:19 sys.exit_stus()20 else:21 print("您输入有误,请重新输入")

最后总结:

1.首先要剥离以前的面向过程的思维,用面向对象的方式来看待问题

2.在写代码时,不要想的太复杂,简单话问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值