Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Контрольная работа: Разработка программы представления табличных данных в виде диаграммы прямоугольников

Название: Разработка программы представления табличных данных в виде диаграммы прямоугольников
Раздел: Рефераты по информатике, программированию
Тип: контрольная работа Добавлен 22:54:35 15 июня 2010 Похожие работы
Просмотров: 16 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Содержание

Формализация задачи

Словесное описание алгоритма

Листинг программы

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

Отладка


Формализация задачи

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

Словесное описание алгоритма

Нажатием кнопки «Новый» производится создание нового типизированного (nrec) файла: выводится диалоговое окно с текстовым полем для имени файла, затем это имя устанавливается в соответствие файловой переменной (fdata). Файл открывается процедурой Rewrite, затем производится проверка на наличие ошибок при открытии файла. Если открытие было успешным, то флаг is_open присваивается значение true, становятся доступными элементы для ввода записей.

Нажатием кнопки «Открыть» производится открытие файла для чтения процедурой Reset. Если файл открыт, производится считывание всех записей из этого файла и помещение их в таблицу (SG), флаг is_open устанавливается в true.

Нажатием кнопки «Ввод» проверяется не пусты ли текстовые поля EKEY и EVAL. Если «нет»б проверяются данные в поле EVAL. Если эти данные являются числом, то данные из EKEY и EVAL записываются в таблицу.

Диаграмма (GR) строится нажатием кнопки «Построить»: очищаются значения диаграммы, если в таблице значений не больше чем два, построение не выполняется.

Кнопка «Сохранить» перемещает указатель на начало файла и записывает все данные из таблицы в открытый файл.

Листинг программы

{ Листинг файла Kmain.pas }

unit Kmain;

interface

uses

KDialog,

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type nrec = record

key:string[20];

val:real

end;

type

TFMAIN = class(TForm)

SG: TStringGrid; GR: TChart; EKEY: TEdit; EVAL: TEdit;

BENT: TButton; BNEW: TButton; BOPEN: TButton; BMAKE: TButton;

Button1: TButton; BCLO: TButton; BSAV: TButton; Label1: TLabel;

Label2: TLabel; Series1: TBarSeries;

procedure BNEWClick(Sender: TObject);

procedure BSAVClick(Sender: TObject);

procedure BENTClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCreate(Sender: TObject);

procedure BOPENClick(Sender: TObject);

procedure BMAKEClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure BCLOClick(Sender: TObject);

private

fdata:file of nrec;

rec:nrec;

is_open:boolean;

end;

var

FMAIN: TFMAIN;

implementation

{$R *.dfm}

procedure TFMAIN.BNEWClick(Sender: TObject);

begin

FDIALOG.Caption:='Сохранить файл';

FDIALOG.ShowModal;

if(FDIALOG.getName<>'') then begin

AssignFile(fdata, FDIALOG.getName);

{$I+} Rewrite(fdata); {$I-}

if IOresult<>0 then begin

MessageDlg('Ошибка при открытии файла!',

mtError, [mbOK], 0);

exit;

end;

SG.Cells[0,1]:=''; SG.Cells[1,1]:='';

SG.RowCount:=2;

SG.Enabled:=true; EVAL.Enabled:=true;

GR.Enabled:=true; EKEY.Enabled:=true;

BENT.Enabled:=true; BMAKE.Enabled:=true;

BCLO.Enabled:=true; BSAV.Enabled:=true;

BNEW.Enabled:=false; BOPEN.Enabled:=false;

FMAIN.Caption:='Таблица '+FDIALOG.getName;

is_open:=true;

