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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Argentum21
1 / 1 / 0
Регистрация: 05.03.2014
Сообщений: 75
#1

Алгоритм составления расписания занятий ВУЗа - C++

13.05.2014, 21:01. Просмотров 1420. Ответов 1
Метки нет (Все метки)

Дорогие друзья, сейчас у меня на руках задание по составлению расписания в ВУЗе.
Пока определилась только со структурами и вводом, считываю введеные данные в файл, так же организовала графическое меню.
Очень нужна Ваша помощь! Любые идеи, советы и пояснения, все что угодно.
Догадываюсь, что сперва нужно заполнить таблицу результата случайным образом лекциями, ибо на лекциях присутствует обычно несколько групп и, следовательно, подгрупп, однако, не знаю как воплотить эту идею в виде кода.
Совсем нет идей...

Условие самой задачи: (№8)
http://cs614823.vk.me/v614823823/5584/KgoZ0Kz5aRY.jpg
http://cs614823.vk.me/v614823823/558e/8U1773peXAc.jpg


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <stdio.h>
#include <conio.h> 
#include <string.h>
#include <math.h>
#include <dos.h>
#include <graphics.h>
 
 
struct diciplina
{
       char name_predmet[20];
       int lec, sem, lab;
};
 
 
struct prepodavatel 
{
       diciplina predmet;
       char FIO[25];
};
       
 
struct auditoria
{
       int nomer_audit[2];
       int id[3]; //идентификатор: 0 - лекция, 1- семинар, 3- лабораторная
};
 
struct group
{
       int n_gr;
       int n_podgruppy; //max - 2 podgruppy: 1 and 2
};                    
 
 
 
