Осталась Одна Ошибка Не Могу Исправить

Тема в разделе "C/C++/C#", создана пользователем samich, 2 июн 2012.

Статус темы:
Закрыта.
  1. samich

    samich New Member

    Регистрация:
    14 янв 2012
    Сообщения:
    1
    Симпатии:
    0
    1. Структура "Абитуриент":
    - фамилия, имя, отчество;
    - год рождения;
    - оценки вступительных экзаменов (3);
    - средний балл аттестата.
    Удалить элемент с указанным номером, добавить элемент после элемента с указанной фамилией


    #include "iostream"
    #include <stdio.h>
    #include <stdlib.h>
    using namespace std;
    typedef struct
    { // здесь данные для ввода
    char surname[64];
    char name[64];
    char sname[64];
    char god[64];
    int ozenka;
    int bal;
    } employee;

    employee userInput(void)
    {
    employee res;
    cout << "Enter surname: ";
    cin >> res.surname;
    cout << "Enter name: ";
    cin >> res.name;
    cout << "Enter second name: ";
    cin >> res.sname;
    cout << "Enter post: ";
    cin >> res.god;
    cout << "Enter age: ";
    cin >> res.ozenka;
    cout << "Enter price: ";
    cin >> res.bal;

    return res;
    }

    void userOutput(employee emp)
    {
    setlocale(LC_ALL, "russian");
    cout << "Фамилия: " << emp.surname << "\n";
    cout << "Имя: " << emp.name << "\n";
    cout << "Отчество: " << emp.sname << "\n";
    cout << "Год: " << emp.god << "\n";
    cout << "Оценка: " << emp.ozenka << "\n";
    cout << "Средний бал: " << emp.bal << "\n"; // тут оказывается нужно чтоб еще он сам выдвал средний бал из минимум 3 оценок, чтоб оценки не превышали от 1-5 . Ккуда и как записать тоже не знаю

    cout << "\n";
    }

    void mainInput(void)
    {
    FILE *fp;
    if ((fp = fopen("t.txt", "w")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    bool canContinue = true;
    while (canContinue)
    {
    employee emp = userInput();
    fwrite(&emp, sizeof(employee), 1, fp);

    cout << "\Continue (y/n)";
    char ans;
    cin >> ans;
    canContinue = (ans == 'y');
    }
    fclose(fp);
    }

    void outputFile(void)
    {
    FILE *fp;
    if ((fp = fopen("t.txt", "r")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    employee emp;
    fread(&emp, sizeof(employee), 1, fp);
    while (!feof(fp))
    {
    userOutput(emp);
    fread(&emp, sizeof(employee), 1, fp);
    }
    fclose(fp);
    }

    void getEmpArr(employee *empmas)
    {

    }

    void delRecord(int cutindex) // для удаления номера студента
    {
    FILE *fp;
    if ((fp = fopen("t.txt", "r")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    employee savearr[255];
    employee emp;
    int index = 0;
    fread(&emp, sizeof(employee), 1, fp);
    while (!feof(fp))
    {
    savearr[index++] = emp;
    fread(&emp, sizeof(employee), 1, fp);
    }
    fclose(fp);

    int n = index;

    if ((fp = fopen("t.txt", "w")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    for (index = cutindex; index < n; index++)
    {
    fwrite(&savearr[index], sizeof(employee), 1, fp);
    }

    fclose(fp);
    }

    void addRecord(employee newemp,char surname[]) //добавление после указанной фамилии
    {
    FILE *fp;
    if ((fp = fopen("t.txt", "r")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    employee savearr[255];
    employee emp;
    int index = 0;
    fread(&emp, sizeof(employee), 1, fp);
    while (!feof(fp))
    {
    savearr[index++] = emp;
    fread(&emp, sizeof(employee), 1, fp);
    }
    fclose(fp);

    int n = index;

    if ((fp = fopen("t.txt", "w")) == NULL)
    {
    perror("\nCan't open file");
    int fake_stop;
    cin >> fake_stop;
    exit(0);
    }

    for (index = 0; index < n; index++)
    {
    emp = savearr[index];
    if (strcmp(emp.surname, surname) != 0)
    fwrite(&emp, sizeof(employee), 1, fp);
    }
    fclose(fp);
    }


    void main(void)
    {
    setlocale(LC_ALL, "russian");
    mainInput();
    outputFile();

    char cutindex;
    cout << "Удалить элемент с указаным номером: ";
    cin >> cutindex;

    delRecord(int (cutindex));
    outputFile();

    int addindex;
    cout << "Укажите фамилию после которой добавить:";
    cin >> addindex;

    employee newemp = userInput();

    addRecord(newemp, (addindex[]));// вот тут пишет ошибку после addindex[] Кажется в самом алгоритме что то не то. чувствую :)
    outputFile();

    int fake_stop;
    cin >> fake_stop;
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей