Классификация ювелирных изделий

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    372,93 Кб
  • Опубликовано:
    2017-05-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Классификация ювелирных изделий

Министерство образования РФ

Рязанский государственный радиотехнический университет

Кафедра вычислительной и прикладной математики.




 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине:

"Объектно-ориентированное программирование"

на тему: "Классификация ювелирных изделий"


Выполнил:

студент группы 4414

Ивченко А.Д.

Проверил:

доцент кафедры ВПМ

Лаврентьев С.И.


Рязань 2016 г.

Оглавление

Введение

. Анализ предметной области

. Разработка программы

.1 Разработка и обоснование иерархии классов

.2 Описание классов

.3 Выбор средства разработки

. Тестирование и отладка

. Системные требования

. Руководство пользователя

. Руководство администратора

Заключение

Приложение

Введение

приложение информация ювелирный данные

Целью данной курсовой работы является разработка, написание и отладка приложения, способного хранить и обрабатывать информацию о ювелирных изделиях, а также осуществлять поиск данных по выбранным пользователем критериям, выводить полученные данные на экран.

В приложении «Ювелирные изделия» вся информация поделена на группы, которые между собой логически связаны. Все это реализовано с помощью объектно-ориентированного подхода.

 

1. Анализ предметной области

Большинство предприятий производит различные изделия, например, компьютеры, лекарства, ювелирные украшения, машины и т.д. Следовательно, любой выпукаемой продукции свойственны название, цена и производитель. Взяв за основу эти свойства, можно получить любое изделие, будь это автомобиль или книга. Так как по заданию требуется создать иерархию ювелирных изделий, то будем добавлять параметры свойственные ювелирным украшениям.

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

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

Таким образом, иерархия классов выглядит слудующим образом (Рис.1):

Рис.1.Иерархия классов.

2. Разработка программы

2.1 Разработка и обоснование иерархии классов

Сначала разрабатываются абстрактные классы Sub (Изделие) и JewelSub (Ювелирное изделиле). Класс Sub будет базовым для всех остальных классов, и содержать информацию свойственную любому объекту, а именно название, стоимость и производитель. Класс JewelSub является наследником класса Sub. В данном классе полями являются материал, из которого сделано украшение (метал и камни), вес и описание изделия.

1.      Изделие

·        название (тип - строка)

·        цена (тип - вещественный)

·        производитель (тип - строка).

.        Ювелирное изделие

·        металл (тип - строка)

·        вес (тип - вещественный)

·        камни (тип - строка)

·        описание (тип - строка)

Так как существует основное разделение украшений (украшения для человека (DecForObj) и украшения для одежды (DecForPip)), то будем придерживаться этого разделения. Для украшения одежды можно определить такие свойства, как тип украшения и предназначение украшения. Многие украшения для человека могут идти в комплекте, например, серьги и ожерелье. Следовательно, полем этого класса будет метка, которая обозначает, идет ли это крашение в комплекте.

3.      Украшение для человека

·        комплект (тип - логический)

·        подкласс (тип - строка).

.        Украшение для одежды

·        предназначение (тип - строка)

·        тип (тип - строка).

Далее создается классификация украшений для человека.

Класс Hair (украшения для волос), наследуется от DecForPip. Содержит тип украшения, например, заколка или шляпка, и метку - является ли изделие средством для декорирования.

Класс Neck  (украшения для шеи), наследуется от DecForPip. Содержит тип украшения, например, кулон или ожерелье, и метку - идет ли цепочка в комплекте.

Класс Cep  (цепочки), наследуется от DecForPip. Содержит значения длины цепочки и тип плетения.

Класс Serg  (серьги), наследуется от DecForPip. Содержит значения длины сережек,  типа замочка и самого типа сережек, например, кольца или гвоздики.

Класс Ring  (кольца), наследуется от DecForPip. Содержит значения типа колец, например, печатки или обручальные, размера кольца и ширины ободка кольца.

Класс Brac  (браслеты), наследуется от DecForPip. Содержит значения длины и ширины браслета и метку - где носится браслет: на руке или на ноге.

5.      Для волос

