Sie sind auf Seite 1von 27

Introduction

racy is more powerful and important for ever country.


It is the responsibility of each and every individual to elect the right person as their state’s or
country’s representative.

For decades, Indians casted their votes by marking a paper ballot with a
rubber stamp. It took days to count the votes and months to sort out the allegations of fraud. The
secret ballot is a voting method in which voter’s choice is confidential.

The key aim is to ensure the voter records a sincere choice by forestalling
attempts to influence the voter by intimidation or bribery. The system is one mean of achieving
the goal of political privacy. Secret ballots are suitable for many voting system. If we fail to give
our vote the whole country may suffer if a proper person is not elected.

Today, we are facing with this kind of situation because our


voting system is not secure and many of us are not interested in giving our votes. This may be we
are very busy in our schedule, or may be the ballot center is too far or we are not interested in
wasting our holiday by standing in long queues. For example, there are many people living in
Maharashtra state but only some people give their polling others though their name are in the
electoral list they are not interested in voting. It is also possible and happening in our country
that some wrong person may give his vote on behalf of some other person. Also it has happened
that some person may give his voting more than a time in on behalf on some other person. This is
not only happening in Maharashtra but also in many parts of the country. This leads to poor
development of the country.

So to avoid these problems we can introduce a system


which focuses mainly on security and flexibility to avoid malpractices.

Overview
Purpose
The purpose of this project is to make the ballot system secure and global.

Problem Statement
The existing system is not networked so after the pooling has
taken place the machines from various centers have to be physically taken to the main center
where they will count and declare the results.

The Existing system is not secure, that is any person can vote on
behalf of the right person.

The existing system is not flexible; each person has to go to the


center to give their polls

The ink mark which is put on the finger of each voted person also
leads some problems like itching of skin etc.

The existing system is also time consuming, each person who want to
give their poll have to wait for long time in queue.

Proposed System:
In this system, before the election, the details of the voters are
collected with their thumb image and then stored in the database. The administrator is the only
person who is given right to add, edit or modify any record. During the election the voter has to
save their current thumb image in their PC. When the voter runs this program the voter’s id and
the thumb print image is send to the server which processes the image and checks whether the
current image matches with the already stored image. If the current and the old image does not
matches then a message is displayed as invalid user else a successfully logged message is displayed
in the client’s machine along with the client’s details and a voting form in which the user can select
any of the representative he is interested to give his vote. Again this voter’s id is checked with the
previously voted list in the database if the voter has already given his vote then a message of
Already Voted is displayed in the client’s machine else a successfully voted message is displayed.

This system is designed using the concept of Remote Method Invocation in


which the server is remotely accessed by a client’s machine.

Advantages of the Proposed System:

Saved Ballot Templates eliminate the need to configure elections from scratch. Just do it
once, then save that ballot configuration, and in subsequent years, specify only the names of the
candidates.

Reduced Costs are enjoyed when the expenses of printing and mailing paper ballots are
lessened or even eliminated.

Automated Tallying removes human fallibility from the tabulation and delivers the results
within seconds of the close of the election.

Ability to correct mistakes allows candidate selections to be altered prior to final ballot
submission.
Reduced Man Power as this system does not require any person’s service other than the voter
and the administrator.

Email Reminders to increase voter participation by reminding those who have not voted to
do so.

Product Prospective:
This system can be used to elect a representative in a democratic
country.

Product Function:
The function of the newly generated system is to maintain the records of
the candidates (Voters) and the representative. The Candidate can give his poll being in any part
of the world.

User Requirements
User Characteristics:
The user should have some basic computer knowledge to use this system.
Assumption and dependencies:
To add a candidate’s name in the electoral list the candidate should
complete his age of 18, also he should produce the required documents. This follows for
modifying the voter’s details also.
The candidate must also produce his current photo and thumb print image while newly adding
the name.
During polling the candidate must store a thumb print
image and give the valid Voter Id. as the candidate’s identification.

Specific Requirements
External interface requirement
The PC has to be connected in network to gain access to the server.
User interface:
The system will be interactive with the user. The data stored will be
consistent; it will not take any wrong data inputted by the user
Hardware interface:
Windows 98 or any later version OS.
HARDWARE REQUIREMENTS SPECIFICATION
Processor : Pentium II
RAM : 128 MB
Hard Disk : 40 GB
Modem Capacity : 64 Kbps
Monitor : 14”
Internet Connection : Dial up or other.

Software Interface:
The software used is JAVA which is platform independent. Microsoft Access is used as
database. This system will work provided if JAVA and Access is installed in the computer.

MS Access:
MS Access is software from MS-Office package.
It is known as a relational database management system (RDBMS). This contains data in the
database as a set row and a column is field. We can build a relation between different tables,
which contain different fields. So we can display required information. Storage of data is
essential but more essential is the management of this data. Any software that stores data
organized manner and having features of retrieval of stored data, adding, updating, deleting,
modifying, sorting, querying, the database and generating reports out of this stored information is
termed as database management system.

In Access all the objects of database are stored in single file and filename
has .mdb extension. In database windows is used to manage objects. A database is a collection of
information that’s related to a particular subject or purpose, such as tracking customer orders or
maintaining a music collection.

MS ACCESS 7.0 is the latest version of Microsoft, a popular Relational DataBase


Management System(RDBMS). It is easy to use and to store, retrieve and report data in
many useful ways.

Database is a collection of information that is collection of data objects related to


particular object or propose.

Relational Database

MS ACCESS is a relational database, which means that it allows data that has been
used in different places to be linked. A Relational Database is a database, which consist of tables
of related information that are linked together based on key field.

Tables

In ACCESS, the data are stored in Tables. Tables contain columns of information called
fields and rows or related field information called records. Forms, queries and reports are tools
for manipulating the data in the database.

Fields

It is an element of a table that contains a specific item of information, such as name.


A field is represented as a column or a cell in a datasheet and as a control on a form.

In order to work efficiently ,each table in the database should include a field or a
set of fields that uniquly identifies each individual record stord in the table.
The prime objective of storing data is for information retrieval. Ms-Access
enhances flexiblity in designing queries. With the help of queries of help of queries , Selections
and display of required fields can be done.For example, only the application number and name of
students can be selected ignoring other data like address, marks etc.,

This system is developed by using JAVA, because it has many features such as

Robust & secure

Robust means reliable. A reliable language will allow you to write programs that
do not crash when least expected and will also be bug free. Since Java is strongly typed
language, it does a comprehensive compile time check on the program, which means that
any bugs can be identified at compile time.

Architectural Neutral[write once, run anywhere, anytime forever]

Due to the byte code compilation process, and interpretation by the browser, Java can work
with variety of hardware and operating systems. The only requirement is that the system
should have a java enabled Internet browser.

High performance

High performance does not mean that Java is faster than another language; Instead,
Java is comparable in speed to other languages like C or C++. For a simple application, the
difference in speed is hardly distinguishable.

Simple

Even though is object oriented, there are some differences in c++ and JAVA. In
Java there are no pointers, no multiple inheritances, no goto, and operator overloading. The
java Language has an embedded auto garbage collection mechanism. Java programs are
therefore simple, comparatively bug-free Memory Management.Java is an object-oriented
language.

Java is distributed, it is like any other Client/Server application, and Java shares
the workload of a data processing and information sharing.

Safe:

A program traveling across the internet onto your machine is not visible, could
possibly carrying a virus along with it. But due to the Strong type checking done by Java
on the user’s local machine, any changes to the program are tagged as an error. The
program will not be executed.

Portable:
The java system was built to be portable. The java compiler is written using Java
Language and the run time environment; the interpreter is written in ANSI C. The Java
Interpreter can execute the byte code directly on any machine onto which the interpreter
has been installed.

JAVA
The Abstract Window Toolkit(AWT):

The classes and interfaces of the Abstract Windows Toolkit are used to develop
stand-alone applications and to implement the GUI controls used by applets. These classes support
all aspects of GUI development, including event handling.

The Component and Container classes are two of the most important classes in the
java.awt package.

The Component class provides a common supper class for all classes that
implement GUI controls.

The container class is a subclass of Component class and can contain other AWT
components. It is worth while to familiarize with the API description of these two classes.

In Java 1.0 the user interface was created using the AWT. The original AWT was
a peer-based toolkit.

Each component created a peer that was implemented in native code for the
platform on which the Java Virtual Machine (JVM) was executing.

The peer in turn displayed the component in a window. Thus a button adopted the
look of the platform on which it was displayed. This led to porting problems among toolkits that
target multiple platforms.

