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

преобразование текстового файла в двоичный, чтение данных из двоичного с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка массива до и после определенного элемента http://www.cyberforum.ru/cpp-beginners/thread1112776.html
Есть одномерный массив из 20 последовательных элементов. Нужно: перемешать элементы массива, выбрать случайный элемент и отсортировать массив до этого элемента по возрастанию, после него - по убыванию. В целом все получилось, но что-то не так с сортировкой после элемента (в моем коде это функция RightSort). Без этой функции все работает как нужно - массив перемешивается и сортируется слева до...
C++ Составить программу, которая строит новую таблицу по двум исходным Заданы две таблицы:СОТРУДНИКИ и ОТДЕЛЫ. Составить программу, которая строит новую таблицу, включающую номер, фамилию и зарплату сотрудника, номер отдела, название отдела и количество сотрудников в отделе. Строки результирующей таблицы строятся как всевозможные сцепления строк исходных таблиц. http://www.cyberforum.ru/cpp-beginners/thread1112770.html
C++ Написать программу, определяющую радиус и центр окружности, проходящей по крайней мере через три различные точки заданного множества точек
Определить радиус и центр окружности, проходящей, по крайней мере, через три различные точки заданного множества точек на плоскости и, содержащей внутри наибольшее количество точек этого множества
Подгонка решения задачи под тесты Timus Online Judge, С++ C++
На Timus Online Judge столкнулся с довольно простой задачей, с которой у меня возникли некоторые проблемы. Задача: Программист Денис c детства мечтал побывать в Антарктиде, но почему-то регулярных рейсов туда нет. Поэтому Денис все лето изучал Антарктиду с помощью соседнего кинотеатра. Теперь он знает, что в Антарктиде водится несколько видов пингвинов: Императорские пингвины (Emperor...
C++ Списки языка C++ Удаление нужного элемента http://www.cyberforum.ru/cpp-beginners/thread1112742.html
Все не могу реализовать удаление нужного мне элемента из писка памогите написать функцию удаления введенного элемента. #include<iostream> #include<fstream> #include<string> #include<conio.h> using namespace std; struct link
C++ Рекурсия. Вывести на экран все перестановки чисел от 1 до n в лексикографическом порядке. При помощи рекурсии по данному числу n выведите на экран все перестановки чисел от 1 до n в лексикографическом порядке. Нужен текст программы, пример выполнения, блок схема. подробнее

Показать сообщение отдельно
Niklitel
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 17
06.03.2014, 16:19     преобразование текстового файла в двоичный, чтение данных из двоичного с++
Пожалуйста помогите разобраться, не могу понять почему не работает программа.
Нужно преобразовать текстовый файл в двоичный и читать данные из двоичного.

Сама задача такова :
На основе сводной экзаменационной ведомости, включающей фамилии студентов и оценки по дисциплинам (математика, физика, программирование, история), подсчитать средний балл для каждого студента и вывести:
Название дисциплины, по которой получено наибольшее количество "пятерок", и фамилии студентов, получивших по этому предмету "двойку".


Текстовый файл:
3
Hopi 2 3 3 5
Jkol 5 5 5 5
dfkjgkl 2 2 2 2


Код
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <fstream>
const int p = 15, k=4;
struct dannye
{   char fam [p];
    int oc[k];
};
int main ()
{
	setlocale(LC_ALL, "rus");
	using namespace std;
	int kol5[k] = {NULL};
	int n;
	char *predmet[] = {"MATEM", "PROGA","ISTOR","FIZIKA"};
    FILE *in,*out; 
	in = fopen ("студенты.txt", "r" ); 
	out = fopen ( "fileb.dat", "w+b" );
 	fscanf (in, "%d",&n);
	fwrite ( &n, sizeof(n), 1, out );
	dannye* dan = new dannye [n];
	int i = 0;
	while ( fscanf (in,"%s", &dan[i].fam) != EOF )
	{
		for (int j=0; j<k; j++){
			fscanf ( in, "%d", &dan[i].oc[j] );
		}		 		
		i++;
		fwrite ( &dan, sizeof(dannye), 1, out );
	}
	memset(dan, 0, sizeof(dannye)*n);
	fclose (in);
	fclose (out);
	out = fopen ( "fileb.dat", "r+b");
	fread ( &dan, sizeof(dannye), n+1, out );
	for (int i=0; i<n; i++){
		float s=0;
		for (int j=0; j<k; j++) {
			s=s+dan[i].oc[j];
       }
		s=s/k;
		if (i!=0) {
		cout<<"Студент  "<<dan[i].fam<<"  средний балл  = "<<s<<endl;
		}
	}
	int max=0, jmax, d=5, h=2,s=0;	
	for (int j=0; j<k; j++) {
		s=0;
		for (int i=0; i<n; i++) {
			if (dan[i].oc[j]==d) {
				s=s+1;
				kol5[j]=s;
			}
		}
		if (max<kol5[j]) {
		max=kol5[j];
		jmax=j;
		}
	}
	for (int j=0; j<k; j++) {		
			if(max==kol5[j]) {
				cout<<"Предмет, по которому набрано больше пятерок  "<<predmet[j]<<endl;
				for (int i=0; i<n; i++) {
					if(dan[i].oc[j]==h) {
						cout<<"Фамилия студента, получившего двойку по данному предмету:  "<<dan[i].fam<<endl;
					}
				}
			}
	}	
	getch ();
	return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru