Development of software "Animation"

Software development using modern C++ programming language. Construction of computer animation ideas. Feature flowchart application. The choice of components for batch operations. Characteristic of the efficiency of creating and debugging applications.

Рубрика Иностранные языки и языкознание
Вид курсовая работа
Язык английский
Дата добавления 12.12.2015
Размер файла 391,0 K

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

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

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

Title: Development of software "Animation"

Description of work:

The theme of this course work is " animation " . ." To develop the software was chosen modern programming language C ++.

For the implementation of the program has been selected popular development environment C ++ Builder.

As for writing it has been used a variety of technologies, such as the OOP and the Timer.

Normative references

When the course work references to the following documents:

GOST 7.1 - 2013 Bibliographic record. The bibliographic description. Basic requirements and rules.

ST RK 34,017 - 2005 State Standard of the Republic of Kazakhstan. Electronic educational editions.

QMS UKGU PR 7.04-2012. Quality Management System. Procedure. Training documentation.

Definitions

Database - Database - an information model that allows orderly store data about a group of objects with the same set of properties [1].

C ++ builder - a software tool for rapid application development, integrated programming environment, the system used by programmers to develop software in the programming language C ++.

Abbreviations

OOP - Object-oriented programming.

DB - Data base.

PC - Personal computer.

RAD - rapid application development.

Contents

Introduction

1. Formulation of the problem

2. The structure of the design process

3. The solution of the problem

4. Software implementation

Conclusion

References

Applications

Introduction

Submission of data on a computer monitor in graphical form was first implemented in the mid-50s for mainframe computers, used in the scientific and military research. Since then, graphical way to display data has become a fixture of the vast number of computer systems, especially personal. The graphical user interface is now the standard for the software different classes, ranging from operating systems There is a special area of ??computer science which studies methods and tools for creating and processing images using the hardware and software computer systems - computer graphics. It covers all types and forms of presentation of images available to human perception or on the screen or in the form of copies on external media (paper, film, fabric, etc.). No computer graphics is impossible to imagine not only the computer, but usually, it is the material world. Data visualization is used in various spheres of human activity. For example, we call medicine (computed tomography), research (visualization of the structure of matter, vector fields and other data), simulation of fabrics and clothing, experimental development Depending on how an imaging computer graphics usually divided into raster, vector and fractal. A separate subject is considered a three-dimensional (3D) graphics, techniques and methods for studying the construction of solid models of objects in the virtual space. As a rule, it combines vector and raster imaging method. Features gamut describe concepts such as black-and-white and color graphics. Specialization in certain areas indicate the names of some sections: engineering graphics, scientific graphics, Web-graphics, computer printing, and others. At the turn of the computer, television and film technologies emerged and is rapidly developing a relatively new field of computer graphics and animation. Prominently in computer graphics devoted to entertainment. There was even such a thing as a mechanism for graphical data representation (Graphics Engine). Gaming software market has a turnover of tens of billions of dollars and often initiates the next stage of improving the graphics and animation. Although computer graphics is only a tool, its structure and methods are based on the advanced achievements of fundamental and applied sciences: mathematics, physics, chemistry, biology, statistics, programming, and many others. This is true for both software and hardware to create and manipulate images on a computer. Therefore, computer graphics is one of the most rapidly developing branches of science and in many cases acts as a "locomotive" pulling for an entire computer industry.

1. Formulation of the problem

The idea of ??computer animation is quite simple: on a fixed background (background) draws a moving object (in computer animation such images are called sprites). Then the background is restored to the place where it was drawn sprites and sprite is drawn in the new location. Thus, the viewer has the sensation of movement of the sprite.

In practice, however, it looks a bit more complicated. First of all, sprites, as well as the fixed pattern stored in the bit maps. The image of the sprite can have all sorts of outlines, but the bitmap that stores the sprite is a rectangle. How to display a rectangular map sprite, keeping a still image of the background around the image sprite? It is this problem that we will solve in this section. Animation we create will be a hot air balloon flying in the background of clouds. First, select a still image for the background

The theory of animation.

Animation, as well as motion picture film consists of frames (frame). These frames are located in the computer memory and are determined by the identification number (ID). Each frame has a sequence number.

What would you get going to the cinema, a film strip scrolls at a speed of 24 frames / second. In animation, the motion is a little different: frames are replaced with a certain interval (interval). The interval is measured in milliseconds (1000 ms. = 1 sec.). Replacement frame occurs ascending ID. If the frame ID = 0, the next 1 frame; if the frame ID = 1, then the next frame 2; and so on. With the same success it is possible to create a movement in the opposite direction, reducing the number.

The figure shows a side view of GIF animation, which shows the principle of replacing staff, increasing the sequence number by one at an interval of 200 ms.

The theory of code.

I will not give a specific code of the program, and consider it as a pseudo-code, or tell. And the first thing that gets me under the "microscope" - a system boot image. In the example attached to the article, is considered a dynamic system load. Its essence lies in the fact that to create objects in memory, pointers stored in the array a. In the example, as an array, I use a regular class STL vector. Also, for simplification, it is possible to use a fixed array of images. But it depends on the imagination, needs and abilities of the programmer [1].

In the beginning, created by means of the new operator object TBitmap. Also, with the same success, you can create an object BitMap, using WinApi. But that's not the point. As a result of the creation of the object, the new operator returns the memory address where the facility is located. This address has the number thirty-two. Using the method of type casting (cast), pointer to transform into a number. And the resulting number can stuff into a vector. For pointer conduct in reverse order.

I want to make one point: at the end of the function, where the objects are loaded into memory, do not insert the operator remove the object with the created object. Minimum lead to what this error - for the flight program.

And so we loaded pictures, and now it's time to play the animation. I'm in this article, and in the example, I cite a simplified algorithm for controlling playback. Head management made certain counter increases by one until the counter value equals the value of the interval. If the interval and equalized the counter, the counter is set to zero, and the value of the sequence number of the frame, either increases or decreases by one. When the frame sequence number reaches the last frame, or zero, it is set to zero, or last frame, respectively. That's all in the pseudocode will look like:

If the counter == interval, then:

Counter is assigned to zero.

If reverse == true, then:

Zoom PosKadr one;

If PosKadr less than zero, then:

PosKadru assigned ID_Poslednego_kadra.

Otherwise:

Enlarge PosKadr one;

If PosKadr ID_Poslednego_kadra longer then:

PosKadru assigned zero.

Otherwise:

Increase the counter by one.

2. The structure of the design process

Animation, as well as motion picture film consists of frames (frame). These frames are located in the computer memory and are determined by the identification number (ID). Each frame has a sequence number [2].

I will not give a specific code of the program, and consider it as a pseudo-code, or tell, figure 2.1.

Figure 2.1. Appearance of animation

Figure 2.2. Total block diagram of the application

3. The solution of the problem

Let us simple moving images. Everyone probably imagine about the principles of creating animated films, he knows that they are a combination of a plurality of frames, each of which is slightly different from the previous one. This alternate view with fast frame creates the illusion of movement. You will, of course, his work does not have to paint with the help of C ++ Builder cartoons [3]. To do this, there are very different instruments. But some simple animations - the revival of images, it is sometimes desirable to do. For example, if you create any training program may want to spice up any schemes or conventional images of mechanisms in motion to show the interaction of individual components. Or use animations such as those used in the program Windows «Explorer" for copying and deleting files. In order not to communicate with images of some mechanisms to make something clear to all: for example, a schematic representation of man, and walking the batter while the drums.

Open a new application, drag the shape of the components of the Image, a Button and the timer Timer. Buttons Place bottom of the form. The main area of ??the component should take the form Image, which will be drawn image.

The timer will set the pace frame. Since the application we will be only two frames, set the Timer Interval property large enough, for example, 500 (because the intervals are in milliseconds, this value corresponds to 0.5 seconds). Timer Enabled parameter set to false. Timer we will control buttons [4].

Now, the placement of components completed. It is necessary to introduce the text of the program. In the header file, add the line:

void __fastcall Draw ();

This announcement features that will draw the image. A text of the module can be:

short int num = 0;

short int H = 20; // step

short int Xpos = 2 * H; // Coordinate of the torso

short int Ypos = 120; // Our Earth

short int Hmen = 30; // Body height

short int Rhead = 10; // Radius head

short int Rhead2 = Rhead / 2; // Radius of kettledrums

short int revers = 1; // Direction of movement

short int L = H * 1.41; // leg length

To form the function Draw (), type the following:

void __fastcall TForml :: Draw ()

{

short int Yhead;

switch (num)

{

case 0:

Yhead = Ypos-H-Hmen;

Image1-> Canvas-> MoveTo (Xpos-H, Ypos);

Image1-> Canvas-> LineTo (Xpos, Ypos-H);

Image1-> Canvas-> LineTo (Xpos + H, Ypos);

Image1-> Canvas-> MoveTo (Xpos, Ypos-H);

Image1-> Canvas-> LineTo (Xpos, Yhead);

Image1-> Canvas-> MoveTo (Xpos + revers * H, Yhead-H);

Image1-> Canvas-> LineTo (Xpos, Yhead + 4);

Image1-> Canvas-> Ellipse (Xpos + revers * H-Rhead2, Yhead-H-Rhead2, Xpos + revers * H + Rhead2, Yhead-H + Rhead2);

Image1-> Canvas-> LineTo (Xpos + revers * H, Yhead + H);

Image1-> Canvas-> Ellipse (Xpos + revers * H-Rhead2, Yhead + H-Rhead2, Xpos + revers * H + Rhead2, Yhead + H + Rhead2);

Image1-> Canvas-> Ellipse (Xpos-Rhead, Yhead, Xpos + Rhead, Yhead-2 * Rhead);

Image1-> Canvas-> Rectangle (Xpos-Rhead, Yhead-2 * Rhead-1, Xpos + Rhead, Yhead-2 * Rhead-4);

break;

case 1:

Yhead = Ypos-L-Hmen;

Image1-> Canvas-> MoveTo (Xpos, Ypos);

Image1-> Canvas-> LineTo (Xpos, Yhead);

Image1-> Canvas-> MoveTo (Xpos, Yhead + 4);

Image1-> Canvas-> LineTo (Xpos + revers * L, Yhead + 4);

Image1-> Canvas-> Ellipse (Xpos + revers * L-Rhead2, Yhead + 4-Rhead2, Xpos + revers * L + Rhead2, Yhead + 4 + Rhead2);

Image1-> Canvas-> Ellipse (Xpos-Rhead, Yhead, Xpos + Rhead, Yhead-2 * Rhead);

Image1-> Canvas-> Rectangle (Xpos-H / 2, Yhead-2-one * Rhead, Xpos + H / 2, Yhead-2 * Rhead-4);

}

}

For component Timer:

Draw ();

if ((Xpos> = Image1-> Picture-> Width-H) || (Xpos <= H))

revers = -revers;

Xpos = Xpos + revers * H;

num = 1 - num;

Draw ();

For our button start the animation:

Timer1-> Enabled =! Timer1-> Enabled;

For our form we write the following:

Image1-> Canvas-> MoveTo (0, Ypos + 3);

Image1-> Canvas-> Pen-> Width = 4;

Image1-> Canvas-> LineTo (Imagel-> ClientWidth, Ypos + 3);

Image1-> Canvas-> Pen-> Width = 1;

Image1-> Canvas-> Pen-> Mode = pmNotXor;

Draw ();

We begin our analysis of this code to the end - with the last procedure FormCreate, which form OnCreate event handler. In this procedure, a line is drawn, showing the "ground" on which to walk our little man. Then the mode is set to pen pmNotXor. In conclusion, the procedure is called Draw, which draws man to its original position.The procedure is ButtonClick OnClick event handler of a button. Each click on the button turns on or off the timer, causing the man goes or stops.

The procedure is the handler Timer1Timer OnTimer event timer. This event means that it is necessary to erase the previous frame and draw a new one. First, the procedure is called Draw [5]. Since the position of the man since the display of the previous frame has not changed, the call draws on the same site, which was drawn the previous frame. Thus, the previous image is erased. Then analyzes the position of the man Xpos. If this position is spaced from the end of a canvas Image1 by less step H, then it changed to the opposite sign of the variable revers, characterizing the direction of movement. If revers = 1 man walks to the right; If revers = -1, man walks to the left. Then Xpos position changes by revers * H, ie, step to the right or left. Changes variable num, which indicates the number of the displayed frame: 0 or 1. Finally, the procedure is called Draw, which draws a specified frame in the specified position.

The latter procedure, which we consider - procedure Draw, drawing a picture. It is quite long, but it is no big deal. Depending on the value of num is drawn one or another frame, in which the figure takes into account the position and direction of movement Xpos revers.

Save your application and run it. By clicking the button, you can get your man to move. Reaching the edge of the form, he will turn around and walk in the opposite direction. If the secondary button is clicked it will stop.

To solve this task has been chosen language c ++ builder. The advantage of language c ++ builder is that the language facilitates the work because of the work with components.

File I / O:

Iostream library supports both file I / O. All the operations applicable to the standard input and output can also be applied to the files. To use a file for input or output, we need to include another header file:

#include <fstream>

Before opening a file for output, you must declare an object of type ofstream:

ofstream outfile ("name-of-file");

Check, if we managed to open the file, as follows:

if (! outfile) // false, if the file is not open

cerr << "Error opening the file. \ n"

Just open the file and to enter, but it has a type of if stream:

ifstream infile ("name-of-file");

if (! infile) // false, if the file is not open

cerr << "Error opening the file. \ n"

The following is the text of a simple program that reads a file named in_file and displays all read from the file word, separated by a space, in another file named out_file.

#include <iostream>

#include <fstream>

#include <string>

int main ()

{

ifstream infile ("in_file");

ofstream outfile ("out_file");

if (! infile) {

cerr << "Error opening input file. \ n"

return -1;

}

if ( ! outfile ) {

cerr << " Error opening input file.\n"

return -2;

}

string word;

while ( infile >> word )

outfile << word << ' ';

return 0;

}

The choice of components for batch operations. For efficient development of user interfaces, applications, C ++ Builder is often necessary to manipulate the components on the form .. Most of the operations to manipulate the components are in the menu Edit: The various options in this menu should be handled after on the form you wound one or more components whose properties you want to change [6].

Choose one component in the following ways:

* After selecting the component with the mouse on the form.

* After selecting the component name in the selector object.

* Go to a component on a form, pressing Tab.

Select several components in the following ways:

* Hold down Shift, click on each component.

* Press the left mouse button and the right components to surround a rectangular loop.

Setting shared properties of the components.

Most visual components have common properties (e.g., Visible, Width, Left). To set the same values common properties for multiple components, you must perform the following steps:

1. Select multiple custom components. This property page objects, and Spector will display only those properties that are all shaven components, figure3.1.

Figure 3.1. Selecting multiple components for group operations

2. Set the values of the properties common to the selected components.

Figure 3.2 shows the results of changes in the Font property and the Left. All selected components are purchased the same values of these properties.

Figure 3.2. Installing the shared properties of components

Changing the size of the components.

Changing the size of the component can be carried out by adding it to the form, and thereafter.

When you add a component, select it in the component palette. Next put the mouse cursor on the form, press the left button and move the mouse, resulting in the shape of a rectangle will appear, showing the boundaries of goods component. When the rectangle will acquire the required dimensions, it is necessary to let go the mouse button, figure 3.3.

.

Figure 3.3. Changing the size of the component when it is added to the form.

If you move the cursor to click on one of the component will appear around the small black squares, the mouse cursor changes shape. By moving the cursor, and with it the border of the component can be resized.

To change the size of several select components of one of the methods described above. Next you need to select the menu item Edit / Size. A dialog box Size. Select a size option. To accurately set the size in pixels, you can enter the numbers in the fields Width and Height. Next you need to click OK

Figure 3.4. Setting the properties of the components using the menu EDIT / SIZE

You can add multiple copies of a component of the same type, choosing the components from the palette while pressing Shift. In this case, a rectangle appears around the component surrounding the component. Thereafter, each mouse click on the form leads to her copies of the component. After finishing treatment of multiple copying, you should click on the tool selection cursor (the first button on the palette components arrow), figure 3.4.

Align components.

To align components on a form, you can use the following keyboard shortcuts:

Table 3.1. Aligning components

Shift + arrows

It changes the size of the component to a single pixel in the direction of the selected arrow

Shift + Ctrl + arrows

Move a component to one grid unit in the direction of the selected arrow

Ctrl + arrows

Move a component to one pixel in the direction of the selected arrow

