Форум программистов, компьютерный форум CyberForum.ru

Структуры в С++ и вывод студентов со средним баллом больше 7. Исправить код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задано слово.Удалить повторяющие буквы http://www.cyberforum.ru/cpp-beginners/thread1005082.html
Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #include <stdlib.h> #include "conio.h" #include <iostream> #include "time.h" #include "locale" #include "string.h" using namespace std; bool exist; char b;
C++ Написать программу выводящую на экран таблицу значений функции 2. Написать программу выводящую на экран таблицу значений функции Y= sin(X) на отрезке с шагом h. (аргумент функции sin(x) выражается в радианах , а не в привычных градусах 1r=57.296◦) http://www.cyberforum.ru/cpp-beginners/thread1005073.html
C++ двоичное дерево поиска
Нужно построить двоичное дерево поиска из букв строки что вводится. Вывести его на экран в виде дерева. Найти буквы, которые встречаются более одного раза и удалить их. Вывести элементы, что остались, при постфиксном обходе.
C++ Написать программу- вводная информация в файле in.txt, выходная информация в out.txt
Написать программу- вводная информация в файле in.txt, выходная информация в out.txt. Срочнооо..
C++ Написать программу "Отдел кадров", используя классы http://www.cyberforum.ru/cpp-beginners/thread1005048.html
Написать программу "Отдел кадров", используя классы. В public указать имя, год рождения и оклад сотрудника, в private город, адрес, пол. Данные вводить с клавиатуры. Программа должна выводить по запросу имена сотрудников, оклад которых превышает 35 000, и список сотрудников, проживающих в определенном городе. помогите пжл!!!
C++ описать процедуру PrevDate(D) с параметром типа TDate, которая преобразует дату D к предыдущей дате 1)Используя тип TDate и функции DaysInMonth и CheckDate (см. зада-ния Param59–Param61), описать процедуру PrevDate(D) с параметром типа TDate, которая преобразует дату D к предыдущей дате (если дата D явля-ется неправильной, то она не изменяется). Запись D является входным и выходным параметром. Применить процедуру PrevDate к пяти данным да-там. подробнее

Показать сообщение отдельно
Nansy17
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 12
11.11.2013, 23:50     Структуры в С++ и вывод студентов со средним баллом больше 7. Исправить код
Помогите с заданием, кто понимает.
Составить программу формирования файла, содержащего Ведомость студентов, сдававших сессию, содержит ФИО и оценки по четырем предметам. Вывести список студентов, сдавших сессию со средним
баллом больше 7.В программе предусмотреть сохранение вводимых данных в файле и возможность чтения из ранее сохраненного файла. Вывести результаты на экран и в текстовой файл.


Код такой у меня. Знаю, что в той части, где нужно вывести список студентов со средним баллом больше 7 у меня точно есть ошибка (выделили жирным). Исправьте плииииз.
#include <iostream.h>
#include <stdio.h>
#include <io.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

FILE *fl;
typedef struct
{
char fio[30];
unsigned char matem;
unsigned char pravo;
unsigned char fiz;
unsigned char ist;
} TStudent;
TStudent stud[30];
char name[20]; // Имя файла
int nst = 0; // Число введенных структур
int Menu(); // Создание меню
void Nnf(); // Ввод имени файла
void Newf(); // Создание нового файла
void Spisok(); // Формирование файла
void Opf(); // Открытие файла
void Resc(); // Вывод результата на экран
void Resf();
int main()
{
while (true)
{
switch (Menu())
{
case 1: Nnf(); break;
case 2: Newf(); break;
case 3: Spisok(); break;
case 4: Opf(); break;
case 5: Resc(); break;
case 6: Resf(); break;
case 7: return 0;
default: puts("Viberite pravilno!");
}
puts ("Press any key to continue");
getch (); // Ожидание нажатия любой клавиши
system ("cls"); // Очистка экрана
}
}

int Menu() // Меню
{
cout << "VIBERITE:" << endl;
cout << "1. Vvod file name" << endl;
cout << "2. New file" << endl;
cout << "3. Vvesti spisok" << endl;
cout << "4. Open file" << endl;
cout << "5. Vivesti result" << endl;
cout << "6. Vivesti v fail" << endl;
cout << "7. Exit" << endl;
int i;
cin >> i; // Ввод выбранного пункта меню
return i;
}
void Nnf() // Ввод имени файла
{
cout << "Vvedite file name" << endl;
cin >> name;
}
void Newf() // Создание нового файла
{
if ((fl = fopen(name,"wt")) == NULL)
{
cout << "Oshibka pri sozdanii" << endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void Spisok() // Ввод данных в файла
{
if ((fl = fopen(name,"rt+")) == NULL)
{
cout << "Oshibka pri sozdanii" << endl;
exit(1);
}
cout << "Vvedite chislo studentov" << endl;
cin >> nst;
for (int i=0; i<nst; i++)
{
cout << "Vvedite imya: ";
cin >> stud[i].fio;
cout << "Vvedite otcenku po matematike: ";
cin >> stud[i].matem;
cout << "Vvedite otcenku po pravu: ";
cin >> stud[i].pravo;
cout << "Vvedite otcenku po fizike: ";
cin >> stud[i].fiz;
cout << "Vvedite otcenku po istorii: ";
cin >> stud[i].ist;
fwrite (&stud[i], sizeof(TStudent), 1, fl);
}
fclose (fl);
}
void Opf() // Открытие бинарного файла
{
if ((fl = fopen (name,"rb")) == NULL)
{
cout << "Oshibka pri otkritii" << endl;
exit(1);
}
nst = 0;
TStudent std;
while (true)
{
int nwrt = fread (&std, sizeof(TStudent), 1, fl);
if (nwrt != 1) break;
stud[nst] = std;
cout << stud[nst].fio << " " << stud[nst].matem << " "
<< stud[nst].pravo << " "
<< stud[nst].fiz << " "
<< stud[nst].ist << " " ;
endl;
nst++;
}
fclose(fl);
}
void Resc() // Вывод результата на экран
{
for (int i=0; i<nst; i++)
if ((stud[i].matem+stud[i].pravo+stud[i].fiz+stud[i].ist)/nst >= '7')
cout << stud[i].fio << endl;
}
void Resf() // Вывод результата в текстовый файл
{
char namet[30];
FILE *ft;
cout << "Vvedite imya faila" << endl;
cin >> namet;
if ((ft = fopen (namet,"w")) == NULL)
{
cout << "Oshibka pri sozdanii" << endl;
exit(1);
}
char s[80];
for (int i=0; i<nst; i++)
if ((stud[i].matem+stud[i].pravo+stud[i].fiz+stud[i].ist)/nst>= '7')
{
strcpy (s, stud[i].fio);
strcat (s, "\n"); // Добавление разделителя строк
fputs (s, ft);
}
fclose(ft);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru