定义一个学生类,包含学号、姓名、平时成绩和考核成绩四个数据成员和以下成员方法(用Python语言):

实验内容:
定义一个学生类,包含学号、姓名、平时成绩和考核成绩四个数据成员和以下成员方法:
1)计算总评:总评成绩 = 平时成绩*30% +考核成绩*70%
2)显示:在屏幕上按照“姓名 平时成绩 考核成绩”的格式显示自己的内容
类定义完成后,输入若干个学生的信息并创建类对象,然后按照学号的顺序依次将每个学生的信息存入一个文件中。
一、涉及的语法知识(用文字介绍编程所需的语法知识)
二、类定义代码
三、其他代码
实验题目:类与文件
实验要求:
1. 定义类
2. 定义并使用类对象
3. 打开和存取文件
实验内容:
定义一个学生类,包含学号、姓名、平时成绩和考核成绩四个数据成员和以下成员方法:
1)计算总评:总评成绩 = 平时成绩*30% +考核成绩*70%
2)显示:在屏幕上按照“姓名 平时成绩 考核成绩”的格式显示自己的内容
类定义完成后,输入若干个学生的信息并创建类对象,然后按照学号的顺序依次将每个学生的信息存入一个文件中。
一、涉及的语法知识(用文字介绍编程所需的语法知识)
二、类定义代码
三、其他代码

花了不少时间写的,挺详细的,希望采纳。


# 引入operator模块,用于给集合排序
import operator


# 单行注释用"#",多行注释用  '''注释内容'''
#  定义一个学生类,类名用驼峰命名法
class Student:

    # 构造方法,可用来创建对象格式 def __init__(self,参数) 参数个数自已定义,类型系统自动识别
    def __init__(self, stu_no, name, base_score, exam_score):
        self.stu_no = stu_no  # 对象属性赋值
        self.name = name
        self.base_score = base_score
        self.exam_score = exam_score

    # 定义计算总评函数 定义函数格式 def 函数名(self, 参数),self代表本对象
    def get_last_score(self):
        # return指定返回值,无return表示此函数无返回值
        return self.base_score * 0.3 + self.exam_score * 0.7

    # 类似toString方法,打印对象时,调用对象的该方法
    def __str__(self):
        return '学号:' + self.stu_no + '姓名:' + self.name + ",平时成绩: " + str(self.base_score) + ",考核成绩:" + str(self.exam_score)


# 定义函数,将对象集合写到文件,上面三个函数有缩进,属于Student类的函数,本函数属于全局函数
def print_to_file(path, stu_arr):
    # 打开文件,操作完成后自动关闭文件
    with open(path, 'w') as file:
        # 调用operator给集合排序
        sort_attr = operator.attrgetter('stu_no')  # 指定排序属性
        stu_arr.sort(key=sort_attr)  # 排序
        for stu in stu_list:
            str = stu.__str__()  # 将对象转换为字符串
            file.write(str + '\r\n')  # 将字符串写入文件


主函数,运行的入口
if __name__ == '__main__':
    # 创建几个学生对象,按__init__的顺序输入参数
    s1 = Student('1001', 'zhangsan', 31, 69)
    s2 = Student('1003', 'wangwu', 28, 32)
    s3 = Student('1004', 'zhaoliu', 77, 78)
    s4 = Student('1002', 'lisi', 19, 89)
    # 创建集合
    stu_list = [s1, s2, s3, s4]

    # 文件路径
    f = 'd:\\aaa.txt'
    print_to_file(f, stu_list)

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-03
##注意:最左边每个=表示一个空格
class Student:
====def __init__(self,xh,xm,pshchj,khchj):
========self.xh=xh
========self.xm=xm
========self.pshchj=float(pshchj)
========self.khchj=float(khchj)
========self.jszp()

##====计算总评
====def jszp(self):
========self.zp=self.pshchj*0.3+self.khchj*0.7

##====显示
====def show(self):
========print("姓名:{0},平时成绩:{1:f},考核成绩:{2:f}".format(self.xm,round(self.pshchj,1),round(self.khchj,1)))

stus=[]
filename="保存学生信息.txt"

##输入所有学生的信息
i,n=1,int(input("请输入学生的数量:"))
while i<=n:
====stus.append(Student(*(input("请输入第{0:d}个学生的学号,姓名,平时成绩,考核成绩(空格分割):\n".format(i)).split())))
====i+=1

##显示所有学生的信息
print("你输入的所有学生的信息:")
for stu in stus:
====stu.show()
====
##按学生学号排序学生列表
stus.sort(key=lambda stu : stu.xh)

##保存所有学生的信息到文件
ft="{0:<10}{1:<8}{2:<12f}{3:<12f}{4:f}\n"
stu_info=""
for stu in stus:
====stu_info+=ft.format(stu.xh,stu.xm,stu.pshchj,stu.khchj,stu.zp)
with open(filename,"w") as fo:
====fo.write(stu_info)本回答被网友采纳
第2个回答  2019-06-03
这个要花点时间,有红包可能会帮你

定义一个学生类student,数据成员包括学号、姓名、C#成绩、英语成绩和数...
定义一个学生类student,数据成员包括学号、姓名、C#成绩、英语成绩和数学成绩,成员函数setstu实现对各数据成员的赋值,成员函数dispstu实现对各数据成员的输出,成员函数cntstu实现... 定义一个学生类student,数据成员包括学号、姓名、C#成绩、英语成绩和数学成绩,成员函数setstu实现对各数据成员的赋值,成员函数dispstu实现...

定义一个表示学生的类student,包括属性:学号,姓名,性别,年龄;
1、新建一个272.php,如图所示:2、输入php网页的结构(<?php?>),如图所示:3、声明PHP与浏览器交互的文件类型和编码,如图所示:4、使用class关键字,定义一个Student类,代码如图所示:5、给Student类添加成员变量和成员方法,代码如图所示:6、给Student类,创建一个对象,代码:$s1=newStudent()。

创建一个学生类,成员属性为学号,姓名,性别,年龄,java,成绩。成员属性通 ...
\/\/1、定义成员变量private String no;\/\/学号 private String name;\/\/姓名 private String sex;\/\/性别 private String age;\/\/年龄 private float score;\/\/成绩 \/\/2、通过构造方法初始化成员变量的值public Student(String no, String name, String sex, String age , float score) { this.no = ...

...name, id, score ,分别表示姓名,学好,成绩...
sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。(2)类Student带参数的构造方法:在构造方法中通过形参完成对成员变量的赋值操作。(3)类Student的方法成员:getNo():获得学号;getName():获得姓名;getSex():获得性别;getAge()获得年龄;getJava()...

用JAVA定义一个学生类Student来表示学生信息,学生类中包含成员有学号...
public class Student {private int sNo; \/\/学号private String name; \/\/姓名private String sex; \/\/性别private int yu; \/\/语文private int shu; \/\/数学private int wai; \/\/外语public int getsNo() {return sNo;}public void setsNo(int sNo) {this.sNo = sNo;}public String ge...

定义一个学生类Student,包括如下属性:学生学号、姓名、年龄、专业、年级...
1、首先,定义一个数据结构student,包含学生的各信息。2、定义两个student类型的变量,保存所有学生的成绩信息和临时变量。3、定义一个自定义函数,输入学生的成绩信息。4、具体实现学生信息的输入,并计算总分。5、主函数中,先定义4个整型变量,保存学生的总数,以及控制循环的变量。6、接着,输入学生...

用java写程序,定义一个student类,包含成员变量有学号、姓名、性别、班...
public class Student {\\x0d\\x0a\\x0d\\x0a\/**\\x0d\\x0a * @param args\\x0d\\x0a *\/\\x0d\\x0aboolean master; \/\/定义成员变量\\x0d\\x0aint num;\\x0d\\x0aString name,sex;\\x0d\\x0adouble math,chinese,english,score=0.0,average=0.0;\\x0d\\x0a\\x0d\\x0aStudent(int...

JAVA编程 定义一个学生类,数据成员包括:学号,姓名,年龄,成绩;成员函数...
public static void main(String[] args) { Scanner sc = new Scanner(System.in);System.out.println("请输入学生个数:");int n = sc.nextInt();Student [] ss = new Student[n];for(int i=0;i<n;i++){ Scanner sca = new Scanner(System.in);Student s = new Student();Syste...

...Student类,包含内容如下: 成员变量——学号,姓名,性别,班干部否,数 ...
import java.util.Scanner;public class Student { public static void main(String[] args) { Student student = new Student(); student.input(); float sum = student.sum(); float avg = student.avg(); System.out.println("The "+student.getName()+"'s"+" sum is...

定义一个学生类CStudent,学生类的数据成员包括姓名、学号和成绩等。
include"Exp19_1.h"include<fstream> include<iostream> include<string> using namespace std;class student{ \/\/为了简化,数据域仅保留学号与姓名 int key;string name;public:void putkey(int k){key=k;} void putnam(string nam){name=nam;} void show(){cout<<key<<'\\t'<<name<<end...

相似回答