Разработка программного модуля "Прокат автомобилей"

 

Содержание


Введение

. Проектирование программного модуля

.1 Постановка задачи

.2 Математическое (логическое) описание задачи

.3 Описание входной и выходной информации

. Разработка программного модуля

.1 Структура программного модуля

.3 Описание разработанной программы

. Тестирование программного модуля

. Руководство программиста

Заключение

Список использованных источников

Приложения



Введение


Сегодня трудно себе представить нашу жизнь без транспортных средств. Автомобили плотно вошли в нашу жизнь, и без них наше существование является проблематичным. Но бывают нужды когда автомобиль надо на определённый срок.

Тема курсового проекта - разработка программного модуля прокат автомобилей.

В первом разделе, который называется «Проектирование программного модуля», описывается цель, данной курсовой, применения, а так же требования к ней.

Во втором разделе, «Разработка программного модуля», изображена структурная диаграмма программного модуля, разработана схема программного модуля и пользовательский интерфейс.

В разделе «Реализация программного модуля» описан код программы, произведено описание используемых операторов и функций.

Данная курсовая работа выполнена на двух языках программирования. Язык программирования - это формальная знаковая система, которая предназначена для написания программ, понятных для исполнителя (в нашем рассмотрении - это компьютер). Программирование - это искусство создавать программные продукты, которые написаны на языке программирования.


1. Проектирование программного модуля


.1Постановка задачи


Целью разработки - составить программу, содержащую структуру со следующими полями: фамилия, имя, адрес, отчество, адрес и телефон клиента, марка автомобиля, полная стоимость, стоимость проката, дата выдачи и дата возврата.

Необходимо разработать программу для хранения информации об клиентах, которым предоставляются проката автомобилей, а так же для осуществления оперативного поиска необходимой информации. При использовании компьютерных средств значительно уменьшается время обработки информации, а так же повышается надёжность хранения данных.

Для разработки программного продукта использовали объектно-ориентированная система визуального программирования C++Builder, Microsoft Visual C# 2010.

При решении задачи необходимо выполнить следующие требования к программному продукту, программа должна быть: наглядной, удобной в использовании, функциональной, удовлетворять ГОСТам, иметь понятный интерфейс.


.2Математическое (логическое) описание задачи


Для успешного выполнения программы разрабатываемое программное обеспечение должно состоять из структуры данных, которая содержит следующие поля: фамилия, имя, адрес, отчество, адрес и телефон клиента, марка автомобиля, полная стоимость, стоимость проката, дата выдачи и дата возврата. Далее описание структуры данных. Опишем основные поля.

Поле фамилия, имя и отчество - в данном поле необходимо хранить фамилию абонента, для хранения целесообразно использовать строковый тип данных.

Поле адрес содержит информацию о месте проживание клиента.

Поле телефон хранит контактный номер телефона абонента.

Поле марка автомобиля марку автомобиля взятый на прокат.

Поле дата полная стоимость хранит полную стоимость выбранной марки автомобиля

Поле стоимость проката содержит стоимость проката выбранного автомобиля на определённый период

Поле дата выдачи и дата возврата хранит информации о дате выдачи автомобиля и дату окончания договора

Так же необходимо наличие текстового файла и базы данных Access, который должен находиться в папке программы. Возможность обращения к файлу и базе данных из окна консольного приложения является основным условием для выполнения, данного программного обеспечения.


.3Описание входной и выходной информации


Данное программное обеспечение предоставляет возможность ввода данных с клавиатуры, информация, которая поступает таким образом, записывается в структуру данных, а в частности в отдельные её поля и затем в текстовый файл 1.txt для консольного приложения, и в базу данных DB.mdb для использования форм

Входные данные программы:

сведения о клиенте: фамилия, имя, адрес, отчество, адрес и телефон клиента. Переменные данные имеют тип данных string;

сведения об автомобиля: марка автомобиля, полная стоимость, стоимость проката, дата выдачи и дата возврата;

при поиске данных: фамилия (при поиске клиента по фамилии), дата (при поиске по дате), марке автомобиля (при поиске по марке автомобиля).

Выходные данные

данные поиска по фамилии - поля (фамилия, район, адрес, телефон, марка автомобиля, дата заключения договора, дата окончания договора, );

данные поиска поля структуры, такие как фамилия и марка автомобиля;

данные поиска по марке автомобиля - поля (фамилия, имя, отчество адрес, телефон, дата заключения договора, дата окончания договора);



