Автор работы: Пользователь скрыл имя, 03 Сентября 2014 в 19:41, курсовая работа
Целью курсового проекта является закрепление и обобщение знаний, полученных при изучении теоретического курса, приобретение практических навыков по программированию задач на объектно - ориентированном языке Visual C++ в среде разработки Visual Studio 2005 по дисциплине «Технологии и методы программирования».
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Санкт-Петербургский государственный
экономический университет»
Факультет информатики и прикладной математики
Кафедра вычислительных систем и программирования
КУРСОВОЙ ПРОЕКТ
по дисциплине
«ТЕХНОЛОГИИ И МЕТОДЫ ПРОГРАММИРОВАНИЯ»
на тему «Разработка списка рабочих, имеющих брак при изготовлении деталей»
Выполнила студентка Полякова П., группа Б3821
______________________________
(подпись)
Руководитель: к.т.н., профессор Павлов Ф. Ф.
(уч. степень и звание, Ф.И.О.)
______________________________
(оценка, дата)
______________________________
(подпись)
Санкт-Петербург
2014
Целью курсового проекта является закрепление и обобщение знаний, полученных при изучении теоретического курса, приобретение практических навыков по программированию задач на объектно - ориентированном языке Visual C++ в среде разработки Visual Studio 2005 по дисциплине «Технологии и методы программирования».
Постановка задачи
Имеются данные
об изготовлении изделий
Постановка задачи заключается в разработке технического задания:
1)
Наименование и краткая
Разработать систему учета и отчетности поступления на склад деталей. Учет фиксируется в исходном документе «Приход». Расценки деталей содержатся в исходном документе «Справочник деталей». Отчет об итоговом движении всех деталей вцелом за месяц определяется в результирующем документе «Ведомость стоимости деталей».
2) Требования к функциональным характеристикам
Система должна обеспечивать выполнение следующих функций:
для исходных документов («Приход», «Справочник деталей») – ввод, просмотр, поиск, замена, удаление информации (хранение в базе данных);
для результирующего документа - только расчет «Ведомости».
Исходные данные: для документа «Приход» - Код детали, Дата, Количество (в шт.); для документа «Справочник деталей» - Код детали, Наименование, Расценка.
Результатные данные для документа «Ведомости» - Код детали, Наименование, Количество, Итоговая стоимость, итого за месяц.
3)
Требования к техническим
4) Технологические требования:
архитектура - однопользовательская, класс – программная система;
пользовательский интерфейс – это интерфейс-меню и интерфейс со свободной навигацией (диалоговые окна с кнопочным меню и компонентами ввода/вывода);
метод программирования – объектно-ориентированный; язык программирования – Visual C++ 7;
среда программирования – Visual C++ платформы Visual Studio 2005.
Для получения спецификаций сформулируем содержательную постановку задачи, разработаем интерфейс-меню, определим подзадачи (функции меню), алгоритмы решения функций.
Программная система ведет ежедневный учет и хранение исходных данных в базе данных и осуществляет в конце месяца расчет в стоимостном выражении выполненных работ рабочим, умножая объемы работ на расценки, выводя результаты в «Стоимостной ведомости».
Выберем в качестве имен классов входящие в условие задачи наименования документов, циркулирующие в разрабатываемой системе. В нашем случае - это «Акт прихода», «Справочник расценок», «Ведомость», и ,следовательно, классы - это akt, cena, ved. Класс ved является производным классов akt и cena.
Исходные документы («Приход», «Справочник деталей») хранится в базе данных с индексной организацией; «Ведомость стоимости работ» - выводится сразу на экран. Структура записи файла «приход» содержит следующие поля: Код детали, Дата, Количество, где ключом записи является Код детали. Структура записи файла «Справочник деталей» содержит следующие поля: Код детали, Наименование, Расценка, где ключом записи является Код детали.
Главное меню содержит опции, соответствующие названиям документов: Приход, Справочник, Ведомость. С помощью подменю реализуются следующие операции над исходными документами : создание, просмотр, поиск, замена, удаление. Для вывода «Ведомости стоимости деталей» используется опция главного меню.
Pr |
File Приход Справочник Ведомости View Help Имена файлов Создание Создание Создание Status Bar About Exit Просмотр Просмотр Поиск Поиск Замена Замена Удаление Удаление |
Рис. 1. Меню системы
Классами, описывающими предметную область, будут классы CAkt, CCena, CVed. Создание индексного массива реализует класс CIndex.
Получается следующая иерархия классов:
CAkt Ccena
Классами, описывающими диалог, будут 8 классов диалоговых окон:
Файл кодов 1.cpp
// 1.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "afxwinappex.h"
#include "afxdialogex.h"
#include "1.h"
#include "MainFrm.h"
#include "1Doc.h"
#include "1View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMy1App
BEGIN_MESSAGE_MAP(CMy1App, CWinAppEx)
ON_COMMAND(ID_APP_ABOUT, &CMy1App::OnAppAbout)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_
END_MESSAGE_MAP()
// CMy1App construction
CMy1App::CMy1App()
{
m_bHiColorIcons = TRUE;
// support Restart Manager
m_dwRestartManagerSupportFlags
= AFX_RESTART_MANAGER_SUPPORT_
#ifdef _MANAGED
// If the application is built using Common Language Runtime support (/clr):
// 1) This additional setting is needed for Restart Manager support to work properly.
// 2) In your project, you must add a reference to System.Windows.Forms in order to build.
System::Windows::Forms::
#endif
// TODO: replace application ID string below with unique ID string; recommended
// format for string is
CompanyName.ProductName.
SetAppID(_T("1.AppID.
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CMy1App object
CMy1App theApp;
// CMy1App initialization
BOOL CMy1App::InitInstance()
{
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&
CWinAppEx::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_
return FALSE;
}
AfxEnableControlContainer();
EnableTaskbarInteraction();
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(4); // Load standard INI file options (including MRU)
InitContextMenuManager();
InitKeyboardManager();
InitTooltipManager();
CMFCToolTipInfo ttParams;
ttParams.m_bVislManagerTheme = TRUE;
theApp.GetTooltipManager()->
RUNTIME_CLASS(CMFCToolTipCtrl)
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
// call DragAcceptFiles only if there's a suffix
// In an MDI app, this should occur immediately after setting m_pMainWnd
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo)
return FALSE;
// The main window has been initialized, so show and update it
pMainFrame->ShowWindow(m_
pMainFrame->UpdateWindow();
return TRUE;
}
int CMy1App::ExitInstance()
{
//TODO: handle additional resources you may have added
AfxOleTerm(FALSE);
return CWinAppEx::ExitInstance();
}
// CMy1App message handlers
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(
{
CDialogEx::DoDataExchange(pDX)
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// App command to run the dialog
void CMy1App::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// CMy1App customization load/save methods
void CMy1App::PreLoadState()
{
BOOL bNameValid;
CString strName;
bNameValid = strName.LoadString(IDS_EDIT_
ASSERT(bNameValid);
GetContextMenuManager()->
}
void CMy1App::LoadCustomState()
{
}
void CMy1App::SaveCustomState()
{
}
// CMy1App message handlers
Файл кодов 1.h
// 1.h : main header file for the 1 application
//
#pragma once
#ifndef __AFXWIN_H__
#error "include 'stdafx.h' before including this file for PCH"
#endif
#include "resource.h" // main symbols
// CMy1App:
// See 1.cpp for the implementation of this class
//
class CMy1App : public CWinAppEx
{
public:
CMy1App();
// Overrides
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
// Implementation
UINT m_nAppLook;
BOOL m_bHiColorIcons;
virtual void PreLoadState();
virtual void LoadCustomState();
virtual void SaveCustomState();
afx_msg void OnAppAbout();
DECLARE_MESSAGE_MAP()
};
extern CMy1App theApp;
Файл кодов 1Doc.cpp
// 1Doc.cpp : implementation of the CMy1Doc class
//
#include "stdafx.h"
// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail
// and search filter handlers and allows sharing of document code with that project.
#ifndef SHARED_HANDLERS
#include "1.h"
#endif
#include "1Doc.h"
#include <propkey.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMy1Doc
IMPLEMENT_DYNCREATE(CMy1Doc, CDocument)
BEGIN_MESSAGE_MAP(CMy1Doc, CDocument)
END_MESSAGE_MAP()
// CMy1Doc construction/destruction
CMy1Doc::CMy1Doc()
{
// TODO: add one-time construction code here
}
CMy1Doc::~CMy1Doc()
{
}
BOOL CMy1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
// CMy1Doc serialization
void CMy1Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
#ifdef SHARED_HANDLERS
// Support for thumbnails
void CMy1Doc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds)
{
// Modify this code to draw the document's data
dc.FillSolidRect(lprcBounds, RGB(255, 255, 255));
CString strText = _T("TODO: implement thumbnail drawing here");
LOGFONT lf;
CFont* pDefaultGUIFont
= CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_
pDefaultGUIFont->GetLogFont(&
lf.lfHeight = 36;
CFont fontDraw;
fontDraw.CreateFontIndirect(&
CFont* pOldFont = dc.SelectObject(&fontDraw);
dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK);
dc.SelectObject(pOldFont);
}
// Support for Search Handlers
void CMy1Doc::
{
CString strSearchContent;
// Set search contents from document's data.
// The content parts should be separated by ";"
// For example: strSearchContent = _T("point;rectangle;circle;ole object;");
SetSearchContent(
}
void CMy1Doc::SetSearchContent(
{
if (value.IsEmpty())
{
RemoveChunk(PKEY_Search_
}
else
{
CMFCFilterChunkValueImpl *pChunk = NULL;
ATLTRY(pChunk = new CMFCFilterChunkValueImpl);
if (pChunk != NULL)
{
pChunk->SetTextValue(PKEY_
SetChunkValue(pChunk);
}
}
}
#endif // SHARED_HANDLERS
// CMy1Doc diagnostics
#ifdef _DEBUG
void CMy1Doc::AssertValid() const
{
CDocument::AssertValid();
}
void CMy1Doc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
// CMy1Doc commands
Файл кодов 1Doc.h
// 1Doc.h : interface of the CMy1Doc class
//
#pragma once
class CMy1Doc : public CDocument
{
protected: // create from serialization only
CMy1Doc();
DECLARE_DYNCREATE(CMy1Doc)
// Attributes
public:
// Operations
public:
// Overrides
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
#ifdef SHARED_HANDLERS
virtual void InitializeSearchContent();
virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);
#endif // SHARED_HANDLERS
// Implementation
public:
virtual ~CMy1Doc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
DECLARE_MESSAGE_MAP()
#ifdef SHARED_HANDLERS
// Helper function that sets search content for a Search Handler
void SetSearchContent(const CString& value);
#endif // SHARED_HANDLERS
};
Файл кодов 1View.cpp
// 1View.cpp : implementation of the CMy1View class
//
#include "stdafx.h"
// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail
// and search filter handlers and allows sharing of document code with that project.
#ifndef SHARED_HANDLERS
#include "1.h"
#endif
#include "1Doc.h"
#include "1View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMy1View
IMPLEMENT_DYNCREATE(CMy1View, CView)
BEGIN_MESSAGE_MAP(CMy1View, CView)
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_
ON_COMMAND(ID_FILE_PRINT_
ON_WM_CONTEXTMENU()
ON_WM_RBUTTONUP()
END_MESSAGE_MAP()
// CMy1View construction/destruction
CMy1View::CMy1View()
{
// TODO: add construction code here
}
CMy1View::~CMy1View()
{
}
BOOL CMy1View::PreCreateWindow(
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
// CMy1View drawing
void CMy1View::OnDraw(CDC* /*pDC*/)
Информация о работе Разработка списка рабочих, имеющих брак при изготовлении деталей