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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 10.06.2014
Размер файла 872,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

Введение

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

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

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

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

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

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

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

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

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

Заключение

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

Приложения

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

П/п

Этап тестирования

Ошибки

Отметка об исполнении

1

Тестирование устойчивости

Нет

Выполнено

2

Тестирование функциональности

Нет

Выполнено

3

Тестирование применимости

Нет

Выполнено

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

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

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

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

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

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

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

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

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

-Переключение между полями заполнения можно осуществлять клавишей “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 - Поиск.

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9 ГОСТ 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"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

Form1 -> Enabled = False;

Form2 -> Show();

}

void __fastcall TForm1::BitBtn4Click(TObject *Sender)

{

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

{

Application -> Terminate();

}

}

void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)

{

Label1 -> Caption = "Полная стоимость: " + Form1 -> ADOTable1 -> FieldByName("Полная стоймость") -> AsString;

Label2 -> Caption = "Стоимость проката: " + Form1 -> ADOTable1 -> FieldByName("стоймость проката") -> AsString;

Label4 -> Caption = "Марка автомобиля: " + Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString;

Label5 -> Caption = "Дата возврата: " + Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString;

Label3 -> Caption = "Дата выдачи: " + Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString;

}

void __fastcall TForm1::BitBtn3Click(TObject *Sender)

{

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

{

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

}

else

{

Form1 -> Enabled = False;

Form3 -> Show();

}

}

void __fastcall TForm1::BitBtn2Click(TObject *Sender)

{

Form1-> ADOTable1 -> Filter = "[" + ComboBox1 -> Text + "]" + "='" + Edit1 -> Text + "'";

Form1 -> ADOTable1 -> Filtered = true;

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form1 -> ADOTable1 -> Filtered = false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N9Click(TObject *Sender)

{

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

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

}

void __fastcall TForm1::BitBtn5Click(TObject *Sender)

{

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

{

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

}

else

{

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

{

Form1 -> ADOTable1 -> Delete();

}

}

}

void __fastcall TForm1::N8Click(TObject *Sender)

{

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

}

void __fastcall TForm1::DataSource1DataChange(TObject *Sender,

TField *Field)

{

Label1 -> Caption = "Полная стоимость: " + Form1 -> ADOTable1 -> FieldByName("Полная стоймость") -> AsString;

Label2 -> Caption = "Стоимость проката: " + Form1 -> ADOTable1 -> FieldByName("стоймость проката") -> AsString;

Label4 -> Caption = "Марка автомобиля: " + Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString;

//Label5 -> Caption = "Срок: " + Form1 -> ADOTable1 -> FieldByName("Срок") -> AsString;

Label3 -> Caption = "Дата выдачи: " + Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString;

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Form1 -> ADOTable1 -> Open();

}

Unit2.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

static String REQ1 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ2 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ3 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ4 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ5 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ6 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ7 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

RATE1 = "Номер автомобиля: 8539-УБ6",

RATE2 = "Номер автомобиля: 9133-УБ6",

RATE3 = "Номер автомобиля: 1437-УБ6",

RATE4 = "Номер автомобиля: 2731-УБ6",

RATE5 = "Номер автомобиля: 8934-УБ6",

RATE6 = "Номер автомобиля: 6136-УБ6",

RATE7 = "Номер автомобиля: 7030-УБ6",

TIME1 = "Срок: до 6-месяцев",

TIME2 = "Срок: до 4-месяцев (продление)",

TIME3 = "Срок: до 1-год",

TIME4 = "Срок: до 7-месяцев",

TIME5 = "Срок: до 9-месяцев",

TIME6 = "Срок: до 10-ти месяцев",

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

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

{

Form1 -> Enabled = True;

}

void __fastcall TForm2::Button1Click(TObject *Sender)

{

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

{

Form1 -> ADOTable1 -> Open();

Form1 -> ADOTable1 -> Insert();

Form1 -> ADOTable1 -> Edit();

Form1 -> ADOTable1 -> FieldByName("Фамилия") -> AsString = Form2 -> Edit1 -> Text;

Form1 -> ADOTable1 -> FieldByName("Отчество") -> AsString = Form2 -> Edit2 -> Text;

Form1 -> ADOTable1 -> FieldByName("Адрес") -> AsString = Form2 -> Edit3 -> Text;

Form1 -> ADOTable1 -> FieldByName("Телефон") -> AsString = Form2 -> Edit4 -> Text;

Form1 -> ADOTable1 -> FieldByName("полная стоймость") -> AsString = Form2 -> Edit7 -> Text;

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = Form2 -> ComboBox1 -> Text;

Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form2 -> Edit6 -> Text;

Form1 -> ADOTable1 -> FieldByName("стоймость проката") -> AsString = Form2 -> Edit5 -> Text;

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = Form2 -> Edit8 -> Text;

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ВАЗ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "6-месяцев";

break;

case 1:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "БМВ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "4 месяцев";

break;

case 2:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Мерседес";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 1 года";

break;

case 3:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Жигули";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 7 месяцев";

break;

case 4:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Газель";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 9 месяцев";

break;

case 5:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Лада";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 10 месяцев";

break;

case 6:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ЗАЗ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "5 лет";

break;

}

Form1 -> ADOTable1 -> Post();

Form2 -> Close();

}

else

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

}

