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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2018, 17:43   #1
uppupp
 
Регистрация: 05.10.2018
Сообщений: 5
По умолчанию Практика по Си++

Код:
#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstdlib>
#include <cstring>

struct Time
{
	int h;
	int m;
};

struct Train {
  char appointed[40];
	Time time;
  int number;
	char city[20];
} ;

int menuTitle(void){
  int c;

  printf("1. Ввод новых записей\n");
  printf("2. Просмотр списка\n");
  printf("3. Удаление записи из списка\n");
  printf("4. Добавление записи в список\n");
  printf("5. В файл\n");
  printf("6. Из файла\n");
  printf("7. Поиск записей\n");
  printf("8. Сортировка списка\n");
  printf("9. Выход\n");
  do {
    printf("Введите номер нужного пункта: ");
    std::cin >> c;
  } while(c < 1 || c > 9);
  return c;
}

void increaseSizeList(Train** train, int * max_size, int size) {
	;
	// создать новый массив в два раза больше исходного, скопировать все существующие записи из исходного в новый, освободить память первого исходного массива, и сохранить адрес нового массива
}

Train createRecord() {
	Train adr;
	std::cout << "Введите номер поезда: ";std::cin >> adr.number;
	std::cout << "Введите пункт назначения: "; std::cin >> adr.appointed;
	std::cout << "Введите час : "; std::cin >> adr.time.h;
	std::cout << "Введите минуты : "; std::cin >> adr.time.m;
	return adr;
}

int enter(Train **train, int * max_size, int size){
	int n;
	std::cout<<" Введите число новых записей\n";
	std::cin>> n;
	for(int i = 0; i < n; i++)
	{
		*train[i] = createRecord();
		
	}
	return 0;
}



void printList(Train *train, int size){
	// красивый вывод содержимого массива 
}

void deleteRecord(Train* train, int num, int size){
	// удалить существующую запись со сдвигом
}

void addRecord(Train** train, int max_size, int *size){
	// добавить в конец массива новую запись, если необходимо размер массива увеличить
}

void inFile(Train* train, int max_size, int size){
	std::ofstream out;
	out.open("train2.txt", std::ios::out);
	// запись в файл
	out.close(); 
}

int fromFile(Train** train, int *max_size, int *size){
	std::fstream in;
	// чтение из файла	
	return 0;
}

void findRecords(Train* train, int size){
	char city[20];
	std::cout << "Введите город "; std::cin>> city;
	// найти запись и вывести (использовать ф-цию compare)
}

int compare(const void * left, const void * right){ 	//для qsort
	if (strcmp(((Train*)left)->city, ((Train*)right)->city) == 1 )
		return 1;
	if (strcmp(((Train*)left)->city, ((Train*)right)->city) == 0 && strcmp(((Train*)left)->appointed, ((Train*)right)->appointed) == 1  )
		return 1;
	return 0;
}

void sort (Train* train, int size){
	//выполнить сортировку с помощью функции qsort
	std::qsort(train, size, sizeof *train, compare);
	
}

int menu(Train *train, int max_size, int size){
    for(;;) {
    char choice = menuTitle();
    switch(choice) {
	case 1: size = enter(&train, &max_size, size);
		  break;
	case 2: printList(train, size);     
		  break;
	case 3:
		  printf("\nВведите номер удаляемой записи: ");
		  int num;
		  std::cin >> num;
		  deleteRecord(train, num, size);
		  size--;
        	  break;
	case 4: addRecord(&train, max_size, &size); 
		  break;
	case 5: inFile(train, max_size, size);
		  break;
	case 6: fromFile(&train, &max_size, &size); 
		  break;
	case 7: findRecords(train, size);  
		  break;
	case 8: sort(train, size);
		  break;
	case 9: exit(0);
		  delete[]train;
		  break;
    }
  }
}



int main(void)
{
  setlocale(0,"");
  int max_size = 5;				// мах зарезервированное количество записей в списке адресов
  int size = 0; 				// всего записей в списке = size (номер новой будущей записи в списке)
  Train * train = new Train[max_size]; 	// массив для хранениния списка адресов
  menu(train, max_size, size);
}

Нужно сделать так чтобы менюшка работала, то есть реализовать не сделанные функции, хелп пожалуйста

Последний раз редактировалось uppupp; 05.10.2018 в 18:23.
uppupp вне форума Ответить с цитированием
Старый 05.10.2018, 17:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

И? Раздел фриланса ниже.

Что возвращает функция
Код:
Train createRecord() {
Train adr;
std::cout << "Введите номер поезда: ";std::cin >> adr.number;
std::cout << "Введите пункт назначения: "; std::cin >> adr.appointed;
std::cout << "Введите час : "; std::cin >> adr.time.h;
std::cout << "Введите минуты : "; std::cin >> adr.time.m;
}
?
p51x вне форума Ответить с цитированием
Старый 05.10.2018, 18:07   #3
uppupp
 
Регистрация: 05.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
И? Раздел фриланса ниже.

Что возвращает функция
Код:
Train createRecord() {
Train adr;
std::cout << "Введите номер поезда: ";std::cin >> adr.number;
std::cout << "Введите пункт назначения: "; std::cin >> adr.appointed;
std::cout << "Введите час : "; std::cin >> adr.time.h;
std::cout << "Введите минуты : "; std::cin >> adr.time.m;
}
?
таки ничего
uppupp вне форума Ответить с цитированием
Старый 05.10.2018, 18:09   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так для начала исправьте очевидные ошибки и сделайте, чтобы оно хотя бы компилировалось.
p51x вне форума Ответить с цитированием
Старый 05.10.2018, 18:23   #5
uppupp
 
Регистрация: 05.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну так для начала исправьте очевидные ошибки и сделайте, чтобы оно хотя бы компилировалось.
готово
uppupp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Практика Silvis Паскаль, Turbo Pascal, PascalABC.NET 4 10.01.2012 00:24
Практика Крим Помощь студентам 13 28.06.2011 16:24
Практика ! IT-WAR10CK Общие вопросы C/C++ 0 28.11.2010 21:37
Практика prittygirl Паскаль, Turbo Pascal, PascalABC.NET 10 14.06.2010 20:46
ПРАКТИКА!!! juan666777 Свободное общение 15 22.07.2009 17:49