·        тип (тип - строка)

·        для декорирования (тип - логический).

.        На шею

·        тип (тип - строка)

·        цепочка (тип - логический).

.        Цепочка

·        длина (тип - вещественный)

·        плетение (тип - строка).

.        Серьги

·        замочек (тип - строка)

·        тип (тип - строка)

·        длина (тип - вещественный).

.        Кольца

·        размер  (тип - вещественный)

·        ширина (тип - вещественный).

·        тип (тип - строка)

.        Браслеты

·        для руки/ноги (тип - логический)

·        длина (тип - вещественный)

·        ширина (тип - вещественный).

К каждому классу, с которым будем работать, а именно DecForObj, Hair, Neck, Cep, Serg, Ring, Brac, опишем конструкторы, процедуры записи в файл и вывода полной информации об изделии.

Данные классы полностью описывают выбранную классификацию ювелирных украшений.

2.2 Описание классов

class Sub    // класс изделие

{public:number;    //номер элементаname; // названиеcast;      // стоимостьproiz; // производитель(long num,AnsiString n,float c,AnsiString pr);

};

//****************************************************************

JewelSub: public Sub   // класс ювелирное изделие

{public:metall; //металлweight;      //весstoun;  //камниdisc;   // описаниеtypejew; // тип украшения(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t);

};

//****************************************************************

DecForObj: public JewelSub    // класс украшения для одежды

{public:forobj;   // тип украшения одеждыtypeobj;  // предназначение(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,f,AnsiString ty);PrintObj(int izm);VeiwObj(TListView *lv);

};

DecForPip: public JewelSub    // класс украшения для человека

{public:

char coll;     //предмет из коллекции

AnsiString typepip;  // тип украшения(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty);

};

//****************************************************************

Hair: public DecForPip   // класс украшения для волос

{public:typehair;   // тип украшеия для волосdecor;            // служит для декорирования(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,char dec);PrintHair(int izm);VeiwHair(TListView *lv);

};

//****************************************************************

 

class Neck: public DecForPip   // класс украения на шею

{public:typeneck;    // тип украшения на шеюcep;               // цепочка в комплекте(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,char cep);PrintNeck(int izm);VeiwNeck(TListView *lv);

};

//****************************************************************

Cep: public DecForPip    // класс цепочки

{public:plet;     // плетениеlongcep;       // длина цепоски(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,pl,float l);PrintCep(int izm);VeiwCep(TListView *lv);

};

//****************************************************************

Serg: public DecForPip   // класс серьги

{public:zam;                  // замочекtypeserg;        // типlongserg;             // длина(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,z,AnsiString typ,float ll);PrintSerg(int izm);VeiwSerg(TListView *lv);

};

//****************************************************************Ring: public DecForPip   // класс кольца

{public:typering;      // тип кольцаsize;               // размер кольцаwightring;           // ширина кольца(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,float si,float wi);PrintRing(int izm);VeiwRing(TListView *lv);

};

//****************************************************************

Brac: public DecForPip   // класс браслеты

{public:

char hl;                   // для руки или ноги

float longbrac;            // длин абраслета

float wightbrac;           // ширина браслета

Brac(long num,AnsiString n,float c,AnsiString pr,

AnsiString m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,h,float l,float wi);PrintBrac(int izm);VeiwBrac(TListView *lv);

};

//****************************************************************

//______________________________КОНСТРУКТОРЫ___________________

//________________________________________________________________

//----------------------------------------------------------------::Sub(long num,AnsiString n,float c,AnsiString pr)

{=num;=n;=pr;=c;

}

//----------------------------------------------------------------::JewelSub(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t):(num,n,c,pr)

{=m;=w;=s;=d;=t;

}

 

//----------------------------------------------------------------::DecForObj(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,f,AnsiString ty):(num,n,c,pr,m,w,s,d,t)

{=f;=ty;

}  ;

//----------------------------------------------------------------::DecForPip(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty):(num,n,c,pr,m,w,s,d,t)

{=col;=ty;

}

//----------------------------------------------------------------::Hair(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,char dec):(num,n,c,pr,m,w,s,d,t,col,ty)

{=typ;=dec;

}

//----------------------------------------------------------------::Neck(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,char cep):(num,n,c,pr,m,w,s,d,t,col,ty)

{=typ;=cep;

}

//----------------------------------------------------------------::Cep(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,pl,float l):(num,n,c,pr,m,w,s,d,t,col,ty)

{=pl;=l;

}

//----------------------------------------------------------------::Serg(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,z,AnsiString typ,float l):(num,n,c,pr,m,w,s,d,t,col,ty)

{=z;=typ;=l;

}

//----------------------------------------------------------------::Ring(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,typ,float si,float wi):(num,n,c,pr,m,w,s,d,t,col,ty)

{=typ;=si;=wi;

}

//----------------------------------------------------------------::Brac(long num,AnsiString n,float c,AnsiString pr,m,float w,AnsiString s,AnsiString d,AnsiString t,col, AnsiString ty,h,float l,float wi):(num,n,c,pr,m,w,s,d,t,col,ty)

{=h;=l;=wi;

}

//----------------------------------------------------------------

.3 Выбор средства разработки

Для разработки приложения, демонстрирующего работу с классами, подходит среда разработки Borland C++ Builder 6.

Основные её достоинства:

. Использование удобных средств визуального проектирования форм.

2.      Инкрементная компиляция и компоновка исполняемого модуля.

.        Совместимость с ОС Windows.

.        Объединение объектных библиотек (STL, VCL, CLX, MFC).

Вышеперечисленные достоинства позволяют быстро создать пользовательский интерфейс, а затем заняться функциональной составляющей приложения.

3. Тестирование и отладка

В процессе написания программы происходили различные ошибки, такие как неправильное обращение к элементам класса, некорректая запись и считывание из файла. Все эти ошибки были устранены.

По завершению создания приложения необходимо заново протестировать программу, а именно следующие функции

.        Открытие файла записей.

.        Сохранение записей в файл.

.        Добавление, изменение и удаление записей.

.        Нахождение записей.

Тестирование

Содержание

Ожидаемые результаты

Статус

ТС 1

Тестирование открытия файла записей. Добавление записей в список на форме.

Выбрать соответствующий пункт в главном меню, появляется окно для открытия файлов, выбрать и открыть файл, записи в файле откроются на форме.

Работает

ТС 2

Тестирование сохранения в файл записей.

Выбрать соответствующий пункт в главном меню, появляется окно для сохранения файлов, выбрать и сохранить.

Работает

ТС 3

Добавление новых записей.

Перейти на соответствующую вкладку на основной форме, заполнить данные, добавленная запись появится в списке изменений. После сохранения запись появляется.

ТС 4

Изменение существующих записей

На выбранной записи в контекстном меню выбирается соответствующий пункт, открывается вкладка изменений с текущими данными записи, измененная запись появляется в списке изменений. После сохранения запись изменяется.

Работает

ТС 5

Удаление записи

На выбранной записи в контекстном меню выбирается соответствующий пункт, появляется сообщение об удалении при сохранении. После сохранения запись отсутствует.

Работает

ТС 6

Нахождение записи по названию.

Перейти на соответствующую вкладку на основной форме, ввести критерий поиска, найденные записи появятся списке.

Работает

ТС 7

Нахождение записей по типу украшения в ценовом диапазоне.

Перейти на соответствующую вкладку на основной форме, ввести критерий поиска, найденные записи появятся в списке.

Работает



4. Системные требования

Системные требования программы:

·        Процессор: Intel Pentium 2

·        ОС:Windows XP/7/8/8.1

·        ОЗУ: 1,5 МВ RAM

Изначально папка с программой занимает  26МВ. Далее ее размер будет увеличиваться вместе с ростом числа записей. Для 7 записей требуется 4 КВ, но размер каждой записи может изменяться в зависимости от количества информации об изделии.

5. Руководство пользователя

Разработанная программа запускается с помощью ярлыка " Jewel.ехе".  При этом открывается основное окно программы окно (Рис.2). Чтобы начать работу необходимо открыть уже существующий файл или сразу начать заполнять форму абсолютно новыми данными.

 

Рис.2. Основное окно.

Чтобы открыть созданный файл необходимо в главном меню выбрать пункт "Открыть" (Рис.3) или нажать комбинацию клавиш Ctrl+O. На открывшейся форме (Рис.4) выбрать интересующий файл и нажать "Открыть". Текущая форма автоматически закроется, и на основной форме отобразится список всех записей, содержащихся в файле. Чтобы сохранить созданный файл необходимо в главном меню выбрать пункт "Сохранить" (Рис.3) или нажать комбинацию клавиш Ctrl+S. На открывшейся форме (Рис.4) выбрать интересующий файл и нажать "Сохранить".

Рис.3. Основное окно программы, пункт "Файл".

Рис.4. Открытие файла записей (Аналогично окну сохранения).

Чтобы изменить какой-либо объект в списке, необходимо сначала левой кнопкой мыши щелкнуть по нему, чтобы атрибуты показались на правой части окна, а затем щелкнуть по нему правой кнопкой мыши, чтобы показалось контекстное меню (Рис.5). В показавшемся меню выбрать "Изменить". После этого откроется вкладка "Добавить " (Рис.6) с уже заполненными атрибутами полями выбранного объекта. После нажатия  на кнопку "Изменить", появится сообщение (Рис.7).

Чтобы удалить какой-либо объект в списке, необходимо сначала левой кнопкой мыши щелкнуть по нему, чтобы атрибуты показались на правой части окна, а затем щелкнуть по нему правой кнопкой мыши, чтобы показалось контекстное меню (Рис.5). В открывшемся меню выбрать "Удалить->Удалить 1 запись". Запись исчезнет из списка записей на основном окне.

Чтобы добавить какой-либо объект в список, надо открыть на основном окне вкладку "Добавить" (Рис.6), поля которой будут пусты и готовы для заполнения. После заполнения всех интересующих полей нажать  на кнопку "Добавить", и  появится сообщение (Рис.8).

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

Рис.5. Открытый файл в основном окне (Аналогично списку измененных записей).

Рис.6. Окно добавление и изменение данных.

Рис.7. Сообщение об изменении.

Рис.8. Сообщение о добавлении.

Если необходимо найти объекты по определенным критериям, то можно открыть на основном окне вкладку "Поиск" (Рис.10). Выбрав один из вариантов критерия. После ввода параметров поиска и нажатия кнопки "Поиск" в соответствующей рамке, автоматически покажется список объектов, удовлетворяющих введенным параметрам (Рис.11).

Рис.10. Окно нахождения записей.

Рис.11. Список найденных записей.

Чтобы выйти из программы необходимо в главном меню выбрать пункт "Выход" (Рис.3). Если хоть одна запись была изменена или добавлена, то появится сообщение (Рис.12).

Рис.12. Выход из программы

6. Руководство администратора

Программа предназначена для демонстрации работы с иерархией классов Sub, JewelSub, DecForObj, DecForPip, Hair, Neck, Cep, Serg, Ring, Brac. Для этого были реализованы следующие функции:

.        Создание объектов класса DecForObj, Hair, Neck, Cep, Serg, Ring, Brac в процессе выполнения программы.

.        Для классов DecForObj, DecForPip, Hair, Neck, Cep, Serg, Ring, Brac были реальзованы процедуры содания объектов, записи в файл и показ всей инфрормации об объекте.

.        Отображение списка объектов и их атрибутов на форме.

.        Удаление выбранного объекта из списка.

.        Изменение выбранного объекта из списка.

.        Сохранение объектов в файл.

.        Инициализация объектов из файла.

.        Поиск объектов по заданному критерию.

Заключение

В данной курсовой работе была реализована программа в соответствии с заданием. Благодаря интуитивно понятному интерфейсу, она обеспечивает простую работу с данными о ювелирных изделиях.

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

Приложение

Глобальные переменные

int row=1, //строка в списке

cout=0,       // число записей

izm=0,        // было ли изменение

del=0,         // была ли запись удалена

ROW=1,     // номер строки

upd=0,       // была ли запись изменена

save=0;      // было ли изменение

