Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Схема потоков данных новой системы



 
 

       
   
 
 


Блок-схема для новой системы

 

 

 



Предназначен преимущества

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

2. Снижение количества ошибок. С новыми правилами проверки, новая программа может предоставить информацию без каких-либо ошибок. Кроме того, автоматическая система, вероятно, имеет меньше ошибок при расчетах.

3. Портативный и безопасный хранение данных и простой процесс поиска данных. Существующая система основана на бумажных носителях, так что данные, хранящиеся на нем могут быть повреждены, и это занимает много места в комнате медицинского персонала. Кроме того, он является очень сложным для поиска определенной информации, когда клиент собирается создать десять дней отчет. Принимая во внимание, что новая система обеспечивает безопасность хранения данных (может делать резервные версии), и это портативный, чтобы держать его с помощью флэш-накопитель и легко найти необходимые данные.

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

Пределы объема решения

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

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

• Программа не может вычислить суммарное количество белков, жиров и т.д. в конкретном еды. Это может сделать это только для разделенных продуктов

• Если данные из программы сохраняется его можно прочитать только с помощью этой программы, другие программы, такие как MS не может сделать это надлежащим образом.

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

Развитие

Системный дизайн

               
   
     
       
 
 

 


           
   
 
   

 

 



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

Это является основной формой которой пользователь отвечает в первую очередь, когда программа запускается. Основная форма обеспечивает такую возможность, как 'Open' значений для каждого типа еды, а затем, при необходимости, изменить что-то. После этого, можно «спасти» эти изменения. Наконец, когда конкретные значения загружаются, форма может предложить клиенту перейти к следующему форме.

Этот скриншот демонстрирует процесс, который происходит при нажатии на кнопку "ОТКРЫТЬ". Аналогичным образом, данные могут быть сохранены.

Here is the example of the saved file:


Вторая форма ввода данных формы. Здесь пользователь вводит количество конкретного продукта провели. Клиенты вводит значения на 10 дней, а затем, нажав кнопку "Вычислить среднее значение 'она могла вычислить среднее значение для количества продуктов. После вычисляется среднее значение, то пользователь может нажать кнопку "Подсчитать", который будет показывать третью форму.

Columns Days 1 to 10
Type Number
Length 10
Validation Presence check

 

 

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

 

 


Programming

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, Grids, Buttons, ExtCtrls, jpeg, ComCtrls;

type

TMainForm = class(TForm)

LoadDialog: TOpenDialog;

SaveDialog: TSaveDialog;

Welcome: TLabel;

Load: TButton;

Save: TButton;

InputTable: TStringGrid;

GoNextForm: TBitBtn;

Timer: TTimer;

Close: TButton;

Calendar: TMonthCalendar;

NisLogo: TImage;

Instruction1: TLabel;

Instruction2: TLabel;

procedure LoadClick(Sender: TObject);

procedure SaveClick(Sender: TObject);

procedure strngrd1KeyНажмите на кнопку(Sender: TObject; var Key: Char);

procedure GoNextFormClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure TimerTimer(Sender: TObject);

procedure CloseClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

 

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);

var

f: TextFile;

iTmp, i, k: Integer;

strTemp: string;

begin

AssignFile(f, FileName);

Reset(f);

with inputtable do

begin

// Get number of columns

Readln(f, iTmp);

ColCount := iTmp;

// Get number of rows

Readln(f, iTmp);

RowCount := iTmp;

// loop through cells & fill in values

for i := 0 to ColCount - 1 do

for k := 0 to RowCount - 1 do

begin

Readln(f, strTemp);

Cells[i, k] := strTemp;

end;

end;

CloseFile(f);

end; { This code enables to open the specific values for each product into stringgrid component}

 

procedure SaveStringGrid(strngrd1: TStringGrid; const FileName: TFileName);

var

f: TextFile;

i, k: Integer;

begin

AssignFile(f, FileName);

Rewrite(f);

with inputtable do

begin

// Write number of Columns/Rows

Writeln(f, ColCount);

Writeln(f, RowCount);

// loop through cells

for i := 0 to ColCount - 1 do

for k := 0 to RowCount - 1 do

Writeln(F, Cells[i, k]);

end;

CloseFile(F);

end; {Saves the changes for specific values of each product}

 

procedure TMainForm.LoadClick(Sender: TObject);

begin

if OpenDialog.Execute then

begin

LoadStringGrid(inputtable, OpenDialog.FileName);

Caption := ExtractFileName(Opendialog.FileName);

end else Exit;

end; {Opens the dialog during which a specific file could be loaded into stringgrid}

 

procedure TMainForm.SaveClick(Sender: TObject);

begin

Savedialog.Title := Сохранить таблицу как...';

if not savedialog.Execute then

Exit

else

begin

savedialog.Title := Сохранить таблицу как...';

SaveStringGrid(inputtable, savedialog.FileName);

end;

