Загрузка...

Help with GPT C++ shitcode

Thread in C/C++ created by MoJungle Jun 20, 2023. 243 views

  1. MoJungle
    MoJungle Topic starter Jun 20, 2023 Я знал ,но забыл 10 Jun 28, 2017
    C
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstdlib>
    #include <cstdio>
    #include <stdio.h>
    #include <iomanip>

    using namespace std;
    struct StudentRecord {
    string last_name;
    int student_id;
    int grades[4];
    };

    void addRecord(StudentRecord student, ofstream& fout) {
    fout << student.last_name << " " << student.student_id << " ";
    for (int i = 0; i < 4; i++) {
    fout << student.grades[i] << " ";
    }
    fout << endl;
    }
    void inputStudentData(StudentRecord& student) {
    cout << "Введите фамилию студента: ";
    cin >> student.last_name;
    cout << "Введите номер зачетной книжки: ";
    cin >> student.student_id;
    for (int i = 0; i < 4; i++) {
    cout << "Оценка " << i + 1 << ": ";
    cin >> student.grades[i];
    }
    }

    void readRecord(StudentRecord& student, ifstream& fin) {
    fin >> student.last_name >> student.student_id;
    for (int i = 0; i < 4; i++) {
    fin >> student.grades[i];
    }
    }

    void printFailingStudents(ifstream& fin) {
    StudentRecord student;
    bool found = false;
    cout << "Список двоечников:" << endl;

    for (int k = 0; k < 10; k++) {
    readRecord(student, fin);
    bool has_failing_grade = false;

    for (int i = 0; i < 4; i++) {
    if (student.grades[i] == 2) {
    has_failing_grade = true;
    break;
    }
    }

    if (has_failing_grade) {
    cout << student.last_name << ", номер зачетной книжки: " << student.student_id << " Оценки: " << student.grades[0] << "; " << student.grades[1] << "; " << student.grades[2] << "; " << student.grades[3] << endl;
    found = true;
    }
    }

    if (!found) {
    cout << "Двоечников не найдено!" << endl;
    }
    }

    void correctFailingStudent(ifstream& fin, ofstream& fout, int student_id) {
    StudentRecord student;
    bool found = false;
    while (fin >> student.last_name >> student.student_id) {
    for (int i = 0; i < 4; i++) {
    fin >> student.grades[i];
    }

    if (student.student_id == student_id) {
    cout << "Введите новые оценки за экзамены для студента " << student.last_name << ":" << endl;
    for (int i = 0; i < 4; i++) {
    cout << "Оценка " << i + 1 << ": ";
    cin >> student.grades[i];
    }

    addRecord(student, fout);
    found = true;
    }
    else {
    addRecord(student, fout);
    }
    }

    if (!found) {
    cout << "Студент с номером зачетной книжки " << student_id << " не найден!" << endl;
    }
    }
    int main() {
    setlocale(LC_ALL, "Russian");
    const string filename = "students.txt";
    ofstream fout(filename);

    if (!fout) {
    cerr << "Ошибка открытия файла для записи" << endl;
    return 1;
    }


    while (true) {
    ifstream fin(filename);

    if (!fin) {
    cerr << "Ошибка открытия файла для чтения" << endl;
    return 1;
    }

    cout << endl << "Меню:" << endl;
    cout << "1. Записать данные о студентах" << endl;
    cout << "2. Ввывести данные о студентах" << endl;
    cout << "3. Вывести список двоечников" << endl;
    cout << "4. Изменить оценки двоечника" << endl;
    cout << "5. Выход" << endl;
    cout << "Выберите действие: ";

    int choice;
    cin >> choice;
    switch (choice)
    {
    case 1: {
    ofstream fout(filename);

    if (!fout) {
    cerr << "Ошибка открытия файла для записи" << endl;
    return 1;
    }

    for (int i = 0; i < 3; i++) {
    cout << endl << "Введите данные о студенте " << i + 1 << ":" << endl;
    StudentRecord student;
    inputStudentData(student);
    addRecord(student, fout);
    }

    fout.close();

    cout << "Данные записаны в файл " << filename << endl;
    break;
    }
    case 2: {
    ifstream fin(filename);
    if (!fin) {
    cerr << "Ошибка открытия файла для чтения" << endl;
    return 1;
    }

    cout << "Содержимое файла " << filename << ":" << endl;
    StudentRecord student;
    for (int k = 0; k < 10; k++) {
    readRecord(student, fin);
    cout << student.last_name << " " << student.student_id << " ";
    for (int i = 0; i < 4; i++) {
    cout << student.grades[i] << " ";
    }
    cout << endl;
    }

    fin.close();
    break;
    }
    case 3: {
    ifstream fin(filename);
    printFailingStudents(fin);
    break;
    }
    case 4: {
    int student_id;
    cout << "Введите номер зачетной книжки двоечника: ";
    cin >> student_id;
    fin.close();
    ifstream fin("students.txt");
    ofstream fout("temp.txt");

    if (!fout) {
    cerr << "Ошибка открытия временного файла для записи" << endl;
    return 1;
    }

    correctFailingStudent(fin, fout, student_id);

    fout.close();
    fin.close();
    remove("students.txt");
    rename("temp.txt", "students.txt");
    break;
    }
    case 5: {
    fin.close();
    cout << "Выход из программы" << endl;
    system("pause");
    return 0;
    }
    default: {
    cout << "Неверный выбор" << endl;
    break;
    }
    }
    fin.close();
    }
    return 0;
    }
    В case 4 мне нужно переименовать временный файл temp.txt в основной students.txt, но основной даже не хочет удаляться.
     
  2. hatenig
    hatenig Jun 20, 2023 158 Nov 26, 2022
    друг, лучше на stackoverflow запости
     
    1. View previous comments (1)
    2. hatenig
      Daemon, gpt и рабочий код рядом не стоят
    3. Daemon
      hatenig, stackoverflow и такие вопросы тоже
  3. MikoFox
    MikoFox Jun 23, 2023 11 Jan 9, 2021
    C
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstdlib>
    #include <cstdio>
    #include <stdio.h>
    #include <iomanip>
    #include <windows.h>
    using namespace std;
    struct StudentRecord {
    string last_name;
    int student_id;
    int grades[4];
    };

    void addRecord(StudentRecord student, ofstream& fout) {
    fout << student.last_name << " " << student.student_id << " ";
    for (int i = 0; i < 4; i++) {
    fout << student.grades[i] << " ";
    }
    fout << endl;
    }
    void inputStudentData(StudentRecord& student) {
    cout << "Введите фамилию студента: ";
    cin >> student.last_name;
    cout << "Введите номер зачетной книжки: ";
    cin >> student.student_id;
    for (int i = 0; i < 4; i++) {
    cout << "Оценка " << i + 1 << ": ";
    cin >> student.grades[i];
    }
    }

    void readRecord(StudentRecord& student, ifstream& fin) {
    fin >> student.last_name >> student.student_id;
    for (int i = 0; i < 4; i++) {
    fin >> student.grades[i];
    }
    }

    void printFailingStudents(ifstream& fin) {
    StudentRecord student;
    bool found = false;
    cout << "Список двоечников:" << endl;

    for (int k = 0; k < 10; k++) {
    readRecord(student, fin);
    bool has_failing_grade = false;

    for (int i = 0; i < 4; i++) {
    if (student.grades[i] == 2) {
    has_failing_grade = true;
    break;
    }
    }

    if (has_failing_grade) {
    cout << student.last_name << ", номер зачетной книжки: " << student.student_id << " Оценки: " << student.grades[0] << "; " << student.grades[1] << "; " << student.grades[2] << "; " << student.grades[3] << endl;
    found = true;
    }
    }

    if (!found) {
    cout << "Двоечников не найдено!" << endl;
    }
    }

    void correctFailingStudent(ifstream& fin, ofstream& fout, int student_id) {
    StudentRecord student;
    bool found = false;
    while (fin >> student.last_name >> student.student_id) {
    for (int i = 0; i < 4; i++) {
    fin >> student.grades[i];
    }

    if (student.student_id == student_id) {
    cout << "Введите новые оценки за экзамены для студента " << student.last_name << ":" << endl;
    for (int i = 0; i < 4; i++) {
    cout << "Оценка " << i + 1 << ": ";
    cin >> student.grades[i];
    }

    addRecord(student, fout);
    found = true;
    }
    else {
    addRecord(student, fout);
    }
    }

    if (!found) {
    cout << "Студент с номером зачетной книжки " << student_id << " не найден!" << endl;
    }
    }
    int main() {
    setlocale(LC_ALL, "Russian");
    const string filename = "students.txt";
    ofstream fout(filename);

    if (!fout) {
    cerr << "Ошибка открытия файла для записи" << endl;
    return 1;
    }


    while (true) {
    ifstream fin(filename);

    if (!fin) {
    cerr << "Ошибка открытия файла для чтения" << endl;
    return 1;
    }

    cout << endl << "Меню:" << endl;
    cout << "1. Записать данные о студентах" << endl;
    cout << "2. Ввывести данные о студентах" << endl;
    cout << "3. Вывести список двоечников" << endl;
    cout << "4. Изменить оценки двоечника" << endl;
    cout << "5. Выход" << endl;
    cout << "Выберите действие: ";

    int choice;
    cin >> choice;
    switch (choice)
    {
    case 1: {
    ofstream fout(filename);

    if (!fout) {
    cerr << "Ошибка открытия файла для записи" << endl;
    return 1;
    }

    for (int i = 0; i < 3; i++) {
    cout << endl << "Введите данные о студенте " << i + 1 << ":" << endl;
    StudentRecord student;
    inputStudentData(student);
    addRecord(student, fout);
    }

    fout.close();

    cout << "Данные записаны в файл " << filename << endl;
    break;
    }
    case 2: {
    ifstream fin(filename);
    if (!fin) {
    cerr << "Ошибка открытия файла для чтения" << endl;
    return 1;
    }

    cout << "Содержимое файла " << filename << ":" << endl;
    StudentRecord student;
    for (int k = 0; k < 10; k++) {
    readRecord(student, fin);
    cout << student.last_name << " " << student.student_id << " ";
    for (int i = 0; i < 4; i++) {
    cout << student.grades[i] << " ";
    }
    cout << endl;
    }

    fin.close();
    break;
    }
    case 3: {
    ifstream fin(filename);
    printFailingStudents(fin);
    break;
    }
    case 4: {
    int student_id;
    cout << "Введите номер зачетной книжки двоечника: ";
    cin >> student_id;
    fin.close();
    ifstream fin("students.txt");
    ofstream fout("temp.txt");

    if (!fout) {
    cerr << "Ошибка открытия временного файла для записи" << endl;
    return 1;
    }

    correctFailingStudent(fin, fout, student_id);

    fout.close();
    fin.close();

    DeleteFile((LPCWSTR)"students.txt");
    rename("temp.txt", "students.txt");
    break;
    }
    case 5: {
    fin.close();
    cout << "Выход из программы" << endl;
    system("pause");
    return 0;
    }
    default: {
    cout << "Неверный выбор" << endl;
    break;
    }
    }
    fin.close();
    }
    return 0;
    }
     
Loading...
Top