end;{if(FDIALOG...}

end;

procedure TFMAIN.BSAVClick(Sender: TObject);

var i:integer;

begin

seek(fdata, 0);

for i:=1 to SG.RowCount-2 do begin

rec.key:=SG.Cells[0, i];

rec.val:=StrToFloat(SG.Cells[1, i]);

write(fdata, rec);

end;

end;

procedure TFMAIN.BENTClick(Sender: TObject);

begin

if (EKEY.Text<>'')and(EVAL.Text<>'') then

begin

try

StrToFloat(EVAL.Text);

except

MessageDlg('Вводить только числа', mtWarning, [mbOK], 0);

EVAL.Text:='';

exit;

end;{try...}

SG.Cells[0, SG.RowCount-1]:=EKEY.Text;

SG.Cells[1, SG.RowCount-1]:=EVAL.Text;

SG.RowCount:=SG.RowCount+1;

end;{if (EKEY...}

end;

procedure TFMAIN.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if is_open then CloseFile(fdata);

end;

procedure TFMAIN.FormCreate(Sender: TObject);

begin

is_open:=false;

SG.Cells[0,0]:='Имя';

SG.Cells[1,0]:='Значение';

SG.RowCount:=SG.RowCount+1;

end;

procedure TFMAIN.BOPENClick(Sender: TObject);

var i:integer;

begin

FDIALOG.Caption:='Открыть файл';

FDIALOG.ShowModal;

if(FDIALOG.getName<>'') then begin

AssignFile(fdata, FDIALOG.getName);

{$I-}Reset(fdata){$I+};

if IOresult<>0 then begin

MessageDlg('Ошибка при открытии файла!',

mtError, [mbOK], 0);

exit;

end;

i:=1;

SG.RowCount:=2;

while not EOF(fdata) do begin

read(fdata, rec);

SG.Cells[0, i]:=rec.key;

SG.Cells[1, i]:=FloatToStr(rec.val);

SG.RowCount:=SG.RowCount+1;

inc(i);

end;

SG.Enabled:=true;

SG.Enabled:=true; EVAL.Enabled:=true;

GR.Enabled:=true; EKEY.Enabled:=true;

BENT.Enabled:=true; BMAKE.Enabled:=true;

BCLO.Enabled:=true; BSAV.Enabled:=true;

FMAIN.Caption:='Таблица '+FDIALOG.getName;

is_open:=true;

BNEW.Enabled:=false; BOPEN.Enabled:=false;

end;{if(FDIALOG...}

end;

procedure TFMAIN.BMAKEClick(Sender: TObject);

var ser:integer;

begin

GR.Series[0].Clear;

if SG.RowCount<=2 then begin

MessageDlg('В таблице нет данных!', mtWarning, [mbOK], 0);

end

else

for ser:=1 to SG.RowCount-2 do begin

GR.Series[0].Add(StrToFloat(SG.Cells[1, ser]),

SG.Cells[0, ser], clMedGray);

end;

end;

procedure TFMAIN.Button1Click(Sender: TObject);

begin

Close;

end;

procedure TFMAIN.BCLOClick(Sender: TObject);

var i:integer;

begin

if is_open then begin

CloseFile(fdata);

for i:=1 to SG.RowCount-1 do

SG.Rows[i].Clear;

GR.Series[0].Clear;

SG.Cells[0,1]:=''; SG.Cells[1,1]:='';

SG.RowCount:=2;

SG.Enabled:=false;

SG.Enabled:=false; EVAL.Enabled:=false;

GR.Enabled:=false; EKEY.Enabled:=false;

BENT.Enabled:=false; BMAKE.Enabled:=false;

BSAV.Enabled:=false; BCLO.Enabled:=false;

FMAIN.Caption:='Представление табл. данных прямоугольной диаграммой'

is_open≔false;

BNEW.Enabled:=true; BOPEN.Enabled:=true;

end; end;

end.

{ Листинг файла KDialog.pas }

unit KDialog;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TFDIALOG = class(TForm)

Edit1: TEdit;

BOK: TBitBtn;

BCAN: TBitBtn;

procedure BOKClick(Sender: TObject);

procedure BCANClick(Sender: TObject);

private

fname:string;

public

function getName:string;

end;

var

FDIALOG: TFDIALOG;

implementation

function TFDIALOG.getName;

begin

getname:=fname;

end;

{$R *.dfm}

procedure TFDIALOG.BOKClick(Sender: TObject);

begin

fname:=FDIALOG.Edit1.Text;

end;

procedure TFDIALOG.BCANClick(Sender: TObject);

begin

fname:='';

end;

end.

{ Листинг файла Kurs.dpr }

program Kurs;

uses

Forms, Kmain in 'Kmain.pas' {FMAIN}, KDialog in 'KDialog.pas' {FDIALOG};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TFMAIN, FMAIN);

Application.CreateForm(TFDIALOG, FDIALOG);

Application.Run;

end.

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

При закрытии программы всегда выполняется процедура CloseFile;

Для каждой записи строится своя диаграмма;

При нажатии «Построить» данные из таблицы добавляются к прошлым значениям диаграммы;

При сохранении в файл считывается больше записей чем есть в таблице;

Не очищаются имена и значения в таблице при закрытии файла.

Отладка

Чтобы при закрытии программы процедура CloseFile выполнялась только тогда, когда есть открытый файл введена переменная is_open;

Изменено

GR.Series[i].Add(StrToFloat(SG.Cells[1, ser]), SG.Cells[0, ser], clMedGray);

на

GR.Series[0].Add(StrToFloat(SG.Cells[1, ser]), SG.Cells[0, ser], clMedGray);

В обработчике события OnClick кнопки «Построить» добавлена строка

GR.Series[0].Clear;

Число записей читаемых из таблицы уменьшено на единицу:

for i:=1 to SG.RowCount-2 do …

В обработчике события OnClick кнопки «Закрыть» добавлено:

for i:=1 to SG.RowCount-1 do begin

SG.Rows[i].Clear;

end;

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:39:43 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:47:32 28 ноября 2015

Работы, похожие на Контрольная работа: Разработка программы представления табличных данных в виде диаграммы прямоугольников

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(151177)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru