Автор работы: Пользователь скрыл имя, 24 Декабря 2010 в 15:49, курсовая работа
Имеется полная применяемость деталей в изделиях: код изделия, код детали, наименование, количество деталей в одном изделии. Имеется план выпуска изделий: код изделия, наименование, количество. Рассчитать комплектовочную ведомость на изделие, задаваемое по запросу.
Условия и постановка задачи……..………….………………………………………3
Распечатки листингов основных файлов:
Класс CIndex…………………………………………………….......…………..4
Класс CKodd………………………………………………………………………5
Класс CKodd…………………………………………………………………….8
Класс CFilesDlg……………………………………………………….….……10
Класс CKoddDobDlg…………………………………………….………………12
Класс CKoddProsm…………………………………………….………………...15
Класс CKoddPoisk…………………………………………….……...………….19
Класс CKolvoDobDlg…………………………………………………………...24
Класс CKolvoProsm…………………………………………………………….26
Класс CKolvoPoisk………………………………….…………………………..30
Класс CVedomDlg……………………………………………………………...34
Контрольный пример…………………………………………..……………………38
CKodd();
virtual ~CKodd();
};
#endif
Файл кодов Kodd.cpp
#include "stdafx.h"
#include "Kurs.h"
#include "Kodd.h"
extern CString KoddFile; //объявл. переменной имени файла
CKodd::CKodd()
{
NumKodd="";
Kod="";
Naim="";
Kolvod="";
fact_kol=0;
}
CKodd::~CKodd()
{
}
void CKodd::Zamena(int nomer)
{
ZapisZap(nomer);
cor_ind(nomer,NumKodd);
}
void CKodd::Udalenie(int nomer)
{
NumKodd="";
ZapisZap(nomer);
cor_ind(nomer,NumKodd);
}
void CKodd::Init() //создание индексного массива
{
int pr=0; //признак пустого файла
int i=0; //открытие на чтение или создание нового файла
CFile file(KoddFile, CFile::modeRead|CFile::
modeNoTruncate);//если файл сущ.,его содержимое не усекается
DWORD nom; //32-битовое целое без знака
nom=file.GetLength(); //получение длины файла
nom=nom/40; //nom-количество записей, 35-размер записи
file.Close();
for(i=0;i<int(nom);i++)
{
ChtenieZap(i); //чтение записи
init_ind(i,NumKodd); //корректировка элемента индексного массива
if (NumKodd!="")
{
fact_kol++;
pr=1; //признак не пустого файла
}
}
init_kol(nom);
return;
}
void CKodd::Sozdanie()//запись в файл и коррект. индексного масси-ва
{
int nom;
nom=dob_ind(NumKodd);//поиск в инд. массиве номера пустой записи
ZapisZap(nom); //запись записи в файл
return;
}
void CKodd::ChtenieZap(int nomer)//чтение записи из файла
{ //открытие на чтение
CFile file(KoddFile, CFile::modeRead | CFile::modeNoTruncate);
char buf[10]; //если файл сущ.,его содержимое не усекается
try //обработка исключений
{
file.Seek(nomer*40,CFile::
file.Read(buf,10);
NumKodd=CString(buf);
file.Read(buf,10);
Kod=CString(buf);
file.Read(buf,10);
Naim=CString(buf);
file.Read(buf,10);
Kolvod=CString(buf);
}
catch (CFileException *e) //обработка ошибок работы с файлом
{
char pMsg[255];
if(e->GetErrorMessage(pMsg,
AfxMessageBox(pMsg); //глоб. функция вывода сообщения
}
file.Close();
return;
}
void CKodd::ZapisZap(int nomer) //запись записи в файл
{
CFile file(KoddFile, CFile::modeWrite|CFile::
CFile:: modeNoTruncate);
try
{
file.Seek(nomer*40,CFile::
file.Write(LPCTSTR(NumKodd),
file.Write(LPCTSTR(Kod),10);
file.Write(LPCTSTR(Naim),10);
file.Write(LPCTSTR(Kolvod),10)
}
catch (CFileException *e)
{
char pMsg[255];
if(e->GetErrorMessage(pMsg,
AfxMessageBox(pMsg);
}
file.Close();
return;
}
Класс
CKolvo
Файл заголовков Kolvo.h
//Файл Kolvo.h
#ifndef Kolvo_h
#define Kolvo_h
#include "Index.h"
class CKolvo : public Cindex
{
public:
CString Kod; //5 байтов
CString Kolvo; //10 байтов
CString Naim2; //10 байтов
public:
void Udalenie(int nomer);
void Zamena(int nomer);
void Init();
void Sozdanie();
void ChtenieZap(int nomer);
void ZapisZap(int nomer);
CKolvo();
virtual ~CKolvo();
};
#endif
Файл кодов Kolvo.cpp
//Файл Kolvo.cpp
#include "stdafx.h"
#include "Kurs.h"
#include "Kolvo.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CString KolvoFile;
CKolvo::CKolvo()
{
Kod="";
Kolvo="";
Naim2="";
fact_kol=0;
}
CKolvo::~CKolvo()
{
}
void CKolvo::ZapisZap(int nomer)
{
CFile file(KolvoFile, CFile::modeWrite|CFile::
CFile::modeNoTruncate);
try
{
file.Seek(nomer*25,CFile::
file.Write(LPCTSTR(Kod),5);
file.Write(LPCTSTR(Kolvo),10);
file.Write(LPCTSTR(
}
catch (CFileException *e)
{
char pMsg[255];
if(e->GetErrorMessage(pMsg,
AfxMessageBox(pMsg);
}
file.Close();
return;
}
void CKolvo::ChtenieZap(int nomer)
{
CFile file(KolvoFile, CFile::modeRead | CFile::modeNoTruncate);
char buf[10];
try
{
file.Seek(nomer*25,CFile::
file.Read(buf,5);
Kod=CString(buf);
file.Read(buf,10);
Kolvo=CString(buf);
file.Read(buf,10);
Naim2=CString(buf);
}
catch (CFileException *e)
{
char pMsg[255];
if(e->GetErrorMessage(pMsg,
AfxMessageBox(pMsg);
}
file.Close();
return;
}
void CKolvo::Sozdanie()
{
int nom;
nom=dob_ind(Kod);
ZapisZap(nom);
return;
}
void CKolvo::Init()
Информация о работе Высокоуровневые методы информатики и программирования