. Разработка программного модуля


.1 Структура программного модуля


Блок-схема программы выполненная в Microsoft Visual Studio представлена в соответствии с рисунком 1:


Рисунок 1.- блок Лист 2 схема программы


.3 Описание разработанной программы


Данная программа была разработана на двух языках программирования: Microsoft Visual Studio (консольное приложение), и, Borland C++Builder (приложение для форм) для реализации возможности автоматизированного ввода информации по авто прокату, с целью последующего хранения данной информации и её обработки, а так же для оперативного доступа к уже имеющейся в базе данных информации.

Программы, в соответствии с поставленными задачами, работают при помощи обработки файла содержащего структуру данных. Обработка данных содержит следующие пункты: добавление записи, поиск необходимых значений полей записи, вывод информации пользователю.

Особенность выполнения консольного приложения написанного в Microsoft Visual Studio, заключается в том, что диалог пользователя и программного обеспечения происходит посредством ввода в строку консоли необходимых значений в соответствии с рисунком 1.


Рисунок 1 - Консольное приложение Microsoft Visual Studio.


Программное обеспечение реализованное в С++ Builder, отличается от аналогов реализованных на других языках программирования тем, что имеет интерфейс, вывод данных происходит в базу данных Access, при помощи таблицы(BDgrid) в соответствии с рисунком 2.


Рисунок 2 - Приложение написанное в С++Builder.


Для работы с программой необходимы регистрационные данные клиента. Ввод данных осуществляются в программу в соответствующею форму. В программе реализовано регистрация новых клиентов, и осуществление поиска клиентов по разным критериям.



. Тестирование программного модуля

программный прокат автомобиль информация

Тестирование программы можно произвести в два этапа.

. Тестирование устойчивости. Проверялась реакция программы на некорректный ввод данных, значения которых выходят за допустимый диапазон.

. Тестирование функциональности. Выполнялась проверка правильности предоставленной информации. Данные во всех случаях успешно проверены.

. Тестирование применимости. Выполнялась проверка удовлетворения способов использования требованиям задания (время реакции приложения на команды пользователя, понятность интерфейса, устойчивость вычислительного процесса).


Таблица 1 Отчёт выполнения тестирования

П/пЭтап тестированияОшибкиОтметка об исполнении1Тестирование устойчивостиНетВыполнено2Тестирование функциональностиНетВыполнено3Тестирование применимостиНетВыполнено

Технические характеристики компьютера, на котором проводилось тестирование:

процессор Pentium IV 1.8 x2 Gg

4096 оперативной памяти, DDR3

видеокарта AMD Radeon HD 6490M ;

жёсткий диск Samsung, объём 500Гб.

Тестирование показало, что программа работает без ошибок. Никаких отклонений в работе ее не обнаружено. Загрузка происходит быстро и составляет не более 3-7 секунд.



. Руководство программиста


Данная система была рассчитана на удобство пользования ею и при разработке был создан простой, понятный пользователю интерфейс. Для запуска приложения необходимо воспользоваться ехе-файлом, находящемся в каталоге программы. В случае, с программным приложением реализованном в виде консоли, пользователь перемещается по меню программы посредством ввода в окно консоли индекса соответствующего пункта меню. После обработки введённой информации следует продолжить выполнять инструкции, предлагаемые в меню.

Программное обеспечение, реализованное в виде формы, так же имеет простой и понятный интерфейс. Для осуществления необходимой операции, достаточно нажать на соответствующую кнопку. Для удобства была реализованная панель навигации:

Переключение между полями заполнения можно осуществлять клавишей TAB

Выход из программы можно осуществить при помощи клавиши F12

Поле Добавление запиши можно вызвать клавишей F7

Поле Редактировать можно вызвать клавишей F4

Поле удаление записи можно вызвать клавишей Del

Помощь по эксплуатации программы можно получить вызвав справку клавишей F1

Поле О программе можно вызвать клавишей F11

Инструкция по использованию программы находится в корне самой программы под названием Help.chm

Пользователю предоставляется удобное в эксплуатации программное обеспечение, которое имеет простой, и интуитивно понятный интерфейс. Каталог программы содержит файл с.exe, который служит для запуска приложения.

При открытии файла ProkatAvtomobilei.exe приложения разработанного в среде Microsoft Visual Studio появляется окно консоли в соответствии с рисунком 4.


