Загрузка...

Help with GPT C++ shitcode

Thread in C/C++ created by MoJungle Jun 20, 2023. 246 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. Daemon
      hatenig, с таким заголовком лучше не стоит
    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