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

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

  m_strKolvod="";

  m_strStoim="";

  m_strKod="";

  UpdateData(FALSE);

  GetDlgItem(IDC_NUMKodd)->EnableWindow(TRUE);

  GetDlgItem(IDC_KOD)->EnableWindow(TRUE);

  int nomer;

  base.Init();

  Kolvo.Init();

  int cur_result=0;

  int total_result=0;

  int pr=0;

  int nomer1;

  for (nomer1=0; (nomer1=base.poisk_ind (m_strNumKoddPoisk,nomer1,nomer))!=-1; nomer1++)

  {

    base.ChtenieZap(nomer);

    m_strNumKodd=base.NumKodd;

    UpdateData(FALSE);

    int nomer2=0;

       pr=1;

    if ((nomer2=Kolvo.poisk_ind(base.Kod,nomer2,nomer))!=-1)

    {

      Kolvo.ChtenieZap(nomer);

      pr=1;

      cur_result=(((StringToInt(base.Kolvod))-(StringToInt(base.Naim)))*(StringToInt(Kolvo.Kolvo)));

      CString rez;

        m_ctrlKod.GetWindowText(rez);

        m_strKod=rez+AddSpaces(base.Kod,10);

      m_ctrlNaim.GetWindowText(rez);//получ.из элем. упр. Текст

      m_strNaim=rez+AddSpaces(base.Naim,10);

      m_ctrlKolvod.GetWindowText(rez);

      m_strKolvod=rez+AddSpaces(base.Kolvod,10);

      m_ctrlStoim.GetWindowText(rez);

      CString cur_rez;

      cur_rez.Format("%i",cur_result);//преобр. из целого в текст

      m_strStoim=rez+AddSpaces(Kolvo.Kolvo,10);

      UpdateData(FALSE);

        total_result+=cur_result;

    }

    else

    {

            if (Kolvo.Kolvo="")

            {

             CString st;

      st="Код изделия №"+base.Kod+" не найдены в файле";

      MessageBox(st,"Ошибка ввода",MB_ICONEXCLAMATION);

            }

            else

            {

      CString st;

      st="Наименование"+base.Naim+" или цена не найдены в файле";

      MessageBox(st,"Ошибка ввода",MB_ICONEXCLAMATION);

            }

    }

  }

  if ((nomer1==-1)&& (!pr))

  {

    CString st;

    st="Код детали "+m_strNumKoddPoisk+" не найден в файле";

    MessageBox(st,"Ошибка ввода",MB_ICONEXCLAMATION);

    return;

  }

  CString st;

  st.Format("%i",total_result);

  m_strResult=st;

  UpdateData(FALSE);

} 

int CVedomDlg::StringToInt(CString st)//преобраз. текста в целое

{

  int ten=1;

  int rez=0;

  int Char;

  st.TrimLeft();//удаление ведущих пробелов из строки

  st.TrimRight();//удаление хвостовых пробелов из строки

  for (int i=st.GetLength()-1;i>=0;--i)

  {

    Char=st.GetAt(i);//считыв. символа в заданной позиции

    if (Char==45)//45-код ‘-‘, 48-код ‘0’

      return rez*(-1);

    Char=Char-48;

    rez=rez+(Char*ten);

    ten=ten*10;

  }

  return rez;

} 

CString CVedomDlg::AddSpaces(CString st, int len)

{

  CString rez;

  rez=st;

  int string_len=st.GetLength();

  for (int i=string_len;i<=len;i++)

    rez+=" ";

  return rez; 

      // TODO: Add your control notification handler code here

} 

BOOL CVedomDlg::OnInitDialog()

{

      CDialog::OnInitDialog(); 

      // TODO:  Add extra initialization here

  GetDlgItem(IDC_NUMKodd)->EnableWindow(FALSE);

  GetDlgItem(IDC_KOD)->EnableWindow(FALSE); 

      return TRUE;  // return TRUE unless you set the focus to a control

      // EXCEPTION: OCX Property Pages should return FALSE

} 
 
 
 
 
 
 

Контрольный пример 

Имеются два файла: Kodd1.Kodds и Kolvo1.Kolvos.

В меню Файл выберем команду Имена файлов и укажем путь к файлам Kodd1.Kodds и и Kolvo1.Kolvos.

Содержимое этих файлов представлено в таблицах: 

 Kodd1.Kodds 

    Код детали Код изделия Наименование Кол-во деталей
    1 2 Bolt 16
    1 15 Gaika 40
    2 4 Kluch 65
    2 13 Stanok 80
    3 8 Otvertka 120
 

Kolvo1.Kolvos 

    Код изделия Кол-во                 Наименование
    2 5                                 Mashina
    4 1                                   Shkaf
    8 8                                    Stul
    13 30                                 Dver
    15 16                                 Kabel
 

В меню Изделиях выберем:

  • команду Создание и добавим запись:
 
    Код детали Код изделия Наименование Кол-во деталей
    4 20 Koleso 60
 
  • команду Просмотр и, пролистав записи, увидим содержимое файла Kodd1.Kodds. Если количество щелчков превысет количество записей то возникнет окно «Конец файла»;
  • команду Поиск и найдем данные о выполнении работ указанной детали;
  • команду Замена и, найдя нужныю деталь изменим данные о выполении выпуска;

    Например, введем Код детали 2, программа выведет соответствующие данные по коду изделия 4, пролистнем запись один раз. Изменим плановое выполнение выпуска по коду изделия 13 на 80, а кол-во – 100. Тогда файл Kodd1.Kodds будет содержать следующие данные:

    Код детали Код изделия Наименование Кол-во деталей
    1 2 Bolt 16
    1 15 Gaika 40
    2 4 Kluch 65
    2 13 Stanok 100
    3 8 Otvertka 120
    4 20 Koleso 60
 
  • команду Удаление, найдем нужный детали и удалим данные о выполении выпуска данного изделия.

    Например, введем Кол-во деталей 3, программа выведет соответствующие данные детали 3. Нажмем на кнопку Удалить. Тогда файл Kodd1.Kodds будет содержать следущие данные: 

    Код детали Код изделия Наименование Кол-во деталей
    1 2 Bolt 16
    1 15 Gaika 40
    2 4 Kluch 65
    2 13 Stanok 100
    4 20 Koleso 60
 

В меню План выберем:

  • команду Создание и добавим запись:
 
    Код изделия Кол-во                           Наименование
    20 34                                         Chasi
 

команду Просмотр и, пролистав записи, увидим содержимое файла Kolvo1.Kolvos. Если количество щелчков превысет количество записей то возникнет окно «Конец файла»;

  • команду Поиск и найдем данные о интересующем нас изделия;
  • команду Замена и, найдя нужное изделие, изменим данные о его количестве;

Например, введем Код изделия 15, программа выведет соответствующие данные о количестве данного изделия (16). Изменим кол-во на 20. Тогда файл Kolvo1.Kolvos будет иметь следущие данные: 

    Код изделия Кол-во                           Наименование
    2 5                                          Mashina
    4 1                                            Shkaf
    8 8                                              Stul
    13 30                                            Dver
    15 20                                           Kabel
    20 34                                          Chasi

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