Рисунок 4 - Приложение, написанное в Microsoft Visual Studio Для того, что бы добавить в файл запись о новом клиенте, необходимо ввести в окно консоли индекс данного пункта, т.е. «1», и нажать клавишу enter, после чего откроется меню регистрации нового клиента в соответствии с рисунком 5.


Рисунок 5 - меню регистрации нового клиента.


После работы с данным разделом пользователь автоматически возвращается в главное меню. Для того, что бы открыть меню поиска нужно выбрать из меню пункт «поиск», после чего откроется окно поиска в соответствии с рисунком 6.


Рисунок 6 - меню «поиск».


Выбрав в меню первый пункт, перейдём к меню, где от пользователя потребуется ввести фамилию абонента, которого необходимо в соответствии с рисунком 7.


Рисунок 7 - Поиск абонента по фамилии.


Поиск по остальным критериям происходит аналогичным образом. После завершения операции поиска, пользователь опять возвращается в главное меню.

Для запуска приложения реализованного в среде C++Builder, необходимо запустить файл Project1.exe, находящийся в каталоге программы.

После открытия файла Project1.exe, откроется главная форма программы представленная в соответствии с рисунком 8.


Рисунок 8 - Главная форма.


Для того, что бы ввести информацию о новом клиент, необходимо нажать на кнопку «добавить запись», далее заполнив необходимые поля пользователь может либо сохранить информацию, либо отменить регистрацию, в соответствии с рисунком 10.


Рисунок 9 - Форма «Добавление записи».


Для осуществления поиска информации необходимо выбрать соответствующее поле (фамилия, отчество, телефон, марка автомобиля, дата возврата), а затем указать критерий поиска, после проделанных операций нажать на кнопку «поиск» для отмены результатов поиска нажать на кнопку «Х», в соответствии с рисунком 10.


Рисунок 10 - Поиск.



Заключение


Программный модуль для учета проката автомобилей был разработан в качестве курсового проекта.

К достоинствам программы можно отнести эксплуатационные качества, доступный интерфейс, функциональность, позволяющие эффективно использовать программу.

При реализации поставленной задачи были проведены следующие этапы:

)Изучение предложенной задачи;

)Реализация задачи в программной среде C++Builder, Microsoft Visual Studio.

)Проведение различных тестов над готовой программой для доказательства ее корректной работы.

На основании вышеизложенного можно сделать вывод, что внедрение курсового проекта для учета проката автомобилей, будет целесообразна, т.к благодаря ей будет качественный контроль данных, а также возможность обратится к ней в любое время



Список использованных источников


1 Ишкова, Э. А. С++. Начала программирования / Э. А.Ишкова. - М.: «Бином», 2000. -304 с.

Культин, Н. Б. С/С++ в задачах и примерах / Н. Б. Культин. - СПб.: БХВ-Петербург, 2002. - 592 с.

Шилдт, Г. Программирование на BORLAND C++ для профессионалов: пер. с англ./ Г. Шилдт - Минск.: Попурри, 1998. - 800 с.

Шилдт, Г. Теория и практика С++: пер. с англ. / Г. Шилдт. - СПб.: БХВ-Петербург, 2001. - 416 с.

Методические рекомендации для учащихся по выполнению курсового проекта по дисциплине "Конструирование программ и языки програмирования", 2011.

ГОСТ 19.402-2000 ЕСПД. Описание программы.

ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.

ГОСТ 19.504-79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению.

ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.



Приложения


Приложение A


Код программы

Листинг программы в C++Builder.

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}__fastcall TForm1::BitBtn1Click(TObject *Sender)

{-> Enabled = False;-> Show();

}__fastcall TForm1::BitBtn4Click(TObject *Sender)

{(MessageDlg("Вы уверены, что хотите закрыть программу?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)

{-> Terminate();

}

}__fastcall TForm1::DBGrid1CellClick(TColumn *Column)

{-> Caption = "Полная стоимость: " + Form1 -> ADOTable1 -> FieldByName("Полная стоймость") -> AsString;-> Caption = "Стоимость проката: " + Form1 -> ADOTable1 -> FieldByName("стоймость проката") -> AsString;-> Caption = "Марка автомобиля: " + Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString;-> Caption = "Дата возврата: " + Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString;-> Caption = "Дата выдачи: " + Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString;

}__fastcall TForm1::BitBtn3Click(TObject *Sender)

{(DBGrid1 -> DataSource -> DataSet -> IsEmpty())

{("База данных пуста, нечего удалять!");

}

{-> Enabled = False;-> Show();

}

}__fastcall TForm1::BitBtn2Click(TObject *Sender)

{-> ADOTable1 -> Filter = "[" + ComboBox1 -> Text + "]" + "='" + Edit1 -> Text + "'";-> ADOTable1 -> Filtered = true;

}__fastcall TForm1::Button1Click(TObject *Sender)

{-> ADOTable1 -> Filtered = false;

}

//---------------------------------------------------------------------------__fastcall TForm1::N9Click(TObject *Sender)

{

//ShowMessage("Дисциплина: КПиЯП\nСреда разработки: Borland C++ Builder\nАвтор: Сафронов Евгений, гр. II-83");("Дисциплина: КПиЯП\nСреда разработки: Borland C++ Builder\nАвтор: Сафронов Евгений, гр. II-83", mtInformation, TMsgDlgButtons() << mbOK, 0);

}__fastcall TForm1::BitBtn5Click(TObject *Sender)

{(DBGrid1 -> DataSource -> DataSet -> IsEmpty())

{("База данных пуста, нечего удалять!");

}

{(MessageDlg("Удалить запись?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)

{-> ADOTable1 -> Delete();

}

}

}__fastcall TForm1::N8Click(TObject *Sender)

{(NULL, "open", "Help.chm", NULL, NULL, SW_SHOWNORMAL);

}__fastcall TForm1::DataSource1DataChange(TObject *Sender, *Field)

{-> Caption = "Полная стоимость: " + Form1 -> ADOTable1 -> FieldByName("Полная стоймость") -> AsString;-> Caption = "Стоимость проката: " + Form1 -> ADOTable1 -> FieldByName("стоймость проката") -> AsString;-> Caption = "Марка автомобиля: " + Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString;

//Label5 -> Caption = "Срок: " + Form1 -> ADOTable1 -> FieldByName("Срок") -> AsString;-> Caption = "Дата выдачи: " + Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString;

}__fastcall TForm1::FormCreate(TObject *Sender)

{-> ADOTable1 -> Open();

}.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;String REQ1 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Номер автомобиля: 8539-УБ6", = "Номер автомобиля: 9133-УБ6", = "Номер автомобиля: 1437-УБ6", = "Номер автомобиля: 2731-УБ6", = "Номер автомобиля: 8934-УБ6", = "Номер автомобиля: 6136-УБ6", = "Номер автомобиля: 7030-УБ6", = "Срок: до 6-месяцев", = "Срок: до 4-месяцев (продление)", = "Срок: до 1-год", = "Срок: до 7-месяцев", = "Срок: до 9-месяцев", = "Срок: до 10-ти месяцев",

TIME7 = "Срок: до 5-лет";-

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}__fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)

{-> Enabled = True;

}__fastcall TForm2::Button1Click(TObject *Sender)

{((Edit1 -> Text != "") && (Edit2 -> Text != "") && (Edit3 -> Text != "") && (Edit4 -> Text != "") && (Edit5 -> Text != "") && (Edit6 -> Text != "") && (Edit7 -> Text != ""))

{-> ADOTable1 -> Open();-> ADOTable1 -> Insert();-> ADOTable1 -> Edit();-> ADOTable1 -> FieldByName("Фамилия") -> AsString = Form2 -> Edit1 -> Text;-> ADOTable1 -> FieldByName("Отчество") -> AsString = Form2 -> Edit2 -> Text;-> ADOTable1 -> FieldByName("Адрес") -> AsString = Form2 -> Edit3 -> Text;-> ADOTable1 -> FieldByName("Телефон") -> AsString = Form2 -> Edit4 -> Text;-> ADOTable1 -> FieldByName("полная стоймость") -> AsString = Form2 -> Edit7 -> Text;-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = Form2 -> ComboBox1 -> Text;-> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form2 -> Edit6 -> Text;-> ADOTable1 -> FieldByName("стоймость проката") -> AsString = Form2 -> Edit5 -> Text;-> ADOTable1 -> FieldByName("дата возврата") -> AsString = Form2 -> Edit8 -> Text;(ComboBox1 -> ItemIndex)

{0:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ВАЗ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "6-месяцев";;1:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "БМВ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "4 месяцев";;2:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Мерседес";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 1 года";;3:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Жигули";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 7 месяцев";;4:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Газель";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 9 месяцев";;5:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Лада";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 10 месяцев";;6:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ЗАЗ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "5 лет";;

}-> ADOTable1 -> Post();-> Close();

}("Заполните всю необходимую информацию!");

}__fastcall TForm2::ComboBox1Change(TObject *Sender)

{(ComboBox1 -> ItemIndex)

{0:-> Label6 -> Caption = REQ1;-> Label7 -> Caption = RATE1;-> Label8 -> Caption = TIME1;;1:-> Label6 -> Caption = REQ2;-> Label7 -> Caption = RATE2;-> Label8 -> Caption = TIME2;;2:-> Label6 -> Caption = REQ3;-> Label7 -> Caption = RATE3;-> Label8 -> Caption = TIME3;;3:-> Label6 -> Caption = REQ4;-> Label7 -> Caption = RATE4;-> Label8 -> Caption = TIME4;;4:-> Label6 -> Caption = REQ5;-> Label7 -> Caption = RATE5;-> Label8 -> Caption = TIME5;;5:-> Label6 -> Caption = REQ6;-> Label7 -> Caption = RATE6;-> Label8 -> Caption = TIME6;;6:-> Label6 -> Caption = REQ7;-> Label7 -> Caption = RATE7;-> Label8 -> Caption = TIME7;;

}

}__fastcall TForm2::Button2Click(TObject *Sender)

{CurrentDate = Date();-> Text = CurrentDate;

}__fastcall TForm2::FormActivate(TObject *Sender)

{-> Clear();-> Clear();-> Clear();-> Clear();-> Clear();-> Clear();-> Clear();(ComboBox1 -> ItemIndex)

{0:-> Label6 -> Caption = REQ1; Form2 -> Label7 -> Caption = RATE1; Form2 -> Label8 -> Caption = TIME1;;1:-> Label6 -> Caption = REQ2; Form2 -> Label7 -> Caption = RATE2; Form2 -> Label8 -> Caption = TIME2;;2:-> Label6 -> Caption = REQ3; Form2 -> Label7 -> Caption = RATE3; Form2 -> Label8 -> Caption = TIME3;;3:-> Label6 -> Caption = REQ4; Form2 -> Label7 -> Caption = RATE4; Form2 -> Label8 -> Caption = TIME4;;4:-> Label6 -> Caption = REQ5; Form2 -> Label7 -> Caption = RATE5; Form2 -> Label8 -> Caption = TIME5;;5:-> Label6 -> Caption = REQ6; Form2 -> Label7 -> Caption = RATE6; Form2 -> Label8 -> Caption = TIME6;;6:-> Label6 -> Caption = REQ7; Form2 -> Label7 -> Caption = RATE7; Form2 -> Label8 -> Caption = TIME7;;

}

}__fastcall TForm2::Edit5KeyPress(TObject *Sender, char &Key)

{((Key >= '0' && Key <= '9') || (Key == ', ') || (Key == (char)8)) {}Key = 0;

}.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;String REQ1 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ", = "Номер автомобиля: 8539-УБ6", = "Номер автомобиля: 9133-УБ6", = "Номер автомобиля: 1437-УБ6", = "Номер автомобиля: 2731-УБ6", = "Номер автомобиля: 8934-УБ6", = "Номер автомобиля: 6136-УБ6", = "Номер автомобиля: 7030-УБ6", = "Срок: до 6-месяцев", = "Срок: до 4-месяцев (продление)", = "Срок: до 1-год", = "Срок: до 7-месяцев", = "Срок: до 9-месяцев", = "Срок: до 10-ти месяцев",

TIME7 = "Срок: до 5-лет";

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}__fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action)

