Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание что то на подобие очень примитивной БД

4.7K
17 октября 2007 года
bobik02
140 / / 11.09.2007
вот худое и бедное ТЗ:

Реализовать ИПС (Иформационно Поисковую Систему):
В которой можно:
1. Добавлять : Специальность, Групу, Студента
2. Удалалять : Специальность, Групу, Студента
3 Просматривать : Специальность, Групу, Студента
4. Организовать Поиск Студентов за групою,специальностями,средней оценкой.
Информация должна хранится в файлах...

При этом организовать что бы:
До Специальности должна "подвязыватся" група, до групы студенты...
и при удалении например специальности все что к этой специальности
"подвязаные" групы и студенты дожны тоже удалится и т.к и т.п...)


Я такое приблизительно писал год назад на Pascal'ле (ниже приклепляю архив "мусора", то что я тогда сотворил :D )

Сейчас нужно это дело написать на C++ (что проблематично, преподаватель даже не дал начальной "базы" знаний, даже по синтаксису, ну ладна как то переварю это книгами)
вообщем соль не в этом...

сейчас у меня этап конструирование или проектирование или наверно точней: Моделирование (незнаю как правильно сказать, так как еще редиска :p ) в общих рамках не вникая в синтаксих...

впринцыпе я могу опять же написать пачку функций и слеить с них прошку, но:

Мне хотелось бы написать это дело с подходом ООП ...

итак пару скромных вопросов :
1. Сколько и какие Классы сделать ?
2. какие FAQ/Howtoo и т.п. курить ? :)

упс, извините пожалуйста опять ступил , эту тему нужно было создать в подфоруме "Студенты" , перенисите пожалуйста! Спасибо :rolleyes:
320
18 октября 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: bobik02
...
впринцыпе я могу опять же написать пачку функций и слеить с них прошку, но:

Мне хотелось бы написать это дело с подходом ООП ...

итак пару скромных вопросов :
1. Сколько и какие Классы сделать ?
2. какие FAQ/Howtoo и т.п. курить ? :)
...



Ищи книгу Пабло Халперна "Стандартная библиотека С++ на примерах".(если найдешь:rolleyes: в электронном виде не видал.)Там рассматривается похожий проект - адресная книга."Курить" тебе надо STL;) Тебе нужны классы Student(фамилия,имя,группа,специальность) и класс,который будет хранить обьекты Student в контейнера multiset.Как минимум эти два.Хранить данные можно в XML-файле.
P.S.Перенесите в Студенты тему.Задача в общем то студенческая.

4.7K
18 октября 2007 года
bobik02
140 / / 11.09.2007
m_Valery эх, да этой книжки я тоже не нашел...

но нашел "альтернативу" Харви Дейтел, Пол Дейтел "Как программировать на С++" 1011 страниц :rolleyes:

там инфы оч. много

и по файлам там расматривается пример с файлам "система платежных счетов по кредиторской задолжености" ...

общем буду учить...

Спасибо!:)
4.7K
20 октября 2007 года
bobik02
140 / / 11.09.2007
вот вчера начал "творить" вот тестовый код:p :
Код:
#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
}

хотел бы услышать критику??:)
505
21 октября 2007 года
vAC
343 / / 28.02.2006
На первый взгляд очень даже не плохо, если вы только начинаете знакомство с С++. Когда я только начинал, то еще долго не подозревал о существовании STL ;) Правда годов мне было маловато, в школе только учился.

Хотя в исходнике, использование ООП пока больше напоминает структурное программирование. На самом деле так и должно быть первое время. Почитайте как нибудь на досуге Гради Буча "Объектно-ориентированный анализ и проектирование", довольно веселая книга, с картинками :)
4.7K
21 октября 2007 года
bobik02
140 / / 11.09.2007
Цитата: vAC
На первый взгляд очень даже не плохо, если вы только начинаете знакомство с С++.


да, только начал изучать...

Цитата: vAC

Хотя в исходнике, использование ООП пока больше напоминает структурное программирование. На самом деле так и должно быть первое время. Почитайте как нибудь на досуге Гради Буча "Объектно-ориентированный анализ и проектирование", довольно веселая книга, с картинками :)


так я и думал что "лапша" получилось а не ООП :D
Спасибо за книгу, скачал буду читать:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог