Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2016, 19:45   #1
yurda
 
Регистрация: 24.05.2015
Сообщений: 8
По умолчанию Лабораторная работа(очень простая) Структуры, работа с файлами

В файле сохранить сведения о студентах: фамилию, оценки за сессию по 3 предметам, номер группы. Напечатать программу, которая оставляет в исходном файле только сведения о студентах, сдавших успешно сессию, или сведения о студентах, имеющих хотя бы одну двойку.
Я уже написал большую часть программы, но не знаю что нужно изменить, что бы память под массив структур была динамической.
Нужно доделать в этой программе. Сроки день (не думаю что на это уйдет уйма времени). Об оплате в почте договоримся. fappleq@gmail.com
Код:
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>

using namespace std;

int q = 0;
struct info
{
	char surname[50];
	int math;
	int phys;
	int progr;
	char group[50];
}list[1000];

int getlist()
{
	int p;
	int i = 0;
	for (;;)
	{
		cout << "Enter surname: ";
		cin >> list[i].surname;
		cout << "\nEnter group: ";
		cin >> list[i].group;
		cout << "\nEnter math: ";
		cin >> list[i].math;
		cout << "\nEnter phys: ";
		cin >> list[i].phys;
		cout << "\nEnter progr: ";
		cin >> list[i].progr;
		i++;
		cout << "\nEnter 1 to continue enter or 0 to stop: ";
		cin >> p;
		if (p == 0)
			break;
	}
	q = i;
	return i;
}
void edit()
{
	char newSurname[50];
	char buff[50];
	cout << "Enter surname for edit: ";
	cin >> buff;
	for (int i = 0; i < q; i++)
	{
		if (strcmp(buff, list[i].surname) == 0)
		{
			cout << "Enter new surname: ";
			cin >> newSurname;
			strcpy_s(list[i].surname, newSurname);
		}
	}
}
void deletePeople()
{
	char buff[50];
	int count = 0;
	cout << "Enter surname for delete: ";
	cin >> buff;
	for (int i = 0; i < q; i++)
	{
		if (strcmp(buff, list[i].surname) == 0)
		{
			for (;i < q; ++i)
			strcpy_s(list[i].surname, list[i + 1].surname);
			strcpy_s(list[i].group, list[i + 1].group);
			list[i].math = list[i + 1].math;
			list[i].phys = list[i + 1].phys;
			list[i].progr = list[i + 1].progr;
			count++;
		}
	}
	cout << "Delete: " << count << " people" << endl;
	q = q - count;
}
void saveFileMarks5()
{
	ofstream fout("list.txt");
	if (!fout.is_open())
		cout << "File not open!" << endl;
	else
	{
		for (int i = 0; i < q; i++)
		{
			if (list[i].math + list[i].phys + list[i].progr == 15) {
				fout << "surname " << list[i].surname << endl;
				fout << "group " << list[i].group << endl;
				fout << "math " << list[i].math << " phys " << list[i].phys << " programming " << list[i].progr << endl;
			}
		}
		fout.close();
	}
}
void saveFileMarks2()
{
	ofstream fout("list.txt");
	if (!fout.is_open())
		cout << "File not open!" << endl;
	else
	{
		for (int i = 0; i < q; i++)
		{
			int sum = 0;
			if (list[i].math == 2) sum++;
			if (list[i].phys == 2) sum++;
			if (list[i].progr == 2) sum++;
			if (sum == 1) {
				fout << "surname " << list[i].surname << endl;
				fout << "group " << list[i].group << endl;
				fout << "math " << list[i].math << " phys " << list[i].phys << " programming " << list[i].progr << endl;
			}
		}
		fout.close();
	}
	
}
void fromFile()
{
	int i = 0;
	char buff[70];
	ifstream fin("list.txt");
	if (!fin.is_open())
		cout << "File not open!" << endl;
	else
	{
		while (!fin.eof())
		{
			fin >> buff;
			if (strcmp("surname", buff) == 0)
				fin >> list[i].surname;
			if (strcmp("group", buff) == 0)
				fin >> list[i].group;
			if (strcmp("math", buff) == 0)
				fin >> list[i].math;
			if (strcmp("phys", buff) == 0)
				fin >> list[i].phys;
			if (strcmp("programming", buff) == 0)
				fin >> list[i].progr;
			i++;
		}
		fin.close();
	}
	q = i;
}
void showList()
{
	int number = q;
	for (int i = 0; i < number; i++)
	{
		cout << "Surname: " << list[i].surname << endl;
		cout << "Group: " << list[i].group << endl;
		cout << "Marks: " << list[i].math << " " << list[i].phys << " " << list[i].progr << endl;
	}
}
void menu()
{
	setlocale(LC_ALL, "Russian");
	int menu;
	do
	{
		cout << "1. Add student" << endl;
		cout << "2. Change student name" << endl;
		cout << "3. Delete student" << endl;
		cout << "4. Save if the marks 5" << endl;
		cout << "5. Save if the marks 2" << endl;
		cout << "6. Get information from file" << endl;
		cout << "7. Show list" << endl;
		cout << "0. Exit" << endl;
		cout << "\nYour choice > "; cin >> menu;
		switch (menu)
		{
		case 1:
		{
			getlist();
			cout << "\n" << endl;
			break;
		}
		case 2:
		{
			edit();
			cout << "\n" << endl;
			break;
		}
		case 3:
		{
			deletePeople();
			cout << "\n" << endl;
			break;
		}
		case 4:
		{
			saveFileMarks5();
			cout << "\n" << endl;
			break;
		}
		case 5:
		{
			saveFileMarks2();
			cout << "\n" << endl;
			break;
		}
		case 6:
		{
			fromFile();
			cout << "\n" << endl;
			break;
		}
		case 7:
		{
			showList();
			cout << "\n" << endl;
			break;
		}
		case 0:
			exit(0);
		default:
			cout << "Error!" << endl;
		}
	} while (menu != 0);
}
void main()
{
	menu();
	system("pause");
}
yurda вне форума Ответить с цитированием
Старый 11.06.2016, 06:13   #2
_vek21
Новичок
Джуниор
 
Регистрация: 17.12.2010
Сообщений: 1
По умолчанию

Готов выполнить за денежное вознаграждение.

Моё объявление и отзывы находятся здесь:
http://forum.sources.ru/index.php?showtopic=313018
Программирование на языках C/C++/Assembler, Pascal, Prolog, Lisp для Windows.
http://forum.sources.ru/index.php?showtopic=313018
_vek21 вне форума Ответить с цитированием
Старый 11.06.2016, 08:44   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Здравствуйте. Если актуально, ICQ 368161244 e-mail: informatik101@mail.ru vk.com/alexcoder1
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Структуры и работа с файлами(исправить программу) scrinn Помощь студентам 3 04.06.2012 18:56
лабораторная работа ALEX777a Фриланс 3 20.02.2012 20:32
Лабораторная работа 777pro777 Паскаль, Turbo Pascal, PascalABC.NET 2 25.10.2011 14:01
Работа с файлами!!! Очень нужно!! F(r)an!k Помощь студентам 4 23.03.2010 16:44