#include <iostream.h>
#include <fstream.h>
#include <stdlib.h> // exit
#include <string.h>
#include <conio.h> // http://conio.sourceforge.net
#include <string.h>
#include <windows.h> // CharToOem
using namespace std;
#pragma hdrstop
#pragma argsused
/* >>>>>>>>>>>>>> structs(Записи) <<<<<<<<<<<<<<<<<<<<< */
// Специальность
struct Proff
{
int id; // идентификатор специальности (первичный ключ)
char name[50]; // название Специальности
};
// Группа
struct gr
{
int id; // идентификатор Группы (первичный ключ)
int id_proff; // вторичный ключ связи групы со специальностю
char name[10]; // Название группы
};
//Студент
struct st
{
int id; // идентификатор Группы
int id_gr; // вторичный ключ связи студента с Групою
int ser_bal; // Средний Балл
char name[20]; // ФМО студента
};
/* >>>>>>>>>>>>>> Clases <<<<<<<<<<<<<<<<<<<<< */
class Display
{
protected:
void RussianMessage(char *str)
{
char message[200];
CharToOem(str,message);
std:: cout << message;
}
public:
void Hello()
{
clrscr();
textcolor(YELLOW);
std:: cout <<"\n \t\t############################################# \n";
RussianMessage(" \n \t\t [1] Добавить Специальность,Группу,Студента \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage("\t\t [2] Удалить Специальность,Группу,Студента \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage("\t\t [3] Просмотр Специальностей,Групп,Студентов \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage("\t\t [4] Поиск Студентов \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage("\t\t [5] Автор(c) \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage("\t\t [6] Выход \n");
std:: cout << "\n \t\t############################################## \n";
}
void Point_1()
{
clrscr();
std:: cout << "\n \t\t############################################# \n";
RussianMessage(" \n \t\t [1] Добавить Специальность \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [2] Добавить Группу \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [3] Добавить Студента \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [4] Назад \n");
std:: cout << "\n \t\t############################################# \n";
}
void Point_2()
{
clrscr();
std:: cout << "\n \t\t############################################# \n";
RussianMessage(" \n \t\t [1] Удалить Специальность \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [2] Удалить Группу \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [3] Удалить Студента \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [4] Назад \n");
std:: cout << "\n \t\t############################################# \n";
}
void Point_3()
{
clrscr();
std:: cout << "\n \t\t############################################# \n";
RussianMessage(" \n \t\t [1] Просмотр Специпльностей \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [2] Просмотр Групп \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [3] Просмотр Студентов \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [4] Назад \n");
std:: cout << "\n \t\t############################################# \n";
}
void Point_4()
{
clrscr();
std:: cout << "\n \t\t############################################# \n";
RussianMessage(" \n \t\t [1] Поиск Студентов за Специальностю \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [2] Поиск Студентов за Группою \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [3] Поиск Студентов за Фамилией \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [4] Поиск Студентов за Оценкой \n");
std:: cout << "\t\t____________________________________________ \n";
RussianMessage(" \n \t\t [5] Назад \n");
std:: cout << "\n \t\t############################################# \n";
}
void author()
{
clrscr();
std:: cout << "\t\t ~\\|//~ "<<endl;
std:: cout << "\t\t -(o o)- "<<endl;
std:: cout << "\t\t************oOOOo**(_)**oOOOo************"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* ----------------------- *"<<endl;
std:: cout << "\t\t* Bicycle beta v 0.2 *"<<endl;
std:: cout << "\t\t* ----------------------- *"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* Author: *"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* bobik02(c) *"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* Group: MMK-61 *"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* *"<<endl;
std:: cout << "\t\t* .oooO Oooo. *"<<endl;
std:: cout << "\t\t*************( )***( )***************"<<endl;
std:: cout << "\t\t \ ( ) / "<<endl;
std:: cout << "\t\t \_) (_/ "<<endl;
std:: cout <<"press any key to Close !"<<endl;
getch();
Hello();
}
void Exit()
{
clrscr();
std:: cout << "\t\t#################################### \n";
std:: cout << "\t\tGood Bye ! ! ! \n";
std:: cout << "\t\tPress any key to Exit... \n";
std:: cout << "\t\t#################################### \n";
getch();
}
};
/* Professions */
class Professions
{
protected:
void add_prof()
{
/*
ПОЛИГОН:
тут короче буит метод добавления специальностей
(сейчас єто просто код для тренировки)
*/
clrscr();
cout << "test File";
ofstream OutFile("test.dat", ios::app);
if (! OutFile)
{
cerr << "Error!" <<endl;
exit(1); // прототип в stdlib.h
}
int id;
char name[10];
while (cin >> id >> name)
{
OutFile << id << ' ' << name <<endl;
cout << "?";
}
}
};
/* Groups */
class Groups
{
};
/* Students */
class Students
{
};
/* Menu множественно наследует: Display,Professions,Groups,Students */
class Menu : public Display, public Professions, public Groups, public Students
{
public:
void A1()
{
Display::Point_1(); // привет
char c = 0;
while (c !='4')
{
c = getch();
switch(c)
{
case '1' : Professions::add_prof(); break;
case '2' : break;
case '3' : break;
case '4' : break;
}
}
Display::Hello(); // пока
}
void A2()
{
Display::Point_2(); // привет
char c = 0;
while (c !='4')
{
c = getch();
switch(c)
{
case '1' : break;
case '2' : break;
case '3' : break;
case '4' : break;
}
}
Display::Hello(); // пока
}
void A3()
{
Display::Point_3(); // привет
char c = 0;
while (c !='4')
{
c = getch();
switch(c)
{
case '1' : break;
case '2' : break;
case '3' : break;
case '4' : break;
}
}
Display::Hello(); // пока
}
void A4()
{
Display::Point_4(); // привет
char c = 0;
while (c !='5')
{
c = getch();
switch(c)
{
case '1' : break;
case '2' : break;
case '3' : break;
case '4' : break;
case '5' : break;
}
}
Display::Hello(); // пока
}
};
/* >>>>>>>>>>>>>> Main Program <<<<<<<<<<<<<<<<<<<<< */
int main()
{
// class: Display to object: show;
Display show;
// class: Menu to object menu;
Menu menu;
show.Hello();
// menu
char c = 0;
while (c !='6') {
c = getch();
switch(c)
{
case '1' : menu.A1(); break;
case '2' : menu.A2(); break;
case '3' : menu.A3(); break;
case '4' : menu.A4(); break;
case '5' : show.author(); break;
case '6' : show.Exit(); break;
}
}
// end menu
return 0; //ok
}
Создание что то на подобие очень примитивной БД
Реализовать ИПС (Иформационно Поисковую Систему):
В которой можно:
1. Добавлять : Специальность, Групу, Студента
2. Удалалять : Специальность, Групу, Студента
3 Просматривать : Специальность, Групу, Студента
4. Организовать Поиск Студентов за групою,специальностями,средней оценкой.
Информация должна хранится в файлах...
При этом организовать что бы:
До Специальности должна "подвязыватся" група, до групы студенты...
и при удалении например специальности все что к этой специальности
"подвязаные" групы и студенты дожны тоже удалится и т.к и т.п...)
Я такое приблизительно писал год назад на Pascal'ле (ниже приклепляю архив "мусора", то что я тогда сотворил :D )
Сейчас нужно это дело написать на C++ (что проблематично, преподаватель даже не дал начальной "базы" знаний, даже по синтаксису, ну ладна как то переварю это книгами)
вообщем соль не в этом...
сейчас у меня этап конструирование или проектирование или наверно точней: Моделирование (незнаю как правильно сказать, так как еще редиска :p ) в общих рамках не вникая в синтаксих...
впринцыпе я могу опять же написать пачку функций и слеить с них прошку, но:
Мне хотелось бы написать это дело с подходом ООП ...
итак пару скромных вопросов :
1. Сколько и какие Классы сделать ?
2. какие FAQ/Howtoo и т.п. курить ? :)
упс, извините пожалуйста опять ступил , эту тему нужно было создать в подфоруме "Студенты" , перенисите пожалуйста! Спасибо :rolleyes:
Цитата: bobik02
...
впринцыпе я могу опять же написать пачку функций и слеить с них прошку, но:
Мне хотелось бы написать это дело с подходом ООП ...
итак пару скромных вопросов :
1. Сколько и какие Классы сделать ?
2. какие FAQ/Howtoo и т.п. курить ? :)
...
впринцыпе я могу опять же написать пачку функций и слеить с них прошку, но:
Мне хотелось бы написать это дело с подходом ООП ...
итак пару скромных вопросов :
1. Сколько и какие Классы сделать ?
2. какие FAQ/Howtoo и т.п. курить ? :)
...
Ищи книгу Пабло Халперна "Стандартная библиотека С++ на примерах".(если найдешь:rolleyes: в электронном виде не видал.)Там рассматривается похожий проект - адресная книга."Курить" тебе надо STL;) Тебе нужны классы Student(фамилия,имя,группа,специальность) и класс,который будет хранить обьекты Student в контейнера multiset.Как минимум эти два.Хранить данные можно в XML-файле.
P.S.Перенесите в Студенты тему.Задача в общем то студенческая.
но нашел "альтернативу" Харви Дейтел, Пол Дейтел "Как программировать на С++" 1011 страниц :rolleyes:
там инфы оч. много
и по файлам там расматривается пример с файлам "система платежных счетов по кредиторской задолжености" ...
общем буду учить...
Спасибо!:)
вот вчера начал "творить" вот тестовый код:p :
Хотя в исходнике, использование ООП пока больше напоминает структурное программирование. На самом деле так и должно быть первое время. Почитайте как нибудь на досуге Гради Буча "Объектно-ориентированный анализ и проектирование", довольно веселая книга, с картинками :)
Цитата: vAC
На первый взгляд очень даже не плохо, если вы только начинаете знакомство с С++.
да, только начал изучать...
Цитата: vAC
Хотя в исходнике, использование ООП пока больше напоминает структурное программирование. На самом деле так и должно быть первое время. Почитайте как нибудь на досуге Гради Буча "Объектно-ориентированный анализ и проектирование", довольно веселая книга, с картинками :)
так я и думал что "лапша" получилось а не ООП :D
Спасибо за книгу, скачал буду читать:)