Читайте также:
|
|
КАФЕДРА ТЕОРИТИЧЕСКИХ ОСНОВ РАДИОТЕХНИКИ
Оценка работы ______________
Преподаватель Иванов О. Ю.
Отчет по вычислительной практике
“Средства и методы программирования”
Подпись Дата Ф.И.О.
Студент _____________ _______________ Большедворов. М.В.
Группа Р-200702
Екатеринбург 2012
Задание:
Написать программу учета маршрутных автобусов по улицам города.
Исходными данными для программы являются:
1) № автобуса.
2) № маршрута.
3) Начальный и конечный пункты следования.
4) Время пути.
5) Ко-во машин на маршруте.
Программа должна уметь:
1) Редактировать исходную информацию и хранить ее в файле.
2) Выводить данные на экран в удобной для пользователя форме.
3)Сортировать информацию по № автобуса и № маршрута.
4) Определять, какие маршруты имеют конечным пунктом ту или иную площадку.
Код программы:
#include <vcl.h>
#include <fstream.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//чтение файла
ifstream File ("database.txt", ios::in);
if(File == NULL)
exit(0);
File >> Q;//чтение количества
for(int i = 0; i < Q; i++)
{//чтение данных
File >> Avtobysu[i].NomerAvtob >> Avtobysu[i].NomerMarsh >>
Avtobysu[i].NachPunct >> Avtobysu[i].KonPunct >>
Avtobysu[i].Vremya >> Avtobysu[i].QMashin;
}
File.close();//закрыть файл
PokazSpisok();
}
void TForm1::PokazSpisok()
{
//отображение в таблицу
StringGrid1->RowCount = Q + 1;
StringGrid1->ColCount = 7;
//очистка таблицы
for(int i = 0; i < StringGrid1->RowCount; i++)
for(int j = 0; j < StringGrid1->ColCount; j++)
StringGrid1->Cells[j][i] = "";
//расширение некоторых столбцов
StringGrid1->ColWidths[0] = 30;
StringGrid1->ColWidths[3] = 100;
StringGrid1->ColWidths[4] = 100;
StringGrid1->ColWidths[6] = 120;
StringGrid1->Cells[0][0] = "№";
StringGrid1->Cells[1][0] = "№ автобуса";
StringGrid1->Cells[2][0] = "№ маршрута";
StringGrid1->Cells[3][0] = "Начальный пункт";
StringGrid1->Cells[4][0] = "Конечный пункт";
StringGrid1->Cells[5][0] = "Время пути";
StringGrid1->Cells[6][0] = "Кол. машин на маршруте";
//заносим данные
for(int i = 0; i < Q; i++)
{
StringGrid1->Cells[0][1 + i] = (String)(i + 1);
StringGrid1->Cells[1][1 + i] = (String)Avtobysu[i].NomerAvtob;
StringGrid1->Cells[2][1 + i] = (String)Avtobysu[i].NomerMarsh;
StringGrid1->Cells[3][1 + i] = (String)Avtobysu[i].NachPunct;
StringGrid1->Cells[4][1 + i] = (String)Avtobysu[i].KonPunct;
StringGrid1->Cells[5][1 + i] = (String)Avtobysu[i].Vremya;
StringGrid1->Cells[6][1 + i] = (String)Avtobysu[i].QMashin;
}
ComboBox1->Items->Clear();
for (int i = 0; i < Q; i++)
ComboBox1->Items->Add((String)(i + 1));
ComboBox1->Text = "Номер записи";
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{ //Запись в файл
ofstream File ("database.txt", ios::in);
if(File == NULL)
exit(0);
File << Q << endl;//чтение количества
for(int i = 0; i < Q; i++)
{//запись данных
File << Avtobysu[i].NomerAvtob << " " << Avtobysu[i].NomerMarsh
<< " " << Avtobysu[i].NachPunct<< " " << Avtobysu[i].KonPunct
<< " " << Avtobysu[i].Vremya << " " << Avtobysu[i].QMashin << endl;
}
File.close();//закрыть файл
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form2->Show();
ComboBox1->ItemIndex = -1;
Hide();
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{ //редактирование записи
if(ComboBox1->ItemIndex!= -1)//если пользователь выбрал строку
{
Form2->Show();
Hide();
Form2->Edit1->Text = (String)Avtobysu[ComboBox1->ItemIndex].NomerAvtob;
Form2->Edit2->Text = (String)Avtobysu[ComboBox1->ItemIndex].NomerMarsh;
Form2->Edit3->Text = (String)Avtobysu[ComboBox1->ItemIndex].NachPunct;
Form2->Edit4->Text = (String)Avtobysu[ComboBox1->ItemIndex].KonPunct;
Form2->Edit5->Text = (String)Avtobysu[ComboBox1->ItemIndex].Vremya;
Form2->Edit6->Text = (String)Avtobysu[ComboBox1->ItemIndex].QMashin;
}
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(ComboBox1->ItemIndex!= -1)
{
for (int i = ComboBox1->ItemIndex; i < Q - 1; i++)
Avtobysu[i] = Avtobysu[i + 1];
Q--;
PokazSpisok();
}
}
void __fastcall TForm1::Button5Click(TObject *Sender)
{ //сортировка по № автобуса вставками
Avtobys Temp;
int i, j;
for(i = 1; i < Q; i++)
{
Temp = Avtobysu[i];
for(j = i - 1; (j >= 0) &&
(strcmp(Temp.NomerAvtob, Avtobysu[j].NomerAvtob) < 0); j--)
Avtobysu[j + 1] = Avtobysu[j];
Avtobysu[j + 1] = Temp;
}
PokazSpisok();
}
void __fastcall TForm1::Button6Click(TObject *Sender)
{//сортировка по № маршрута вставками
Avtobys Temp;
int i, j;
for(i = 1; i < Q; i++)
{
Temp = Avtobysu[i];
for(j = i - 1; (j >= 0) && (Temp.NomerMarsh <= Avtobysu[j].NomerMarsh); j--)
Avtobysu[j + 1] = Avtobysu[j];
Avtobysu[j + 1] = Temp;
}
PokazSpisok();
}
void __fastcall TForm1::Button7Click(TObject *Sender)
{
int k = 0;
ListBox1->Items->Clear();
for(int i = 0; i < Q; i++)
{
if (!strcmp(Edit1->Text.c_str(), Avtobysu[i].KonPunct))
{
bool nov = true;
for(int j = 0; j < k; j++)
{
if(ListBox1->Items->Strings[j] == (String)Avtobysu[i].NomerMarsh)//.AnsiCompare()
{
nov = false;
break;
}
}
if(nov)
{
ListBox1->Items->Add((String)Avtobysu[i].NomerMarsh);
k++;
}
}
}
}
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Close();
}
Дата добавления: 2015-10-28; просмотров: 157 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Приложение №5 | | | Своеобразие сюжетно-ролевой игры. Организация общения взрослого с детьми в сюжетно-ролевой игре |