end;{Saves changed values in specific file}

 

 

procedure TMainForm.strngrd1KeyНажмите на кнопку(Sender: TObject; var Key: Char);

begin

if (key='-')and(pos('-',inputtable.Cells[inputtable.Col,inputtable.Row])<>0) then key:=#0;

if (key=',')and(pos(',',inputtable.Cells[inputtable.Col,inputtable.Row])<>0) then key:=#0;

case Key of

'0'..'9', #13,#08, ',','-': ;

else

Key := Chr(0);

end;

 

if key = #13 then

with inputtable do

if col < colcount - 1 then

col := col + 1

else if row < rowcount - 1 then

begin

row := row + 1;

col := 1;

end

else

begin

row := 1;

col := 1;

 

end;

end; {If some cells are empty, then this code fills it with 0s in order the program to function normally without errors}

 

procedure TMainForm.GoNextFormClick(Sender: TObject);

begin

Mainform.visible:=false;

begin

InputForm.Show;

end;

end; {Shows the next form and makes current form invisible}

 

procedure TMainForm.FormCreate(Sender: TObject);

begin

InputTable.Cells[1,0]:='Белки';

InputTable.Cells[2,0]:='Жиры';

InputTable.Cells[3,0]:='Углеводы';

InputTable.Cells[4,0]:='Каллории';

InputTable.Cells[0,0]:='Продукты';

InputTable.Cells[0,1]:='Мясо';

InputTable.Cells[0,2]:='Сливочное масло;

InputTable.Cells[0,3]:='Растительное масло';

InputTable.Cells[0,4]:='Молоко';

InputTable.Cells[0,5]:='Кефир';

InputTable.Cells[0,6]:='Сметана';

InputTable.Cells[0,7]:='Творог';

InputTable.Cells[0,8]:='Сыр';

InputTable.Cells[0,9]:='Яйца';

InputTable.Cells[0,10]:='Мука';

InputTable.Cells[0,11]:='Гречка';

InputTable.Cells[0,12]:='Манная крупа';

InputTable.Cells[0,13]:='Рис';

InputTable.Cells[0,14]:='Пшено';

InputTable.Cells[0,15]:='Лапша';

InputTable.Cells[0,16]:='Перловка';

InputTable.Cells[0,17]:='Геркулес';

