学生类:姓名、年龄、学号、成绩
班级类:班级名称、学生列表
显示所有学生
根据学号查找学生
添加一个学生
删除一个学生(学生对象、学号)
根据学号升序排序
根据成绩降序排序、
学生类
class Student():
def __init__(self,name,age,sid,score):
self.name=name;
self.age=age;
self.sid=sid;
self.score=score;
def __str__(self):
return '[student name=%s age=%d sid=%d score=%d]'%(self.name,self.age,self.sid,self.score);
__repr__=__str__;
班级类
class ClassDemo():
def __init__(self,classname):
self.classname=classname;
self._students=[];
self._student_dict={};
# 添加学生
def add_student(self,stu):
self._students.append(stu);
self._student_dict[stu.sid]=stu;
# 显示
def show_all_students(self):
for stu in self._students:
print(stu);
# 查找
def search_student(self,sid):
if(sid in self._student_dict):
return self._student_dict[sid];
return None;
# 删除
def del_student(self,sid):
stu=self.search_student(sid);
if(stu!=None):
self._student_dict.pop(sid);
self._students.remove(stu);
print('删除成功');
else:
print('没有该学生');
# 根据学号进行升序排序
def sid_sort(self):
for i in range(len(self._students)-1,0,-1):
for j in range(0,i):
if(self._students[j].sid>self._students[j+1].sid):
temp=self._students[j];
self._students[j]=self._students[j+1];
self._students[j+1]=temp;
# 根据成绩降序排序
def score_sort(self):
for i in range(len(self._students) - 1, 0, -1):
for j in range(0, i):
# 列表中的元素是学生对象
# 但是比较的是学生的学号信息
if self._students[j].score < self._students[j + 1].score:
# 交换两个学生对象的位置
temp = self._students[j]
self._students[j] = self._students[j + 1]
self._students[j + 1] = temp
测试类
from class1.zuoye.day002.disanti.student import Student;
from class1.zuoye.day002.disanti.classdemo import ClassDemo;
def main():
g = ClassDemo("python1802")
a=Student('张三',14,1001,55);
b=Student('李四',16,1005,32);
c=Student('王五',20,1003,16);
# 添加学生 ,并显示出来
g.add_student(a);
g.add_student(b);
g.add_student(c);
g.show_all_students()
print('============================================');
# 查找
print(g.search_student(1005));
print('============================================')
# 删除
g.del_student(1003);
g.show_all_students();
print('============================================')
# 学号排序
g.sid_sort();
g.show_all_students();
print('============================================')
# 成绩排序
g.score_sort();
g.show_all_students();
if __name__ == '__main__':
main();