AnsiString filename;      //путь к исходному файлу

Закрытие приложения

if (save==0)_ocnov->Close();(MessageBox(NULL,"Файл не сохранен.\nВы действительно хотитее выйти?","Выход",MB_YESNO)==IDYES)_ocnov->Close();

Открытие файла с записями

FILE *f;ss[255];

>Title = "Open File";>Filter = "Text files (*.txt)|*.TXT";(od->Execute())

{ filename=od->FileName;=fopen(od->FileName.c_str(),"r");(f,"%s",&ss);(!feof(f))

{s="";(f,"%s",&ss);

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");_all->Cells[1][sg_all->RowCount-1]=s;="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");_all->Cells[2][sg_all->RowCount-1]=s;_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->RowCount=sg_all->RowCount+1;(f,"%s",&ss);((!feof(f))&&(AnsiString(ss)!="t0")&&

(AnsiString(ss)!="t1")&&(AnsiString(ss)!="t2")&&

(AnsiString(ss)!="t3")&&(AnsiString(ss)!="t4")&&

(AnsiString(ss)!="t5")&&(AnsiString(ss)!="t6"));

}(f);

}>ActivePageIndex=0;=sg_all->RowCount-1;

Сохранение файла записей

FILE *f; FILE *fs;FILE *fd;FILE *fu;FILE *fa;num;str[255];ss[255];s="",s1="";*estr;=fopen("jewel_save","w");(f);>Title = "Save File";                     // заголовок окна>Filter = "Text files (*.txt)|*.TXT";        //шаблон имени файла(sd->Execute())(FileExists (sd->FileName))

{=fopen("jewel_save","w");=fopen(filename.c_str(),"r");

{= fgets (str,sizeof(str),f);(estr!=NULL)(fs,str);

} while (!feof(f));(f);(fs);

f=fopen(sd->FileName.c_str(),"w");=fopen("jewel_save","r");=fopen("jewel_add","r");(fs,"%s",&ss);(!feof(fs))

{(ss[0]!='t'){ fscanf (fs,"%s",&ss);fscanf (fs,"%s",&ss);}=AnsiString(ss);(fs,"%d",&num);

=fopen("jewel_delete","r");de=0;(!feof(fd))

{ int n=0;(fd,"%d",&n);(n==num)

{de++; break;}

{de=0;kk=0;

{(fs,"%s",&ss);(AnsiString(ss)=="#$") kk++;

}((kk<9)&&(!feof(fs)));(fs,"%s",&ss);

}

{up=0;=fopen("jewel_update","r");(!feof(fu))

{(fu,"%s",&ss);(ss[0]!='t'){ fscanf (fu,"%s",&ss);fscanf (fu,"%s",&ss);}=AnsiString(ss);(fu,"%s",&ss);(AnsiString(ss)==num)

{=1;(f,s1.c_str());  fprintf(f," ");=AnsiString(ss);(f,s.c_str());kk=0; s="";

{(fu,"%s",&ss);=s+AnsiString(ss)+" ";(AnsiString(ss)=="#$") kk++;

}((kk<9)&&(!feof(fu)));(f,s.c_str());(fu,"%s",&ss); s="";

/* if ((ss[0]=='#'))

{=s+AnsiString(ss)+" ";(fu,"%s",&ss);=s+AnsiString(ss);(fu,"%s",&ss);(f,s.c_str());

}  */fprintf(f,"\n");

}

}(fu);(up!=0)

{ up=0;kk=0;

{(fs,"%s",&ss);(AnsiString(ss)=="#$") kk++;

}((kk<9)&&(!feof(fs)));(fs,"%s",&ss);

}

 

{(f,s1.c_str()); fprintf(f," ");(f,IntToStr(num).c_str()); fprintf(f," ");kk=0;s="";

{(fs,"%s",&ss);=s+AnsiString(ss)+" ";(AnsiString(ss)=="#$") kk++;

}((kk<9)&&(!feof(fs)));(f,s.c_str()); fprintf(f," ");="";(fs,"%s",&ss);(ss[0]!='t')

{=s+AnsiString(ss)+" ";(fs,"%s",&ss);=s+AnsiString(ss);(fs,"%s",&ss);(f,s.c_str());

}  fprintf(f,"\n");

 

}

}(fd);

}(fs);

=fopen("jewel_add","r");

{= fgets (str,sizeof(str),fa);(estr!=NULL)(f,str);

} while (!feof(fa));(fa);

fclose(f);

}=0;

Показать атрибуты объекта (на примере одного из объектов)

ROW=ARow;=StrToInt(sg_all->Cells[0][ARow]);t;n,p; float c;m,k,o,tj; float v;

_date->Clear();*f;ss[255];s="";=fopen("jewel_update","r");(!feof(f))

{(f,"%s",&ss);(ss[0]!='t'){ fscanf (f,"%s",&ss);fscanf (f,"%s",&ss);}(f,"%s",&ss);(AnsiString(ss)==sg_all->Cells[0][row])

{=1;break;

}kk=0;

{(f,"%s",&ss);(AnsiString(ss)=="#$") kk++;

}((kk<9)&&(!feof(f)));

}(f);(upd==1)=fopen("jewel_update","r");if (row>=cout)=fopen("jewel_add","r");f=fopen(filename.c_str(),"r");(f,"%s",&ss);(!feof(f))

{s="";num;=AnsiString(ss);(f,"%d",&num);(num==row)

{

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);(AnsiString(ss)=="#$") break;=StrToFloat(ss);

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s;  s="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s;  s="";

(f,"%s",&ss);=StrToFloat(ss);

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";

(t=="t0")

{typ,pr;

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";obj(num,n,c,p,m,v,k,o,tj,pr,typ);.VeiwObj(lv_date);

}(t=="t1")

{t; char d;char col;

(f,"%s",&ss);=ss[0];

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);=StrToInt(ss);hair(num,n,c,p,m,v,k,o,tj,col,"Для волос",t,d);.VeiwHair(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}(t=="t2")

{t; char d;char col;

(f,"%s",&ss);=ss[0];

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);=StrToInt(ss);neck(num,n,c,p,m,v,k,o,tj,col,"На шею",t,d);.VeiwNeck(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}(t=="t3")

{t; char d;char col;

(f,"%s",&ss);=ss[0];

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);=StrToInt(ss);cep(num,n,c,p,m,v,k,o,tj,col,"Цепочки",t,d);.VeiwCep(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}(t=="t4")

{l,d;char col,h;

fscanf (f,"%s",&ss);=ss[0];(f,"%s",&ss);=StrToFloat(ss);(f,"%s",&ss);(f,"%s",&ss);=StrToFloat(ss);(f,"%s",&ss);(f,"%s",&ss);=ss[0];

brac(num,n,c,p,m,v,k,o,tj,col,"Браслеты",l,d,h);.VeiwBrac(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}(t=="t5")

{t,z; float d;char col;

(f,"%s",&ss);=ss[0];

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);=StrToFloat(ss);serg(num,n,c,p,m,v,k,o,tj,col,"Серьги",z,t,d);.VeiwSerg(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}(t=="t6")

{t; float d,r;char col;

(f,"%s",&ss);=ss[0];

{(f,"%s",&ss);(AnsiString(ss)!="#$")=s+AnsiString(ss)+" ";

}(AnsiString(ss)!="#$");=s; s="";(f,"%s",&ss);=StrToFloat(ss);(f,"%s",&ss);(f,"%s",&ss);=StrToFloat(ss);

ring(num,n,c,p,m,v,k,o,tj,col,"Кольца",t,r,d);.VeiwRing(lv_date);(f,"%s",&ss);(f,"%s",&ss);

}

 

}(f,"%s",&ss);((!feof(f))&&(AnsiString(ss)!="t0")&&

(AnsiString(ss)!="t3")&&(AnsiString(ss)!="t4")&&

(AnsiString(ss)!="t5")&&(AnsiString(ss)!="t6"));

}(f); upd=0;

Добавление записей

int i;

AnsiString n,p; float c;m,k,o; float v;

 

// проверка ввода данных(e_name->Text=="")

{(NULL,"Введите название изделия.","",MB_OK);

e_name->SetFocus();;

}(e_pr->Text=="")

{(NULL,"Введите название производителя изделия.","",MB_OK);

e_pr->SetFocus();;

}(e_cast->Text=="")

{(NULL,"Введите цену изделия.","",MB_OK);_cast->SetFocus();;

}(e_metall->Text=="")

{(NULL,"Введите название металла, из которого изготовлено изделие.","",MB_OK);

e_metall->SetFocus();;

}(e_stoun->Text=="")

{(NULL,"Введите названия камней в изделии.\nЕсли камней нет поставьте знак \"-\".","",MB_OK);

e_stoun->SetFocus();;

}(e_weight->Text=="")

{(NULL,"Введите вес изделия.","",MB_OK);_weight->SetFocus();;

}(rb_obj->Checked )(e_typeobj->Text=="")

{(NULL,"Введите тип изделия.","",MB_OK);_typeobj->SetFocus();;

}(rb_pip->Checked )

{((cb_hair->Checked==false)&&(cb_neck->Checked==false)&&(cb_cep->Checked==false)&&

(cb_serg->Checked==false)&&(cb_ring->Checked==false)&&(cb_brac->Checked==false))

{(NULL,"Введите тип изделия.\nНапример, кольца.","",MB_OK);;

}(cb_hair->Checked)

{(e_typehair->Text=="")

{(NULL,"Введите тип украшения для волос.","",MB_OK);_typehair->SetFocus();;

}

}(cb_neck->Checked)

{(e_typeneck->Text=="")

{(NULL,"Введите тип украшения на шею.","",MB_OK);_typeneck->SetFocus();;

}

}(cb_cep->Checked)

{(e_longcep->Text=="")

{(NULL,"Введите длину цепочки.","",MB_OK);_longcep->SetFocus();;

}(e_plet->Text=="")

{(NULL,"Введите тип плетения цепочки.","",MB_OK);_plet->SetFocus();;

}

}(cb_brac->Checked)

{(e_longbrac->Text=="")

{(NULL,"Введите длину браслета.","",MB_OK);_longbrac->SetFocus();;

}(e_wigthbrac->Text=="")

{(NULL,"Введите ширину браслета.","",MB_OK);_wigthbrac->SetFocus();;

}

}(cb_serg->Checked)

{(e_typeserg->Text=="")

{(NULL,"Введите тип сережек.","",MB_OK);_typeserg->SetFocus();;

}(e_longserg->Text=="")

{(NULL,"Введите длину сережек.","",MB_OK);_longserg->SetFocus();;

}(e_zam->Text=="")

{(NULL,"Введите тип замочка на сережках.","",MB_OK);

e_zam->SetFocus();;

}

}(cb_ring->Checked)

{(e_typering->Text=="")

{(NULL,"Введите тип кольца.","",MB_OK);_typering->SetFocus();;

}(e_size->Text=="")

{(NULL,"Введите размер кольца.","",MB_OK);_size->SetFocus();;

}(e_wigthring->Text=="")

{(NULL,"Введите ширину кольца.","",MB_OK);_wigthring->SetFocus();;

}

}

}

 

// значений в переменные=e_name->Text;=e_pr->Text;=StrToFloat(e_cast->Text);=e_metall->Text;=e_stoun->Text;=StrToFloat(e_weight->Text);="";(i=0;i<m_dic->Lines->Count;i++)=o+m_dic->Lines->Strings[i];(rb_obj->Checked )

{t,pr;=e_typeobj->Text;="";(i=0;i<m_pred->Lines->Count;i++)=pr+m_pred->Lines->Strings[i];obj(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для одежды",pr,t);.PrintObj(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=obj.typeobj;_all->Cells[2][sg_all->RowCount-1]=obj.name;_all->RowCount=sg_all->RowCount+1;

}(rb_pip->Checked )

{ int collect=0;(cb_hair->Checked)++;(cb_neck->Checked)++;(cb_cep->Checked)++;(cb_serg->Checked)++;(cb_ring->Checked)++;

if(cb_brac->Checked)++;

if(cb_hair->Checked)

{t; char d;=e_typehair->Text;(cb_decor->Checked)='1';d='0';hair(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"Для волос",t,d);.PrintHair(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=hair.typehair;_all->Cells[2][sg_all->RowCount-1]=hair.name;_all->RowCount=sg_all->RowCount+1;

}(cb_neck->Checked)

{t; bool d;=e_typeneck->Text;(cb_col->Checked)=1;d=0;neck(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"На шею",t,d);.PrintNeck(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=neck.typeneck;_all->Cells[2][sg_all->RowCount-1]=neck.name;_all->RowCount=sg_all->RowCount+1;

}(cb_cep->Checked)

{pl; float l;=e_plet->Text;=StrToFloat(e_longcep->Text);cep(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"Цепочки",pl,l);.PrintCep(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=cep.typepip;_all->Cells[2][sg_all->RowCount-1]=cep.name;_all->RowCount=sg_all->RowCount+1;

}(cb_brac->Checked)

{l,w; char h;=StrToFloat(e_longbrac->Text);=StrToFloat(e_wigthbrac->Text);(rb_hand->Checked)=1;h=0;brac(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"Браслеты",h,l,w);.PrintBrac(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=brac.typepip;_all->Cells[2][sg_all->RowCount-1]=brac.name;_all->RowCount=sg_all->RowCount+1;

}(cb_serg->Checked)

{t,z; float l;=e_typeserg->Text;=e_zam->Text;=StrToFloat(e_longserg->Text);serg(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"Серьги",z,t,l);.PrintSerg(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=serg.typepip;_all->Cells[2][sg_all->RowCount-1]=serg.name;_all->RowCount=sg_all->RowCount+1;

}(cb_ring->Checked)

{t; float r,w;=e_typering->Text;=StrToFloat(e_size->Text);=StrToFloat(e_wigthring->Text);ring(sg_all->RowCount-1,n,c,p,m,v,k,o,"Для человека",collect,"Кольцо",t,r,w);.PrintRing(izm);_all->Cells[0][sg_all->RowCount-1]=IntToStr(sg_all->RowCount-1);_all->Cells[1][sg_all->RowCount-1]=ring.typepip;_all->Cells[2][sg_all->RowCount-1]=ring.name;_all->RowCount=sg_all->RowCount+1;

}

}(NULL,"Запись добавлена.","",MB_OK);

_name->Text="";_pr->Text="";_cast->Text="";_metall->Text="";_stoun->Text="";_weight->Text="";_dic->Clear();_dic->Lines->Strings[0]="";_pip->Checked=false ;_obj->Checked=true ;_hair->Checked=false ;_neck->Checked=false ;_cep->Checked=false ;_serg->Checked=false ;_ring->Checked=false ;_brac->Checked=false ;_typehair->Text="";_decor->Checked=false ;_typeneck->Text="";_col->Checked=false ;_plet->Text="";_longcep->Text="" ;_longbrac->Text="";_wigthbrac->Text="";_hand->Checked=false ;_typeserg->Text="";_zam->Text="";_longserg->Text="";_typeserg->Text="";_zam->Text="";_longserg->Text="";_typeobj->Text="";_pred->Clear();_pred->Lines->Strings[0]="";=0;    save++;

Нахождение записей

for (int i=1;i<=f_found->sg_sort->RowCount-1;i++)_found->sg_sort->Rows[i]->Clear();_found->sg_sort->RowCount=2;(int i=1;i<=sg_all->RowCount-2;i++)

{(sg_all->Cells[2][i]==cb_nam->Items->Strings[cb_nam->ItemIndex])

{_found->sg_sort->Cells[0][f_found->sg_sort->RowCount-1]=sg_all->Cells[0][i];_found->sg_sort->Cells[1][f_found->sg_sort->RowCount-1]=sg_all->Cells[1][i];_found->sg_sort->Cells[2][f_found->sg_sort->RowCount-1]=sg_all->Cells[2][i];_found->sg_sort->RowCount=f_found->sg_sort->RowCount+1;

}

}_found->ShowModal();

Похожие работы на - Классификация ювелирных изделий

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!