Professional Documents
Culture Documents
бд 2
бд 2
Кафедра САПР
ЗВІТ
до лабораторної роботи № 2 з курсу:
“ Організація баз даних і знань ”
Виконав:
студент групи КН-24
Дикий Н. В.
Прийняв:
Головацький Р. І.
ЛЬВІВ 2016
1. ТЕМА
2. МЕТА РОБОТИ
3. ЛАБОРАТОРНЕ ЗАВДАННЯ
4. ТЕОРЕТИЧНІ ВІДОМОСТІ
break;
{
class CManagerDatabase
} {
system("cls");
} public:
if (ch == CManagerDatabase();
"1") void sort(CDatabase *db);
{ void ADD(CDatabase *db);
ManagerDB.FINDID(&Database); void DELETE(CDatabase
*db);
void Edit(CDatabase *db);
system("pause"); ManagerDB.ADD(&Database);
void FINDID(CDatabase *db);
void FINDFIELD(CDatabase int CBicycle::getWheelDiameter()
m_iWheelDiameter=bcl.m_iWheelDiamet
*db); {
er;
void Save(CDatabase* db); return m_iWheelDiameter;
m_fPrice=bcl.m_fPrice;
void Read(CDatabase *db); }
m_fWeight=bcl.m_fWeight;
void Print(CDatabase* db);
m_iID = bcl.m_iID;
bool FileExist(string Way) void CBicycle::setPrice(float Price)
m_iBlockNumber =
{ {
bcl.m_iBlockNumber;
return m_fPrice=Price;
}
_access(Way.c_str(), 0) != -1; }
}
CBicycle::~CBicycle()
int getSizeInf() float CBicycle::getPrice()
{
{ {
return return m_fPrice;
}
Information.size(); }
}
void CBicycle::setMark(string Mark)
string getInform(int index) void CBicycle::setGuarantee(int
{
{ Guarantee)
m_sMark=Mark;
return {
}
Information[index]; m_iGuarantee=Guarantee;
} }
string CBicycle::getMark()
{
private: int CBicycle::getGuarantee()
return m_sMark;
vector<string> Information; {
}
}; return m_iGuarantee;
}
void CBicycle::setModel(string Model)
{
#include "cbicycle.h" void CBicycle::setGears(int Gears)
m_sModel=Model;
{
}
CBicycle::CBicycle() m_iGears=Gears;
{ }
string CBicycle::getModel()
m_sColor="noname";
{
m_sMark="noname"; int CBicycle::getGears()
return m_sModel;
m_sModel="noname"; {
}
m_sType="noname"; return m_iGears;
m_sTypeOfFrame="noname"; }
void CBicycle::setType(string Type)
m_iGears=0;
{
m_iGuarantee=0; void CBicycle::setID(int ID)
m_sType=Type;
m_iWheelDiameter=0; {
}
m_fPrice=0; m_iID=ID;
m_fWeight=0; }
string CBicycle::getType()
m_iID=-1;
{
m_iBlockNumber=-1; int CBicycle::getID()
return m_sType;
} {
}
return m_iID;
CBicycle::CBicycle(string Mark, string }
void CBicycle::setColor(string Color)
Model, string Type, string Color, string
{
TypeOfFrame, float Weight, int void CBicycle::setBlockNumber(int
m_sColor=Color;
WheelDiameter, float Price, int BlockNumber)
}
Guarantee, int Gears, int ID) {
{ m_iBlockNumber=BlockNumber;
string CBicycle::getColor()
m_sColor=Color; }
{
m_sMark=Mark;
return m_sColor;
m_sModel=Model; int CBicycle::getBlockNumber()
}
m_sType=Type; {
m_sTypeOfFrame=TypeOfFrame; return m_iBlockNumber;
void CBicycle::setTypeOfFrame(string
m_iGears=Gears; }
TypeOfFrame)
m_iGuarantee=Guarantee; #include "CBlock.h"
{
m_iWheelDiameter=WheelDiameter;
m_sTypeOfFrame=TypeOfFrame;
m_fPrice=Price; CBlock::CBlock(string _Number)
}
m_fWeight=Weight; {
m_iID=ID; Number = _Number;
string CBicycle::getTypeOfFrame()
adress = to_string(rand()
{
%1000);
return m_sTypeOfFrame;
string str = to_string(ID); }
}
str=str[str.length()-1]; CBlock::CBlock(const CBlock &bl)
m_iBlockNumber=stoi(str); {
void CBicycle::setWeight(float Weight)
} Number = bl.Number;
{
block = bl.block;
m_fWeight=Weight;
CBicycle::CBicycle(const CBicycle &bcl) adress = bl.adress;
}
{ }
m_sColor=bcl.m_sColor;
float CBicycle::getWeight()
m_sMark=bcl.m_sMark; void CBlock::WriteToFile()
{
m_sModel=bcl.m_sModel; {
return m_fWeight;
m_sType=bcl.m_sType; ofstream fout;
}
fout.open(Number + ".txt");
if (Number == "10")
m_sTypeOfFrame=bcl.m_sTypeOfFrame; void CBicycle::setWheelDiameter(int
{
m_iGears=bcl.m_iGears; WheelDeameter)
fout << 546 <<
m_iGuarantee=bcl.m_iGuarantee; {
endl;
m_iWheelDiameter=WheelDeameter;
}
}
else if (Number == "11")
{ fin >> Price; if(Param==Base[i].getType())
fout << 786 << fin >> Guarantee; {
endl; fin >> Gears; return i;
} CBicycle }
else bicycle(Mark, Model, Type, Color, if(Field=="Color")
{ TypeOfFrame, Weight, WheelDiameter, if(Param==Base[i].getColor())
fout << 765 << Price, Guarantee, Gears, ID); {
endl; return i;
} }
block.push_back(bicycle);
fout << Number << " " << if(Field=="TypeOfFrame")
}
block.size() << endl;;
for (int i = 0; i < block.size();
if(Param==Base[i].getTypeOfFrame())
i++)
{
{
fin.close(); return i;
} }
fout <<
if(Field=="Weight")
block[i].getID() << " "
int CBlock::getSize()
<<
{
block[i].getMark() << " " if(stof(Param)==Base[i].getWeight())
return block.size();
<< {
}#include "cdatabase.h"
block[i].getModel() << " " return i;
<< }
CDatabase::CDatabase()
block[i].getType() << " " if(Field=="WheelDiameter")
{
<<
block[i].getColor() << " "
} if(stoi(Param)==Base[i].getWheelDiamete
<<
r())
block[i].getTypeOfFrame() << " "
void CDatabase::Add(string Mark, string {
<<
Model, string Type, string Color, string return i;
block[i].getWeight() << " "
TypeOfFrame, float Weight, int }
<<
WheelDiameter, float Price, int if(Field=="Price")
block[i].getWheelDiameter() << " "
Guarantee, int Gears, int ID)
<<
{
block[i].getPrice() << " " if(stof(Param)==Base[i].getPrice())
CBicycle
<< {
tmp(Mark,Model,Type,Color,TypeOfFra
block[i].getGuarantee() << " " return i;
me,Weight,WheelDiameter,Price,Guarant
<< }
ee,Gears,ID);
block[i].getGears() << endl; if(Field=="Guarantee")
Base.push_back(tmp);
}
fout.close();
} if(stoi(Param)==Base[i].getGuarantee())
}
{
void CDatabase::Delete(int Index) return i;
{ }
void CBlock::ReadFromFile()
Base.erase(Base.begin()+Index); if(Field=="Gears")
{
}
string adress;
string Mark; if(stoi(Param)==Base[i].getGears())
void CDatabase::LoadBase(string Way)
string Model; {
{
string Type; return i;
//дописати
string Color; }
}
string TypeOfFrame;
float Weight; }
int CDatabase::FindID(int ID)
int WheelDiameter; return -1;
{
float Price; }
for(int i=0; i<Base.size(); i++)
int Guarantee;
{
int Gears; void CDatabase::Edit(int ID, string Mark,
if(ID==Base[i].getID())
int ID; string Model, string Type, string Color,
{
string sName; string TypeOfFrame, float Weight, int
return i;
int size; WheelDiameter, float Price, int
}
Guarantee, int Gears)
}
ifstream fin; {
return -1;
fin.open(Number+".txt"); int index=FindID(ID);
}
fin >> adress; Base[index].setMark(Mark);
fin >> sName; Base[index].setModel(Model);
int CDatabase::FindField(string Field,
fin >> size; Base[index].setType(Type);
string Param)
if (size>0) Base[index].setColor(Color);
{
for (int i = 0; i < size; i++)
for(int i=0; i<Base.size(); i++)
{
{ Base[index].setTypeOfFrame(TypeOfFra
if(Field=="Mark") me);
fin >> ID; if(Param==Base[i].getMark()) Base[index].setWeight(Weight);
fin >> Mark; {
fin >> Model; return i;
Base[index].setWheelDiameter(WheelDia
fin >> Type; }
meter);
fin >> Color; if(Field=="Model")
Base[index].setPrice(Price);
fin >> if(Param==Base[i].getModel())
Base[index].setGuarantee(Guarantee);
TypeOfFrame; {
Base[index].setGears(Gears);
fin >> Weight; return i;
}
fin >> }
WheelDiameter; if(Field=="Type")
6. ВИСНОВОК