2.定义一个学生类,含学号、姓名、出生年份三个属性,含计算年龄及输出两个方法;定义一个本科生子类,继承学生类,含学号、姓名、出生年份及所在院系四个属性,创建两个人的对象,如果年龄>18岁......

定义一个学生类,含学号、姓名、出生年份三个属性,含计算年龄及输出两个方法;定义一个本科生子类,继承学生类,含学号、姓名、出生年份及所在院系四个属性,创建两个人的对象,如果年龄>18岁输出其学号、姓名及所在院系。

class Student:
     def __init__(self,sno,name,year):
          self.sno=sno
          self.name=name
          self.year=year
     def getAge(self):
          return 2021-self.year
     def getName(self):
          print("%s的年龄为%d"%(self.name,self.getAge()))
class ben(Student):
     def __init__(self,sno,name,year,dept):
          super().__init__(sno,name,year)
          self.dept=dept
     def getName(self):
          if self.getAge() > 18:
               print("学号为%s姓名为%s院系为%s"%(self.sno,self.name,self.dept))
stu1=Student("2007","李四",1999)
stu1.getName()
stu2=ben("2000","张三",2000,"计算机")
stu2.getName()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您解答。这是一个比较复杂的问题,需要设计一个完整的程序。这里我列出一个简单的伪代码,您可以参考一下: ``` // 定义学生信息结构体 struct Student { int num; // 学号 char name[20]; // 姓名 char sex[10]; // 性别 int year; // 出生年 int month; // 出生月 int day; // 出生日期 float score[3]; // 三门功课的成绩 float totalScore; // 总分 float averageScore; // 平均分 }; // 声明函数 void readFromFile(Student *students, int &count); // 从文件中读入学生信息 void display(Student *students, int count); // 显示学生信息 void add(Student *students, int &count); // 添加学生信息 void sortByNum(Student *students, int count); // 按学号排序 void sortByScore(Student *students, int count); // 按总分排序 void searchByNum(Student *students, int count); // 按学号查找 void searchByName(Student *students, int count); // 按姓名查找 void searchByScore(Student *students, int count); // 按分数查找 void calculateAverage(Student *students, int count); // 计算平均分 void saveToFile(Student *students, int count); // 把学生信息保存到文件 // 主函数 int main() { Student students[100]; // 定义学生信息结构体数组 int count = 0; // 记录学生数量 readFromFile(students, count); // 从文件中读取学生信息 while (true) { // 显示菜单 cout << "1. 显示学生信息" << endl; cout << "2. 添加学生信息" << endl; cout << "3. 按学号排序" << endl; cout << "4. 按总分排序" << endl; cout << "5. 按学号查找" << endl; cout << "6. 按姓名查找" << endl; cout << "7. 按分数查找" << endl; cout << "8. 计算平均分" << endl; cout << "9. 保存学生信息" << endl; cout << "0. 退出程序" << endl; int choice; cin >> choice; // 根据用户的选择调用相应的函数 switch (choice) { case 1: display(students, count); break; case 2: add(students, count); break; case 3: sortByNum(students, count); break; case 4: sortByScore(students, count); break; case 5: searchByNum(students, count); break; case 6: searchByName(students, count); break; case 7: searchByScore(students, count); break; case 8: calculateAverage(students, count); break; case 9: saveToFile(students, count); break; case 0: return 0; default: cout << "无效的选择,请重新输入" << endl; } } } // 其他函数的实现 // 从文件中读入学生信息 void readFromFile(Student *students, int &count) { // 实现略 } // 显示学生信息 void display(Student *students, int count) { // 实现略 } // 添加学生信息 void add(Student *students, int &count) { // 实现略 } // 按学号排序 void sortByNum(Student *students, int count) { // 实现略 } // 按总分排序 void sortByScore(Student *students, int count) { // 实现略 } // 按学号查找 void searchByNum(Student *students, int count) { // 实现略 } // 按姓名查找 void searchByName(Student *students, int count) { // 实现略 } // 按分数查找 void searchByScore(Student *students, int count) { // 实现略 } // 计算平均分 void calculateAverage(Student *students, int count) { // 实现略 } // 把学生信息保存到文件 void saveToFile(Student *students, int count) { // 实现略 } ``` 以上是一个简单的伪代码,实际的代码可以根据需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值