You can also align the components using the menu item View / Alignment Palette, figure 3.5. To do this:

1. Select the components for alignment.

2. Select the menu item View / Alignment Palette.

3. Select the desired button.

Figure 3.5. Alignment of components using the View / Alignment Palette

You can align components using the menu item Edit / Align. To do this:

1. Select the components for alignment.

2. Select the menu item Edit / Align. A dialog box appears Alignment.

3. Select the desired option and click OK.

Figure 3.6. Alignment of components using the menu Edit / Align

You can change the terms of the alignment component using the menu item Options / Environment, figure 3.6. To do this:

3. Select the menu item Options / Environment. Environment dialog box will open on the page Preferences.

Under Form designer can choose the following options:

1. Display grid - to make a grid of dots on the form visible to align components

2. Snap to grid - to make the left and top sides of the components are arranged as grid lines.

3. To change the distance between grid points, enter new values in place of existing ones. Default value - 8 pixels on X axis (horizontal) and Y-axis (vertical).

4. Press OK.

Figure 3.7. Alignment of components

Alignment of components using the Preferences page of the dialog box Environment, figure 3.7.

4. Software implementation

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods . A distinguishing feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self") [7]. In OO programming, computer programs are designed by making them out of objects that interact with one another. There is significant diversity in object-oriented programming, but most popular languages are class-based, meaning that objects are instances of classes, which typically also determines their type.Many of the most widely used programming languages are multi-paradigm programming languages that support object-oriented programming to a greater or lesser degree, typically in combination with imperative, procedural programming. Significant object-oriented languages include Python, C++, Objective-C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby and PHP.

Object-oriented programming by definition uses objects, but not all of the associated techniques and structures are supported directly in languages which claim to support OOP. The features listed below are, however, common among languages considered strongly class- and object-oriented (or multi-paradigm with OOP support), with notable exceptions mentioned .

Composition, inheritance, and delegation.

Objects can contain other objects in their instance variables; this is known as object composition. For example, an object in the Employee class might contain (point to) an object in the Address class, in addition to its own instance variables like "first_name" and "position". Object composition is used to represent "has-a" relationships: every employee has an address, so every Employee object has a place to store an Address object [8].

Languages that support classes almost always support inheritance. This allows classes to be arranged in a hierarchy that represents "is-a-type-of" relationships. For example, class Employee might inherit from class Person. All the data and methods available to the parent class also appear in the child class with the same names. For example, class Person might define variables "first_name" and "last_name" with method "make_full_name()". These will also be available in class Employee, which might add the variables "position" and "salary". This technique allows easy re-use of the same procedures and data definitions, in addition to potentially mirroring real-world relationships in an intuitive way. These classes and subclasses correspond to sets and subsets in mathematical logic. Rather than utilizing database tables and programming subroutines, the developer utilizes objects the user may be more familiar with: objects from their application domain [9].

Subclasses can override the methods defined by superclasses. Multiple inheritance is allowed in some languages, though this can make resolving overrides complicated. Some languages have special support for mixins, though in any language with multiple inheritance, a mixin is simply a class that does not represent an is-a-type-of relationship. Mixins are typically used to add the same methods to multiple classes. For example, class UnicodeConversionMixin might provide a method unicode_to_ascii() when included in class FileReader and class WebPageScraper, which don't share a common parent.

Abstract classes cannot be instantiated into objects; they exist only for the purpose of inheritance into other "concrete" classes which can be instantiated. In Java, the keyword can be used to prevent a class from being subclassed.

The doctrine of composition over inheritance advocates implementing is-a-type-of relationships using composition instead of inheritance. For example, instead of inheriting from class Person, class Employee could give each Employee object an internal Person object, which it then has the opportunity to hide from external code even if class Person has many public attributes or methods. Some languages, like Go do not support inheritance at all.

The "open/closed principle" advocates that classes and functions "should be open for extension, but closed for modification".

Delegation is another language feature that can be used as an alternative to inheritance.

Object-oriented class-based languages.

Class-based Object-oriented programming languages support objects defined by their class. Class definitions include member data. Message passing is a key concept (if not the key concept) in Object-oriented languages [10].

Polymorphic functions parameterized by the class of some of their arguments are typically called methods. In languages with single dispatch, classes typically also include method definitions. In languages with multiple dispatch, methods are defined by generic functions. There are exceptions where single dispatch methods are generic functions (e.g. Bigloo's object system).

Multiple dispatch.

• Common LispCecil

• Dylan

• Goo

• Julia

• Single dispatch

• ActionScript 3.0

• Actor

• Ada 95 and Ada 2005 (multi-purpose language)

• BETA

• Blue

• C++

• C#

• Ceylon

• Oxygene (formerly known as Chrome)

• ChucK

• Cobra

• ColdFusion

• Curl

• D

• DASL

• Delphi

• E

• GNU E

• Eiffel

• Sather

• Ubercode

• F-Script

• Fortran 2003

• Fortress

• FPr

• Gambas

• Game Maker Language

• Harbour

• J

• Java

• Processing

• Groovy

• Join Java

• Tea

• X10

• LabVIEW

• Lava

• Lua

• Modula-2 (data abstraction, information hiding, strong typing, full modularity)

• Modula-3 (added more object-oriented features to Modula-2)

• Nemerle

• IBM NetRexx

• Oberon-2 (full object-orientation equivalence in an original, strongly typed, Wirthian manner)

• Object Pascal

• Object REXX

• Objective-C (a superset of C adding a Smalltalk derived object model and message passing syntax)

• OCaml

• Oz

• Mozart Programming System

• Perl 5

• PHP

• Pike

• Prograph

• Python (interpretive language, optionally object-oriented)

• Realbasic

• Revolution (programmer does not get to pick the objects)

• Ruby

• Scala

• Simula (the first object-oriented language, developed by Ole-Johan Dahl and Kristen Nygaard)

• Smalltalk (pure object-orientation, developed at Xerox PARC)

• Bistro

• F-Script

• Little Smalltalk

• Squeak

• Scratch

• IBM VisualAge

• VisualWorks

• SPIN

• SuperCollider

• VBScript (Microsoft Office 'macro scripting' language)

• Visual DataFlex

• Visual FoxPro

• Visual Prolog

• X++

• XOTcl

I chose the programming language c ++ builder because C Builder and Delphi became one of the most popular to date tools to create both desktop and enterprise information systems through a unique combination of convenience, the development of user interfaces, component-based architecture, uniformity of access to various databases, ranging from flat table format dBase and Paradox and ending with the server database. In many ways, it is the presence of such products has stimulated quite painless migration to client / server architecture of a number of information systems, the modernization of other means which would be fraught with great labor and material costs [11].

It should be noted that current trends in the development of tools such that the current is not just the appearance of new flexible and powerful development tools, and a new family of products with similar environments and the principles of creating applications that in general repeats appeared about 4 years ago, the formation of an ideology office suites (word processor spreadsheet desktop database presentation package) in place of the individual Office applications. If we consider the product line Inprise, is currently on the market there are development tools Delphi and C Builder, as well as similar methods for creating applications and environment JBuilder, IntraBuilder, Visual dBase [12].

The similarity of C Builder and Delphi is not purely external. C Builder has a component architecture and is based on a library of visual Delphi component has become over the past two years is very popular among developers. For this reason, this product has a total with Delphi class library, some of which are written in Obiect Pascal.

The similarity of C Builder and Delphi is not purely external. C Builder has a component architecture and is based on a library of visual components Delphi, which has become over the past two years is very popular among developers. For this reason, this product has a total with Delphi class library, some of which are written in Object Pascal.

However, the compatibility of C Builder and Delphi does not end there. The draft C Builder can be used not only a library of components Delphi, but the code is written in Object Pascal, as well as forms and modules Delphi. Supports visual inheritance of forms and data modules, including those created in Delphi. These opportunities have appeared thanks to the inclusion in both C Builder C compilers and Object Pascal. programming computer animation application

This means that you can create common projects, using both development tools - and C BuiIder, and Delphi, figure 4. Parts of the application can be created with the help of two funds, and now to work on the project can attract developers using both Delphi, and C. Second, and this is very important, C Builder can use components created for Delphi, and their last few years created a huge amount. This wealth accumulated by developers around the world today is able to satisfy the most bizarre requests.

C Builder offers the programmer ample opportunity for code reuse, not only due to the presence of components of the library, but also by supporting standard ActiveX, which lets you embed ActiveX-application components such as third-party, and started his own with the help of C Builder [13].

An important factor in the popularity of these products is their openness, is the possibility of creating with their help not only additional components and ActiveX, enhancing application functionality, but also a variety of experts, editors of properties of components that enhance the functionality of the development environment.

It should be noted that the efficiency of development and debugging of applications is achieved not only through the use of convenient means of visual design forms (now it is not uncommon), but also due to, firstly, the high performance themselves Borland compiler and, secondly, the so-called incremental compile and link the executable (when recompiling and repackaging affects only the modules in which the changes were made) [14].

C++Builder is a rapid application development (RAD) environment, originally developed by Borland and as of 2009 owned by Embarcadero Technologies, for writing programs in the C++ programming language targeting Windows NT (IA-32 and x64), OS X, iOS and Android. C++Builder combines the Visual Component Library and IDE written in Delphi with a C++ compiler. Most components developed in Delphi can be used in C++Builder with no or little modification, although the reverse is not true.

C++Builder includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

There is a host of new features in C++ Builder. Top of the list is support for ADO, Microsoft's current data access standard. ADO is important because it is used as the data access application program interface (API) for Active Server Pages (ASP), Microsoft's popular extension to Internet Information Server. Another advantage is that some native ADO drivers, such as that for Microsoft Access, have more features and perform better than ODBC or DAO equivalents. ADO does not require the Borland Database Engine, and nor does Interbase Express, a set of components that give direct access to the Interbase API, figure 4.1.

Available Editions.There are three versions of Embarcadero C++ Builder. The Standard edition has no database features or web components. For most users, these limitations are too great to make it usable. Professional has old-style database support through the Borland Database Engine (BDE), and multi-tier Com support, but no SQL Links drivers for client-server data access, and no ADO components either, although these are available as add-ons. Buy the Enterprise and you get all those plus the XML-based Midas tools, multi-tier Corba support, Teamsource and the Translation Suite [15].

Figure 4.1. Interface of program

Conclusion

All areas of application - whether it's engineering and science, business and art - are the scope of computer graphics. Increasing the potential of PCs and a huge number - 100 million - provides a seductive base for investment and growth. It is not known how long the trend will last a doubling of investment, especially under the influence of prices, but expected steady 10% annual increase in the next 5 years. Today is particularly attractive to investors, companies specializing in graphical user interfaces, object-oriented programs, virtual reality and software concurrent processes.By increasing the number of graphic terminals from 100 in 1964 to 50,000 in 1977, and in 1994 3 million. Workstations and 60 million. PCs are only used in the United States. Computer graphics has today industrial base, estimated at 36 billion. USD., Which employs about 300 thousand specialists. She continues to lead in ensuring our interaction with computers and accessing information. We are entering a new era of empowerment graphics systems when driving on the information super highway.

References

1.How Uellin do not need to program in C ++ / Uellin 2005, - 240 pages.

2.Friedman, A. C / C ++. Archive of programs / Friedman, L. Klander, M. Michaelis, 2007, - 640 pages.

3.Halpern standard library of C ++ / Halpern, Pablo. M . Gostekhizdat, 2006. - 336 pages.

4.Henkemans Programming in C ++ (+ CD) / Henkemans Lee Dirk , Mark M . St. Petersburg: Symbol-Plus, 2005, - 416 pages.

5.Holzner, S. Visual C ++ 6. Training / C. Holzner. M . Peter, 2007, - 576 pages.

6.Tran System programming in C ++ for Unix / Chan Terence, 2008, - 592 pages.

7.Shildt Complete Guide to C ++ / Shildt Herbert, 2003, - 800 pages.

8.Schmidt Programming network applications in C ++. Volume 1. A professional approach to the problem of difficulty: ACE and Patterns / Schmidt, Douglas Houston , Stephen Engineering, 2003, - 304 pages.

9.Young Visual C ++ 6. Complete Manual / Young, Michael ,2004, - 246 pages.

10.TL for programmers C ++ / Ammeraal, Leen. - M .: Higher School, 2008, - 239 pages.

11.Archangel, AJ Techniques of programming in C ++ Builder. Mechanisms of Windows, network / AY Archangel. - M .: St. Petersburg. [et al.]: Peter, 2004, - 656 pages.

12.Babe simply and clearly about Borland C ++ / Babe, Bruno. - M .: Russian State Humanitarian University, 2006, - 400 pages.

13.Vandevurd Templates C ++. Developer Directory / Vandevurd, David. - M .: Mir, 2008, - 544 pages.

14.Gregory Using Visual C ++. Special Edition / Gregory, Kate. - M .: Publishing House Williams, 2004, - 849 pages.

15.Deitel, HM How to program in C ++ / HM Deitel, PJ Deitel. - M .: Higher School, 2005, - 387 pages.

Applications

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

#ifndef UMult1H

#define UMult1H

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Buttons.hpp>

#include <Dialogs.hpp>

#include <ExtCtrls.hpp>

#include <ExtDlgs.hpp>

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

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Image1;

TSpeedButton *BRun;

TTimer *Timer1;

TOpenPictureDialog *OpenPictureDialog1;

void __fastcall FormCreate(TObject *Sender);

void __fastcall BRunClick(TObject *Sender);

void __fastcall Timer1Timer(TObject *Sender);

private: // User declarations

public: // User declarations

void __fastcall Draw();

__fastcall TForm1(TComponent* Owner);

};

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

