на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Языки и технологии программирования


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

Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса: персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа «винчестер», а так же видеоадаптером EGA или VGA (предпочтительно).Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру.

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

Входные и выходные данные. Данная программа является демонстрационной и не использует входных данных от пользователя. Выходными данными являются результаты работы функций по выводу изображений на экран. Параметры  изображения сохраняются только на экране в процессе работы программы (данной функции).

Часть третья

Программа электронной записной книжки

Общие сведения. Данная программа разработана как учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл notebook.exe и создаваемые ею в процессе работы файлы данных пользователя, структура которых приводится в приложении 3.

Для функционирования программы необходима операционная система MS DOS 3.30 и выше или полностью совместимой с ней.

Исходный текст программы написан на языке программирования высокого уровня Турбо Паскаль версии 7.0 фирмы Borland для DOS и WINDOWS с применением библиотеки Turbo Vision и содержится в файле notebook.pas в форме пригодной к использованию его как текстового документа в среде ДОС, и приведен в приложении 3.

     Функциональное назначение. Данная программа предназначена для ведения файлов баз данных подобных страницам адресной записной книжки и способна полностью заменить собой ее бумажных предшественников. Информация из файлов программы применяется только в «электронном» варианте и не может быть выведена на устройство печати (данная функция в программе отсутствует). В процессе работы программа  создает файл данных и поэтому пользователю не требуется предварительно создавать его самому.

     Описание логической структуры. Программа не несет в себе определенного алгоритма в стандартном понимании, а является объектно-ориентированной программой (применены специфические конструкции языка - объекты).

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

Основной текст программы можно разделить на две части: первая - описание переменных и объектов; вторая - реализация процедур. Ниже в таблице 3 приводятся процедуры, применяемые в программе, а в таблице 4 - объекты.

Таблица 3

tdlgwin.handleEvent
Tnotebook.FileOpen открывает файл данных
Tnotebook.FileSave сохраняет файл данных
Tnotebook.ChangeDir изменяет текущий каталог
Tnotebook.DOSCall временный выход в ДОС
Tinterior.ReadFile читает содержимое файла данных в массив LINES
Tinterior.Draw выводит данные в окно просмотра
Control получает команду из основного диалогового окна
Tinterior.HandleEvent основная процедура обработки событий и операций с файлом данных
DEleteItem удаляет указанный в Location элемент данных
AddItem добавляет новый или редактирует имеющийся элемент данных
SearchItem осуществляет поиск необходимого элемента данных по контексту (первые символы)
Tnotebook.Work создает окно, в которое в последствии будут выводиться данные
Tnotebook.HandleEvent обработчик событий программы связанных с различными объектами
Tnootebook.InitMenuBar создание верхнего Bar-меню
Tnotebook.InitStatusLine формирование строки статуса

таблица 4.

Tworkwin объект-потомок от Twindow - стандартного объекта ТурбоВижн создает рамочное окно с полосами прокрутки для управления встроенным в него объектом  Tinterior
Tdlgwin объект-потомок от Tdialog - стандартного объекта ТурбоВижн создает диалоговое окно для выбора режима работы
Tinterior объект-потомок от Tscroller - стандартного объекта ТурбоВижн обуславливает внутреннюю часть рамочного окна Tworkwin, создает прокручиваемое окно с записями из файла данных и с помощью диалогового окна Tdlgwin управляет работой с этими записями
Tnotebook оъект-потомок от Taplication стандартного объекта ТурбоВижн обеспечивающего внешний вид прикладной программы.

Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса: персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа «винчестер», а так же видеоадаптером EGA или VGA (предпочтительно).Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру.

Вызов и загрузка. Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля. Никаких параметров в командной строке не требуется.

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

Приложения

приложение 1

#include <stdio.h>

#include <math.h>

//описание переменных, используемых в программе

double pi=3.14,a=1.8,b=-2.0,c=0.1,d=1.6,e=0.9,eps=0.000001;

int i=0;

double x,y;

//описания функций решения методами Ньютона и простых итераций

extern double newton(double xn,double yn);

extern double iterac(double xn,double yn);

int main(void)

{

//запрос начального приближения у пользователя

scanf("%f",&x);

scanf("%f",&y);

//вывод результатов через вызовы функций на экран

 printf ("Окончательное решение по методу Ньютона\n");

 printf ("%g\t%g\n", newton(x,y));

 printf ("Окончательное решение по методу итераций\n");

 printf ("%g\t%g\n", iterac(x,y));

return (0);

}

//функция решения системы уравнений методом ньютона

double newton(double xn,double yn)

{

   double f1,f2,xxn,yyn;

   double df1dx,df1dy,df2dx,df2dy,dxy;

do

 

while (1);

 b: return (xxn,yyn);

}

//решение системы уравнений методом простых итераций

double iterac(double xi, double yi)

{

 double xxi,yyi;

  do

  while(1);

c: return (xxi,yyi);

}

Приложение 2

//

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <time.h>

#include <math.h>

#define NFONTS 11

char *Fonts[NFONTS] = {

  "Default_Font",   "Triplex_Font",   "Small_Font",

  "SansSerif_Font", "Gothic_Font", "Script_Font", "Simplex_Font", "TriplexScript_Font",

  "Complex_Font", "European_Font", "Bold_Font"

};

int xmax,ymax,i=0,MaxColors;

//

//прототипы функций

//

void demoline(void);

void democircle(void);

void demopix(void);

void demopieslice(void);

void demotext (void);

void MainWindow(char *header);

void DrawBorder(void);

void StatusLine(char *msg);

void demoarcs(void);

void demobars(void);

void demo3dbars(void);

void diagram(void);

void endpage(void);

void endpage1(void);

void endpage2(void);

//

//начало главной функции

//

int main(void)

{

   /* автоматическое определение типа видеоадаптера  */

   int gdriver = DETECT, gmode, errorcode;

   char msg[80];

   // инициализация графических и локальных переменных

   initgraph(&gdriver, &gmode, "");

   xmax=getmaxx();

   ymax=getmaxy();

// проверка результатов инициализации

   errorcode = graphresult();

   if (errorcode != grOk)

   {

      printf("Graphics error: %s\n", grapherrormsg(errorcode));

      printf("Press any key to halt:");

      getch();

      exit(1);

   }

//вызовы функций

 demoline();

 demopix();

 demobars();

 demo3dbars();

 demopieslice();

 diagram();

 democircle();

 demoarcs();

 demotext();

 endpage();

 endpage1();

 endpage2();

 cleardevice();

 closegraph();

  return 0;

}

//

//функция демонстрации линий

//

void demoline(void)

{

//формирование графического окна и статусной строки

MainWindow( "Line demonstration" );

StatusLine( "Press any key to continue..." );

//процесс рисования линий

  do

 {

   setcolor( random( MaxColors - random(15) ) + random(15) );

   lineto (xmax,i);

   lineto (xmax,ymax);

   lineto (i,ymax);

   lineto (i+1,i+1);

 i=i+1;xmax=xmax-1;ymax=ymax-1;

}

while (xmax!=(xmax/2));

getch();

cleardevice();

clearviewport();

}

//

//функция демонстрации окружностей

//

void democircle(void)

//xmax=getmaxx();

//ymax=getmaxy();

{

MainWindow( "Circle demonstration" );

StatusLine( "Press any key to continue..." );

randomize();

moveto(random(xmax),random(ymax));

do

{

  i++;

  //установка случайного цвета

  setcolor( random( MaxColors - random(15) ) + random(15) );

  circle(random(getmaxx()),random(getmaxy()),random(100));

}

 while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

i=1;

do

{

  i++;

  setcolor( random( MaxColors - random(15) ) + random(15) );

  circle(getmaxx()/2,getmaxy()/2,i);

  if (i==400)

  {setcolor(0);

do

  {i--;circle(getmaxx()/2,getmaxy()/2,i);}

while(i!=0);}

}

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

cleardevice();

}

//

//функция демонстрации рисования точек в произвольном //порядке

//

void demopix(void)

{

MainWindow( "Pix demonstration" );

StatusLine( "Press any key to continue..." );

  do

 {

  i++;

  setcolor( random( MaxColors - random(15) ) + random(15) );

  putpixel(random(getmaxx()),random(getmaxy()),random(15));

 }

 while( !kbhit() ); // повторение пока не нажата клавиша

xmax=getmaxx();

ymax=getmaxy();

getch();

cleardevice();

}

//

//функция демонстрации рисования секторов

//

void demopieslice(void)