void __fastcall TForm2::ComboBox1Change(TObject *Sender)

{

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form2 -> Label6 -> Caption = REQ1;

Form2 -> Label7 -> Caption = RATE1;

Form2 -> Label8 -> Caption = TIME1;

break;

case 1:

Form2 -> Label6 -> Caption = REQ2;

Form2 -> Label7 -> Caption = RATE2;

Form2 -> Label8 -> Caption = TIME2;

break;

case 2:

Form2 -> Label6 -> Caption = REQ3;

Form2 -> Label7 -> Caption = RATE3;

Form2 -> Label8 -> Caption = TIME3;

break;

case 3:

Form2 -> Label6 -> Caption = REQ4;

Form2 -> Label7 -> Caption = RATE4;

Form2 -> Label8 -> Caption = TIME4;

break;

case 4:

Form2 -> Label6 -> Caption = REQ5;

Form2 -> Label7 -> Caption = RATE5;

Form2 -> Label8 -> Caption = TIME5;

break;

case 5:

Form2 -> Label6 -> Caption = REQ6;

Form2 -> Label7 -> Caption = RATE6;

Form2 -> Label8 -> Caption = TIME6;

break;

case 6:

Form2 -> Label6 -> Caption = REQ7;

Form2 -> Label7 -> Caption = RATE7;

Form2 -> Label8 -> Caption = TIME7;

break;

}

}

void __fastcall TForm2::Button2Click(TObject *Sender)

{

TDateTime CurrentDate = Date();

Edit6 -> Text = CurrentDate;

}

void __fastcall TForm2::FormActivate(TObject *Sender)

{

Edit1 -> Clear();

Edit2 -> Clear();

Edit3 -> Clear();

Edit4 -> Clear();

Edit5 -> Clear();

Edit6 -> Clear();

Edit7 -> Clear();

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form2 -> Label6 -> Caption = REQ1; Form2 -> Label7 -> Caption = RATE1; Form2 -> Label8 -> Caption = TIME1;

break;

case 1:

Form2 -> Label6 -> Caption = REQ2; Form2 -> Label7 -> Caption = RATE2; Form2 -> Label8 -> Caption = TIME2;

break;

case 2:

Form2 -> Label6 -> Caption = REQ3; Form2 -> Label7 -> Caption = RATE3; Form2 -> Label8 -> Caption = TIME3;

break;

case 3:

Form2 -> Label6 -> Caption = REQ4; Form2 -> Label7 -> Caption = RATE4; Form2 -> Label8 -> Caption = TIME4;

break;

case 4:

Form2 -> Label6 -> Caption = REQ5; Form2 -> Label7 -> Caption = RATE5; Form2 -> Label8 -> Caption = TIME5;

break;

case 5:

Form2 -> Label6 -> Caption = REQ6; Form2 -> Label7 -> Caption = RATE6; Form2 -> Label8 -> Caption = TIME6;

break;

case 6:

Form2 -> Label6 -> Caption = REQ7; Form2 -> Label7 -> Caption = RATE7; Form2 -> Label8 -> Caption = TIME7;

break;

}

}

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

{

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

else Key = 0;

}

Unit3.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

static String REQ1 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ2 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ3 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ4 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ5 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ6 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

REQ7 = "Условия получения: Предьявление паспорта, заключение договора, первый взнос ",

RATE1 = "Номер автомобиля: 8539-УБ6",

RATE2 = "Номер автомобиля: 9133-УБ6",

RATE3 = "Номер автомобиля: 1437-УБ6",

RATE4 = "Номер автомобиля: 2731-УБ6",

RATE5 = "Номер автомобиля: 8934-УБ6",

RATE6 = "Номер автомобиля: 6136-УБ6",

RATE7 = "Номер автомобиля: 7030-УБ6",

TIME1 = "Срок: до 6-месяцев",

TIME2 = "Срок: до 4-месяцев (продление)",

TIME3 = "Срок: до 1-год",

TIME4 = "Срок: до 7-месяцев",

TIME5 = "Срок: до 9-месяцев",

TIME6 = "Срок: до 10-ти месяцев",

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

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

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

{

Form1 -> Enabled = True;

}

void __fastcall TForm3::FormActivate(TObject *Sender)

{

Form3 -> Edit1 -> Text = Form1 -> ADOTable1 -> FieldByName("Фамилия") -> AsString;

Form3 -> Edit2 -> Text = Form1 -> ADOTable1 -> FieldByName("Отчество") -> AsString;

Form3 -> Edit3 -> Text = Form1 -> ADOTable1 -> FieldByName("Адрес") -> AsString;

Form3 -> Edit4 -> Text = Form1 -> ADOTable1 -> FieldByName("Телефон") -> AsString;

Form3 -> Edit7 -> Text = Form1 -> ADOTable1 -> FieldByName("полная стоймость") -> AsString;

Form3 -> Edit6 -> Text = Form1 -> ADOTable1 -> FieldByName("дата выдачи") -> AsString;

Form3 -> Edit8 -> Text = Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString;

if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "ВАЗ")

Form3 -> ComboBox1 -> ItemIndex = 0;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "БМВ")

Form3 -> ComboBox1 -> ItemIndex = 1;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Мерседес")

Form3 -> ComboBox1 -> ItemIndex = 2;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Жигули")

Form3 -> ComboBox1 -> ItemIndex = 3;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Газель")

Form3 -> ComboBox1 -> ItemIndex = 4;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "Лада")

Form3 -> ComboBox1 -> ItemIndex = 5;

else if (Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString == "ЗАЗ")

Form3 -> ComboBox1 -> ItemIndex = 6;

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form3 -> Label6 -> Caption = REQ1; Form3 -> Label7 -> Caption = RATE1; Form3 -> Label8 -> Caption = TIME1;

break;

case 1:

Form3 -> Label6 -> Caption = REQ2; Form3 -> Label7 -> Caption = RATE2; Form3 -> Label8 -> Caption = TIME2;

break;

case 2:

Form3 -> Label6 -> Caption = REQ3; Form3 -> Label7 -> Caption = RATE3; Form3 -> Label8 -> Caption = TIME3;

break;

case 3:

Form3 -> Label6 -> Caption = REQ4; Form3 -> Label7 -> Caption = RATE4; Form3 -> Label8 -> Caption = TIME4;

break;

case 4:

Form3 -> Label6 -> Caption = REQ5; Form3 -> Label7 -> Caption = RATE5; Form3 -> Label8 -> Caption = TIME5;

break;

case 5:

Form3 -> Label6 -> Caption = REQ6; Form3 -> Label7 -> Caption = RATE6; Form3 -> Label8 -> Caption = TIME6;

break;

case 6:

Form3 -> Label6 -> Caption = REQ7; Form3 -> Label7 -> Caption = RATE7; Form3 -> Label8 -> Caption = TIME7;

break;

}

}

void __fastcall TForm3::Button2Click(TObject *Sender)

{

TDateTime CurrentDate = Date();

Edit6 -> Text = CurrentDate;

}

void __fastcall TForm3::ComboBox1Change(TObject *Sender)

{

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form3 -> Label6 -> Caption = REQ1; Form3 -> Label7 -> Caption = RATE1; Form3 -> Label8 -> Caption = TIME1;

break;

case 1:

Form3 -> Label6 -> Caption = REQ2; Form3 -> Label7 -> Caption = RATE2; Form3 -> Label8 -> Caption = TIME2;

break;

case 2:

Form3 -> Label6 -> Caption = REQ3; Form3 -> Label7 -> Caption = RATE3; Form3 -> Label8 -> Caption = TIME3;

break;

case 3:

Form3 -> Label6 -> Caption = REQ4; Form3 -> Label7 -> Caption = RATE4; Form3 -> Label8 -> Caption = TIME4;

break;

case 4:

Form3 -> Label6 -> Caption = REQ5; Form3 -> Label7 -> Caption = RATE5; Form3 -> Label8 -> Caption = TIME5;

break;

case 5:

Form3 -> Label6 -> Caption = REQ6; Form3 -> Label7 -> Caption = RATE6; Form3 -> Label8 -> Caption = TIME6;

break;

case 6:

Form3 -> Label6 -> Caption = REQ7; Form3 -> Label7 -> Caption = RATE7; Form3 -> Label8 -> Caption = TIME7;

break;

}

}

void __fastcall TForm3::Button1Click(TObject *Sender)

