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

Статус
Закрыто для дальнейших ответов.

samich

New member
14.01.2012
1
0
#1
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;
}
 
Статус
Закрыто для дальнейших ответов.