下面是一个用C++编写的示例代码,实现了对B.TXT进行数据录入,并根据条件进行综合成绩和学分的自动运算。

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>

using namespace std;

struct Student {
    string studentId;
    string courseCode;
    string courseName;
    int credit;
    double dailyScore;
    double labScore;
    double examScore;
    double totalScore;
    double earnedCredit;
};

double calculateTotalScore(double dailyScore, double labScore, double examScore) {
    if (labScore == -1) {
        return dailyScore * 0.3 + examScore * 0.7;
    } else {
        return dailyScore * 0.15 + labScore * 0.15 + examScore * 0.7;
    }
}

double calculateEarnedCredit(double totalScore, int credit) {
    if (totalScore >= 90 && totalScore <= 100) {
        return credit * 1.0;
    } else if (totalScore >= 80 && totalScore < 90) {
        return credit * 0.8;
    } else if (totalScore >= 70 && totalScore < 80) {
        return credit * 0.75;
    } else if (totalScore >= 60 && totalScore < 70) {
        return credit * 0.6;
    } else {
        return credit * 0;
    }
}

vector<Student> readDataFromFile(string fileName) {
    vector<Student> students;
    ifstream file(fileName);
    string line;

    while (getline(file, line)) {
        stringstream ss(line);
        string studentId, courseCode, courseName;
        int credit;
        double dailyScore, labScore, examScore;

        ss >> studentId >> courseCode >> courseName >> credit >> dailyScore >> labScore >> examScore;

        double totalScore = calculateTotalScore(dailyScore, labScore, examScore);
        double earnedCredit = calculateEarnedCredit(totalScore, credit);

        Student student = {studentId, courseCode, courseName, credit, dailyScore, labScore, examScore, totalScore, earnedCredit};
        students.push_back(student);
    }

    file.close();
    return students;
}

int main() {
    string fileName = "B.TXT";
    vector<Student> students = readDataFromFile(fileName);

    // 打印学生信息及计算结果
    for (const auto& student : students) {
        cout << "学号: " << student.studentId << endl;
        cout << "课程编号: " << student.courseCode << endl;
        cout << "课程名称: " << student.courseName << endl;
        cout << "学分: " << student.credit << endl;
        cout << "平时成绩: " << student.dailyScore << endl;
        cout << "实验成绩: " << student.labScore << endl;
        cout << "卷面成绩: " << student.examScore << endl;
        cout << "综合成绩: " << student.totalScore << endl;
        cout << "应得学分: " << student.earnedCredit << endl;
        cout << "====================" << endl;
    }

    return 0;
}

请注意,此代码假设B.TXT文件的格式为每行一个学生的数据,以空格分隔每个字段。

你可以根据需要修改文件名、字段名和计算公式,以适应实际情况

用C++写代码1数据录入功能对B TXT进行数据录入只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。综合成绩、学分由程序根据条件自动运算。综合成绩的计算如果本课程的实验成绩为-1则表示无实验综合成绩=平时成绩30+卷面成绩70;如果实验成绩不为-1表示本课程有实验综合成绩=平时成绩15+实验成绩15+卷面成绩70。实得学分的计算采用等级学分制。综合成绩在90

原文地址: https://www.cveoy.top/t/topic/hHYD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录