{

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

{

Form1 -> ADOTable1 -> Edit();

Form1 -> ADOTable1 -> FieldByName("Фамилия") -> AsString = Form3 -> Edit1 -> Text;

Form1 -> ADOTable1 -> FieldByName("Отчество") -> AsString = Form3 -> Edit2 -> Text;

Form1 -> ADOTable1 -> FieldByName("Адрес") -> AsString = Form3 -> Edit3 -> Text;

Form1 -> ADOTable1 -> FieldByName("Телефон") -> AsString = Form3 -> Edit4 -> Text;

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = Form3 -> Edit7 -> Text;

Form1 -> ADOTable1 -> FieldByName("полная стоймость") -> AsString = Form3 -> ComboBox1 -> Text;

Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form3 -> Edit5 -> Text;

Form1 -> ADOTable1 -> FieldByName("Дата выдачи") -> AsString = Form3 -> Edit6 -> Text;

switch (ComboBox1 -> ItemIndex)

{

case 0:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ВАЗ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "6-месяцев";

break;

case 1:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "БМВ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "4 месяцев";

break;

case 2:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Мерседес";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 1 года";

break;

case 3:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Жигули";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 7 месяцев";

break;

case 4:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Газель";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 9 месяцев";

break;

case 5:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "Лада";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "до 10 месяцев";

break;

case 6:

Form1 -> ADOTable1 -> FieldByName("Марка автомобиля") -> AsString = "ЗАЗ";

Form1 -> ADOTable1 -> FieldByName("дата возврата") -> AsString = "5 лет";

break;

}

Form1 -> ADOTable1 -> Post();

Form3 -> Close();

}

else

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

}

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

{

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

else Key = 0;

}

Project1.cpp

#include <vcl.h>

#pragma hdrstop

USEFORM("Unit1.cpp", Form1);

USEFORM("Unit2.cpp", Form2);

USEFORM("Unit3.cpp", Form3);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->Title = "Прокат автомобилей";

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->CreateForm(__classid(TForm3), &Form3);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

Листинг программы в Microsoft Visual C#.

using System;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace ConsoleApplication1

