Высокоуровневые методы информатики и программирования

Автор работы: Пользователь скрыл имя, 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

Содержимое работы - 1 файл

!КУРСАЧ.doc

— 271.50 Кб (Скачать файл)

  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::modeCreate |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::begin);

    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,255))//сообщение об исключении

    AfxMessageBox(pMsg); //глоб. функция вывода сообщения

  }

  file.Close();

  return;

}

void CKodd::ZapisZap(int nomer) //запись записи в файл

{

  CFile file(KoddFile, CFile::modeWrite|CFile::modeCreate|

CFile:: modeNoTruncate);

  try

  {

    file.Seek(nomer*40,CFile::begin);

    file.Write(LPCTSTR(NumKodd),10);  //указатель строки

    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,255))

    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::modeCreate|

  CFile::modeNoTruncate);

  try

  {

    file.Seek(nomer*25,CFile::begin);

    file.Write(LPCTSTR(Kod),5);

    file.Write(LPCTSTR(Kolvo),10);

      file.Write(LPCTSTR(Naim2),10);

  }

  catch (CFileException *e)

  {

    char pMsg[255];

    if(e->GetErrorMessage(pMsg,255))

    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::begin);

    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,255))

    AfxMessageBox(pMsg);

  }

  file.Close();

  return;

}

void CKolvo::Sozdanie()

{

  int nom;

  nom=dob_ind(Kod);

  ZapisZap(nom);

  return;

}

void CKolvo::Init()

Информация о работе Высокоуровневые методы информатики и программирования