{-> Enabled = True;

}__fastcall TForm3::FormActivate(TObject *Sender)

{-> Edit1 -> Text = Form1 -> ADOTable1 -> FieldByName("Фамилия") -> AsString;-> Edit2 -> Text = Form1 -> ADOTable1 -> FieldByName("Отчество") -> AsString;-> Edit3 -> Text = Form1 -> ADOTable1 -> FieldByName("Адрес") -> AsString;-> Edit4 -> Text = Form1 -> ADOTable1 -> FieldByName("Телефон") -> AsString;-> Edit7 -> Text = Form1 -> ADOTable1 -> FieldByName("полная стоймость") -> AsString;-> Edit6 -> Text = Form1 -> ADOTable1 -> FieldByName("дата выдачи") -> AsString;-> Edit8 -> Text = Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString;(Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "ВАЗ")-> ComboBox1 -> ItemIndex = 0;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "БМВ")-> ComboBox1 -> ItemIndex = 1;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Мерседес")-> ComboBox1 -> ItemIndex = 2;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Жигули")-> ComboBox1 -> ItemIndex = 3;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Газель")-> ComboBox1 -> ItemIndex = 4;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Лада")-> ComboBox1 -> ItemIndex = 5;if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "ЗАЗ")-> ComboBox1 -> ItemIndex = 6;(ComboBox1 -> ItemIndex)

