Projects Assignments on BlueJ for ICSE Board

(Note: All programs codes are Tested on BlueJ. Change extension from .java.txt file to .java)


Projects Assignments

---------------- -------------- ------------- ------------ --------------- ------------- ------------- ------------ ------------ --------- ------------
As per ICSE rules there will be one written paper of two hours duration carrying 100 marks and Internal Project/Assessment of 100 marks.
---------- ---------- ------------ ------------- ------------ -------------- ------------ ---------- ------------- ------------ ---------- -------------

Assignments and Project

The students should complete a number of laboratory assignments during the whole year to reinforce the concepts studied in the class.
The students should build one real life project using the concepts taught.
Suggested list of Assignments: Good assignments should have problems which require design, invention of an algorithm and only then implementation and testing. The problems will mimic a real life problem and require careful design or will require an interesting algorithm to solve it. They should also embody one or more concepts that have
been discussed in the theory class. A significant proportion of the time has to be spent in the laboratory. Computing can only be learnt by doing. Some sample problems are given below as examples. The problems are of varying levels of difficulty.
1. A student has a name, roll number, class in which studying, home address and a date of birth. First design a suitable class for Date. Write constructors and get and set functions. Then design a class for student. Write constructors, get and set functions and a function to calculate the age of a student (use today’s date in the function). The age should be returned as a triple (years, month, days). You will have to define a class for Triple and return an object of this type as the age.
2. Write a class Convert with methods as follows: 
a) takes 4 arguments representing miles, yards, feet and inches and convert them into kilometers, meters and centimeters.
b) takes an argument representing degrees Fahrenheit and convert it to degrees centigrade. c) a kilobyte is interpreted in two ways: some times it is 1000 bytes (actually correct), but often (and traditionally) it is 210 which is 1024. Similar discrepancies arise for mega, giga, tera and peta (each is 1000 (or 210) times the previous one).
The function should take the 103 (standard kilo) and give the equivalent value using 210 as a kilo for all the above.
3. Older computers used Binary Coded Decimals (BCD) to represent integers. In this each digit is represented by using 4 bits. So 0 is 0000, 1 is 0001, 2 is 0010, ... 9 is 1001. The remaining 4 bit patterns, namely 1010 onwards are illegal. So 32 bits can store up to 8 digits. To represent a negative number the sign is also encoded using 4 bits. However, we are interested only in positive BCD numbers. For example assuming we have 32 bits the number 123 will be represented as (0000) 5 times followed by 000100100011. Define a class BCD with a single constructor, which takes
an integer argument and creates its BCD equivalent. Write methods for adding, subtracting BCD numbers.
4. Define a class RecurringPatterns and define methods in it which will print the following patterns.
a) The method takes an integer argument n and prints the following pattern, shown for n=4. 
   a a
  a a a
a a a a
  a a a
   a a
b) The method takes an integer argument and prints the following pattern, shown for n=4.
c) The method takes an integer argument and prints the following pattern, shown for n=4.
  abc  cba
  ab     ba
  a         a
  ab     ba
  abc  cba
Note: for the three methods above you can assume that n<10. However, think about what you would do if you allowed n to be a 2 or even 3 digit integer.
5. Define class Point to model points in the X-Y plane. Define functions to translate a point along the X and Y axes respectively. Define a function that calculates the distance from another point. 6. Now use the Point class to define a Rectangle class where a rectangle is modelled by specifying all the four corners of the rectangle. Write separate functions to:
i) Calculate the perimeter and area of the rectangle.
ii) Translate the rectangle along the X-axis, Y-axis and X-Y axes (simultaneously).
7. We want to build the basic backbone of a simple railway reservation system. The following classes are required to model the system: Person, Date, Train, and Rail Reservation Record. You have to invent the requisite attributes and functions for the various classes based on a description of the functionality and constraints of Rail Reservation
Record object given below:
a) Reservation is made from a start station to a destination station on a single train, in a particular class, for a particular date, for a person. So we are not taking care of journeys requiring two or more trains.
b) Reservation can be made up to a maximum of 60 days and up to a minimum of 1 day before the date of departure.
c) Reservations already made can be canceled.
d) Assume that the trains have infinite capacity. So you need not make checks to see whether space is available or not.
e) For reserving accommodation each passenger’s name, gender and age is required. 
f) Each Rail Reservation Record object must have a unique reference number/string for access purposes.
You can use classes you may have defined in some of your earlier assignments. You can also invent more classes than the ones listed above if you think they are necessary. All your classes should have proper access declarators private, public etc. 
Important: This list is indicative only. The teachers and students should use their imagination to create innovative and original assignments.

