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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2015, 23:45   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию Время Записи (С++)

Вот например у меня есть время работы с 8 до 12
и мне нужно записать время приема с 8.00 и так до 12 пускай время 1 приема 45 минут и есть вторая смена которая работает с 12 по 16
предполагается что приемов будет больше 1 (то есть 8.00 + 0.45. 8.45 +0.45...)
как организовать ?
Sterben вне форума Ответить с цитированием
Старый 24.09.2015, 07:18   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Есть два алгоритма.
1. Организация расписаний.
2. Организация очередей.
Из Вашего сумбурного описания задачи, больше ничего на ум не приходит. Конкретизируйтесь.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.09.2015, 07:41   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Из Вашего сумбурного описания задачи, больше ничего на ум не приходит. Конкретизируйтесь.
Согласен. Мало что понятно. Наверное таблица-расписание нужна.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.09.2015, 10:51   #4
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <string.h>
#define N 10
using namespace std;
class hospital {
private:
	short date[3];
	string patient_name[N];
	string name_doctor;
	string qualification;
	short cabinet;
	short time[2];
public:
	hospital() {
		date[0] = date[1] = date[2]=0;
		cabinet = 0;
	}
	void add_patient()
	{
		int i = 0;
		for (; i < N; ++i)
			if (patient_name[i].size() == 0)break;
		if (i == N) { cout << "Not free place,pls choice other doctor\n" << endl; cin.get(); exit; }
			else
			{
				cin.ignore();
				cout << endl << i + 1 << ". Writes" << endl;
				cout << "Input Name of Patient: ";
				getline(cin, patient_name[i]);
			}
	}

	hospital(const hospital &Copy) {

	}
	void input(char*);
	void input_time(int);
	string ret_name_doctor() {
		return name_doctor;
	}
	void show()
	{
		int Null = 0;
		cout << name_doctor << " " << qualification << " " << cabinet << " "
			<< date[0] << ":" << date[1] << ":" << date[2] << endl;
		for (int i = 0; i < N; i++) {
			if (patient_name[i].size() == 0)
				break;
			else { cout << i + 1 << ". writes name of patient : " << patient_name[i] << " "  << time[0] << " : "<< time[1] << endl; }
		}
	}
};
void hospital::input(char* str)
{
	char* p,*p1=NULL;
	int i = 0;
	p = strtok_s(str, " ",&p1);
	name_doctor = string((const char*)p);
	p = strtok_s(NULL, " ",&p1);
	qualification = string((const char*)p);
	p = strtok_s(NULL, " ", &p1);
	cabinet = atoi(( const char *)p);
	for (; i < 3; ++i) {
	p = strtok_s(NULL, ". ",&p1);
     date[i] = atoi((const char *)p);
		}
	}
void hospital::input_time(int shift)
{
		time[1] = time[1] + 20;
		if (time[1] == 60)
			time[0] = time[0] + 1; time[1] = 0;
}
unsigned static count;
void main()
{
	const  unsigned n = 4;
	int shift;
	hospital Info[n];
	char str[255];
	int i = 0;
	ifstream array_info("doctors.txt");
	if (!array_info) { cout << "file not find"; cin.get(); return; }
	while (!array_info.eof() && !array_info.fail() && i < n) {
		array_info.getline(str, 255);
		Info[i].input(str);
		++i;
	}
	array_info.close();
	do {
		cout << "choice shift: \n";
		cout << "1.first 8 - 14 \n";
		cout << "2. second 14 - 18\n";
		cout << "Choice:_\b";
		cin >> shift;
		i = (shift == 1) ? 0 : 1;
		for (; i < n; i+=2) {
		cout << i+1 << ". " << Info[i].ret_name_doctor() << endl;
			}
		cout << "5. The end procces\n";
		cout << "Input your choise:_\b";
		cin >> i;
		if (i == 5) { break; }
		Info[i-1].add_patient();
		Info[i - 1].input_time(shift);
	} while (i <= N);
	for (i = 0; i < n; i++)
	Info[i].show();
	cin.get();
	cin.get();
}
надо занести каждую запись пациента на определенное время по сменно
пример файла:
"Ivanov.I.I Therapist 12 24.09.15
Petrov.I.I Therapist 3 25.09.15
Kvasha.A.V Therapist 6 26.09.15
Ivanov.I.I Therapist 11 24.09.15"
может как то при выводе с 8 добавлять по 20 минут и также само на вторую смену ?

Последний раз редактировалось Sterben; 24.09.2015 в 11:14.
Sterben вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текущее время (системное время ) Sirk0 Общие вопросы Delphi 27 07.03.2015 17:52
Описать, используя структуру данных запись, завод (наименование станка, время простоя в месяц, время работы в месяц). Составить Ксюндра Помощь студентам 1 13.03.2014 17:40
Как обновить последние записи за определенный срок не обновляя не законченные записи? SotGEGDS SQL, базы данных 3 11.06.2013 14:39
Запуск программы в определенное время ( день и время ) artbotva Общие вопросы Delphi 4 09.11.2012 15:05
Время нажатия на кнопку мыши(Время реакции) Кирилл13 Помощь студентам 1 11.04.2009 19:41