{

struct writer1

{

public string name;

public string fam;

public string othes;

public string adres;

public string tel;

public string marka;

public string pstoim;

public string sprokata;

public string dvidavhi;

public string dvozvr;

public string data;

public string diag;

public string stoim;

public string vrah;

public string pac;

}

class Program

{

static void Main()

{

int w = 1;

string s3;

while (w == 1)

{

writer1[] kas = new writer1[100];

string s = "";// поиска

int i = 0;//счётчик

char n;//переменная для выбора

Console.Title = "Прокат Автомобилей";

Console.WriteLine("Список действий");

Console.WriteLine("1-Добавление нового клиента");

Console.WriteLine("2-Поиск");

Console.WriteLine("3-Выход");

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

switch (n)

{

case '1':

{

Console.Title = "Новый клиент ";

Console.Clear();

StreamWriter fs = new StreamWriter("1.txt", true);//открываем файл для записи

Console.Write("Фамилия: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Имя: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Отчество: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Адрес: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Телефон: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Марка автомобиля ");

fs.WriteLine(Console.ReadLine());

Console.Write("Полная стоймость: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Стоймость проката: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Дата выдачи: ");

fs.WriteLine(Console.ReadLine());

Console.Write("Дата возврата: ");

fs.WriteLine(Console.ReadLine());

fs.WriteLine("____________________________");

fs.Close();

} break;

case '2': //поиск

{

char pn;

Console.Clear();

Console.Title = "ПОИСК:";

Console.WriteLine("1-поиск по дате");

Console.WriteLine("2-поиск по фамилии клиента:");

Console.WriteLine("3-поиск по марке автомобиля:");

Console.WriteLine();

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

if (pn == '1')

{

Console.Title = "поиск по дате:";

Console.Clear();

Console.Write("введите дату:");

s = Console.ReadLine();

string s1;

Console.WriteLine("-----------------------------");

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

i = 0;

while (fr.Peek() != -1)

{

kas[i].name = fr.ReadLine();

kas[i].fam = fr.ReadLine();

kas[i].othes = fr.ReadLine();

kas[i].adres = fr.ReadLine();

kas[i].tel = fr.ReadLine();

kas[i].marka = fr.ReadLine();

kas[i].pstoim = fr.ReadLine();

kas[i].sprokata = fr.ReadLine();

kas[i].dvidavhi = fr.ReadLine();

kas[i].dvozvr = fr.ReadLine();

s3 = fr.ReadLine();

if (s == kas[i].dvidavhi)

{

Console.WriteLine("Имя клиента " + kas[i].name);

Console.WriteLine("Фамилия клиента: " + kas[i].fam);

Console.WriteLine("Отчество клиента: " + kas[i].othes);

Console.WriteLine("Адрес " + kas[i].adres);

Console.WriteLine("Телефон " + kas[i].tel);

Console.WriteLine("Марка автомабиля " + kas[i].marka);

Console.WriteLine("Полная стоймость автомобиля " + kas[i].pstoim);

Console.WriteLine("стоймость проката " + kas[i].sprokata);

Console.WriteLine("Дата выдачи " + kas[i].dvidavhi);

Console.WriteLine("Дата возвращения" + kas[i].dvozvr);

Console.WriteLine(s3);

}

i++;

}

Console.WriteLine();

fr.Close();

}

if (pn == '2')

{

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

while (fr.Peek() != -1)

{

i++;

kas[i].name = fr.ReadLine();

kas[i].fam = fr.ReadLine();

kas[i].othes = fr.ReadLine();

kas[i].adres = fr.ReadLine();

kas[i].tel = fr.ReadLine();

kas[i].marka = fr.ReadLine();

kas[i].pstoim = fr.ReadLine();

kas[i].sprokata = fr.ReadLine();

kas[i].dvidavhi = fr.ReadLine();

kas[i].dvozvr = fr.ReadLine();

s3 = fr.ReadLine();

}

fr.Close();

Console.Title = "поиск по фамилии клиента: ";

string ss = "";

Console.Write("введите фамилию клиента: ");

s = Console.ReadLine();

for (i = 0; i < kas.Length; i++)

{

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

{

ss = 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);

if (pn == '3')

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

while (fr.Peek() != -1)

i++; kas[i].name = fr.ReadLine();

kas[i].fam = fr.ReadLine();

kas[i].othes = fr.ReadLine();

kas[i].adres = fr.ReadLine();

kas[i].tel = fr.ReadLine();

kas[i].marka = fr.ReadLine();

kas[i].pstoim = fr.ReadLine();

kas[i].sprokata = fr.ReadLine();

kas[i].dvidavhi = fr.ReadLine();

kas[i].dvozvr = fr.ReadLine();

s3 = fr.ReadLine();

}

fr.Close();

Console.Title = "поиск по марке автомобиля: ";

string ss = "";

Console.Write("введите марку автомобиля: ");

s = Console.ReadLine();

int k = 0;

for (i = 0; i < kas.Length; i++)

{

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

{

ss = 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);

Console.WriteLine("_____________________________________________________");

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

Console.WriteLine("_____________________________________________________");

}

} break;

case '3':

{ w = 2; break; }

default: { } break;

}

}

}

Приложение B

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Размещено на Allbest.ru


Подобные документы

  • Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.

    курсовая работа [215,3 K], добавлен 01.09.2010

  • Основные стадии разработки, принципы тестирования и отладка программного модуля "VFS". Особенности проектирования на языке UML. Методы "грубой силы" и их применение при отладке программы. Вредные факторы, присутствующие на рабочем месте программиста.

    дипломная работа [827,0 K], добавлен 07.03.2012

  • Структурная диаграмма программного модуля. Нахождение суммы элементов, находящихся над главной диагональю. Реализация программного модуля: код программы; описание использованных операторов и функций. Особенности тестирования программного модуля.

    курсовая работа [146,6 K], добавлен 01.09.2010

  • Разработка СУБД - программного модуля для систематизации, хранения и обработки сведений о работниках лаборатории. Технологический процесс машинной реализации задачи, составление алгоритма, описание переменных процедур и функций. Листинг программы.

    курсовая работа [1,7 M], добавлен 11.01.2013

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Методика разработки программного модуля для нахождения методом хорд корня уравнения x3-x-0,3=0 с точностью до 0,001 на языке программирования Visual Basic for Application. Схема программного модуля и описание процедуры обработки кнопки "Найти корни".

    курсовая работа [394,0 K], добавлен 08.09.2010

  • Изучение основ деятельности проката автомобилей. Рассмотрение особенностей работы информационной системы для фирмы проката автомобилей, позволяющей вносить в базу данных информацию о том, какой автомобиль был арендован клиентом, на какой срок и сумму.

    курсовая работа [1,9 M], добавлен 27.06.2015

  • Сравнительный анализ технологий тестирования. Разработка программного модуля "Интеллектуальная обучающая система для широкого перечня курсов". Обоснование необходимости и важности этапа отладки в процессе разработки данного программного обеспечения.

    дипломная работа [101,2 K], добавлен 17.06.2011

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.

    курсовая работа [1,8 M], добавлен 17.05.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.