{0:-> Label6 -> Caption = REQ1; Form3 -> Label7 -> Caption = RATE1; Form3 -> Label8 -> Caption = TIME1;;1:-> Label6 -> Caption = REQ2; Form3 -> Label7 -> Caption = RATE2; Form3 -> Label8 -> Caption = TIME2;;2:-> Label6 -> Caption = REQ3; Form3 -> Label7 -> Caption = RATE3; Form3 -> Label8 -> Caption = TIME3;;3:-> Label6 -> Caption = REQ4; Form3 -> Label7 -> Caption = RATE4; Form3 -> Label8 -> Caption = TIME4;;4:-> Label6 -> Caption = REQ5; Form3 -> Label7 -> Caption = RATE5; Form3 -> Label8 -> Caption = TIME5;;5:-> Label6 -> Caption = REQ6; Form3 -> Label7 -> Caption = RATE6; Form3 -> Label8 -> Caption = TIME6;;6:-> Label6 -> Caption = REQ7; Form3 -> Label7 -> Caption = RATE7; Form3 -> Label8 -> Caption = TIME7;;

}

}__fastcall TForm3::Button2Click(TObject *Sender)

{CurrentDate = Date();-> Text = CurrentDate;

}__fastcall TForm3::ComboBox1Change(TObject *Sender)

{(ComboBox1 -> ItemIndex)

{0:-> Label6 -> Caption = REQ1; Form3 -> Label7 -> Caption = RATE1; Form3 -> Label8 -> Caption = TIME1;;1:-> Label6 -> Caption = REQ2; Form3 -> Label7 -> Caption = RATE2; Form3 -> Label8 -> Caption = TIME2;;2:-> Label6 -> Caption = REQ3; Form3 -> Label7 -> Caption = RATE3; Form3 -> Label8 -> Caption = TIME3;;3:-> Label6 -> Caption = REQ4; Form3 -> Label7 -> Caption = RATE4; Form3 -> Label8 -> Caption = TIME4;;4:-> Label6 -> Caption = REQ5; Form3 -> Label7 -> Caption = RATE5; Form3 -> Label8 -> Caption = TIME5;;5:-> Label6 -> Caption = REQ6; Form3 -> Label7 -> Caption = RATE6; Form3 -> Label8 -> Caption = TIME6;;6:-> Label6 -> Caption = REQ7; Form3 -> Label7 -> Caption = RATE7; Form3 -> Label8 -> Caption = TIME7;;

}

}__fastcall TForm3::Button1Click(TObject *Sender)

{((Edit1 -> Text != "") && (Edit2 -> Text != "") && (Edit3 -> Text != "") && (Edit4 -> Text != "") && (Edit5 -> Text != "") && (Edit6 -> Text != "") && (Edit7 -> Text != ""))

{-> ADOTable1 -> Edit();-> ADOTable1 -> FieldByName("Фамилия") -> AsString = Form3 -> Edit1 -> Text;-> ADOTable1 -> FieldByName("Отчество") -> AsString = Form3 -> Edit2 -> Text;-> ADOTable1 -> FieldByName("Адрес") -> AsString = Form3 -> Edit3 -> Text;-> ADOTable1 -> FieldByName("Телефон") -> AsString = Form3 -> Edit4 -> Text;-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = Form3 -> Edit7 -> Text;-> ADOTable1 -> FieldByName("полная стоймость") -> AsString = Form3 -> ComboBox1 -> Text;-> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form3 -> Edit5 -> Text;-> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form3 -> Edit6 -> Text;(ComboBox1 -> ItemIndex)

{0:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ВАЗ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "6-месяцев";;1:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "БМВ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "4 месяцев";;2:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Мерседес";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 1 года";;3:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Жигули";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 7 месяцев";;4:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Газель";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 9 месяцев";;5:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Лада";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 10 месяцев";;6:-> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ЗАЗ";-> ADOTable1 -> FieldByName("дата возврата") -> AsString = "5 лет";;

}-> ADOTable1 -> Post();-> Close();

}("Заполните всю необходимую информацию!");

}__fastcall TForm3::Edit5KeyPress(TObject *Sender, char &Key)