{

MainWindow( "Pie Chart Demonstration" );

StatusLine( "Press any key to continue..." );

do

{

  i++;

  setcolor(random( MaxColors - random(15) ) + random(15));

  setfillstyle(random(12), getmaxcolor());

 // setcolor(random( MaxColors - random(15) ) + random(15));

  pieslice(random(getmaxx()),random(getmaxy()),

          random(360),random(360),random(150));

  if(i>1000) {clearviewport();i=0;}

}

 while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//круговая диаграмма

//

void diagram(void)

{

 int sektors[] = {20,10,35,15,20};

 char *percent[]={"20%","10%","35%","15%","20%"};

 int secsize,k=0,i,r=150;

MainWindow( "Pie Chart Demonstration" );

StatusLine( "Press any key to continue..." );

 settextjustify(CENTER_TEXT,CENTER_TEXT);

 settextstyle(5,0,2);//установка атрибутов текста

 outtextxy( getmaxx()/2,25,"This is the pie chart diagramm");

//процесс рисования диаграммы по данным из массива

     for( i=0;i<5;i++)

  {

   secsize = (360 * sektors[i])/100;

   setfillstyle(i,i);

   pieslice((getmaxx()/2),(getmaxy()/2),k,k+secsize,r);

   k = k+secsize;

  }

//подписи процентов

 outtextxy( getmaxx()/2+r+30,getmaxy()/2-70,percent[0]);

 outtextxy( getmaxx()/2,getmaxy()/2-r-30,percent[1]);

 outtextxy( getmaxx()/2-r-30,getmaxy()/2,percent[2]);

 outtextxy( getmaxx()/2,getmaxy()/2+r+30,percent[3]);

 outtextxy( getmaxx()/2+r+20,getmaxy()/2+50,percent[4]);

getch();

settextstyle(0,0,0);

clearviewport();

}

//

//функция демонстрации текста в графическом окне

//

void demotext(void)

{

int midx,midy,i;

MainWindow( "Demonstration text in the graphics screen" );

StatusLine( "Press any key to continue..." );

settextjustify(CENTER_TEXT,CENTER_TEXT);

midx=getmaxx()/2;

midy=getmaxy()/2;

outtextxy( midx,midy-40,"This programm will demonstrate to you all graphics");

outtextxy( midx,midy+40,"functions of the C++ language");getch();clearviewport();

 for (i=0;i<11;i++)

   {

    settextstyle(i,0,0);

    outtextxy(midx,midy-40,"This text is write by ");

    outtextxy(midx,midy+40,Fonts[i]);

    getch();clearviewport();

   }

  settextstyle(0,1,1); //вывод вертикального текста

  outtextxy(midx,midy,"This programm created by Grinjoff Mark");

 settextstyle(0,0,0);/*возвращениеи исходного начертания текста */

getch();

clearviewport();

 }

//

//функция демонстрации рисования дуг и многоугольников

//

void demoarcs(void)

{

int poly[10];

MainWindow( "Arcs and polygons demonstration" );

StatusLine( "Press any key to continue..." );

xmax=getmaxx();

ymax=getmaxy();

i=0;

//рисование дуг с произвольным расположением и цветом

do

{

  i++;

  setcolor(random( MaxColors - random(15) ) + random(15));

  arc(random(xmax),random(ymax),random(358),random(358),random(100));

  if(i>10000) {clearviewport();i=0;}

}

 while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

i=0;

//рисование многоугольников с произвольным цветом

do

{

  i++;

   poly[0] = random(i+random(20));//1-вершина

   poly[1] = random(random(ymax)/i+2);

   poly[2] = xmax-(i+20); /* 2-я */

   poly[3] = i+20;

   poly[4] = xmax-(i+50); /* 3-я */

   poly[5] = ymax-(i+20);

   poly[6] = i+xmax/2;  /* 4-я */

   poly[7] = i+ymax/2;

/*

   drawpoly  автоматически не закрывает многоугольник

   поэтому необходимо это сделать самому

*/

   poly[8] = poly[0];

   poly[9] = poly[1];

//рисует многоугольники, изменяя координаты вершин

  setcolor(random( MaxColors - random(15) ) + random(15));

  drawpoly(5, poly);

  if(i>1000) {clearviewport();i=0;}

}

 while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//функция демонстрации закрашеных многоугольников и //цветов

//

void demobars(void)

{

 MainWindow( "Bars and colors demonstration" );

 StatusLine( "Press any key to continue..." );

 int kxb=15,kyb=15;

 double stx,sty,x,y;

 stx=floor(getmaxx()/kxb);

 sty=floor(getmaxy()/kyb);

  do

{

   for(x=3;x<getmaxx();x+=stx){

   for(y=3;y<getmaxy();y+=sty){

    setcolor(random( MaxColors - random(15) ) + random(15));

    setfillstyle(SOLID_FILL,random(getmaxcolor()));

    bar(x+3,y+3,x+stx-3,y+sty-3);}}

}

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//   

//функция демонстрации трехмерных прямоугольников           

//

void demo3dbars(void)

{

  int i;

  MainWindow( "3D Bars demonstration" );

  StatusLine( "Press any key to continue..." );

do

  {

    i++;

    setcolor(random( MaxColors - random(15) ) + random(15));

    setfillstyle(random(5),random(getmaxcolor()));

    bar3d( random( getmaxx() ), random( getmaxy() ),

       random( getmaxx() ), random( getmaxy() ),10,1);

   for(float j=0;j<50000;j++);//эмулятор задержки

  if(i>100) {clearviewport();i=0;}

  }

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//функция создания завершающей страницы

//

void endpage(void)

{

     MainWindow( "The cycle" );

     StatusLine( "Press any key to continue..." );

int i,j,rad=50;

do

{

  for (i=0;i<359;i++)

    {

     setcolor(random( MaxColors - random(15) ) + random(15));

     pieslice(60,60,i,i+1,rad);

     pieslice(580,60,i,i+1,rad);

     pieslice(60,390,i,i+1,rad);

     pieslice(580,390,i,i+1,rad);

    }

  for (i=0;i<getmaxx();i++)

   {

    setcolor(random( MaxColors - random(15) ) + random(15));

    line(getmaxx()/2,10,i,getmaxy()/2);

    line(getmaxx()/2,440,i,getmaxy()/2);

   }

  setcolor(0);

  for (i=0;i<getmaxx();i++)

   {

    line(getmaxx()/2,10,i,getmaxy()/2);

    line(getmaxx()/2,440,i,getmaxy()/2);

   }

}

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//функция калейдоскопа

//

void endpage1(void)

{

  MainWindow( "The simple kaleidoscope" );

  StatusLine( "Press any key for exit to DOS" );

int koord1[4],koord2[4],koord3[4];

//получение координат исходной линии

 koord1[0]=random((getmaxx()/2)+10);

 koord1[1]=random((getmaxy()/2)+10);

 koord1[2]=random((getmaxx()/2)+10);

 koord1[3]=random((getmaxy()/2)+10);

//получение координат конечной линии

 koord2[0]=random((getmaxx()/2)+10);

 koord2[1]=random((getmaxy()/2)+10);

 koord2[2]=random((getmaxx()/2)+10);

 koord2[3]=random((getmaxy()/2)+10);

//прорисовка

do

{

for (float t=0;t<1;t=t+0.01) //количество линий

{

  for (int l=0;l<4;l++) //нахождение координат движения //линии

   {koord3[l]=floor(koord2[l]*(1-t)+koord1[l]*t);}

  setcolor(random( MaxColors - random(15) ) + random(15));

  line(koord3[0],koord3[1],koord3[2],koord3[3]); //первая //четверть

  line(getmaxx()-koord3[0],koord3[1],getmaxx()-koord3[2],koord3[3]);//вторая четверть

  line(koord3[0],getmaxy()-koord3[1],koord3[2],getmaxy()-koord3[3]);//третья четверть

  line(getmaxx()-koord3[0],getmaxy()-koord3[1],

       getmaxx()-koord3[2],getmaxy()-koord3[3]);//четвертая четверть

 }

  for (int p=0;p<4;p++)//переприсвоение координат

  {koord2[p]=koord1[p];}

//получение новых координат первой линии

koord1[0]=random(getmaxx()/2);

koord1[1]=random(getmaxy()/2);

koord1[2]=random(getmaxx()/2);

koord1[3]=random(getmaxy()/2);

}

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//последняя страница

//

void endpage2(void)

{

  MainWindow( "The end" );

  StatusLine( "Press any key for exit to DOS" );

do

{

    settextstyle(BOLD_FONT,0,2);

    outtextxy(getmaxx()/2,getmaxy()/2,"The end ");

}

while( !kbhit() );

getch();

clearviewport();

}

//

//функция создания графического окна

//

void MainWindow( char *header )

{

  int height;

   xmax=getmaxx();

   ymax=getmaxy();

  cleardevice();//очистка экрана

  setcolor( MaxColors - 2 );//установка текущего цвета //белым

  setviewport( 0, 0, xmax, ymax, 1 );//открыть окно во //весь экран

  height = textheight( "H" );//установить начальную высоту //текста

  settextjustify( CENTER_TEXT, TOP_TEXT );

  outtextxy( xmax/2, 2, header );

  setviewport( 0, height+4, xmax, ymax-(height+4), 1 );

  DrawBorder();

  setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 );

}

//

//функция создания строки статуса в нижней части экрана

//

void StatusLine( char *msg )

{

  int height;

   xmax=getmaxx();

   ymax=getmaxy();

  setviewport( 0, 0, xmax, ymax, 1 ); //открыть окно во //весь экран

  setcolor( MaxColors - 1 ); //установка текущего цвета //черным

  settextjustify( CENTER_TEXT, TOP_TEXT );

  setlinestyle( SOLID_LINE, 0, NORM_WIDTH );

  setfillstyle( EMPTY_FILL, 0 );

  height = textheight( "H" );//установка текущей высоты //текста

  bar( 0, ymax-(height+4), xmax, ymax );

  rectangle( 0, ymax-(height+4), xmax, ymax );

  outtextxy( xmax/2, ymax-(height+2), msg );

  setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 );

}

//

//функция, образующая границу графического окна

//

void DrawBorder(void)

{

//  struct viewporttype vp;

  setcolor( MaxColors - 1 );//установка текущего цвета //белым

  setlinestyle( SOLID_LINE, 0, NORM_WIDTH );

 // getviewsettings( &vp );

  rectangle( 0, 0, getmaxx(), getmaxy() );

Страницы: 1, 2, 3


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

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


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.