S
samich
извиняюсь за повторы при создании темы вылазила белая страница с ошибкой поэтому думал что тема не создалась
[sql]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;
}[/sql]
[sql]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;
}[/sql]