{((Key >= '0' && Key <= '9') || (Key == ', ') || (Key == (char)8)) {}Key = 0;

}.cpp

#include <vcl.h>

#pragma hdrstop("Unit1.cpp", Form1);("Unit2.cpp", Form2);("Unit3.cpp", Form3);WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

{>Initialize();>Title = "Прокат автомобилей";>CreateForm(__classid(TForm1), &Form1);>CreateForm(__classid(TForm2), &Form2);>CreateForm(__classid(TForm3), &Form3);

Application->Run();

}(Exception &exception)

{>ShowException(&exception);

}(...)

{

{Exception("");

}(Exception &exception)

{>ShowException(&exception);

}

}0;

}

Листинг программы в Microsoft Visual C#.System;System;System.Collections.Generic;System.Linq;System.Text;System.IO;ConsoleApplication1

{writer1

{string name;string fam;string othes;string adres;string tel;string marka;string pstoim;string sprokata;string dvidavhi;string dvozvr;string data;string diag;string stoim;string vrah;string pac;

}Program

{void Main()

{w = 1;s3;(w == 1)

{[] kas = new writer1[100];s = "";// поискаi = 0;//счётчикn;//переменная для выбора.Title = "Прокат Автомобилей";.WriteLine("Список действий");.WriteLine("1-Добавление нового клиента");.WriteLine("2-Поиск");.WriteLine("3-Выход");

n = Convert.ToChar(Console.ReadLine());

switch (n)

{'1':

{.Title = "Новый клиент ";.Clear();fs = new StreamWriter("1.txt", true);//открываем файл для записи.Write("Фамилия: ");.WriteLine(Console.ReadLine());.Write("Имя: ");.WriteLine(Console.ReadLine());.Write("Отчество: ");.WriteLine(Console.ReadLine());.Write("Адрес: ");.WriteLine(Console.ReadLine());.Write("Телефон: ");.WriteLine(Console.ReadLine());.Write("Марка автомобиля ");.WriteLine(Console.ReadLine());.Write("Полная стоймость: ");.WriteLine(Console.ReadLine());.Write("Стоймость проката: ");.WriteLine(Console.ReadLine());.Write("Дата выдачи: ");.WriteLine(Console.ReadLine());.Write("Дата возврата: ");.WriteLine(Console.ReadLine());.WriteLine("____________________________");.Close();

} break;'2': //поиск

{pn;.Clear();.Title = "ПОИСК:";.WriteLine("1-поиск по дате");.WriteLine("2-поиск по фамилии клиента:");.WriteLine("3-поиск по марке автомобиля:");.WriteLine();= Convert.ToChar(Console.ReadLine());(pn == '1')

{.Title = "поиск по дате:";.Clear();.Write("введите дату:");= Console.ReadLine();s1;.WriteLine("-----------------------------");fr = new StreamReader("1.txt");//открываем файл для чтения= 0;(fr.Peek() != -1)

{[i].name = fr.ReadLine();[i].fam = fr.ReadLine();[i].othes = fr.ReadLine();[i].adres = fr.ReadLine();[i].tel = fr.ReadLine();[i].marka = fr.ReadLine();[i].pstoim = fr.ReadLine();[i].sprokata = fr.ReadLine();[i].dvidavhi = fr.ReadLine();[i].dvozvr = fr.ReadLine();= fr.ReadLine();(s == kas[i].dvidavhi)

{.WriteLine("Имя клиента " + kas[i].name);.WriteLine("Фамилия клиента: " + kas[i].fam);.WriteLine("Отчество клиента: " + kas[i].othes);.WriteLine("Адрес " + kas[i].adres);.WriteLine("Телефон " + kas[i].tel);.WriteLine("Марка автомабиля " + kas[i].marka);.WriteLine("Полная стоймость автомобиля " + kas[i].pstoim);.WriteLine("стоймость проката " + kas[i].sprokata);.WriteLine("Дата выдачи " + kas[i].dvidavhi);.WriteLine("Дата возвращения" + kas[i].dvozvr);.WriteLine(s3);

}++;

}.WriteLine();.Close();

}

(pn == '2')

{fr = new StreamReader("1.txt");//открываем файл для чтения(fr.Peek() != -1)

{++;[i].name = fr.ReadLine();[i].fam = fr.ReadLine();[i].othes = fr.ReadLine();[i].adres = fr.ReadLine();[i].tel = fr.ReadLine();[i].marka = fr.ReadLine();[i].pstoim = fr.ReadLine();[i].sprokata = fr.ReadLine();[i].dvidavhi = fr.ReadLine();[i].dvozvr = fr.ReadLine();= fr.ReadLine();

}.Close();.Title = "поиск по фамилии клиента: ";ss = "";.Write("введите фамилию клиента: ");= Console.ReadLine();(i = 0; i < kas.Length; i++)

{(s == kas[i].name)

{= ss + '\n' + "Имя: " + kas[i].name + '\n' + "Фамилия: " + kas[i].fam + '\n' + "Отчество: " + kas[i].othes + '\n' + "Адрес: " + kas[i].adres + '\n' + "Телефон: " + kas[i].tel + '\n' + "Дата выдачи " + kas[i].dvidavhi + '\n' + "Дата Сдачи: " + '\n' + kas[i].dvozvr + '\n' + "Марка автомобиля " + kas[i].marka + '\n' + "Полная стоймость автомобиля " + kas[i].pstoim + '\n' + "Стоймость проката " + kas[i].sprokata + '\n' + "";

}

} Console.WriteLine(ss);(pn == '3')fr = new StreamReader("1.txt");//открываем файл для чтения(fr.Peek() != -1)++; kas[i].name = fr.ReadLine();[i].fam = fr.ReadLine();[i].othes = fr.ReadLine();[i].adres = fr.ReadLine();[i].tel = fr.ReadLine();[i].marka = fr.ReadLine();[i].pstoim = fr.ReadLine();[i].sprokata = fr.ReadLine();[i].dvidavhi = fr.ReadLine();[i].dvozvr = fr.ReadLine();= fr.ReadLine();

}.Close();.Title = "поиск по марке автомобиля: ";ss = "";.Write("введите марку автомобиля: ");= Console.ReadLine();k = 0;(i = 0; i < kas.Length; i++)

{(s == kas[i].marka)

{= ss + '\n' + "Имя: " + kas[i].name + '\n' + "Фамилия: " + kas[i].fam + '\n' + "Отчество: " + kas[i].othes + '\n' + "Адрес: " + kas[i].adres + '\n' + "Телефон: " + kas[i].tel + '\n' + "Дата выдачи " + kas[i].dvidavhi + '\n' + "Дата Сдачи: " + '\n' + kas[i].dvozvr + '\n' + "Марка автомобиля " + kas[i].marka + '\n' + "Полная стоймость автомобиля " + kas[i].pstoim + '\n' + "Стоймость проката " + kas[i].sprokata + '\n' + ""; k++; }

} Console.WriteLine(ss);.WriteLine("_____________________________________________________");.WriteLine("количество автомобилей марки " + s + " взятых на прокат " + k + '\n');.WriteLine("_____________________________________________________");

}

} break;'3':

{ w = 2; break; }: { } break;

}

}

}



Приложение B


Результаты тестирования программы.

Тестирование приложения реализованного в среде C++Builder.

Тестирование донного приложения на корректность запуска, ввода информации, выполнения основных операций не выявило никаких ошибок выполнения, и прошло успешно.

Запуск приложения прошел корректно в соответствии с рисунком 11.


Рисунок 11 - Тестирование запуска приложения


Тестирование меню «Добавить запись», и заполнение текстовых полей прошло корректно в соответствии с рисунком 12.



Рисунок 12 - Тестирование меню «новый абонент»


Тестирование поиска абонента прошло корректно, результаты были успешно выведены в таблицу в соответствии с рисунком 13.


Рисунок 13 - Тестирование поиска


Тестирование приложения разработанного в Microsoft Visual C#.

Тестирование данного приложения на корректность запуска, ввода и вывода информации, а также записи информации в файл не выявило существенных ошибок, и прошло успешно.

Запуск приложения прошёл успешно в соответствии с рисунком 14.


Рисунок 14 - Тестирование запуска приложения


Переход к дополнительным меню, и ввод информации происходит корректно в соответствии с рисунком 15.


Рисунок 15 - Тестирование переходов к дополнительным меню и корректности ввода


Запись информации в файл прошла корректно в соответствии с рисунком 16.



Рисунок 23 - Тестирование записи в текстовый файл.


По общим результатам тестирования можно сделать вывод, что успешно созданное программное обеспечение является полностью пригодным для использования, и выполняется согласно поставленным задачам.


Содержание Введение . Проектирование программного модуля .1 Постановка задачи .2 Математическое (логическое) описание задачи .3 Описание вход

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