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.2014Productivity 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.2009Theoretical 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.2015Classical 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.2009Ideology 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.2011The 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.2014Development 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.2009Main 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.2009The 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.2012Interrelation 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.2015Concept, 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.2015Public 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.2012Theoretical 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.2011Concept, 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.2009The 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.2013Different 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.2012The 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.2009The 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.2011From 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.2012History 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