extern PACKAGE TForm1 *Form1;

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

#endif

[Closed Files]

File_0=SourceModule,'F:\Tests\MultiMedia\USound.cpp',0,1,1,1,1,1,0

File_1=SourceModule,'E:\ARH\SPR\DELPHI13\tests\MPlay3\UMPlay1.pas',0,1,1,1,1,1,0

File_2=SourceModule,'E:\ARH\SPR\DELPHI13\tests\Canvas\UOnPaint.pas',0,1,41,1,56,1,0

File_3=SourceModule,'E:\ARH\SPR\CBUILDER\Tests\Graph\UOnPaint.cpp',0,1,32,1,46,1,0

File_4=SourceModule,'E:\ARH\SPR\CBUILDER\Tests\Graph\UGrEdit.cpp',0,1,314,1,314,1,0

File_5=SourceModule,'E:\ARH\SPR\DELPHI13\ForCD\Canvas\UGrEdit.pas',0,1,227,1,242,1,0

File_6=SourceModule,'D:\PROGRA~1\BORLAND\CBUILD~1\INCLUDE\VCL\forms.hpp',0,1,635,1,643,0,0

File_7=SourceModule,'E:\ARH\SPR\CBUILDER\Tests\Graph\UBitmap.cpp',0,1,15,13,25,1,0

File_8=SourceModule,'E:\ARH\SPR\CBUILDER\Tests\Graph\Ufigures.cpp',0,1,34,1,47,1,0

File_9=SourceModule,'E:\ARH\SPR\DELPHI13\ForCD\Canvas\Ufigurs.pas',0,1,33,1,48,1,0

[Modules]

Module0=F:\Builder2006\Builder6\Chapter6\Multi\UMult1.cpp

Count=1

EditWindowCount=1

[F:\Builder2006\Builder6\Chapter6\Multi\UMult1.cpp]

ModuleType=SourceModule

FormState=1

FormOnTop=0

[K:\Program Files\Borland\CBuilder6\Bin\ProjectGroup1.bpg]

FormState=0

FormOnTop=0

[F:\Builder2006\Builder6\Chapter6\Multi\PMult1.bpr]

FormState=0

FormOnTop=0

[EditWindow0]

ViewCount=1

CurrentView=0

View0=0

CodeExplorer=CodeExplorer@EditWindow0

MessageView=MessageView@EditWindow0

ClassHierarchy=ClassHierarchy@EditWindow0

Create=1

Visible=1

State=0

Left=200

Top=125

Width=783

Height=542

MaxLeft=-1

MaxTop=-1

ClientWidth=775

ClientHeight=515

LeftPanelSize=0

LeftPanelClients=CodeExplorer@EditWindow0

LeftPanelData=0

RightPanelSize=0

BottomPanelSize=85

BottomPanelClients=MessageView@EditWindow0

BottomPanelData=0

[View0]

Module=F:\Builder2006\Builder6\Chapter6\Multi\UMult1.cpp

CursorX=3

CursorY=87

TopLine=76

LeftCol=1

[Watches]

Count=0

[Breakpoints]

Count=0

[AddressBreakpoints]

Count=0

[Main Window]

Create=1

Visible=1

State=2

Left=0

Top=0

Width=1024

Height=105

MaxLeft=-1

MaxTop=-1

MaxWidth=1032

MaxHeight=105

ClientWidth=1024

ClientHeight=78

[Components]

Create=1

Visible=0

State=0

Left=420

Top=251

Width=183

Height=266

MaxLeft=-1

MaxTop=-1

ClientWidth=175

ClientHeight=242

[ProjectManager]

Create=1

Visible=0

State=0

Left=369

Top=372

Width=438

Height=303

MaxLeft=-1

MaxTop=-1

ClientWidth=430

ClientHeight=279

TBDockHeight=303

LRDockWidth=438

Dockable=1

[CPUWindow]

Create=1

Visible=0

State=0

Left=133

Top=123

Width=533

Height=353

MaxLeft=-1

MaxTop=-1

ClientWidth=525

ClientHeight=326

DumpPane=79

DisassemblyPane=187

RegisterPane=231

FlagPane=64

[DebugLogView]

Create=1

Visible=0

State=0

Left=191

Top=154

Width=417

Height=291

MaxLeft=-1

MaxTop=-1

ClientWidth=409

ClientHeight=267

TBDockHeight=291

LRDockWidth=417

Dockable=1

[ToDo List]

Create=1

Visible=0

State=0

Left=145

Top=189

Width=411

Height=200

MaxLeft=-1

MaxTop=-1

ClientWidth=403

ClientHeight=176

TBDockHeight=221

LRDockWidth=510

Dockable=1

Column0Width=148

Column1Width=20

Column2Width=82

Column3Width=59

Column4Width=93

SortOrder=3

ShowHints=1

ShowChecked=1

[FPUWindow]

Create=1

Visible=0

State=0

Left=271

Top=248

Width=457

Height=250

MaxLeft=-1

MaxTop=-1

ClientWidth=449

ClientHeight=223

RegisterPane=121

FlagPane=59

[WatchWindow]

Create=1

Visible=0

State=0

Left=8

Top=281

Width=187

Height=339

MaxLeft=-1

MaxTop=-1

ClientWidth=179

ClientHeight=315

TBDockHeight=100

LRDockWidth=260

Dockable=1

[CallStackWindow]

Create=1

Visible=0

State=0

Left=253

Top=219

Width=294

Height=161

MaxLeft=-1

MaxTop=-1

ClientWidth=286

ClientHeight=137

TBDockHeight=161

LRDockWidth=294

Dockable=1

[AlignmentPalette]

Create=1

Visible=0

State=0

Left=200

Top=107

Width=156

Height=82

MaxLeft=-1

MaxTop=-1

ClientWidth=150

ClientHeight=60

[PropertyInspector]

Create=1

Visible=1

State=0

Left=0

Top=108

Width=190

Height=383

MaxLeft=-1

MaxTop=-1

ClientWidth=182

ClientHeight=359

TBDockHeight=339

LRDockWidth=187

Dockable=1

SplitPos=101

ArrangeBy=Name

SelectedItem=Action

ExpandedItems=Menu,Menu.Images

HiddenCategories=Legacy

[BreakpointWindow]

Create=1

Visible=0

State=0

Left=423

Top=235

Width=210

Height=124

MaxLeft=-1

MaxTop=-1

ClientWidth=202

ClientHeight=100

TBDockHeight=100

LRDockWidth=363

Dockable=1

Column0Width=59

Column1Width=43

Column2Width=62

Column3Width=49

Column4Width=75

Column5Width=75

[ThreadStatusWindow]

Create=1

Visible=0

State=0

Left=137

Top=107

Width=624

Height=152

MaxLeft=-1

MaxTop=-1

ClientWidth=616

ClientHeight=128

TBDockHeight=152

LRDockWidth=624

Dockable=1

Column0Width=145

Column1Width=100

Column2Width=115

Column3Width=250

[ObjectTree]

Create=1

Visible=0

State=0

Left=0

Top=105

Width=190

Height=252

MaxLeft=-1

MaxTop=-1

ClientWidth=182

ClientHeight=228

TBDockHeight=252

LRDockWidth=190

Dockable=1

[CodeguardLog]

Create=1

Visible=0

State=0

Left=191

Top=108

Width=448

Height=190

MaxLeft=-1

MaxTop=-1

ClientWidth=440

ClientHeight=166

TBDockHeight=190

LRDockWidth=448

Dockable=1

[ClassHierarchy@EditWindow0]

Create=1

Visible=0

State=0

Left=218

Top=113

Width=403

Height=284

MaxLeft=-1

MaxTop=-1

ClientWidth=395

ClientHeight=260

TBDockHeight=284

LRDockWidth=403

Dockable=1

TreeWidth=121

Col1Width=120

Col2Width=120

[CodeExplorer@EditWindow0]

Create=1

Visible=0

State=0

Left=180

Top=-36

Width=170

Height=388

MaxLeft=-1

MaxTop=-1

ClientWidth=170

ClientHeight=388

TBDockHeight=388

LRDockWidth=170

Dockable=1

ClassViewDisplayMode=0

[MessageView@EditWindow0]

Create=1

Visible=1

State=0

Left=12

Top=0

Width=763

Height=85

MaxLeft=-1

MaxTop=-1

ClientWidth=763

ClientHeight=85

TBDockHeight=85

LRDockWidth=443

Dockable=1

[DockHosts]

DockHostCount=0

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