The AWT is a package that provides an integrated set of classes to manage user
interface components like window, dialog boxes, buttons, checkboxes, lists, menus, Scrollbars,
and text fields.

Top-level windows, visual controls such as text boxes and push buttons, as well as
simple elements for drawing images on the screen have similar functionality.

The Component class, which implements the common functionality, is super class
for all graphical interface elements.
FEATURES OF THE COMPONENT CLASS:

All components are implemented as subclasses of the Component class. The


subclasses inherit a large amount of functionality from the Component class.

Basic Drawing Support:

The Component class provides the paint(),update(),and repaint() methods which


enable components to be drawn on the screen.

Event-Handling :

A component is capable of delectating its events(like a mouse click) to other classes


for processing. Section 16 explores event-handling.

Appearance Control :

The Component class provides methods for getting information about the current
font and changing the font. it also provides methods to get and set the foreground and background
color.

Image –Handling :

The Component class provides an implementation of the Image Observer interface


and defines methods to help components display images.

On-Screen Size and position Control:

The size and position of all the components are subject to the requirements specified
by the layout manager classes.

ABOUT THE JFC AND SWING

JFC is short for Java Foundation Classes.

Which encompass a group of features for building graphical user interfaces


(GUIs)

Adding rich graphics functionality and interactivity to Java


applications.

FEATURES OF THE JAVA FOUNDATION CLASSES

SWING GUI COMPONENTS


Includes everything from buttons to split panes to tables.

Packages: javax.swing

javax.swing.event

PLUGGABLE LOOK-AND-FEEL SUPPORT

Gives any program that uses Swing components a choice of look and feel. For
example, the same program can use either the Java or the Windows look and feel. Many more
look-and-feel packages are available from various sources. As of v1.4.2, the Java platform supports
the GTK+ look and feel, which makes hundreds of existing look and feels available to Swing
programs.

ACCESSIBILITY API :

Enables assistive technologies, such as screen readers and Braille displays, to get
information from the user interface.

JAVA 2D API :

Enables developers to easily incorporate high-quality 2D graphics, text, and images


in applications and applets. Java 2D includes extensive APIs for generating and sending high-
quality output to printing devices.

DRAG-AND-DROP SUPPORT :

Provides the ability to drag and drop between Java applications and native
applications.

INTERNATIONALIZATION :

Allows developers to build applications that can interact with users worldwide in their own
languages and cultural conventions. With the input method framework developers can build
applications that accept text in languages that use thousands of different characters, such as
Japanese, Chinese, or Korean.

TOP- LEVEL CONTAINERS:

1.JApplet
2.JFrame
3.JDialog
1. JApplet:

JApplet — a class that enables applets to use Swing components. JApplet is a


subclass of java.applet.Applet

FEATURES PROVIDED BY JAPPLET

JApplet is a top-level Swing container, each Swing applet has a root pane.

The most noticeable effects of the root pane's presence are support for adding a
menu bar and the need to use a content pane.

 You add components to a Swing applet's content pane.


 You set the layout manager on a Swing applet's content pane.
 The default layout manager for a Swing applet's content pane is Border Layout. This differs
from the default layout manager for Applet, which is Flow Layout.
 You should not put painting code directly in a JApplet object.

JFrame

A frame, implemented as an instance of the JFrame class, is a window that typically


has decorations such as a border, a title, and buttons for closing and iconifying the window.
Applications with a GUI typically use at least one frame.

JDialog

To create simple, standard dialogs, you use the JOptionPane class. The Progress
Monitor class can put up a dialog that shows the progress of an operation. Two other classes,
JColorChooser and JFileChooser, also supply standard dialogs. To bring up a print dialog, you can
use the Printing API. To create custom dialogs, use the JDialog class directly.

WINDOW-CLOSING EVENTS

By default, when the user closes a frame onscreen, the frame is hidden. Although
invisible, the frame still exists and the program can make it visible again. If you want different
behavior, then you need to either register a window listener that handles window-closing events,
or you need to specify default close behavior using the setDefaultCloseOperation method. You
can even do both. The argument to set Default Close Operation must be one of the following
values, the first three of which are defined in the Window Constants interface (implemented by
JFrame, JInternalPane, and JDialog):
DO_NOTHING_ON_CLOSE

Don't do anything when the user requests that the window close. Instead, the
program should probably use a window listener that performs some other action in its window
Closing method.

HIDE_ON_CLOSE (the default for JDialog and JFrame)

Hide the window when the user closes it. This removes the window from the screen
but leaves it displayable.

DISPOSE_ON_CLOSE (the default for JInternalFrame)

Hide and dispose of the window when the user closes it. This removes the window
from the screen and frees up any resources used by it.

EXIT_ON_CLOSE (defined in the JFrame class)

Exit the application, using System.exit (0). This is recommended for applications
only.

RMI (Remote Method Invocation)

Provides the RMI package. RMI is Remote Method Invocation. It is a mechanism


that enables an object on one Java virtual machine to invoke methods on an object in another Java
virtual machine. Any object that can be invoked this way must implement the Remote interface.
When such an object is invoked, its arguments are ``marshalled'' and sent from the local virtual
machine to the remote one, where the arguments are ``unmarshalled.''

When the method terminates, the results are marshalled from the remote machine
and sent to the caller's virtual machine. If the method invocation results in an exception being
thrown, the exception is indicated to caller. The Remote interface serves to identify interfaces
whose methods may be invoked from a non-local virtual machine. Any object that is a remote
object must directly or indirectly implement this interface.

Only those methods specified in a "remote interface", an interface that extends


java.rmi.Remote are available remotely.

Implementation classes can implement any number of remote interfaces and can
extend other remote implementation classes. RMI provides some convenience classes that remote
object implementations can extend which facilitate remote object creation. These classes are
java.rmi.server.UnicastRemoteObject and java.rmi.activation.Activatable. The Naming class
provides methods for storing and obtaining references to remote objects in the remote object
registry. The Naming class's methods take, as one of their arguments, a name that is a URL
formatted java.lang.String of the form:

//host:port/name

where host is the host (remote or local) where the registry is located, port is the port number on
which the registry accepts calls, and where name is a simple string uninterpreted by the registry.
Both host and port are optional. If host is omitted, the host defaults to the local host.

If port is omitted, then the port defaults to 1099, the "well-known" port that RMI's registry,
rmiregistry, uses.

Binding a name for a remote object is associating or registering a name for a remote object that
can be used at a later time to look up that remote object. A remote object can be associated with a
name using the Naming class's bind or rebind methods.

Once a remote object is registered (bound) with the RMI registry on the local host, callers on a
remote (or local) host can lookup the remote object by name, obtain its reference, and then invoke
remote methods on the object. A registry may be shared by all servers running on a host or an
individual server process may create and use its own registry

java.rmi Provides the RMI package.


java.rmi.activation Provides support for RMI Object Activation.
Provides classes and interface for RMI distributed garbage-collection
java.rmi.dgc
(DGC).
java.rmi.registry Provides a class and two interfaces for the RMI registry.
java.rmi.server Provides classes and interfaces for supporting the server side of RMI.
javax.rmi Contains user APIs for RMI-IIOP.
javax.rmi.CORBA Contains portability APIs for RMI-IIOP.
Contains three exceptions thrown by the ORB machinery during
javax.transaction
unmarshalling.
Contains RMI-IIOP Stubs for the Remote types that occur in the java.rmi
org.omg.stub.java.rmi
package.

Network Architecture
Networked applications typically follow what is known
as the client-server model. In this model, a server extends some service to one or more connecting
clients. An example of this model is the Web server and client. The Web server provides a
service through the distribution of information. The browser, or Web client, renders the collected
information to the User.

The client and the server communicate with each other using what is known as a
protocol. In this case, the protocol is HTTP. HTTP, and protocols in general, provide a common
language that a client and server.“Speak” to have a common basis for communication. It is also
interesting to note that these protocols are independent of operating system and platform
architecture.

The Web server here could be running on a Sun SPARCstation using the Solaris
operating system (UNIX variant) where the client could be a Windows 2000 desktop. Although
the operating systems and the physical architectures differ, the client and server can still
communicate. The Web server and client could even be written in different languages, and since
they agree on a standard set of protocols (TCP/IP and HTTP in this case), the semantics of their
communication is guaranteed.

Protocol Layering
Modern computer networks are known as packet-switched networks. When a user requests
a large document from an HTTP server, the protocols split the document into smaller pieces that
are ultimately defined as packets. These packets include not only the information they are intended
to transfer (known as the payload), but also information to tell the network where the information
is going and where it fits into the collection of packets that make up the larger stream (the header).

The process of generating these packets is through the layers


of the protocol stack. The top-most layer is called the application layer. The HTTP protocol
fits into this layer. Under the application layer is the transport layer that most commonly contains
the TCP and UDP (User Datagram Protocol) protocols. Next is the network layer which is
contains the IP protocol, and finally the data link layer which provides access to a variety of
physical interfaces such as Ethernet or Serial links. At each layer of the protocol stack, a packet is
created that encapsulates the information passed down from the previous layer. For example, the
Web client will pass down an HTTP request message to the transport layer.
The TCP protocol will then encapsulate that message by a transport layer Protocol
Data Unit (PDU). This PDU continues down through the stack, with each succeeding layer adding
its own headers to form the PDU for that layer. Once the packet reaches the data link layer, it’s on
its way to its destination. When the packet arrives at the destination, the process continues, But in
reverse. Each layer of the protocol stack analyzes and removes the headers and passes the resulting
PDU up through the stack to its intended recipient

Ports
When a packet is received it is passed up through the
protocol stack until ultimately we have an application layer PDU (Protocol Data Unit), the
transport layer includes the concept of a port that is used as an endpoint on a particular host. This
allows a particular service to create an address for itself at the host. Take for example an HTTP
server. HTTP commonly lives at port 80. When we send an e-mail, the packets arrive at port 25.
Ports allow a host to provide multiple services. Ports in the range 0 to 1023 are called well-known
ports and are reserved for known services.

Ports in the range 1024 to 49151 are called registered ports


and can be used for known servers or can be allocated dynamically. Finally, the remaining ports
(49152 to 65535) are dynamic ports (or ephemeral ports).

These ports can be assigned to client services. Since from a user perspective, all
communication occurs through ports, clients typically create a dynamic port to allow them to
communicate with the server.

Communication Interface:
This system can be accessed via network from any part of the world.
The administrator in the electoral commission can access the necessary information.

Functional Requirements:
It involves specifications of all operations to be performed validity checking on
data, parameters affected by the operation etc. the system clearly state the errors and what should
do be done when a particular error occurs.

Design Constraints:
The system can quickly be customized and modified according to changing
requirements. The system will be compatible with any kind of changes or any new evaluation.

Feasibility:
This project is feasible technically and economically, as this requires the software,
which is easily available in the market.

Scope of the Project:


The scope of this project can’t be specified, as this software can be used for any
kind of voting system. The system can be used whenever the polling takes place.
ENTITY RELATIONSHIP DIAGRAM

DATA FLOW DIAGRAM


(CONTEXT LEVEL)
DATA FLOW DIAGRAM
SYSTEM FLOWCHART
FLOWCHART
SCHEMATIC DIAGRAM
DATA DICTIONARY
Login
Field Name Data Type
Username Text
Password Text

Ward
Field Name Data Type
Ward_code Text
Ward_name Text

VoterInfo
Field Name Data Type
Voterid Text
Wardcode Text
Name Text
Address Memo
City Text
Gender Text
Date Of Birth Text
Date Of Joining Text
Father/Guardian Name
Text
Image Path Text
Thumb Path Text

Party
Field Name Data Type
Partyname Text
Partycode Text

VotingDetails
Field Name Data Type
Voterid Text
Wardcode Text
Partycode Text
Source Code
Input & Output Layouts
Server Side

User Side:output stick karna hai

Testing
The development of software systems involves a series of production activity where opportunities
for injection of human fallibility were enormous. Error may begin to occur at the very inspection
of the process where the objectives… may be erroneously or imperfectly specified, as well as (in)
later design and development stages… Because of human inability to perform and communicate
with perfection, software development is accompanied by a quality assurance activity.

Testing Objectives:
a. Testing is a process of executing a program with the intent of finding error.
b. A good test case is one that has a high probability of finding an as-yet undiscovered error.
c. Successful test is one that uncovers an as-yet undiscovered error.

Two Approaches of Software Testing:

1. White box testing


2. Black box testing

White Box Testing:

White box testing, sometimes also called as glass-box testing, is a test case design
method that uses a control structure of the procedural design to derive test cases. Using
white box testing methods, the software engineer can derive test cases that

 Guarantee that all independent paths within the module have been exercised at least
once.
 Exercise all logical decisions on their true or false sides.
 Execute all loops at their boundaries and within their operational bounds and
 Exercise internal data structures to assure validity.

The different areas where white-box testing used are:

 Testing the flow charts for the logical correctness.


 Testing the procedures for validation.
 Testing the entity-relation for their domain integrity and
referential integrity.
 Testing of the individual forms for their individual
validations and input validations.
Black Box Testing:

Black box testing alludes to tests that are conducted at the software interface. Although they are
used to demonstrate that software functions are operational; that input is properly accepted and the
output is correctly produced; and that the integrity of the external information is maintained. A
Black-box test examines some fundamental aspects of a system with little regard for the internal
logical structure of the software. It is a complementary approach that is likely to uncover a different
class of errors than white-box methods.

Black box testing attempts to find errors in the following categories:

1. Incorrect or missing functions


2. Interface errors.
3. Errors in data structures or external database access.
4. Performance error.
5. Initialization and termination errors.

Unlike the white box testing, which is performed early in the testing process, black box testing tends to
be applied during later stages of testing.

Maintenance
Maintenance is part of software development, but is an important activity
in the life of a software product. Maintenance includes all the activity after the installation of the
software that is performed to keep the system operational.

The two major form of maintenance are adaptive maintenance and corrective
maintenance.
Removing errors is one of the activities of maintenance. Maintenance is also
needed due to a change in the environment or the requirement of the system.

Adaptive Maintenance:
The maintenance activity related to the changes in the input data, the system
environment, and output formats all such modification fall under adaptive maintenance.

Maintenance involves understanding the existing software (code and related


documents), understanding the effects change, making the changes both to code and to the
documents, testing the new parts (changes) , and retesting the old part that were not changed.

The performance of the system can be measured by two factors the efficiency and
effectiveness.

The efficiency indicates the manner in which the inputs are used by the system.
Being efficient means the system uses the inputs in the right way. If the input /output ratio is
adverse then the system is said to be inefficient though it produces the desired results.

The effectiveness is the measure for deciding whether the system provides the
desired output or not. Being effective means producing the right output in terms of quality and
quantity. When the system is ineffective the system is out of control and it needs a major
correction.

A system has to be effective and efficient for the highest utility to the user of the
system. The effectiveness is a measure of the goodness of the output, while the efficiency is the
measure of the productivity i.e. the measure of the output against the input.

Throughout the lifecycle of the project it is put through the test against efficiency
and effectiveness quite frequently. The more stubborn the system is the less maintenance the
system requires.

The system designers designs and develops the system and implements them
within the organization.
When system are allowed to run for sometime they tend to become disorganized
resulting into system inefficiency. The process of decaying is called “Entropy”.

The designer is thus called upon to introduce negative entropy i.e. to provide a
course of action whereby the decay is arrested and the system is brought back to the state of
equilibrium, producing the desired objectives.

Every system is provided with maintenance procedure as given below


 System halt.
 Read/Write errors.
 Hardware failure.
 Programming errors (bugs).
As a preventive measure, negative entropy is provided as a part of the system
routine.

The steps involved are as follows:


 A periodical review of the computer system.
 User meeting to assess the current utility of the system and the level of satisfaction.
 Subjecting the system to an audit check through the test data.
 Bringing the system under trial.
 Bringing out system modifications.

These stepwise procedure will definitely help in carrying out the maintenance program of any
automate system.

Security
Access to the program itself is restricted through the use of username –
password pairs. These pairs also decide the access restriction.

Conclusion
The entire system is full focused on security and time saving and network oriented.
Presently the election process is done by manual and identification is very low level methodology.
To develop our country economically, socially etc we need to elect a proper person as a
representative but the existing system will not help us to do this. The proposed system has been
developed to solve all these problems.

I am happy to state that I have gained invaluable practical experience in the field of
software development; it’s servicing and troubleshooting.
This project work has taught me to work with a sense responsibility and self-
confidence.

I have made an earnest attempt towards the successful completion of this project.

As far as the project is concerned I have tried to make the system user friendly as possible.

I, however welcome any future suggestion for future development.

Bibliography
 JAVA – The Complete Reference
 JAVA2
 Digital Image Processing using JAVA
 An Integrated Approach to Software Engineering

 www.google.com
 www.sun.com

Das könnte Ihnen auch gefallen