void input ()
{
     diciplina dic;
     prepodavatel pr;
     auditoria audit;
     group gr;
char filename[100];
int vsego_audit=0;
printf ("\nViberite deystvie\n");
printf ("\n1). Sozdat` file\n");
printf ("\n2). Otkrit` file\n");
fflush (stdin);
char d=getche ();
FILE *F;
if (d=='1')
{
printf ("\nVvedite imya dlya novogo faila\n");
gets (filename);
F=fopen (filename, "wb+");
}
if (d=='2')
{
printf ("\nVvedite imya faila\n");
gets (filename);
F=fopen (filename, "rb+");
if (F)
printf ("\nFile sushestvuet!\n");
else
{ printf ("File ne sushestvuet!\n");
printf ("\nViberite deistvye:\n");
printf ("\n1). Sozdat file\n");
printf ("\n2). Vyhod!\n");
d=getche ();
if (d=='1')
{
printf ("\nVvedite imya dlya novogo faila\n");
gets (filename);
F=fopen (filename, "wb+");
}
if (d=='2')
return;
}
}
{
do
{ fflush (stdin);
printf ("\nVyberute deistvie: \n");
printf ("\n1). Dobavit dannye\n");
printf ("\n2). Posmotret` dannye\n");
printf ("\n3). Sozdat file zanovo \n");
printf ("\n4). Vyhod!");
d=getche ();
if (d=='4') break;
if (d=='3')
{
printf ("\nVvedite imy dly novogo faila\n");
gets (filename);
F=fopen (filename, "wb+");
}
if (d=='1')
{
F=fopen (filename, "ab+");
do
 { fflush (stdin);
  printf ("Vvedite FIO prepodavatelya, provod. zanyatiye: \n");
  gets (pr.FIO);
  printf ("\n Vvedite naim.discipliny: \n");
  gets (dic.name_predmet);
  printf ("\n Vvedite kol-vo lekciy po etoy discipline: \n");
  scanf ("%d", &dic.lec);
  printf ("Vvedite kol-vo seminar. zanyatiy po etoy discipline: \n");
  scanf ("%d",&dic.sem);
  printf ("Vvedite kol-vo lab.rabot po etoy discipline: \n");
  scanf ("%d", &dic.lab);
  printf ("Vvedite nomera vozmozhnyh auditoriy dlya dannogo zanyatiya: \n");
  for (int i=0; i<2; i++)
  scanf ("%d", &audit.nomer_audit[i]);
  fwrite (&pr, sizeof(pr), 1, F);
  fwrite (&audit, sizeof(audit), 1, F);
  fwrite (&dic,sizeof(dic), 1, F);
  printf ("\nProdolzat' vvod: [D/H]\n");
  fflush (stdin);
  d=getche ();
 }
 while (d=='D' || d=='d');
 fclose (F);
}
}
while (d!=1 || d!=2 || d!=3);
}
}
 
 
 
 
 
 
void inf ()
{    initwindow (800, 600);
     setcolor (4);
     outtextxy (0, 0, "Nazvanie programmy: Raspisanie zanyatiy. Chtoby posmotret optimalnoe raspisanie, nazhmite 1.");
}     
      
 
 
 
int main ()
{ int menu1;
char d = '\0';
do
{
initwindow (800, 600);
settextstyle (0, 0, 32); //0 0 4
setcolor (3);
outtextxy (250, 100, "ÐÀÑÏÈÑÀÍÈÅ");
setcolor (10);
setlinestyle (0, 0, 5);
circle (175, 185, 30);
outtextxy (160, 170, "1");
outtextxy (220, 170, "Ââîä Г¤Г*Г*Г*ûõ");
setcolor (2);
circle (175, 250, 30);
outtextxy (159, 235, "2");
outtextxy (220, 235, "ÑïðГ*ГўГЄГ*");
circle (175, 315, 30);
outtextxy (159, 300, "3");
outtextxy (220, 300, "Âûõîä!");
getch ();
if (d=='3') break;
fflush(stdin);
scanf ("%d", &menu1);
switch (menu1)
{ case 1: input (); break;
  case 2: inf (); break;
}
}
while (menu1!=3);
closegraph ();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2014, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм составления расписания занятий ВУЗа (C++):

Разработка программы составления расписания занятий - C++
Исходные данные: Наименование дисциплин Количество лекций, семинаров и лабораторных занятий по каждой дисциплине на неделе Фамилии...

Генетический алгоритм для составления расписания - C++
В генетическом алгоритме для составления расписаний что берется в качестве особи, хромосомы и гена. Как происходит скрещивание? Если...

Помогите составить программу расписания занятий. - C++
Условие:Требуется создать расписание уроков на любые два дня(понедельник,вторник).Уроки можно взять произвольные.

Вычисление дней недели для составления расписания - C++
Доброе время суток! Буквально несколько дней назад начал жадно вгрызаться в мануалы по С++ и сейчас меня посетила идея: А что, если я...

Нужно написать программу для составления расписания - C++
всем привет) нужно сделать программу для составления расписания в универе, к примеру для одной - двух групп на неделю, и все это потом...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...

1
Andreiz1996
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 1
18.10.2016, 14:23 #2
Всем привет. У меня возникла проблема с дипломной работой. Мне дал препод тему "ИС составления расписания проведения занятий в ВГЛТУ". И проблема состоит в том что я представления не имею как написать данную программу. Может у кого-то из вас есть подобная программа? Спасайте ребят, защита в конце года, а у меня только данные.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2016, 14:23
Привет! Вот еще темы с ответами:

Календарь занятий - C++
Володе очень понравились задачи олимпиады по информатике, поэтому он решил ходить на занятия кружка по программированию. Придя на первое...

Расписание занятий - C++
Здравствуйте. Ради всего святого, помогите, пожалуйста! Я написала код. Но проблема в том, что не получается именно задача оптимизации,...

Расписание занятий - C++
Помогите пожалуйста!!:( Сформировать файл, содержащий информацию о расписании занятий студентов некоторого ВУЗа (день недели, номер...

Расписание занятий - C++
В учебном заведении задается начало учебного дня, продолжительность пары или урока, продолжительность обычного и большого перерывов (они...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru