Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
#1

Разработать первичный набор базовых классов для информационной системы "ВУЗ" - Delphi

08.04.2015, 20:20. Просмотров 523. Ответов 9
Метки нет (Все метки)

Разработать первичный набор базовых классов для информационной системы "ВУЗ":
1. Класс TPassport, описывающий паспортные данные
поля: страна, серия, номер, дата выдачи, кем выдан
методы: получение полных паспортных данных, визуализация полных паспортных данных
2. Класс TPerson, описывающий данные личности
поля: ФИО, дата рождения, пол, обьект паспортных данных
методы: получение полной информации о личности, визуализация полной информации о личности
3. Класс TFaculty, описывающий факультет
поля: индивидульный номер факультета, название факультета
методы: получение полной информации о факультет, визуализация полной информации о факультете
4. Класс TQualif, описывающий направление подгототвки
поля: номер направления подготовки; название направления подготовки; числовой тип направления подготовки (1-специалитет, 2-бакалавриат, 3-магистратура); числовой тип формы обучения (1-очное, 2-заочное); объект факультета, где реализуется данное направление подготовки
методы: получение полной информации о направлении подготовки, визуализация полной информации о направлении подготовки
5. Класс TGroup, описывающий академическую группу
поля: номер группы в рамках направления подготовки (1,2,3 и т.д); объект направления подготовки; числовой тип способа формирования полного номера группы (1 - номер_курса+номер_факультета+номер_группы, 2-номер_факультета+номер_курса+номер_группы); год формирования группы; курс формирования группы
методы: получение полного номера группы, получение полной информации о группе, визуализация полной информации о группе
Создать программу, проверяющую корректность разработанных классов. В программе создать не менее двух объектов каждого класса, корректно заполнить и проверить работоспособность методов.
http://www.cyberforum.ru/delphi/thread2061686.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2015, 20:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разработать первичный набор базовых классов для информационной системы "ВУЗ" (Delphi):

В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак",
В каждом слове текста замените "а" на букву "е", если "а" стоит на четном...

Из слов "Работа", "крест", "тон" составить фразу "Кто не работает, тот не ест" и определить ее длину
Из слова "Работа","крест","тон" составить фразу:"Кто не работает, тот не ест" и...

На форме располагаются компоненты: редактор Edit; линейка ScrollBar; радионабор с опциями "Цветы", "Деревья", "Рыбы", "Звери"
Доброго времени суток, 2 курс 2 семестр, пришли, препод раздал задачи, сказал...

Тысячные числа исправлять к примеру с "1200" на "1 200", "12000" на "12 000" и т.д
Собственно числа исправлять к примеру с "1200" на "1 200", "12000" на "12 000",...

Программа для накрутки "мне нравиться" "подписчиков""
Народ привет тут увидал прогу называеться FVCheat она накручивает ВК...

9
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16744 / 6635 / 860
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
08.04.2015, 22:04 #2
И на каком же ЯП это чудо надо создать? Делфи?
Причем тут Geany ? Это просто текстовый редактор, ну и, пожалуй, немного мини-IDE.
0
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
09.04.2015, 11:44  [ТС] #3
(ООП )можно и на Дельфи!!!плз хелп((
0
krapotkin
3295 / 2935 / 1015
Регистрация: 14.04.2014
Сообщений: 14,255
Записей в блоге: 13
09.04.2015, 22:23 #4
тут же прямо все расписано, осталось перевести с русского на паскаль
приведу пример, дальше сам, ну или подожди, кто местные напишет
1. Класс TPassport, описывающий паспортные данные
поля: страна, серия, номер, дата выдачи, кем выдан
методы: получение полных паспортных данных, визуализация полных паспортных данных
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TPassport=class
public
  Country:string;
  Serie:string;
  Num:string;
  GivenOut:TDateTime;
  WhoGave:string;
  function AsString;
  procedure Visualize; // преподу - 2 за неразделение данных и интерфейса
end;
 
 
function TPassport.AsString;
begin
  result := format('паспорт. гражданство %s серия %s номер %s выдан %s %s',
           [Country, Serie, Num, formatDateTime('dd.mm.yyyy',GivenOut), WhoGave]);
end;
 
procedure TPassport.Visualize; // преподу - 2! за неразделение данных и интерфейса
begin
  showMessage(AsString());
end;
0
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
20.05.2015, 12:17  [ТС] #5
помогите этот задачу решить на ЯП паскал(((!!!!
0
krapotkin
3295 / 2935 / 1015
Регистрация: 14.04.2014
Сообщений: 14,255
Записей в блоге: 13
20.05.2015, 18:48 #6
в смысле без классов?
0
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
26.05.2015, 09:09  [ТС] #7
Pascal
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
{$mode objfpc}
uses heaptrc;
{$H+}
type
 TPassport=class
   country:string;
   series:string;
   number:string;
   date:string;
   kem_vydan:string;
   procedure show;
   function getinfo: string;
   end;  
 TPerson=class
   fio:string;
   bday:string;
   passport:string;
   man:string;
   procedure show;
   function getinfo: string;
   end;  
 TFaculty=class
   number:string;
   name:string;
   procedure show;
   function getinfo: string;
   end;   
 TQualif=class
   number_podgotovki:string;
   name_podgotovki:string;
   tip_podgotovki:string;
   tip_form:string;
   obyect_faculty:string;
   procedure show;
   function getinfo: string;  
   end;   
 TGroup=class
   number_group:string;
   obyect_podgotovki:string;
   god_formirovaniya_group:string;
   procedure show;
   function getinfo: string;  
   end; 
//паспорт    
procedure TPassport.Show;
    begin
     writeln('__________________');
     writeln(getinfo);
    end; 
 function TPassport.getinfo:string;
    begin
      getinfo:=
         'country :             '+country+#10#13+
         'seriya :              '+series+#10#13+
         'nomer :               '+number+#10#13+
         'data :                '+date+#10#13+
         'kem vydan :           '+kem_vydan;
    end;
//личные данные
procedure TPerson.Show;
    begin
     writeln('__________________');
     writeln(getinfo);
    end;
 function TPerson.getinfo:string;
    begin
      getinfo:=
         'FIO :                 '+fio+#10#13+
         'data :                '+bday+#10#13+
         'passportnye dannye :  '+passport+#10#13+
         'pol :                 '+man;
    end;
//факультет    
procedure TFaculty.Show;
    begin
     writeln('__________________');
     writeln(getinfo);
    end;
 function TFaculty.getinfo:string; 
    begin
      getinfo:=
         'number faculty :      '+number+#10#13+
         'name faculty :        '+name;
    end;
//квалификация    
procedure TQualif.Show;
    begin
     writeln('__________________');
     writeln(getinfo);
    end;
 function TQualif.getinfo:string;
    begin
      getinfo:=
         'number podgotovki :   '+number_podgotovki+#10#13+
         'nazvanie podgotovki : '+name_podgotovki+#10#13+
         'tip podgotovki :      '+tip_podgotovki+#10#13+
         'tip obucheniya :      '+tip_form+#10#13+
         'obyect faculteta :    '+obyect_faculty;
    end; 
//группа       
procedure TGroup.Show;
 begin
     writeln('__________________');
     writeln(getinfo);
    end;
 function TGroup.getinfo:string;
    begin
      getinfo:=
         'number group:         '+number_group+#10#13+
         'obyect podgotovki  :  '+obyect_podgotovki+#10#13+ 
         'god formirovaniya  :  '+god_formirovaniya_group;
    end;   
var
     a:TPassport;
     b:TPerson;
     c:TFaculty;
     d:TQualif;
     e:TGroup;  
  begin
                 a:=TPassport.create();
                 a.country:='TKM';
                 a.series:='I-DZ ';
                 a.number:='732479';
                 a.date:='06.02.2012';
                 a.kem_vydan:='MC-TKM';
                 a.show;
                 
     b:=TPerson.Create();
     b.fio:='Murat Dosjanov Sheripbayevich';
     b.bday:='01.09.1996';
     b.passport:='732479';    
     b.man:='man';
     b.show;
  
                 c:=TFaculty.Create();
                 c.number:='8';
                 c.name:='FIMiF'; 
                 c.show;
                 
     d:=TQualif.Create();
     d.number_podgotovki:='005062';
     d.name_podgotovki:='pedagog';
     d.tip_podgotovki:='1';
     d.tip_form:='2';
     d.obyect_faculty:='dekanat';
     d.show; 
     
                 e:=TGroup.create();
                 e.number_group:='282';
                 e.obyect_podgotovki:='8';
                 e.god_formirovaniya_group:='2013';
                 e.show;
         
    
    
         
           a.destroy;
      
    b.destroy;
     
           c.destroy;
     
     d.destroy;
     
           e.destroy;
       
end.
Добавлено через 1 минуту
Вот таким образом у меня есть этот задача но я не могу понять где класс и что такое функция get.info самое главное!!!
0
Kitayets
334 / 288 / 102
Регистрация: 09.09.2011
Сообщений: 1,013
26.05.2015, 09:59 #8
так у тебя все есть:
описания всех классов
Pascal
1
2
3
TPassport=class
{...}
end;
и т.д.

в каждом классе есть метод getinfo, возвращающий строку со всеми полями.

единственно что не верно - должна быть применена агрегация, т.е. в классе TPerson
поле паспорт должна быть не строка а объектная ссылка типа TPassport ну и соответствующие методы, добавления объекта и т.д. тоже самое для классов TQualif (должен включать ссылку на TFaculty) и TGroup (должен включать ссылку на TQualif)

ну в программе создано только по одному объекту каждого класса, а в задании говорится про два.

кроме того модуль heaptrc используется для диагностики утечек памяти, в конечной программе он не обязателен.

Также не принято деструктор напрямую вызывать как в программе:
Pascal
1
2
3
{...}
a.destroy;
{...}
вместо этого лучше
Pascal
1
2
3
{...}
a.Free;
{...}
или даже использовать функцию из модуля sysutils freeAndNil:
Pascal
1
2
3
{...}
FreeAndNil(a);
{...}
0
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
29.05.2015, 12:35  [ТС] #9
единственно что не верно - должна быть применена агрегация, т.е. в классе TPerson
поле паспорт должна быть не строка а объектная ссылка типа TPassport ну и соответствующие методы, добавления объекта и т.д. тоже самое для классов TQualif (должен включать ссылку на TFaculty) и TGroup (должен включать ссылку на TQualif) а вот эту как сделать !!!
! !

Добавлено через 34 минуты
Цитата Сообщение от Kitayets Посмотреть сообщение
в каждом классе есть метод getinfo, возвращающий строку со всеми полями.
единственно что не верно - должна быть применена агрегация, т.е. в классе TPerson
поле паспорт должна быть не строка а объектная ссылка типа TPassport ну и соответствующие методы, добавления объекта и т.д. тоже самое для классов TQualif (должен включать ссылку на TFaculty) и TGroup (должен включать ссылку на TQualif)
ну в программе создано только по одному объекту каждого класса, а в задании говорится про два.
Эту как сделать я не понель этого объясните пжл заранее спасибо!
0
slinkin
0 / 0 / 2
Регистрация: 03.04.2015
Сообщений: 11
05.06.2015, 14:32  [ТС] #10
Pascal
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
{$mode objfpc}
{$H+}
 
Uses sysutils;
 
type
    TPas=class(TObject)
    function getinfo():string;virtual;abstract;
        procedure show;
        end;
        
    TPasport=class(TPas)
        caunt:string;
        seriya:string;
        number:string;
        data_v:string;
        kem_v:string;
            function getinfo():string; override;
    end;
    
    TPerson=class(TPas)
        fio:string;
        bday:string;
        pol:byte;
        obj_pas:Tpasport;
            function getinfo():string; override;
    end;
    
    TFaculty=class(TPas)
        nomer_f:string;
        fakultet:string;
            function getinfo():string; override;
    end;
    
    TQualif=class(TPas)
        nomer_q:string;
        qualif:string;
        type_q:byte;
        type_l:byte;
        object_f:Tfaculty;
            function getinfo():string; override;
        end;
    
    TGroup=class(TPas)
        nomer_g:byte;       //тип способа формирования группы (1 или 2)
        n_f:string;         //курс на основе которого формировалась новая группа    
        object_g:TQualif;   //номер факультета 
        yearpos:string;     //год поступления группы
        //kurs:string;      //курс, то что и нужно посчитать
            function getinfo():string; override;
        end;
    
    Procedure TPas.show;
begin
    writeln('-------------------------------------------------------------------------------');
    writeln(getinfo());
    writeln;
end;
 
    Function TPasport.getinfo():string;
begin
    result:='TPasport'+#10+'Strana: '+caunt+#10+'Pasportnie dannie: '+'Seriya '+seriya+' | '+'Nomer: '+number+#10+'Data vidachi: '+data_v+#10+'Kem vidan: '+kem_v;
end;
 
    Function TPerson.getinfo():string;
        var z:string;
begin
    if pol=1 then z:='muzhskoj' else z:='zhenskij';
    result:='TPerson'+#10+'FIO: '+fio+#10+'Data rozhdenija: '+bday+' | '+'Pol: '+z+#10+'Ob#ekt pasportnyh dannyh: '+obj_pas.getinfo();
end;
 
    Function TFaculty.getinfo():string;
begin
    result:='TFaculty'+#10+'Nomer fakulteta: '+nomer_f+#10+'Fakultet: '+fakultet;
end;
 
    Function TQualif.getinfo():string;
    var s, x:string;
begin
    if type_l=1 then s:='spejialitet' else
    if type_l=2 then s:='bakalavriat' else
    if type_l=3 then s:='magistratura' else
    s:='ERROR';
    
    if type_q=1 then x:='ochnoe' else
    if type_q=2 then x:='zaochnoe' else
    x:='ERROR';
    
    result:='TQualif'+#10+'Nomer napravlenija podgotovki:  '+nomer_q+#10+'Nazvanie napravlenija podgotovki: '+qualif+#10+
    'Chislovoj tip napravlenija podgortovki: '+x+#10+'Chislovoj tip formy obuchenija: '+s+#10+
    'Ob#ek fakulteta, gde realizuetsja dannoe napravlenie podgotovki: '+object_f.getinfo();
end;
 
    Function TGroup.getinfo():string;
    
    var DD,YY,MM, x, v, s: Word;
        kurs1:string;
begin
        val(yearpos,v);                 //год поступления
        val(n_f,s);                     //курс на основе которого формируется группа
        DecodeDate(Date,YY,MM,DD);      //вычисление даты
 
//mm:=10;
        if yy>v then x:=yy-v else x:=0; //"машина времени" ВЫКЛ
        if mm<9 then x:=x else x:=x+1;  // вычисление месяца
        if (s>1) and (s<5) and (yy>=v) then x:=x+s; //курс формирования и год!
        if (0<x) and (x<=5) then str(x,kurs1) else kurs1:='#'; 
    
            
    if nomer_g=1 then result:='TGroup'+#10+'Kurs na osnove kotorogo formiruetsja gruppa '+n_f+#10+'Polnyj nomer gruppy: '+
    kurs1+object_g.object_f.nomer_f+n_f+#10+'God formirovanija gruppy: '+yearpos+'|'+' Kurs gruppy: '+kurs1 else 
    
    if nomer_g=2 then result:='TGroup'+#10+'Kurs na osnove kotorogo formiruetsja gruppa '+n_f+#10+'Polnyj nomer gruppy: '+
    object_g.object_f.nomer_f+kurs1+n_f+#10+'God formirovanija gruppy: '+yearpos+'|'+' Kurs gruppy: '+ kurs1 else
    result:='ERROR';
    
end;
 
var
    a,f,k:TPasport;
    b,p,v:TPerson;
    c,h,m:Tfaculty;
    d,n,i:TQualif;
    e,j,o:TGroup;
    
begin
    a:=TPasport.Create();
    a.caunt:='Rossiya';
    a.seriya:='66 56';
    a.number:='098 543';
    a.data_v:='2007-01-11';
    a.kem_v:='OUFMS Rossii po Kurganskoi oblasti v gorode Shadrinsk';
    a.show; 
    
    b:=TPerson.Create();
    b.fio:='Ivanov Petr Sergeevich';
    b.bday:='1975-06-05';
    b.pol:=1;
    b.obj_pas:=a;
    b.show;
    
    c:=TFaculty.Create();
    c.nomer_f:='4';
    c.fakultet:='FIMiF';
    c.show;
    
    d:=TQualif.Create();
    d.nomer_q:='1';
    d.qualif:='Fakultet informatiki matematiki i fiziki';
    d.type_q:=1;
    d.type_l:=1;
    d.object_f:=c;
    d.show;
    
    e:=Tgroup.Create();
    e.nomer_g:=1;
    e.object_g:=d;
    e.n_f:='4';
    e.yearpos:='2011';
    e.show;
        
    f:=TPasport.Create();
    f.caunt:='Rossiya';
    f.seriya:='85 54';
    f.number:='741 658';
    f.data_v:='2011-09-04';
    f.kem_v:='OUFMS Rossii po Kurganskoi oblasti v gorode Shadrinsk';
    f.show;
    
    p:=TPerson.Create();
    p.fio:='Simakov Ivan Ruslanovich';
    p.bday:='1981-02-03';
    p.pol:=1;
    p.obj_pas:=f;
    p.show;
    
    h:=TFaculty.Create();
    h.nomer_f:='6';
    h.fakultet:='FRiZEF';
    h.show;
    
    i:=TQualif.Create();
    i.nomer_q:='3';
    i.qualif:='Russkaya i Zapadno-evropeiskaya Filologiya';
    i.type_q:=2;
    i.type_l:=2;
    i.object_f:=h;
    i.show;
    
    j:=Tgroup.Create();
    j.nomer_g:=2;
    j.n_f:='3';
    j.object_g:=i;
    j.yearpos:='1990';
    j.show;
    j.show;
    
    k:=TPasport.Create();
    k.caunt:='Rossiya';
    k.seriya:='98 12';
    k.number:='852 159';
    k.data_v:='20-14-06-08';
    k.kem_v:='OUFMS Rossii po Kurganskoi oblasti v gorode SHadrinsk';
    k.show;
    
    v:=TPerson.Create();
    v.fio:='Petrov Sergei Anatolevich';
    v.bday:='1971-05-07';
    v.pol:=1;
    v.obj_pas:=k;
    v.show;
    
    m:=TFaculty.Create();
    m.nomer_f:='9';
    m.fakultet:='Fiz-Fak';
    m.show;
    
    n:=TQualif.Create();
    n.nomer_q:='4';
    n.qualif:='Fizicheskaya kultura';
    n.type_q:=1;
    n.type_l:=1;
    n.object_f:=m;
    n.show;
    
    o:=Tgroup.Create();
    o.nomer_g:=1;
    o.n_f:='1';
    o.object_g:=n;
    o.yearpos:='2014';
    o.show;
 
end.
кто может объяснить мне эту программу Это чудо написано яп паскал в Geany
0
05.06.2015, 14:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2015, 14:32
Привет! Вот еще темы с решениями:

Как вывести все шрифты которые поддерживают набор символов "западный"
Как вывести все шрифты установленные в Windows, которые поддерживают набор...

Процедура с ServerSocket "портит" всю программу + как устроить "ping" для клиентских приложений
1. На форме ServerSocket1 и 2 шт. StringGrid: tableIP и tableIPwork. В первом 2...

Можете ли вы мне, объяснить каждую строчку. "Зачем?" и "для чего?". Спасибо!
unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Отправка "отчётов об ошибках", сообщений об AV, логов и прочего дебага "для чайников"
Как известно, нельзя поправить неизвестный баг. Не знаю как кого, а меня пока...


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

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

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