end; {Fills the fixed cells in the table with the names of each product

 

procedure TMainForm.TimerTimer(Sender: TObject);

begin

welcome.left:=welcome.Left+1;

if welcome.Left > mainform.width then welcome.Left := welcome.Left-(mainform.width+welcome.Width);

end; {The caption is moving}

 

procedure TMainForm.CloseClick(Sender: TObject);

begin

MainForm.Close;

end; {Closes the form}

end.

 

unit Unit2;

interface

uses

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

Dialogs, Grids, StdCtrls;

type

TOutputForm = class(TForm)

OutputTable: TStringGrid;

CloseBtn: TButton;

Instruction4: TLabel;

Save: TButton;

procedure FormCreate(Sender: TObject);

procedure CloseBtnClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

OutputForm: TOutputForm;

implementation

uses Unit1;

 

{$R *.dfm}

procedure TOutputForm.FormCreate(Sender: TObject);

begin

OutputTable.Cells[1,0]:='Белки';

OutputTable.Cells[2,0]:='Жиры';

OutputTable.Cells[3,0]:='Углеводы';

OutputTable.Cells[4,0]:='Каллории';

OutputTable.Cells[0,0]:='Продукты';

OutputTable.Cells[0,1]:='Мясо';

OutputTable.Cells[0,2]:='Сливочное масло;

OutputTable.Cells[0,3]:='Растительное масло';

OutputTable.Cells[0,4]:='Молоко';

OutputTable.Cells[0,5]:='Кефир';

OutputTable.Cells[0,6]:='Сметана';

OutputTable.Cells[0,7]:='Творог';

OutputTable.Cells[0,8]:='Сыр';

OutputTable.Cells[0,9]:='Яйца';

OutputTable.Cells[0,10]:='Мука';

OutputTable.Cells[0,11]:='Гречка';

OutputTable.Cells[0,12]:='Манная крупа';

OutputTable.Cells[0,13]:='Рис';

OutputTable.Cells[0,14]:='Пшено';

OutputTable.Cells[0,15]:='Лапша';

OutputTable.Cells[0,16]:='Перловка';

OutputTable.Cells[0,17]:='Геркулес';

end; {Fills the fixed cells in the srtinggrid with the names of each product}

 

procedure TOutputForm.CloseBtnClick(Sender: TObject);

begin

OutputForm.Close;

end; {Closes the form}

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids;

type

TInputForm = class(TForm)

InputTable1: TStringGrid;

AverageCalc: TBitBtn;

CalculateAll: TBitBtn;

Instruction3: TLabel;

procedure AverageCalcClick(Sender: TObject);

procedure CalculateAllClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

InputForm: TInputForm;

implementation

uses Unit2, Unit1;

{$R *.dfm}

 

procedure TInputForm.AverageCalcClick(Sender: TObject);

var s:real;

i,j: integer;

begin

 

For j:=1 to inputtable1.rowcount do begin

s:=0;

for i:=1 to inputtable1.colCount do begin

If inputtable1.Cells[i,j]='' then inputtable1.Cells[i,j]:='0';

s:=s+strtofloat(inputtable1.Cells[i,j]);

end;

inputtable1.Cells[11,j]:=Floattostr(s/10) ;

 

end;

end; {Calculates the mean values and fills empty cells with 0s}

 

procedure TInputForm.CalculateAllClick(Sender: TObject);

var

i:integer;

s,d,s1,d1,s2,d2,s3,d3: real;

begin

 

for i:= 1 to outputform.outputtable.rowcount do begin

If mainform.inputtable.cells[1,i]='' then mainform.inputtable.cells[1,i]:='0' ;

If inputForm.InputTable1.cells[11,i]='' then inputForm.InputTable1[11,i]:='0';

s:=strtofloat( mainform.inputtable.cells[1,i]);

d:=strtofloat(inputform.inputtable1.cells[11,i]);

Outputform.outputtable.cells[1,i]:= FloatToStr(( s*d )/100);

 

If Mainform.inputtable.cells[2,i]='' then Mainform.inputtable.cells[2,i]:='0' ;

If Inputform.inputtable1.cells[11,i]='' then Inputform.inputtable1.cells[11,i]:='0';

s1:=strtofloat( Mainform.inputtable.cells[2,i]);

d1:=strtofloat(Inputform.inputtable1.cells[11,i]);

Outputform.outputtable.cells[2,i]:= FloatToStr(( s1*d1 )/100);

 

If Mainform.inputtable.cells[3,i]='' then Mainform.inputtable.cells[3,i]:='0' ;

If Inputform.inputtable1.cells[11,i]='' then Inputform.inputtable1.cells[11,i]:='0';

s2:=strtofloat( Mainform.inputtable.cells[3,i]);

d2:=strtofloat(Inputform.inputtable1.cells[11,i]);

Outputform.Outputtable.cells[3,i]:= FloatToStr(( s2*d2 )/100);

 

If mainform.inputtable.cells[4,i]='' then mainform.inputtable.cells[4,i]:='0' ;

If inputform.inputtable1.cells[11,i]='' then inputform.inputtable1.cells[11,i]:='0';

s3:=strtofloat( mainform.inputtable.cells[4,i]);

d3:=strtofloat(inputform.inputtable1.cells[11,i]);

Outputform.outputtable.cells[4,i]:= FloatToStr(( s3*d3 )/100);

InputForm.Close;

Outputform.show;

end;

end; {Calculates the values for each of the elements such as proteins, fats etc.}

 

procedure TInputForm.FormCreate(Sender: TObject);

begin

Inputtable1.Cells[1,0]:='День 1';

Inputtable1.Cells[2,0]:='День2';

Inputtable1.Cells[3,0]:='День 3';

Inputtable1.Cells[4,0]:='День 4';

Inputtable1.Cells[5,0]:=' День 5';

Inputtable1.Cells[6,0]:=' День 6';

Inputtable1.Cells[7,0]:=' День 7';

Inputtable1.Cells[8,0]:=' День 8';

Inputtable1.Cells[9,0]:=' День 9';

Inputtable1.Cells[10,0]:=' День 10';

Inputtable1.Cells[11,0]:='Среднее';

InputTable.Cells[1,0]:='Белки';

InputTable.Cells[2,0]:='Жиры';

InputTable.Cells[3,0]:='Углеводы';

InputTable.Cells[4,0]:='Каллории';

InputTable.Cells[0,0]:='Продукты';

InputTable.Cells[0,1]:='Мясо';

InputTable.Cells[0,2]:='Сливочное масло;

InputTable.Cells[0,3]:='Растительное масло';

InputTable.Cells[0,4]:='Молоко';

InputTable.Cells[0,5]:='Кефир';

InputTable.Cells[0,6]:='Сметана';

InputTable.Cells[0,7]:='Творог';

InputTable.Cells[0,8]:='Сыр';

InputTable.Cells[0,9]:='Яйца';

InputTable.Cells[0,10]:='Мука';

InputTable.Cells[0,11]:='Гречка';

InputTable.Cells[0,12]:='Манная крупа';

InputTable.Cells[0,13]:='Рис';

InputTable.Cells[0,14]:='Пшено';

InputTable.Cells[0,15]:='Лапша';

InputTable.Cells[0,16]:='Перловка';

InputTable.Cells[0,17]:='Геркулес';

end; {Fills the tables’s fixed cells with specific denominations}

end.

 

 

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

Стратегия тестирования

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

План тестирования



Просмотров 1223

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!