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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 18:10   #1
Фрося90
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 5
По умолчанию с++ театральная база данных.

Помогите пожалуйста !!! не могу написать!!! а надо срочно !!!! написать нужно в с++
Театральная база данных. Информация: актеры — фамилия, имя, отчество, дата рождения, список спектаклей, в которых занят актер, роли, исполняемые в данных спектаклях; спектакли — автор пьесы, название, постановщик, список действующих лиц и исполнителей; афиша — название спектакля, дата, время; билеты — дата, количество билетов разного типа (партер, ложи, балкон и др.). Операции: коррекция списка актеров и списка спектаклей; составление и коррекция афиши; продажа билетов на спектакли; справки (участие актеров в различных постановках, информация по спектаклям и др.).
Фрося90 вне форума Ответить с цитированием
Старый 15.12.2011, 18:15   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Тебе во фриланс.
Бесплатно таким вряд ли кто-то будет заниматься.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 15.12.2011, 18:18   #3
Фрося90
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 5
По умолчанию начало

вот начало кода, незнаю как делать коррекцию, а именно коррекция списка актеров и списка спектаклей; составление и коррекция афиши
#include "Shared.h"
#include <string.h>

//рассчёт количества дней в m-месяце y-года.
int DaysInMonth(int year, int month)
{
if (month != 2)
{
return ((month%2) ^ (month>7)) + 30;
}
else
{
if (!(year%400) || !(year%4) && (year%100))
return 29;
else
return 28;
}
}

bool DateInput(char *text, char *out)
{
char buf[20];

while (true)
{
printf("%s (дд.мм.гггг) или наберите 0 для выхода\n", text);
scanf("%s", &buf);

if (strcmp(buf, "0")==0)
return false;

// 0 - dd
// 1 - mm
// 2 - yyyy
char *date[3];
char *item = strtok(buf, ".\n");
int i;
for (i = 0; i < 3 && item; i++)
{
date[i] = item;
item = strtok(NULL, ".\n");
}

if (i < 3)
{
printf("Некорректно введена дата\n");
continue;
}

int day = atoi(date[0]),
month = atoi(date[1]),
year = atoi(date[2]);

if (month > 12 || day > DaysInMonth(month, year))
{
printf("\nНекорректно введена дата.\n"
"Введите корректную дату в формате дд.мм.гггг\n\n");
continue;
}

*((date[1])-1) = *((date[2])-1) = '.';

strcpy(out, buf);
return true;
}
}

int GetMenu(int max, char *msg, char *errmsg)
{
int Menu;
while (true)
{
printf("%s или выберите 0 для выхода\n", msg);
scanf("%d", &Menu);
if (Menu < 0 || Menu > max)
{
printf("%s . Допустимые номера: 1-%d или 0 для выхода\n", errmsg, max);
//system("cls");
}
else
break;
}
return Menu - 1;
}

acter* GetTail(acter* List)
{
acter* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next);

return result;
}

int GetCount(acter* List)
{
int i = 1;
acter* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next, i++);

return i;
}

acter* GetItem(acter* List, int i)
{
acter* result;
int cur;

if (!List || i < 0)
return 0;

for(result=List, cur=0; result; result = result->next, cur++)
{
if(cur==i)
return result;
}

return 0;
}

int AddAct(acter** List, char* fam, char* imya, char* otch, char* dataR, char* spisokSpec, char* rol)
{
acter P;
strcpy(P.fam, fam);
strcpy(P.imya, imya);
strcpy(P.otch, otch);
strcpy(P.dataR, dataR);
strcpy(P.spisokSpec, spisokSpec);
strcpy(P.rol, rol);


return AddAct(List, P);
}

int AddAct(acter **List, acter Act)
{
if (!Act.spisokSpec[0] || !Act.dataR[0] || !Act.rol[0] ||
!Act.fam[0] || !Act.imya[0] || !Act.otch[0])
return 1;

acter* NewT = new acter;
memcpy(NewT, &Act, sizeof(acter));
NewT->next = 0;
acter *Tail = GetTail(*List);

if (!Tail)
*List = NewT;
else
Tail->next = NewT;
return 0;
}

int DeleteAct(acter **List, acter *DelItem)
{
acter *PrevDelItem;

if (!List || !*List)
return 1;
else if (*List == DelItem)
{
delete DelItem;
*List = NULL;
return 0;
}

for(PrevDelItem = *List; PrevDelItem->next != DelItem; PrevDelItem = PrevDelItem->next)
{
if (!PrevDelItem->next)
return 1;
}

PrevDelItem->next = DelItem->next;

delete DelItem;
return 0;
}


//

spectakl* GetTail(spectakl* List)
{
spectakl* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next);

return result;
}

int GetCount(spectakl* List)
{
int i = 1;
spectakl* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next, i++);

return i;
}

spectakl* GetItem(spectakl* List, int i)
{
spectakl* result;
int cur;

if (!List || i < 0)
return 0;

for(result=List, cur=0; result; result = result->next, cur++)
{
if(cur==i)
return result;
}

return 0;
}

int AddSpectakl(spectakl **List, char* avtor, char* name, char* post, char* spisok)
{
spectakl V;
strcpy(V.avtor, avtor);
strcpy(V.name, name);
strcpy(V.post, post);
strcpy(V.spisok, spisok);


return AddSpectakl(List, V);
}

int AddVrach(spectakl **List, spectakl S)
{
if (!S.avtor[0] || !S.name[0] || !S.post[0] ||
!S.spisok[0])
return 1;

spectakl* NewT = new spectakl;
memcpy(NewT, &S, sizeof(spectakl));
NewT->next = 0;
spectakl *Tail = GetTail(*List);

if (!Tail)
*List = NewT;
else
Tail->next = NewT;
return 0;
}

int DeleteSpectakl(spectakl **List, bilet *List_B, acter *List_Pac, spectakl *DelItem)
{
spectakl *PrevDelItem;

if (!List || !*List)
return 1;
else if (*List == DelItem)
{
delete DelItem;
*List = NULL;
return 0;
}
Фрося90 вне форума Ответить с цитированием
Старый 15.12.2011, 18:24   #4
Фрося90
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 5
По умолчанию начало

вот начало кода, незнаю как делать коррекцию, а именно коррекция списка актеров и списка спектаклей; составление и коррекция афиши
#include "Shared.h"
#include <string.h>

//рассчёт количества дней в m-месяце y-года.
int DaysInMonth(int year, int month)
{
if (month != 2)
{
return ((month%2) ^ (month>7)) + 30;
}
else
{
if (!(year%400) || !(year%4) && (year%100))
return 29;
else
return 28;
}
}

bool DateInput(char *text, char *out)
{
char buf[20];

while (true)
{
printf("%s (дд.мм.гггг) или наберите 0 для выхода\n", text);
scanf("%s", &buf);

if (strcmp(buf, "0")==0)
return false;

// 0 - dd
// 1 - mm
// 2 - yyyy
char *date[3];
char *item = strtok(buf, ".\n");
int i;
for (i = 0; i < 3 && item; i++)
{
date[i] = item;
item = strtok(NULL, ".\n");
}

if (i < 3)
{
printf("Некорректно введена дата\n");
continue;
}

int day = atoi(date[0]),
month = atoi(date[1]),
year = atoi(date[2]);

if (month > 12 || day > DaysInMonth(month, year))
{
printf("\nНекорректно введена дата.\n"
"Введите корректную дату в формате дд.мм.гггг\n\n");
continue;
}

*((date[1])-1) = *((date[2])-1) = '.';

strcpy(out, buf);
return true;
}
}

int GetMenu(int max, char *msg, char *errmsg)
{
int Menu;
while (true)
{
printf("%s или выберите 0 для выхода\n", msg);
scanf("%d", &Menu);
if (Menu < 0 || Menu > max)
{
printf("%s . Допустимые номера: 1-%d или 0 для выхода\n", errmsg, max);
//system("cls");
}
else
break;
}
return Menu - 1;
}

acter* GetTail(acter* List)
{
acter* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next);

return result;
}

int GetCount(acter* List)
{
int i = 1;
acter* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next, i++);

return i;
}

acter* GetItem(acter* List, int i)
{
acter* result;
int cur;

if (!List || i < 0)
return 0;

for(result=List, cur=0; result; result = result->next, cur++)
{
if(cur==i)
return result;
}

return 0;
}

int AddAct(acter** List, char* fam, char* imya, char* otch, char* dataR, char* spisokSpec, char* rol)
{
acter P;
strcpy(P.fam, fam);
strcpy(P.imya, imya);
strcpy(P.otch, otch);
strcpy(P.dataR, dataR);
strcpy(P.spisokSpec, spisokSpec);
strcpy(P.rol, rol);


return AddAct(List, P);
}

int AddAct(acter **List, acter Act)
{
if (!Act.spisokSpec[0] || !Act.dataR[0] || !Act.rol[0] ||
!Act.fam[0] || !Act.imya[0] || !Act.otch[0])
return 1;

acter* NewT = new acter;
memcpy(NewT, &Act, sizeof(acter));
NewT->next = 0;
acter *Tail = GetTail(*List);

if (!Tail)
*List = NewT;
else
Tail->next = NewT;
return 0;
}

int DeleteAct(acter **List, acter *DelItem)
{
acter *PrevDelItem;

if (!List || !*List)
return 1;
else if (*List == DelItem)
{
delete DelItem;
*List = NULL;
return 0;
}

for(PrevDelItem = *List; PrevDelItem->next != DelItem; PrevDelItem = PrevDelItem->next)
{
if (!PrevDelItem->next)
return 1;
}

PrevDelItem->next = DelItem->next;

delete DelItem;
return 0;
}


//

spectakl* GetTail(spectakl* List)
{
spectakl* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next);

return result;
}

int GetCount(spectakl* List)
{
int i = 1;
spectakl* result;
if (!List)
return 0;

for(result=List; result->next; result = result->next, i++);

return i;
}

spectakl* GetItem(spectakl* List, int i)
{
spectakl* result;
int cur;

if (!List || i < 0)
return 0;

for(result=List, cur=0; result; result = result->next, cur++)
{
if(cur==i)
return result;
}

return 0;
}

int AddSpectakl(spectakl **List, char* avtor, char* name, char* post, char* spisok)
{
spectakl V;
strcpy(V.avtor, avtor);
strcpy(V.name, name);
strcpy(V.post, post);
strcpy(V.spisok, spisok);


return AddSpectakl(List, V);
}

int AddVrach(spectakl **List, spectakl S)
{
if (!S.avtor[0] || !S.name[0] || !S.post[0] ||
!S.spisok[0])
return 1;

spectakl* NewT = new spectakl;
memcpy(NewT, &S, sizeof(spectakl));
NewT->next = 0;
spectakl *Tail = GetTail(*List);

if (!Tail)
*List = NewT;
else
Tail->next = NewT;
return 0;
}

int DeleteSpectakl(spectakl **List, bilet *List_B, acter *List_Pac, spectakl *DelItem)
{
spectakl *PrevDelItem;

if (!List || !*List)
return 1;
else if (*List == DelItem)
{
delete DelItem;
*List = NULL;
return 0;
}
Фрося90 вне форума Ответить с цитированием
Старый 15.12.2011, 18:26   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Вот еще бы код правильно оформить, а? Кнопочкой с решеткой...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 15.12.2011, 18:43   #6
Фрося90
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 5
По умолчанию

я не знаю как =(((
Фрося90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
база данных. добавление и удаление данных midiss Общие вопросы Delphi 3 09.12.2011 13:07
База данных и технология хранения данных Kate1 Помощь студентам 2 17.11.2011 23:27
Небольшая база в Open Office База данных. sashaman Фриланс 3 11.04.2010 20:13
База данных ImmortalAlexSan Общие вопросы Delphi 2 03.01.2010 12:24
База данных с возможностью приема данных из файлов Excel Al_Sha БД в Delphi 6 16.10.2009 15:34