#ifndef UMult2H

#define UMult2H

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Buttons.hpp>

#include <Dialogs.hpp>

#include <ExtCtrls.hpp>

#include <ExtDlgs.hpp>

#include <math.h>

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

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Image1;

TSpeedButton *BRun;

TTimer *Timer1;

TOpenPictureDialog *OpenPictureDialog1;

void __fastcall FormCreate(TObject *Sender);

void __fastcall BRunClick(TObject *Sender);

void __fastcall Timer1Timer(TObject *Sender);

private: // User declarations

public: // User declarations

void __fastcall Draw();

__fastcall TForm1(TComponent* Owner);

};

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

extern PACKAGE TForm1 *Form1;

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

#endif

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

...

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

  • Prominent features of Shakespeare’s language. The innovations of the poet in choice and use of words. His influence on the development of grammar rules and stylistics of modern english language. Shakespeare introduction of new elements in the lexicon.

    реферат [38,9 K], добавлен 13.06.2014

  • Productivity Growth in Agriculture: Sources and Constraints. Agriculture in Development Thought. Transition to Sustainability. Economic understanding of process of agricultural development. Technical changes and improvement of efficiency of agriculture.

    контрольная работа [31,5 K], добавлен 18.07.2009

  • Theoretical foundation devoted to the usage of new information technologies in the teaching of the English language. Designed language teaching methodology in the context of modern computer learning aid. Forms of work with computer tutorials lessons.

    дипломная работа [130,3 K], добавлен 18.04.2015

  • Classical and modern theories of the international trade. Concept and laws of development of the international trade. Structure and the basic commodity streams of the international trade at the present stage of development. Foreign trade of the Russia.

    курсовая работа [15,8 K], добавлен 25.02.2009

  • Ideology as a necessary part of creation and existence of the state. Features of political ideology. Ideology as a phenomenon of influence on society. The characteristic of the basic ideas conservatism, neoconservatism, liberalism, neoliberalism.

    статья [15,2 K], добавлен 31.10.2011

  • The general outline of word formation in English: information about word formation as a means of the language development - appearance of a great number of new words, the growth of the vocabulary. The blending as a type of modern English word formation.

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

  • Development of computer technologies. Machines, which are able to be learned from experience and not forget that they studied, and able to work unassisted or control of man. Internet as global collection of different types of computer networks.

    топик [10,3 K], добавлен 04.02.2009

  • Main ways of the creating slang expressions. Varieties of British slang: rhyming slang; back slang; polari. Slang as the main reason for the development of prescriptive language in an attempt to slow down the rate of change in spoken and written language.

    статья [8,3 K], добавлен 28.05.2009

  • The lexical problems of literary translation from English on the Russian language. The choice of the word being on the material sense a full synonym to corresponding word of modern national language and distinguished from last only by lexical painting.

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

  • Interrelation of development of a civilization and language as way of communication between people. History of formation and development of English. Importance of proverbs and sayings as cleverest representatives of culture and heritage of a civilization.

    реферат [255,9 K], добавлен 27.01.2015

  • Concept, history of development and sources of forming of slang as a language of modern youth. Linguistic description of modern slang and ductings of his distribution. Features of functioning of university jargon and slang of the American students.

    курсовая работа [47,8 K], добавлен 23.07.2015

  • Public choice is an application of neoclassical economic tools. James Buchanan the developer of the Theory of the Public choice. The most important contribution of Public Choice Theory is that it recognizes that politicians are motivated by self interest.

    презентация [273,0 K], добавлен 03.04.2012

  • Theoretical problems of linguistic form Language. Progressive development of language. Polysemy as the Source of Ambiguities in a Language. Polysemy and its Connection with the Context. Polysemy in Teaching English on Intermediate and Advanced Level.

    дипломная работа [45,3 K], добавлен 06.06.2011

  • Concept, essence, aspects, methods and forms of oral translation. Current machine translation software, his significance, types and examples. The nature of translation and human language. The visibility of audiovisual translation - subtitling and dubbing.

    реферат [68,3 K], добавлен 15.11.2009

  • The history of translation studies in ancient times, and it's development in the Middle Ages. Principles of translation into Greek, the texts of world's religions. Professional associations of translators. The technology and terminology translation.

    дипломная работа [640,7 K], добавлен 13.06.2013

  • Different approaches to meaning, functional approach. Types of meaning, grammatical meaning. Semantic structure of polysemantic word. Types of semantic components. Approaches to the study of polysemy. The development of new meanings of polysemantic word.

    курсовая работа [145,2 K], добавлен 06.03.2012

  • The Importance of Achieving of Semantic and Stylistic Identity of Translating Idioms. Classification of Idioms. The Development of Students Language Awareness on the Base of Using Idioms in Classes. Focus on speech and idiomatic language in classes.

    дипломная работа [66,7 K], добавлен 10.07.2009

  • The development of Word Order. Types of syntactical relations words in the phrase, their development. The development of the composite sentence. The syntactic structure of English. New scope of syntactic distinctions and of new means of expressing them.

    лекция [22,3 K], добавлен 02.09.2011

  • From the history of notion and definition of neologism. Neologisms as markers of culture in contemporary system of language and speech. Using of the neologisms in different spheres of human activity. Analysis of computer neologisms in modern English.

    научная работа [72,8 K], добавлен 13.08.2012

  • History of development of Olympic Games. From hellenes to our days. The beginning and development of Olympic Games. Olympic Games-liquidators of wars and civil strife’s. National sports of Great Britain. The Olympic games in London. Modern Olympic Games.

    реферат [19,4 K], добавлен 09.06.2010

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