Some Ideas for the Project:
Students have already been introduced to spreadsheets, databases, word processors and presentation software earlier. That familiarity should be used to introduce the idea of how the software can be designed by modeling it as operations permitted on different objects. Other real world systems can also be modeled on the same lines:
  1. Calculators
  2. Banks
  3. A school
  4. Toys
  5. A game
  6. Traffic lights
  7. Elevators
  8. Retail Outlets
  9. An office
  10. A company
  11. Household gadgets like microwave ovens
  12. Washing machines
  13. Air Conditioners
  14. Cars
  15. Airplanes
  16. Vending machines
  17. Automatic Teller Machines (ATM )
  18. A Social System
  19. A musical composition
  20. A clinical diagnostic system
Important: This list is indicative only. The teachers and students should use their imagination to create innovative and original projects.
Programming Project (Class X)
Proposed Guidelines for Marking
The teacher should use the criteria below to judge the internal work done. Basically, four criteria are being suggested: class design, algorithm design, coding and documentation and execution. The important questions to be asked when evaluating each criterion are shown. 25% of the total credit is assigned to each criterion - so each is equally important. The actual grading will be done by the teacher based on his/her judgment. However, one possible way: divide the outcome for each criterion into one of 4 groups: excellent, good, fair/acceptable, poor/unacceptable,
then use numeric values for each grade and add to get the total which can be multiplied by a suitable factor
to get the final marks.
Class design:
Has a suitable class (or classes) been used? 
Are all attributes with the right kinds of types present?
Is encapsulation properly done?
Is the interface properly designed?
Algorithm design:
Is the choice of data structures proper?
Is the algorithm suitable for the problem?
How efficient is it?
Coding and documentation:
Is the coding done properly? (Choice of names, no unconditional jumps, proper organization of conditions, proper choice of loops, error handling, code layout) Is the documentation complete and readable? (class documentation, variable documentation, function documentation, constraints, known bugs - if any)
Does the program run on all sample input correctly?
Criteria       Class Design         Algorithm Design        Coding and Documentation      Execution
(40m)             (mm- 10)                   (mm-10)                          (mm-10)                        (mm-10)
Excellent              10                             10                                 10                                  10
Good                    8                                8                                   8                                    8
Fair                       6                                6                                   6                                    6
Poor                      4                               4                                   4                                    4


The teacher in-charge shall keep the record of all the assignments done by the student throughout the year and evaluate them internally. The student is expected to do one project under the guidance of the teacher in charge. An External Examiner shall be nominated by the Principal and may be a teacher from the faculty, but not teaching the subject in the relevant section/class. For example, a teacher of Computer Science of Class VIII may be deputed to be the External Examiner for Class X, Computer Applications Projects.
Evaluation of practical work will be done as follows:
Subject Teacher (Internal Examiner) : 50 marks
External Examiner :                             50 marks
The total marks obtained out of 100 are to be sent to the Council by the Head of the School.
The Head of the School will be responsible for the entry of marks on the mark sheets provided by the Council.
Bank Account Transaction
A menu driven transaction on Bank account, withdrawing money, deposit money and many more.
Download BlueJ Source Code
Cricket Score Board
A Ball by Ball updated Cricket score board.
Download BlueJ Source Code
Crorepati Quiz Game.
Kaun Banega Carorepari Quiz Game.
Download BlueJ Source Code (Sample 1)
Download BlueJ Source Code (Sample 2)
Download BlueJ Source Code (Sample 3)
Download Text File (Questions File)
Graphical Analog CLOCK
Display a Analog Clock with seconds (using applets).
Download BlueJ Source Code
Bouncing Ball
Graphical Bouncing Ball in your screen.
Download BlueJ Source Code
Theater Tickets Sales
Ticket Sales in a Movie Theater Hall.
Download BlueJ Source Code
Displaying your STAR SIGN and Nature of your STAR SIGN on your Birth Date.
Download BlueJ Source Code
Download BlueJ Text File
Train Reservation (2)
Railway Ticket Booking Software with Cancellation.
Download BlueJ Source Code (Sample 1)
Download BlueJ Source Code (Sample 2)
Yearly Calendar month by month.
Download BlueJ Source Code
Small simple calculator performing simple mathematical calculations.
Download BlueJ Source Code